Author: Aiden Grossman Date: 2026-07-14T07:21:16-07:00 New Revision: 54e44f91290abf90587b28ebedcdcded2b900576
URL: https://github.com/llvm/llvm-project/commit/54e44f91290abf90587b28ebedcdcded2b900576 DIFF: https://github.com/llvm/llvm-project/commit/54e44f91290abf90587b28ebedcdcded2b900576.diff LOG: Revert "[AlwaysInliner] Do not inline on attribute mismatches" This reverts commit 37b8e765ce4837a7577e6f762bcdffe4b232759c. Added: Modified: llvm/lib/Transforms/IPO/AlwaysInliner.cpp llvm/test/Transforms/Inline/always-inline-phase-ordering.ll Removed: llvm/test/Transforms/Inline/X86/always-inline-incompatible-target-features.ll ################################################################################ diff --git a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp index 1bdefb25b8dfb..080cb8ddb33fd 100644 --- a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp +++ b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp @@ -21,7 +21,6 @@ #include "llvm/Analysis/ProfileSummaryInfo.h" #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" -#include "llvm/IR/DiagnosticInfo.h" #include "llvm/IR/Module.h" #include "llvm/InitializePasses.h" #include "llvm/Transforms/Utils/Cloning.h" @@ -53,22 +52,6 @@ bool AlwaysInlineImpl( DebugLoc DLoc = CB.getDebugLoc(); BasicBlock *Block = CB.getParent(); - TargetTransformInfo &CalleeTTI = GetTTI(Callee); - std::optional<InlineResult> CanInlineWithAttributes = - getAttributeBasedInliningDecision(CB, &Callee, CalleeTTI, GetTLI); - if (!CanInlineWithAttributes || !CanInlineWithAttributes->isSuccess()) { - ORE.emit([&]() { - return OptimizationRemarkMissed(DEBUG_TYPE, "NotInlined", DLoc, Block) - << "'" << ore::NV("Callee", &Callee) << ", is not inlined into" - << ore::NV("Caller", Caller) << "': " - << ore::NV("Reason", - CanInlineWithAttributes.has_value() - ? CanInlineWithAttributes->getFailureReason() - : "due to incompatible function attributes"); - }); - return false; - } - InlineFunctionInfo IFI(GetAssumptionCache, &PSI); InlineResult Res = InlineFunction( CB, IFI, /*MergeAttributes=*/true, &GetAAR(Callee), InsertLifetime, diff --git a/llvm/test/Transforms/Inline/X86/always-inline-incompatible-target-features.ll b/llvm/test/Transforms/Inline/X86/always-inline-incompatible-target-features.ll deleted file mode 100644 index e4524c69f0206..0000000000000 --- a/llvm/test/Transforms/Inline/X86/always-inline-incompatible-target-features.ll +++ /dev/null @@ -1,29 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 -; RUN: opt -passes=always-inline -S < %s | FileCheck %s - -; Check that always-inline does not inline functions with incompatible target -; features. - -target triple = "x86_64-grtev4-linux-gnu" - -define i64 @clck(i64 %a) { -; CHECK-LABEL: define i64 @clck( -; CHECK-SAME: i64 [[A:%.*]]) { -; CHECK-NEXT: [[TMP1:%.*]] = call i64 @dkwaysa(i64 [[A]]) -; CHECK-NEXT: ret i64 [[TMP1]] -; - %1 = call i64 @dkwaysa(i64 %a) - ret i64 %1 -} - -define i64 @dkwaysa(i64 %a) #0 { -; CHECK-LABEL: define i64 @dkwaysa( -; CHECK-SAME: i64 [[A:%.*]]) #[[ATTR0:[0-9]+]] { -; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.x86.bmi.bzhi.64(i64 1, i64 [[A]]) -; CHECK-NEXT: ret i64 [[TMP1]] -; - %2 = tail call i64 @llvm.x86.bmi.bzhi.64(i64 1, i64 %a) - ret i64 %2 -} - -attributes #0 = { alwaysinline "target-features"="+bmi2" } diff --git a/llvm/test/Transforms/Inline/always-inline-phase-ordering.ll b/llvm/test/Transforms/Inline/always-inline-phase-ordering.ll index 7beaa5767bd3a..1cfdaddd34a65 100644 --- a/llvm/test/Transforms/Inline/always-inline-phase-ordering.ll +++ b/llvm/test/Transforms/Inline/always-inline-phase-ordering.ll @@ -118,7 +118,7 @@ bb: } attributes #0 = { optsize "frame-pointer"="non-leaf" } -attributes #1 = { optsize } +attributes #1 = { optsize "target-cpu"="apple-m1" } attributes #2 = { optsize alwaysinline } !llvm.module.flags = !{!0, !1, !30, !31, !32, !36, !37} _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
