[llvm] [ARM] Specify inlining behavior in TableGen (PR #205763)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 30 05:57:18 PDT 2026
================
@@ -528,29 +575,37 @@ def FeatureLOB : SubtargetFeature<"lob", "HasLOB", "true",
"extensions">;
// Mitigate against the cve-2021-35465 security vulnurability.
+// TODO: Does this need to be InlineMustMatch?
def FeatureFixCMSE_CVE_2021_35465 : SubtargetFeature<"fix-cmse-cve-2021-35465",
"FixCMSE_CVE_2021_35465", "true",
"Mitigate against the cve-2021-35465 "
- "security vulnurability">;
+ "security vulnurability",
+ [], InlineMustMatch>;
+// TODO: Does this need to be InlineMustMatch?
def FeaturePACBTI : SubtargetFeature<"pacbti", "HasPACBTI", "true",
"Enable Pointer Authentication and Branch "
- "Target Identification">;
+ "Target Identification",
+ [], InlineMustMatch>;
/// Don't place a BTI instruction after return-twice constructs (setjmp).
+// TODO: Does this need to be InlineMustMatch?
def FeatureNoBTIAtReturnTwice : SubtargetFeature<"no-bti-at-return-twice",
"NoBTIAtReturnTwice", "true",
"Don't place a BTI instruction "
- "after a return-twice">;
+ "after a return-twice",
+ [], InlineMustMatch>;
----------------
davemgreen wrote:
I am not.
I don't think I would ever expect them to be different inside the same project. They are really two different schemes depending on the libraries being used. I am assuming that if they are different, the no-bti-at-return-twice was probably on purpose and the one without was probably a mistake. So inlining into a function with no-bti-at-return-twice in that regard is probably fine.
I don't mind being conservative (if we call InlineMustMatch conservative), as I don't expect it to come up on purpose.
https://github.com/llvm/llvm-project/pull/205763
More information about the llvm-commits
mailing list