From c857eb4cbad9fee82d4755acca5e475840c8bfc5 Mon Sep 17 00:00:00 2001 From: James Miller Date: Thu, 30 May 2013 15:20:02 +1200 Subject: [PATCH 1/2] Remove the slow bb-vectorize pass --- src/librustc/back/passes.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/librustc/back/passes.rs b/src/librustc/back/passes.rs index cc9fe57715918..45551fed59838 100644 --- a/src/librustc/back/passes.rs +++ b/src/librustc/back/passes.rs @@ -134,7 +134,6 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"correlated-propagation"); passes.push(~"dse"); - passes.push(~"bb-vectorize"); passes.push(~"instcombine"); passes.push(~"early-cse"); From e78c2ee1eb5dabe4933e340fadb0a3df92732b05 Mon Sep 17 00:00:00 2001 From: James Miller Date: Thu, 30 May 2013 19:27:31 +1200 Subject: [PATCH 2/2] Improve optmization pipeline --- src/librustc/back/passes.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/librustc/back/passes.rs b/src/librustc/back/passes.rs index 45551fed59838..dca327c39a31a 100644 --- a/src/librustc/back/passes.rs +++ b/src/librustc/back/passes.rs @@ -71,9 +71,10 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"targetlibinfo"); passes.push(~"tbaa"); + passes.push(~"scev-aa"); passes.push(~"basicaa"); - passes.push(~"early-cse"); + passes.push(~"simplifycfg"); passes.push(~"globalopt"); passes.push(~"ipsccp"); @@ -83,10 +84,9 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"prune-eh"); - if level == Aggressive { + if level != Less { passes.push(~"mergefunc"); } - passes.push(~"inline"); passes.push(~"functionattrs"); @@ -95,7 +95,11 @@ pub fn create_standard_passes(level:OptLevel) -> ~[~str] { passes.push(~"argpromotion"); } + passes.push(~"sroa"); + passes.push(~"early-cse"); + passes.push(~"constmerge"); + passes.push(~"simplify-libcalls"); passes.push(~"jump-threading"); passes.push(~"correlated-propagation"); @@ -134,11 +138,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");