# HG changeset patch # User Roland Schatz # Date 1366732162 -7200 # Node ID 7409a84b60013fd59fc1b6c9d20375a5b6021e2b # Parent 4acb1c45040fd865161e25c21bc2b6c4180158ba Move more phases into tiers. diff -r 4acb1c45040f -r 7409a84b6001 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 Tue Apr 23 17:49:15 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Tue Apr 23 17:49:22 2013 +0200 @@ -38,7 +38,6 @@ import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.cfg.*; import com.oracle.graal.nodes.spi.*; -import com.oracle.graal.nodes.spi.Lowerable.*; import com.oracle.graal.nodes.util.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.PhasePlan.PhasePosition; @@ -140,27 +139,14 @@ Suites.DEFAULT.getHighTier().apply(graph, highTierContext); - new LoweringPhase(LoweringType.BEFORE_GUARDS).apply(graph, highTierContext); - MidTierContext midTierContext = new MidTierContext(runtime, assumptions, replacements, target); Suites.DEFAULT.getMidTier().apply(graph, midTierContext); - // Add safepoints to loops - new SafepointInsertionPhase().apply(graph); - - new GuardLoweringPhase().apply(graph, midTierContext); - plan.runPhases(PhasePosition.LOW_LEVEL, graph); LowTierContext lowTierContext = new LowTierContext(runtime, assumptions, replacements, target); Suites.DEFAULT.getLowTier().apply(graph, lowTierContext); - new LoweringPhase(LoweringType.AFTER_GUARDS).apply(graph, lowTierContext); - - new FrameStateAssignmentPhase().apply(graph); - - new DeadCodeEliminationPhase().apply(graph); - final SchedulePhase schedule = new SchedulePhase(); schedule.apply(graph); Debug.dump(schedule, "final schedule"); diff -r 4acb1c45040f -r 7409a84b6001 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 Apr 23 17:49:15 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java Tue Apr 23 17:49:22 2013 +0200 @@ -23,6 +23,7 @@ package com.oracle.graal.compiler.phases; import com.oracle.graal.loop.phases.*; +import com.oracle.graal.nodes.spi.Lowerable.LoweringType; import com.oracle.graal.phases.*; import com.oracle.graal.phases.common.*; import com.oracle.graal.phases.tiers.*; @@ -68,6 +69,8 @@ if (GraalOptions.OptCanonicalizer) { addPhase(new CanonicalizerPhase()); } + + addPhase(new LoweringPhase(LoweringType.BEFORE_GUARDS)); } } diff -r 4acb1c45040f -r 7409a84b6001 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java Tue Apr 23 17:49:15 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java Tue Apr 23 17:49:22 2013 +0200 @@ -22,11 +22,18 @@ */ package com.oracle.graal.compiler.phases; +import com.oracle.graal.nodes.spi.Lowerable.LoweringType; import com.oracle.graal.phases.*; +import com.oracle.graal.phases.common.*; import com.oracle.graal.phases.tiers.*; public class LowTier extends PhaseSuite { public LowTier() { + addPhase(new LoweringPhase(LoweringType.AFTER_GUARDS)); + + addPhase(new FrameStateAssignmentPhase()); + + addPhase(new DeadCodeEliminationPhase()); } } diff -r 4acb1c45040f -r 7409a84b6001 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/MidTier.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/MidTier.java Tue Apr 23 17:49:15 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/MidTier.java Tue Apr 23 17:49:22 2013 +0200 @@ -65,5 +65,10 @@ if (GraalOptions.OptCanonicalizer) { addPhase(new CanonicalizerPhase()); } + + // Add safepoints to loops + addPhase(new SafepointInsertionPhase()); + + addPhase(new GuardLoweringPhase()); } }