mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-27 18:57:42 +03:00
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.
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user