make a couple of changes to the standard pass pipeline:
authorChris Lattner <sabre@nondot.org>
Tue, 26 Apr 2011 20:45:33 +0000 (20:45 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 26 Apr 2011 20:45:33 +0000 (20:45 +0000)
commit734d7c2a7e6cc12776d67689d018eb1bd1c4cd72
tree3a56876a405d7ecb1198225d1d736c0630378c1b
parent325eeb1cd7c3247ead1513204bc9cf4b6e883653
make a couple of changes to the standard pass pipeline:
1. Only run the early (in the module pass pipe) instcombine/simplifycfg
   if the "unit at a time" passes they are cleaning up after runs.

2. Move the "clean up after the unroller" pass to the very end of the
   function-level pass pipeline.  Loop unroll uses instsimplify now,
   so it doesn't create a ton of trash.  Moving instcombine later allows
   it to clean up after opportunities are exposed by GVN, DSE, etc.

3. Introduce some phase ordering tests for things that are specifically
   intended to be simplified by the full optimizer as a whole.

This resolves PR2338, and is progress towards PR6627, which will be
generating code that looks similar to test2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130241 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/StandardPasses.h
test/Transforms/PhaseOrdering/basic.ll [new file with mode: 0644]
test/Transforms/ScalarRepl/dg.exp