[PassManagerBuilder] Add a few more scalar optimization passes

Description

[PassManagerBuilder] Add a few more scalar optimization passes

This patch does two things:

  1. mem2reg is now run immediately after globalopt. Now that globalopt can localize variables more aggressively, it makes sense to lower them to SSA form earlier rather than later so they can benefit from the full set of optimization passes.
  2. More scalar optimizations are run after the loop optimizations in LTO mode. The loop optimizations (especially indvars) can clean up scalar code sufficiently to make it worthwhile running more scalar passes. I've particularly added SCCP here as it isn't run anywhere else in the LTO pass pipeline.

Mem2reg is super cheap and shouldn't affect compilation time at all. The
rest of the added passes are in the LTO pipeline only so doesn't affect
the vast majority of compilations, just the link step.

Details

Committed
jamesmDec 15 2015, 1:24 AM
Parents
rL255633: Mark ThreadPool unittests as unsupported on PowerPC64
Branches
Unknown
Tags
Unknown