diff options
Diffstat (limited to 'llvm/lib/CodeGen/TargetPassConfig.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/TargetPassConfig.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index 3658e8320a0c..79e240d62a17 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -46,6 +46,7 @@ #include "llvm/Support/WithColor.h" #include "llvm/Target/CGPassBuilderOption.h" #include "llvm/Target/TargetMachine.h" +#include "llvm/Transforms/ObjCARC.h" #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Utils.h" #include <cassert> @@ -845,7 +846,6 @@ void TargetPassConfig::addIRPasses() { // TODO: add a pass insertion point here addPass(&GCLoweringID); addPass(&ShadowStackGCLoweringID); - addPass(createLowerConstantIntrinsicsPass()); // For MachO, lower @llvm.global_dtors into @llvm.global_ctors with // __cxa_atexit() calls to avoid emitting the deprecated __mod_term_func. @@ -866,11 +866,6 @@ void TargetPassConfig::addIRPasses() { if (getOptLevel() != CodeGenOptLevel::None && !DisablePartialLibcallInlining) addPass(createPartiallyInlineLibCallsPass()); - // Expand vector predication intrinsics into standard IR instructions. - // This pass has to run before ScalarizeMaskedMemIntrin and ExpandReduction - // passes since it emits those kinds of intrinsics. - addPass(createExpandVectorPredicationPass()); - // Instrument function entry after all inlining. addPass(createPostInlineEntryExitInstrumenterPass()); @@ -949,6 +944,9 @@ 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); |
