aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetPassConfig.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2024-08-13 12:57:13 +0100
committerGitHub <noreply@github.com>2024-08-13 12:57:13 +0100
commitb4edfc19202cf44f8b49d2a953113b167395b595 (patch)
tree5ab08277b1280981647df596d829188d56055560 /llvm/lib/CodeGen/TargetPassConfig.cpp
parent2256d00a1445e751f20040cb4292aa325dd83c8e (diff)
downloadllvm-b4edfc19202cf44f8b49d2a953113b167395b595.zip
llvm-b4edfc19202cf44f8b49d2a953113b167395b595.tar.gz
llvm-b4edfc19202cf44f8b49d2a953113b167395b595.tar.bz2
[LTO] Run ObjCARCContractPass according to the callgraph (#103034)
This matches other IR codegen passes and avoids a Dominator Tree Construction in AMDGPU O2/O3 builds.
Diffstat (limited to 'llvm/lib/CodeGen/TargetPassConfig.cpp')
-rw-r--r--llvm/lib/CodeGen/TargetPassConfig.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp
index 79e240d..1b0012b 100644
--- a/llvm/lib/CodeGen/TargetPassConfig.cpp
+++ b/llvm/lib/CodeGen/TargetPassConfig.cpp
@@ -944,13 +944,13 @@ void TargetPassConfig::addCodeGenPrepare() {
void TargetPassConfig::addISelPrepare() {
addPreISel();
- if (getOptLevel() != CodeGenOptLevel::None)
- addPass(createObjCARCContractPass());
-
// Force codegen to run according to the callgraph.
if (requiresCodeGenSCCOrder())
addPass(new DummyCGSCCPass);
+ if (getOptLevel() != CodeGenOptLevel::None)
+ addPass(createObjCARCContractPass());
+
addPass(createCallBrPass());
// Add both the safe stack and the stack protection passes: each of them will