diff options
Diffstat (limited to 'lib/Transforms/IPO/IPO.cpp')
-rw-r--r-- | lib/Transforms/IPO/IPO.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/lib/Transforms/IPO/IPO.cpp b/lib/Transforms/IPO/IPO.cpp index 89629cf06e083..3507eba81b2f5 100644 --- a/lib/Transforms/IPO/IPO.cpp +++ b/lib/Transforms/IPO/IPO.cpp @@ -18,31 +18,32 @@ #include "llvm/InitializePasses.h" #include "llvm/IR/LegacyPassManager.h" #include "llvm/Transforms/IPO.h" +#include "llvm/Transforms/IPO/FunctionAttrs.h" using namespace llvm; void llvm::initializeIPO(PassRegistry &Registry) { initializeArgPromotionPass(Registry); - initializeConstantMergePass(Registry); + initializeConstantMergeLegacyPassPass(Registry); initializeCrossDSOCFIPass(Registry); initializeDAEPass(Registry); initializeDAHPass(Registry); initializeForceFunctionAttrsLegacyPassPass(Registry); - initializeGlobalDCEPass(Registry); - initializeGlobalOptPass(Registry); + initializeGlobalDCELegacyPassPass(Registry); + initializeGlobalOptLegacyPassPass(Registry); initializeIPCPPass(Registry); initializeAlwaysInlinerPass(Registry); initializeSimpleInlinerPass(Registry); initializeInferFunctionAttrsLegacyPassPass(Registry); - initializeInternalizePassPass(Registry); + initializeInternalizeLegacyPassPass(Registry); initializeLoopExtractorPass(Registry); initializeBlockExtractorPassPass(Registry); initializeSingleLoopExtractorPass(Registry); - initializeLowerBitSetsPass(Registry); + initializeLowerTypeTestsPass(Registry); initializeMergeFunctionsPass(Registry); - initializePartialInlinerPass(Registry); - initializePostOrderFunctionAttrsPass(Registry); - initializeReversePostOrderFunctionAttrsPass(Registry); + initializePartialInlinerLegacyPassPass(Registry); + initializePostOrderFunctionAttrsLegacyPassPass(Registry); + initializeReversePostOrderFunctionAttrsLegacyPassPass(Registry); initializePruneEHPass(Registry); initializeStripDeadPrototypesLegacyPassPass(Registry); initializeStripSymbolsPass(Registry); @@ -50,9 +51,10 @@ void llvm::initializeIPO(PassRegistry &Registry) { initializeStripDeadDebugInfoPass(Registry); initializeStripNonDebugSymbolsPass(Registry); initializeBarrierNoopPass(Registry); - initializeEliminateAvailableExternallyPass(Registry); - initializeSampleProfileLoaderPass(Registry); + initializeEliminateAvailableExternallyLegacyPassPass(Registry); + initializeSampleProfileLoaderLegacyPassPass(Registry); initializeFunctionImportPassPass(Registry); + initializeWholeProgramDevirtPass(Registry); } void LLVMInitializeIPO(LLVMPassRegistryRef R) { @@ -72,7 +74,7 @@ void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) { } void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM) { - unwrap(PM)->add(createPostOrderFunctionAttrsPass()); + unwrap(PM)->add(createPostOrderFunctionAttrsLegacyPass()); } void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM) { @@ -104,10 +106,10 @@ void LLVMAddIPSCCPPass(LLVMPassManagerRef PM) { } void LLVMAddInternalizePass(LLVMPassManagerRef PM, unsigned AllButMain) { - std::vector<const char *> Export; - if (AllButMain) - Export.push_back("main"); - unwrap(PM)->add(createInternalizePass(Export)); + auto PreserveMain = [=](const GlobalValue &GV) { + return AllButMain && GV.getName() == "main"; + }; + unwrap(PM)->add(createInternalizePass(PreserveMain)); } void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM) { |