--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy.java 2017-03-20 17:39:55.000000000 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy.java 2017-03-20 17:39:55.000000000 -0700 @@ -46,7 +46,7 @@ public final TraceAllocationPhase getAllocator() { if (allocator == null) { - allocator = initAllocator(target, lirGenRes, spillMoveFactory, registerAllocationConfig, cachedStackSlots, resultTraces, neverSpillConstants, strategies); + allocator = initAllocator(target, lirGenRes, spillMoveFactory, registerAllocationConfig, cachedStackSlots, resultTraces, neverSpillConstants, livenessInfo, strategies); } return allocator; } @@ -71,7 +71,7 @@ @SuppressWarnings("hiding") protected abstract TraceAllocationPhase initAllocator(TargetDescription target, LIRGenerationResult lirGenRes, MoveFactory spillMoveFactory, RegisterAllocationConfig registerAllocationConfig, AllocatableValue[] cachedStackSlots, TraceBuilderResult resultTraces, boolean neverSpillConstant, - ArrayList strategies); + GlobalLivenessInfo livenessInfo, ArrayList strategies); } private final TargetDescription target; @@ -81,11 +81,12 @@ private final AllocatableValue[] cachedStackSlots; private final TraceBuilderResult resultTraces; private final boolean neverSpillConstants; + private final GlobalLivenessInfo livenessInfo; private final ArrayList strategies; public TraceRegisterAllocationPolicy(TargetDescription target, LIRGenerationResult lirGenRes, MoveFactory spillMoveFactory, RegisterAllocationConfig registerAllocationConfig, - AllocatableValue[] cachedStackSlots, TraceBuilderResult resultTraces, boolean neverSpillConstant) { + AllocatableValue[] cachedStackSlots, TraceBuilderResult resultTraces, boolean neverSpillConstant, GlobalLivenessInfo livenessInfo) { this.target = target; this.lirGenRes = lirGenRes; this.spillMoveFactory = spillMoveFactory; @@ -93,6 +94,7 @@ this.cachedStackSlots = cachedStackSlots; this.resultTraces = resultTraces; this.neverSpillConstants = neverSpillConstant; + this.livenessInfo = livenessInfo; this.strategies = new ArrayList<>(3); }