# HG changeset patch # User Josef Eisl # Date 1423502596 -3600 # Node ID 6340d851894b7e6699d9c303f52110ae96552ae9 # Parent 6e495e8cc407ca5869314fcbf731f08717ab8e51 Don't make LowLevelPhase generic but only the apply() method. diff -r 6e495e8cc407 -r 6340d851894b 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 Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Mon Feb 09 18:23:16 2015 +0100 @@ -351,13 +351,13 @@ public static > LIRGenerationResult emitLowLevel(TargetDescription target, List codeEmittingOrder, List linearScanOrder, LIRGenerationResult lirGenRes, LIRGeneratorTool lirGen, LowLevelCompilerConfiguration config) { LowLevelHighTierContext highTierContext = new LowLevelHighTierContext(lirGen); - config. createHighTier().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, highTierContext); + config.createHighTier().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, highTierContext); LowLevelMidTierContext midTierContext = new LowLevelMidTierContext(); - config. createMidTier().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, midTierContext); + config.createMidTier().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, midTierContext); LowLevelLowTierContext lowTierContext = new LowLevelLowTierContext(); - config. createLowTier().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, lowTierContext); + config.createLowTier().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, lowTierContext); return lirGenRes; } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ControlFlowOptimizer.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ControlFlowOptimizer.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ControlFlowOptimizer.java Mon Feb 09 18:23:16 2015 +0100 @@ -35,13 +35,13 @@ /** * This class performs basic optimizations on the control flow graph after LIR generation. */ -public final class ControlFlowOptimizer> extends LowLevelLowTierPhase { +public final class ControlFlowOptimizer extends LowLevelLowTierPhase { /** * Performs control flow optimizations on the given LIR graph. */ @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { LIR lir = lirGenRes.getLIR(); new Optimizer(lir).deleteEmptyBlocks(codeEmittingOrder); } diff -r 6e495e8cc407 -r 6340d851894b 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 Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java Mon Feb 09 18:23:16 2015 +0100 @@ -48,10 +48,10 @@ * 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, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { LIR ir = lirGenRes.getLIR(); Optimizer optimizer = new Optimizer(ir); diff -r 6e495e8cc407 -r 6340d851894b 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 Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java Mon Feb 09 18:23:16 2015 +0100 @@ -31,10 +31,10 @@ 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, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { LIR ir = lirGenRes.getLIR(); List> blocks = ir.codeEmittingOrder(); NullCheckOptimizer.foldNullChecks(ir, blocks, target.implicitNullCheckLimit); diff -r 6e495e8cc407 -r 6340d851894b 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 Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java Mon Feb 09 18:23:16 2015 +0100 @@ -41,10 +41,10 @@ /** * 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, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { Optimization redundantMoveElimination = new Optimization(); redundantMoveElimination.doOptimize(lirGenRes.getLIR(), lirGenRes.getFrameMap()); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanPhase.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanPhase.java Mon Feb 09 18:23:16 2015 +0100 @@ -29,10 +29,10 @@ import com.oracle.graal.lir.gen.*; import com.oracle.graal.lir.phases.*; -public final class LinearScanPhase> extends LowLevelMidTierPhase { +public final class LinearScanPhase extends LowLevelMidTierPhase { @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { new LinearScan(target, lirGenRes).allocate(); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LocationMarker.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LocationMarker.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LocationMarker.java Mon Feb 09 18:23:16 2015 +0100 @@ -42,7 +42,7 @@ * Mark all live references for a frame state. The frame state use this information to build the OOP * maps. */ -public final class LocationMarker> extends LowLevelMidTierPhase { +public final class LocationMarker extends LowLevelMidTierPhase { public static class Options { // @formatter:off @@ -52,7 +52,7 @@ } @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { new Marker(lirGenRes.getLIR(), lirGenRes.getFrameMap()).build(); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java Mon Feb 09 18:23:16 2015 +0100 @@ -47,7 +47,7 @@ * a constant, which is potentially scheduled into a block with high probability, with one or more * definitions in blocks with a lower probability. */ -public final class ConstantLoadOptimization> extends LowLevelHighTierPhase { +public final class ConstantLoadOptimization extends LowLevelHighTierPhase { public static class Options { // @formatter:off @@ -57,7 +57,7 @@ } @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen) { new Optimization(lirGenRes.getLIR(), lirGen).apply(); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/DefaultLowLevelCompilerConfiguration.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/DefaultLowLevelCompilerConfiguration.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/DefaultLowLevelCompilerConfiguration.java Mon Feb 09 18:23:16 2015 +0100 @@ -22,7 +22,6 @@ */ package com.oracle.graal.lir.phases; -import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.alloc.lsra.*; import com.oracle.graal.lir.constopt.*; @@ -33,35 +32,35 @@ public class DefaultLowLevelCompilerConfiguration implements LowLevelCompilerConfiguration { - public > LowLevelPhaseSuite createHighTier() { - LowLevelPhaseSuite suite = new LowLevelPhaseSuite<>(LowLevelHighTierContext.class); + public LowLevelPhaseSuite createHighTier() { + LowLevelPhaseSuite suite = new LowLevelPhaseSuite<>(LowLevelHighTierContext.class); if (ConstantLoadOptimization.Options.ConstantLoadOptimization.getValue()) { - suite.appendPhase(new ConstantLoadOptimization()); + suite.appendPhase(new ConstantLoadOptimization()); } return suite; } - public > LowLevelPhaseSuite createMidTier() { - LowLevelPhaseSuite suite = new LowLevelPhaseSuite<>(LowLevelMidTierContext.class); - suite.appendPhase(new LinearScanPhase()); + public LowLevelPhaseSuite createMidTier() { + LowLevelPhaseSuite suite = new LowLevelPhaseSuite<>(LowLevelMidTierContext.class); + suite.appendPhase(new LinearScanPhase()); // build frame map if (LSStackSlotAllocator.Options.LSStackSlotAllocation.getValue()) { - suite.appendPhase(new LSStackSlotAllocator()); + suite.appendPhase(new LSStackSlotAllocator()); } else { - suite.appendPhase(new SimpleStackSlotAllocator()); + suite.appendPhase(new SimpleStackSlotAllocator()); } // currently we mark locations only if we do register allocation - suite.appendPhase(new LocationMarker()); + suite.appendPhase(new LocationMarker()); return suite; } - public > LowLevelPhaseSuite createLowTier() { - LowLevelPhaseSuite suite = new LowLevelPhaseSuite<>(LowLevelLowTierContext.class); - suite.appendPhase(new EdgeMoveOptimizer()); - suite.appendPhase(new ControlFlowOptimizer()); - suite.appendPhase(new RedundantMoveElimination()); - suite.appendPhase(new NullCheckOptimizer()); + public LowLevelPhaseSuite createLowTier() { + LowLevelPhaseSuite suite = new LowLevelPhaseSuite<>(LowLevelLowTierContext.class); + suite.appendPhase(new EdgeMoveOptimizer()); + suite.appendPhase(new ControlFlowOptimizer()); + suite.appendPhase(new RedundantMoveElimination()); + suite.appendPhase(new NullCheckOptimizer()); return suite; } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelCompilerConfiguration.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelCompilerConfiguration.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelCompilerConfiguration.java Mon Feb 09 18:23:16 2015 +0100 @@ -22,16 +22,15 @@ */ package com.oracle.graal.lir.phases; -import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.lir.phases.LowLevelHighTierPhase.LowLevelHighTierContext; import com.oracle.graal.lir.phases.LowLevelLowTierPhase.LowLevelLowTierContext; import com.oracle.graal.lir.phases.LowLevelMidTierPhase.LowLevelMidTierContext; public interface LowLevelCompilerConfiguration { - > LowLevelPhaseSuite createHighTier(); + LowLevelPhaseSuite createHighTier(); - > LowLevelPhaseSuite createMidTier(); + LowLevelPhaseSuite createMidTier(); - > LowLevelPhaseSuite createLowTier(); + LowLevelPhaseSuite createLowTier(); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelHighTierPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelHighTierPhase.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelHighTierPhase.java Mon Feb 09 18:23:16 2015 +0100 @@ -28,7 +28,7 @@ import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.lir.gen.*; -public abstract class LowLevelHighTierPhase> extends LowLevelPhase { +public abstract class LowLevelHighTierPhase extends LowLevelPhase { public static final class LowLevelHighTierContext { private final LIRGeneratorTool lirGen; @@ -40,10 +40,10 @@ } @Override - protected final void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LowLevelHighTierContext context) { + protected final > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LowLevelHighTierContext context) { run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context.lirGen); } - protected abstract void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen); + protected abstract > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen); } diff -r 6e495e8cc407 -r 6340d851894b 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 Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelLowTierPhase.java Mon Feb 09 18:23:16 2015 +0100 @@ -28,16 +28,16 @@ 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 LowLevelLowTierContext { } @Override - protected final void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LowLevelLowTierContext context) { + protected final > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LowLevelLowTierContext context) { run(target, lirGenRes, codeEmittingOrder, linearScanOrder); } - protected abstract void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder); + protected abstract > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelMidTierPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelMidTierPhase.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelMidTierPhase.java Mon Feb 09 18:23:16 2015 +0100 @@ -28,16 +28,16 @@ import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.lir.gen.*; -public abstract class LowLevelMidTierPhase> extends LowLevelPhase { +public abstract class LowLevelMidTierPhase extends LowLevelPhase { public static final class LowLevelMidTierContext { } @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LowLevelMidTierContext context) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LowLevelMidTierContext context) { run(target, lirGenRes, codeEmittingOrder, linearScanOrder); } - protected abstract void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder); + protected abstract > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelPhase.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelPhase.java Mon Feb 09 18:23:16 2015 +0100 @@ -38,7 +38,7 @@ * Base class for all {@link LIR low-level} phases. Subclasses should be stateless. There will be * one global instance for each phase that is shared for all compilations. */ -public abstract class LowLevelPhase> { +public abstract class LowLevelPhase { private static final int PHASE_DUMP_LEVEL = 2; @@ -73,11 +73,11 @@ memUseTracker = Debug.memUseTracker("LowLevelPhaseMemUse_%s", getClass()); } - public final void apply(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context) { + public final > void apply(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context) { apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, true); } - public final void apply(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context, boolean dumpLIR) { + public final > void apply(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context, boolean dumpLIR) { try (TimerCloseable a = timer.start(); Scope s = Debug.scope(getName(), this); Closeable c = memUseTracker.start()) { run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context); if (dumpLIR && Debug.isDumpEnabled(PHASE_DUMP_LEVEL)) { @@ -88,7 +88,7 @@ } } - protected abstract void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context); + protected abstract > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context); protected CharSequence createName() { String className = LowLevelPhase.this.getClass().getName(); diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelPhaseSuite.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelPhaseSuite.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelPhaseSuite.java Mon Feb 09 18:23:16 2015 +0100 @@ -28,8 +28,8 @@ import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.lir.gen.*; -public class LowLevelPhaseSuite> extends LowLevelPhase { - private final List> phases; +public class LowLevelPhaseSuite extends LowLevelPhase { + private final List> phases; public LowLevelPhaseSuite(Class contextClass) { super(getNameFromContext(contextClass)); @@ -49,19 +49,19 @@ /** * Add a new phase at the beginning of this suite. */ - public final void prependPhase(LowLevelPhase phase) { + public final void prependPhase(LowLevelPhase phase) { phases.add(0, phase); } /** * Add a new phase at the end of this suite. */ - public final void appendPhase(LowLevelPhase phase) { + public final void appendPhase(LowLevelPhase phase) { phases.add(phase); } - public final ListIterator> findPhase(Class> phaseClass) { - ListIterator> it = phases.listIterator(); + public final ListIterator> findPhase(Class> phaseClass) { + ListIterator> it = phases.listIterator(); if (findNextPhase(it, phaseClass)) { return it; } else { @@ -69,9 +69,9 @@ } } - public static > boolean findNextPhase(ListIterator> it, Class> phaseClass) { + public static boolean findNextPhase(ListIterator> it, Class> phaseClass) { while (it.hasNext()) { - LowLevelPhase phase = it.next(); + LowLevelPhase phase = it.next(); if (phaseClass.isInstance(phase)) { return true; } @@ -80,8 +80,8 @@ } @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context) { - for (LowLevelPhase phase : phases) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, C context) { + for (LowLevelPhase phase : phases) { phase.apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context); } } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/LSStackSlotAllocator.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/LSStackSlotAllocator.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/LSStackSlotAllocator.java Mon Feb 09 18:23:16 2015 +0100 @@ -51,7 +51,7 @@ * {@link OperandFlag#UNINITIALIZED}. Otherwise the stack slot might be reused and its content * destroyed. */ -public final class LSStackSlotAllocator> extends LowLevelMidTierPhase implements StackSlotAllocator { +public final class LSStackSlotAllocator extends LowLevelMidTierPhase implements StackSlotAllocator { public static class Options { // @formatter:off @@ -68,7 +68,7 @@ private static final DebugTimer AssignSlotsTimer = Debug.timer("LSStackSlotAllocator[AssignSlots]"); @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { lirGenRes.buildFrameMap(this); } diff -r 6e495e8cc407 -r 6340d851894b graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/SimpleStackSlotAllocator.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/SimpleStackSlotAllocator.java Mon Feb 09 15:24:15 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/SimpleStackSlotAllocator.java Mon Feb 09 18:23:16 2015 +0100 @@ -36,10 +36,10 @@ import com.oracle.graal.lir.gen.*; import com.oracle.graal.lir.phases.*; -public class SimpleStackSlotAllocator> extends LowLevelMidTierPhase implements StackSlotAllocator { +public class SimpleStackSlotAllocator extends LowLevelMidTierPhase implements StackSlotAllocator { @Override - protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder) { lirGenRes.buildFrameMap(this); }