[PATCH] D38154: [PassManager] Run global opts after the inliner

Davide Italiano via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 21 14:42:09 PDT 2017


davide added a comment.

I didn't actually notice until now that a bunch of tests are failing (I tested on several codebases, but not in LLVM itself :)
So I'm going to audit all of them and see whether the Xform makes sense.

  ********************
  Testing Time: 44.51s
  ********************
  Failing Tests (17):
      LLVM :: CodeGen/AMDGPU/early-inline.ll
      LLVM :: Other/pass-pipelines.ll
      LLVM :: ThinLTO/X86/diagnostic-handler-remarks-with-hotness.ll
      LLVM :: ThinLTO/X86/diagnostic-handler-remarks.ll
      LLVM :: Transforms/Coroutines/ArgAddr.ll
      LLVM :: Transforms/Coroutines/coro-split-01.ll
      LLVM :: Transforms/Coroutines/ex0.ll
      LLVM :: Transforms/Coroutines/ex1.ll
      LLVM :: Transforms/Coroutines/ex2.ll
      LLVM :: Transforms/Coroutines/ex3.ll
      LLVM :: Transforms/Coroutines/ex4.ll
      LLVM :: Transforms/Coroutines/ex5.ll
      LLVM :: Transforms/Coroutines/no-suspend.ll
      LLVM :: Transforms/Coroutines/phi-coro-end.ll
      LLVM :: Transforms/Inline/devirtualize.ll
      LLVM :: Transforms/Inline/inline_minisize.ll
      LLVM :: Transforms/PhaseOrdering/globalaa-retained.ll



================
Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:513
+    PM.add(createGlobalOptimizerPass());
+    PM.add(createGlobalDCEPass());
   }
----------------
efriedma wrote:
> Are you sure this is where you meant to put these passes...?  GlobalOpt and GlobaDCE are module passes, so you're separating the inliner from the function simplification passes.
No, you're right, they should be outside the `if` (actually, that's where I put that in the first place, then wrongly moved).


https://reviews.llvm.org/D38154





More information about the llvm-commits mailing list