# HG changeset patch # User Roland Schatz # Date 1391164538 -3600 # Node ID a02441dcf05f885a38af749a4aa7f4ebacc3ee90 # Parent 72c48280c1d0d250cd26c2d7d907efab4df9ce0f Do control flow optimizations independent of register allocation. diff -r 72c48280c1d0 -r a02441dcf05f graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Fri Jan 31 11:34:56 2014 +0100 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Fri Jan 31 11:35:38 2014 +0100 @@ -276,6 +276,17 @@ } catch (Throwable e) { throw Debug.handle(e); } + + try (Scope s = Debug.scope("ControlFlowOptimizations")) { + EdgeMoveOptimizer.optimize(lir); + ControlFlowOptimizer.optimize(lir); + RedundantMoveElimination.optimize(lir, frameMap, lirGen.getGraph().method()); + NullCheckOptimizer.optimize(lir, target.implicitNullCheckLimit); + + Debug.dump(lir, "After control flow optimization"); + } catch (Throwable e) { + throw Debug.handle(e); + } return lirGen; } diff -r 72c48280c1d0 -r a02441dcf05f graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Fri Jan 31 11:34:56 2014 +0100 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Fri Jan 31 11:35:38 2014 +0100 @@ -1887,16 +1887,7 @@ throw Debug.handle(e); } - try (Scope s = Debug.scope("ControlFlowOptimizations")) { - printLir("After register number assignment", true); - EdgeMoveOptimizer.optimize(ir); - ControlFlowOptimizer.optimize(ir); - RedundantMoveElimination.optimize(ir, frameMap, gen.getGraph().method()); - NullCheckOptimizer.optimize(ir, target.implicitNullCheckLimit); - printLir("After control flow optimization", false); - } catch (Throwable e) { - throw Debug.handle(e); - } + printLir("After register number assignment", true); indent.outdent(); }