[llvm] [ForceFunctionAttrs] Fix handling of conflicts for more attributes (PR #186304)
Justin Fargnoli via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 13 18:08:27 PDT 2026
================
@@ -45,10 +45,46 @@ static cl::opt<std::string> CSVFilePath(
"add to them in the form of `f1,attr1` or `f2,attr2=str`."));
static bool hasConflictingFnAttr(Attribute::AttrKind Kind, Function &F) {
- if (Kind == Attribute::AlwaysInline)
- return F.hasFnAttribute(Attribute::NoInline);
- if (Kind == Attribute::NoInline)
+ switch (Kind) {
+ case Attribute::AlwaysInline:
+ return F.hasFnAttribute(Attribute::NoInline) ||
+ F.hasFnAttribute(Attribute::OptimizeNone);
----------------
justinfargnoli wrote:
> Only functions with the alwaysinline attribute are valid candidates for inlining into the body of this function. ([source](https://llvm.org/docs/LangRef.html#function-attributes))
It doesn't look like `optnone` conflicts with `alwaysinline`.
https://github.com/llvm/llvm-project/pull/186304
More information about the llvm-commits
mailing list