# HG changeset patch # User Lukas Stadler # Date 1433840792 -7200 # Node ID 30b03297ba94a5afd9746bf30da92fe836a29e5c # Parent 82d9b136fe5c6ec673ed2ca0e3fcd977a6b3d40f change phase order (ConvertDeoptimizeToGuard earlier, PEA after loop peeling/unswitching) diff -r 82d9b136fe5c -r 30b03297ba94 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java Tue Jun 09 10:32:54 2015 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java Tue Jun 09 11:06:32 2015 +0200 @@ -67,16 +67,12 @@ appendPhase(new CleanTypeProfileProxyPhase(canonicalizer)); - if (FullUnroll.getValue()) { - appendPhase(new LoopFullUnrollPhase(canonicalizer)); + if (OptConvertDeoptsToGuards.getValue()) { + appendPhase(new ConvertDeoptimizeToGuardPhase()); } - if (PartialEscapeAnalysis.getValue()) { - appendPhase(new PartialEscapePhase(true, canonicalizer)); - } - - if (OptConvertDeoptsToGuards.getValue()) { - appendPhase(new ConvertDeoptimizeToGuardPhase()); + if (FullUnroll.getValue()) { + appendPhase(new LoopFullUnrollPhase(canonicalizer)); } if (OptLoopTransform.getValue()) { @@ -87,12 +83,16 @@ appendPhase(new LoopUnswitchingPhase()); } } - appendPhase(new RemoveValueProxyPhase()); if (OptCanonicalizer.getValue()) { appendPhase(canonicalizer); } + if (PartialEscapeAnalysis.getValue()) { + appendPhase(new PartialEscapePhase(true, canonicalizer)); + } + appendPhase(new RemoveValueProxyPhase()); + appendPhase(new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER)); } }