diff options
| author | bors <bors@rust-lang.org> | 2013-06-01 06:13:40 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-06-01 06:13:40 -0700 |
| commit | b8391ccea0b2e2718a4d4ef999e9f03583c7ddea (patch) | |
| tree | 59e073293de4f75a5c0c44a92008a8008e40f32f | |
| parent | 2bf053c0a349a5968820780314c942ef4555b47e (diff) | |
| parent | 6e075b6bb6c15e8fa358e08670687e3c94f4565b (diff) | |
| download | rust-b8391ccea0b2e2718a4d4ef999e9f03583c7ddea.tar.gz rust-b8391ccea0b2e2718a4d4ef999e9f03583c7ddea.zip | |
auto merge of #6881 : Aatch/rust/new-passes-2, r=thestinger
This is a better pipeline, both faster-running and produces faster code. For some reason the `mergefunc` pass screws over resolve. I have no idea why though.
| -rw-r--r-- | src/librustc/back/passes.rs | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/librustc/back/passes.rs b/src/librustc/back/passes.rs index 076d1dcf37b..315bb5d6317 100644 --- a/src/librustc/back/passes.rs +++ b/src/librustc/back/passes.rs @@ -70,9 +70,12 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"targetlibinfo"); - passes.push(~"tbaa"); + passes.push(~"scev-aa"); passes.push(~"basicaa"); + passes.push(~"instcombine"); + passes.push(~"simplifycfg"); + passes.push(~"scalarrepl-ssa"); passes.push(~"early-cse"); passes.push(~"globalopt"); @@ -83,10 +86,6 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"prune-eh"); - if level == Aggressive { - passes.push(~"mergefunc"); - } - passes.push(~"inline"); passes.push(~"functionattrs"); @@ -95,6 +94,7 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"argpromotion"); } + passes.push(~"scalarrepl-ssa"); passes.push(~"early-cse"); passes.push(~"simplify-libcalls"); passes.push(~"jump-threading"); @@ -134,11 +134,6 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"correlated-propagation"); passes.push(~"dse"); - passes.push(~"instcombine"); - passes.push(~"early-cse"); - - passes.push(~"loop-unroll"); - passes.push(~"adce"); passes.push(~"simplifycfg"); passes.push(~"instsimplify"); |
