Performance monitor architecture extension has been added to clang.
Details
Diff Detail
Event Timeline
I'm happy with this patch, but you could update the description to be clearer that you're adding an option to allow PMU v3.4 to be enabled/disabled separately to the architecture - not adding the pmu extension itself.
Hmm. This appears to be mapping pmuv3p4 to "perfmon". But "perfmon" has been around a long time, not a new feature related to the pmuv3p4 update. It seems on the AArch64 side to control access to PMCCNTR, i.e. access to the base FEAT_PMUv3.
On the Arm side this is altering how HasV7Ops is define in https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/ARM/ARM.td#L515, which in turn is breaking Cortex-M cpus. It's probably a bug that HasV7Ops includes FeaturePerfMon, it shouldn't be included in HasV8MMainlineOps or ARMv7m if it's reading a system register with an mrc.
LGTM. Thanks for the update.
llvm/include/llvm/Support/AArch64TargetParser.def | ||
---|---|---|
147 | The formatting is a little off, for the subsequent columns. |
clang-format: please reformat the code
46 diff lines are omitted. See full path.