From: Patrik Hagglund Date: Wed, 15 Jun 2016 10:32:00 +0000 (+0000) Subject: Use FPasses in opt exactly when it is initialized. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bed36c4198ada058860d516d01f12f8916723827;p=llvm Use FPasses in opt exactly when it is initialized. Previously, there was a discrepancy between the population of function passes in FPasses, and their invocation. Function passes specified on the command line, after an optimizaton level was simply discared. This fix PR27509. Patch by Jesper Antonsson. Differential Review: http://reviews.llvm.org/D20725 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272770 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 6891204ab7d..def3f42f2d3 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -615,7 +615,7 @@ int main(int argc, char **argv) { if (OptLevelO3) AddOptimizationPasses(Passes, *FPasses, TM.get(), 3, 0); - if (OptLevelO1 || OptLevelO2 || OptLevelOs || OptLevelOz || OptLevelO3) { + if (FPasses) { FPasses->doInitialization(); for (Function &F : *M) FPasses->run(F);