-
Notifications
You must be signed in to change notification settings - Fork 14.8k
[AArch64][llvm] Remove FeatureMPAM guards for parity with gcc #163166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jthackray
wants to merge
1
commit into
users/jthackray/armv9.7a-neon
Choose a base branch
from
users/jthackray/remove_guards
base: users/jthackray/armv9.7a-neon
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
[AArch64][llvm] Remove FeatureMPAM guards for parity with gcc #163166
jthackray
wants to merge
1
commit into
users/jthackray/armv9.7a-neon
from
users/jthackray/remove_guards
+18
−80
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced Oct 13, 2025
Open
@llvm/pr-subscribers-backend-aarch64 Author: Jonathan Thackray (jthackray) ChangesRemove Full diff: https://github.com/llvm/llvm-project/pull/163166.diff 3 Files Affected:
diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
index 35a96a003d94b..d93ed85b11119 100644
--- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td
+++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
@@ -1885,7 +1885,6 @@ def : ROSysReg<"ERXPFGF_EL1", 0b11, 0b000, 0b0101, 0b0100, 0b100>;
// v8.4a MPAM registers
// Op0 Op1 CRn CRm Op2
-let Requires = [{ {AArch64::FeatureMPAM} }] in {
def : RWSysReg<"MPAMVPMV_EL2", 0b11, 0b100, 0b1010, 0b0100, 0b001>;
def : RWSysReg<"MPAMVPM0_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b000>;
def : RWSysReg<"MPAMVPM1_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b001>;
@@ -1895,7 +1894,6 @@ def : RWSysReg<"MPAMVPM4_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b100>;
def : RWSysReg<"MPAMVPM5_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b101>;
def : RWSysReg<"MPAMVPM6_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b110>;
def : RWSysReg<"MPAMVPM7_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b111>;
-} //FeatureMPAM
// v8.4a Activity Monitor registers
// Op0 Op1 CRn CRm Op2
diff --git a/llvm/test/MC/AArch64/armv8.4a-mpam.s b/llvm/test/MC/AArch64/armv8.4a-mpam.s
index cabed93ecae44..7469227974410 100644
--- a/llvm/test/MC/AArch64/armv8.4a-mpam.s
+++ b/llvm/test/MC/AArch64/armv8.4a-mpam.s
@@ -1,5 +1,4 @@
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2> %t | FileCheck %s --check-prefix=CHECK
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
//------------------------------------------------------------------------------
// ARMV8.4-A MPAM Extensions
@@ -74,59 +73,3 @@ mrs x0, MPAMIDR_EL1
//CHECK: mrs x0, MPAMIDR_EL1 // encoding: [0x80,0xa4,0x38,0xd5]
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPMV_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM0_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM1_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM2_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM3_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM4_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM5_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM6_EL2, x0
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected writable system register or pstate
-//CHECK-ERROR: msr MPAMVPM7_EL2, x0
-//CHECK-ERROR: ^
-
-
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPMV_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM0_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM1_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM2_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM3_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM4_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM5_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM6_EL2
-//CHECK-ERROR: ^
-//CHECK-ERROR: error: expected readable system register
-//CHECK-ERROR: mrs x0, MPAMVPM7_EL2
-//CHECK-ERROR: ^
diff --git a/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt b/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt
index 888924d561d3d..16eba25ab0cfb 100644
--- a/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt
+++ b/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt
@@ -73,15 +73,15 @@
#CHECK-NOV84: msr MPAM1_EL12, x0
#CHECK-NOV84: msr MPAMHCR_EL2, x0
-#CHECK-NOV84: msr S3_4_C10_C4_1, x0
-#CHECK-NOV84: msr S3_4_C10_C6_0, x0
-#CHECK-NOV84: msr S3_4_C10_C6_1, x0
-#CHECK-NOV84: msr S3_4_C10_C6_2, x0
-#CHECK-NOV84: msr S3_4_C10_C6_3, x0
-#CHECK-NOV84: msr S3_4_C10_C6_4, x0
-#CHECK-NOV84: msr S3_4_C10_C6_5, x0
-#CHECK-NOV84: msr S3_4_C10_C6_6, x0
-#CHECK-NOV84: msr S3_4_C10_C6_7, x0
+#CHECK-NOV84: msr MPAMVPMV_EL2, x0
+#CHECK-NOV84: msr MPAMVPM0_EL2, x0
+#CHECK-NOV84: msr MPAMVPM1_EL2, x0
+#CHECK-NOV84: msr MPAMVPM2_EL2, x0
+#CHECK-NOV84: msr MPAMVPM3_EL2, x0
+#CHECK-NOV84: msr MPAMVPM4_EL2, x0
+#CHECK-NOV84: msr MPAMVPM5_EL2, x0
+#CHECK-NOV84: msr MPAMVPM6_EL2, x0
+#CHECK-NOV84: msr MPAMVPM7_EL2, x0
// Available outside MPAM from Armv9.7
#CHECK-NOV84: mrs x0, MPAM0_EL1
@@ -91,16 +91,13 @@
#CHECK-NOV84: mrs x0, MPAM1_EL12
#CHECK-NOV84: mrs x0, MPAMHCR_EL2
-#CHECK-NOV84: mrs x0, S3_4_C10_C4_1
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_0
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_1
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_2
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_3
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_4
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_5
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_6
-#CHECK-NOV84: mrs x0, S3_4_C10_C6_7
-
-// Available outside MPAM from Armv9.7
+#CHECK-NOV84: mrs x0, MPAMVPMV_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM0_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM1_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM2_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM3_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM4_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM5_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM6_EL2
+#CHECK-NOV84: mrs x0, MPAMVPM7_EL2
#CHECK-NOV84: mrs x0, MPAMIDR_EL1
-
|
03e8371
to
a6b0561
Compare
a7a7cbf
to
0e3951b
Compare
a6b0561
to
729c6b4
Compare
0e3951b
to
bc7f1f0
Compare
Remove `AArch64::FeatureMPAM` guards from some MPAM system registers, since these system registers are not any under feature guard for gcc.
bc7f1f0
to
76b311e
Compare
729c6b4
to
2f6800b
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Remove
AArch64::FeatureMPAM
guards from some MPAM system registers,since these system registers are not any under feature guard for gcc.