# HG changeset patch # User Josef Eisl # Date 1423248188 -3600 # Node ID 81358265e0e0c8cfa6342d0adb8ac98bb8e874e5 # Parent 06a0ca03236fda4996ecaef16bcbec90c02907ce Make LowLevelLowTierPhase generic. diff -r 06a0ca03236f -r 81358265e0e0 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 Feb 06 19:36:07 2015 +0100 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Fri Feb 06 19:43:08 2015 +0100 @@ -387,13 +387,13 @@ } try (Scope s = Debug.scope("LowTier")) { - LowLevelLowTierPhase.Context c = new LowLevelLowTierPhase.Context(); - new EdgeMoveOptimizer().apply(target, lirGenRes, c); + LowLevelLowTierPhase.Context c = new LowLevelLowTierPhase.Context<>(); + new EdgeMoveOptimizer().apply(target, lirGenRes, c); ControlFlowOptimizer.optimize(lir, codeEmittingOrder); if (lirGen.canEliminateRedundantMoves()) { - new RedundantMoveElimination().apply(target, lirGenRes, c); + new RedundantMoveElimination().apply(target, lirGenRes, c); } - new NullCheckOptimizer().apply(target, lirGenRes, c); + new NullCheckOptimizer().apply(target, lirGenRes, c); Debug.dump(lir, "After control flow optimization"); } diff -r 06a0ca03236f -r 81358265e0e0 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java Fri Feb 06 19:36:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java Fri Feb 06 19:43:08 2015 +0100 @@ -48,7 +48,7 @@ * Because this optimization works best when a block contains only a few moves, it has a huge impact * on the number of blocks that are totally empty. */ -public final class EdgeMoveOptimizer extends LowLevelLowTierPhase { +public final class EdgeMoveOptimizer> extends LowLevelLowTierPhase { @Override protected void run(TargetDescription target, LIRGenerationResult lirGenRes) { diff -r 06a0ca03236f -r 81358265e0e0 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java Fri Feb 06 19:36:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java Fri Feb 06 19:43:08 2015 +0100 @@ -31,7 +31,7 @@ import com.oracle.graal.lir.gen.*; import com.oracle.graal.lir.phases.*; -public final class NullCheckOptimizer extends LowLevelLowTierPhase { +public final class NullCheckOptimizer> extends LowLevelLowTierPhase { @Override protected void run(TargetDescription target, LIRGenerationResult lirGenRes) { diff -r 06a0ca03236f -r 81358265e0e0 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java Fri Feb 06 19:36:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java Fri Feb 06 19:43:08 2015 +0100 @@ -41,7 +41,7 @@ /** * Removes move instructions, where the destination value is already in place. */ -public final class RedundantMoveElimination extends LowLevelLowTierPhase { +public final class RedundantMoveElimination> extends LowLevelLowTierPhase { @Override protected void run(TargetDescription target, LIRGenerationResult lirGenRes) { diff -r 06a0ca03236f -r 81358265e0e0 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelLowTierPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelLowTierPhase.java Fri Feb 06 19:36:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelLowTierPhase.java Fri Feb 06 19:43:08 2015 +0100 @@ -23,15 +23,16 @@ package com.oracle.graal.lir.phases; import com.oracle.graal.api.code.*; +import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.lir.gen.*; -public abstract class LowLevelLowTierPhase extends LowLevelPhase { +public abstract class LowLevelLowTierPhase> extends LowLevelPhase> { - public static final class Context { + public static final class Context> { } @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, Context context) { + protected void run(TargetDescription target, LIRGenerationResult lirGenRes, Context context) { run(target, lirGenRes); }