isn't doing lazy streaming. This also fixes a missing doFinalization call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103774
91177308-0d34-0410-b5e6-
96231b3b80d8
};
char BasicBlockPassPrinter::ID = 0;
};
char BasicBlockPassPrinter::ID = 0;
-inline void addPass(PassManager &PM, Pass *P) {
+inline void addPass(PassManagerBase &PM, Pass *P) {
// Add the pass to the pass manager...
PM.add(P);
// Add the pass to the pass manager...
PM.add(P);
/// duplicates llvm-gcc behaviour.
///
/// OptLevel - Optimization Level
/// duplicates llvm-gcc behaviour.
///
/// OptLevel - Optimization Level
-void AddOptimizationPasses(PassManager &MPM, FunctionPassManager &FPM,
+void AddOptimizationPasses(PassManagerBase &MPM, PassManagerBase &FPM,
unsigned OptLevel) {
createStandardFunctionPasses(&FPM, OptLevel);
unsigned OptLevel) {
createStandardFunctionPasses(&FPM, OptLevel);
-void AddStandardCompilePasses(PassManager &PM) {
+void AddStandardCompilePasses(PassManagerBase &PM) {
PM.add(createVerifierPass()); // Verify that input is correct
addPass(PM, createLowerSetJmpPass()); // Lower llvm.setjmp/.longjmp
PM.add(createVerifierPass()); // Verify that input is correct
addPass(PM, createLowerSetJmpPass()); // Lower llvm.setjmp/.longjmp
-void AddStandardLinkPasses(PassManager &PM) {
+void AddStandardLinkPasses(PassManagerBase &PM) {
PM.add(createVerifierPass()); // Verify that input is correct
// If the -strip-debug command line option was specified, do it.
PM.add(createVerifierPass()); // Verify that input is correct
// If the -strip-debug command line option was specified, do it.
- OwningPtr<FunctionPassManager> FPasses;
+ OwningPtr<PassManager> FPasses;
if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
- FPasses.reset(new FunctionPassManager(M.get()));
+ FPasses.reset(new PassManager());
if (TD)
FPasses->add(new TargetData(*TD));
}
if (TD)
FPasses->add(new TargetData(*TD));
}
if (OptLevelO3)
AddOptimizationPasses(Passes, *FPasses, 3);
if (OptLevelO3)
AddOptimizationPasses(Passes, *FPasses, 3);
- if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
- FPasses->doInitialization();
- for (Module::iterator I = M.get()->begin(), E = M.get()->end();
- I != E; ++I)
- FPasses->run(*I);
- }
+ if (OptLevelO1 || OptLevelO2 || OptLevelO3)
+ FPasses->run(*M.get());
// Check that the module is well formed on completion of optimization
if (!NoVerify && !VerifyEach)
// Check that the module is well formed on completion of optimization
if (!NoVerify && !VerifyEach)