[llvm] [llvm][AArch64] Do not inline a function with different signing scheme. (PR #80642)

Nick Desaulniers via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 21 09:47:07 PST 2024


================
@@ -359,7 +366,10 @@ def : CompatRule<"isEqual<ShadowCallStackAttr>">;
 def : CompatRule<"isEqual<UseSampleProfileAttr>">;
 def : CompatRule<"isEqual<NoProfileAttr>">;
 def : CompatRule<"checkDenormMode">;
-
+def : CompatRule<"checkStrictFP">;
+def : CompatRuleAttr<"isEqual", "sign-return-address">;
+def : CompatRuleAttr<"isEqual", "sign-return-address-key">;
+def : CompatRuleAttr<"isEqual", "branch-protection-pauth-lr">;
----------------
nickdesaulniers wrote:

I guess I'm surprised that you can't do:
```
def : CompatRule<"isEqual<sign-return-address>">;
```
Is this because these attributes are string attributes?  If so, consider adding more to the comment blocks to describe //when// a developer should use `CompatRule` vs `CompatRuleAttr`.  Perhaps s/CompatRuleAttr/CompatRuleStrAttr/ since the existing vanillla CompatRule is already concerned with function attributes in order to better distinguish that this new class is for //string// attributes.

https://github.com/llvm/llvm-project/pull/80642


More information about the llvm-commits mailing list