]> granicus.if.org Git - llvm/commitdiff
Use FPasses in opt exactly when it is initialized.
authorPatrik Hagglund <patrik.h.hagglund@ericsson.com>
Wed, 15 Jun 2016 10:32:00 +0000 (10:32 +0000)
committerPatrik Hagglund <patrik.h.hagglund@ericsson.com>
Wed, 15 Jun 2016 10:32:00 +0000 (10:32 +0000)
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

tools/opt/opt.cpp

index 6891204ab7de1e958a77ce9f3965b0dd17f652a6..def3f42f2d3b9afcd4ba2c6d1bd69314d484e9e9 100644 (file)
@@ -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);