comparison graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelMidTierPhase.java @ 19219:edd93c34d015

LowLevelPhase: pass codeEmittingOrder and linearScanOrder to apply().
author Josef Eisl <josef.eisl@jku.at>
date Mon, 09 Feb 2015 11:23:13 +0100
parents de456294b59a
children 9c47b23fb0a2
comparison
equal deleted inserted replaced
19218:58f59bada2c1 19219:edd93c34d015
26 26
27 import com.oracle.graal.api.code.*; 27 import com.oracle.graal.api.code.*;
28 import com.oracle.graal.compiler.common.cfg.*; 28 import com.oracle.graal.compiler.common.cfg.*;
29 import com.oracle.graal.lir.gen.*; 29 import com.oracle.graal.lir.gen.*;
30 30
31 public abstract class LowLevelMidTierPhase<B extends AbstractBlock<B>> extends LowLevelPhase<LowLevelMidTierPhase.Context<B>> { 31 public abstract class LowLevelMidTierPhase<B extends AbstractBlock<B>> extends LowLevelPhase<LowLevelMidTierPhase.Context, B> {
32 32
33 public static final class Context<B extends AbstractBlock<B>> { 33 public static final class Context {
34 final List<B> codeEmittingOrder;
35 final List<B> linearScanOrder;
36
37 public Context(List<B> codeEmittingOrder, List<B> linearScanOrder) {
38 this.codeEmittingOrder = codeEmittingOrder;
39 this.linearScanOrder = linearScanOrder;
40 }
41 } 34 }
42 35
43 @Override 36 @Override
44 protected void run(TargetDescription target, LIRGenerationResult lirGenRes, Context<B> context) { 37 protected void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, Context context) {
45 run(target, lirGenRes, context.codeEmittingOrder, context.linearScanOrder); 38 run(target, lirGenRes, codeEmittingOrder, linearScanOrder);
46 } 39 }
47 40
48 protected abstract void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder); 41 protected abstract void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder);
49 42
50 } 43 }