aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorSam Elliott <aelliott@qti.qualcomm.com>2026-02-10 21:44:17 -0800
committerGitHub <noreply@github.com>2026-02-10 21:44:17 -0800
commit0d08cb0e70378d1f10578f4e009eb29eb17ad2dd (patch)
treea89ba701f88557743de28061966f2c71d3e33cd4 /llvm/lib/Transforms
parentb02b395a1e75030708efc099f449f96436a90141 (diff)
downloadllvm-0d08cb0e70378d1f10578f4e009eb29eb17ad2dd.tar.gz
llvm-0d08cb0e70378d1f10578f4e009eb29eb17ad2dd.tar.bz2
llvm-0d08cb0e70378d1f10578f4e009eb29eb17ad2dd.zip
[outliners] Turn nooutline into an Enum Attribute (#163665)
This change turns the `"nooutline"` attribute into an enum attribute called `nooutline`, and adds an auto-upgrader for bitcode to make the same change to existing IR. This IR attribute disables both the Machine Outliner (enabled at Oz for some targets), and the IR Outliner (disabled by default).
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/IPO/IROutliner.cpp2
-rw-r--r--llvm/lib/Transforms/Utils/CodeExtractor.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/IPO/IROutliner.cpp b/llvm/lib/Transforms/IPO/IROutliner.cpp
index 250957684dff..574e4639b543 100644
--- a/llvm/lib/Transforms/IPO/IROutliner.cpp
+++ b/llvm/lib/Transforms/IPO/IROutliner.cpp
@@ -2411,7 +2411,7 @@ void IROutliner::pruneIncompatibleRegions(
if (FnForCurrCand.hasOptNone())
continue;
- if (FnForCurrCand.hasFnAttribute("nooutline")) {
+ if (FnForCurrCand.hasFnAttribute(Attribute::NoOutline)) {
LLVM_DEBUG({
dbgs() << "... Skipping function with nooutline attribute: "
<< FnForCurrCand.getName() << "\n";
diff --git a/llvm/lib/Transforms/Utils/CodeExtractor.cpp b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
index fe8758b94293..b298a8ae144d 100644
--- a/llvm/lib/Transforms/Utils/CodeExtractor.cpp
+++ b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
@@ -949,6 +949,7 @@ Function *CodeExtractor::constructFunctionDeclaration(
case Attribute::NoFree:
case Attribute::NoImplicitFloat:
case Attribute::NoInline:
+ case Attribute::NoOutline:
case Attribute::NonLazyBind:
case Attribute::NoRedZone:
case Attribute::NoUnwind: