Mercurial > hg > truffle
comparison graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java @ 9001:94583d9eead8
HighTier phase suite.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Thu, 11 Apr 2013 12:17:17 +0200 |
parents | 6c4ac1a8cd20 |
children | 6d376d09880b |
comparison
equal
deleted
inserted
replaced
9000:c32173f91d0e | 9001:94583d9eead8 |
---|---|
29 import com.oracle.graal.alloc.*; | 29 import com.oracle.graal.alloc.*; |
30 import com.oracle.graal.api.code.*; | 30 import com.oracle.graal.api.code.*; |
31 import com.oracle.graal.api.meta.*; | 31 import com.oracle.graal.api.meta.*; |
32 import com.oracle.graal.compiler.alloc.*; | 32 import com.oracle.graal.compiler.alloc.*; |
33 import com.oracle.graal.compiler.gen.*; | 33 import com.oracle.graal.compiler.gen.*; |
34 import com.oracle.graal.compiler.phases.*; | |
34 import com.oracle.graal.compiler.target.*; | 35 import com.oracle.graal.compiler.target.*; |
35 import com.oracle.graal.debug.*; | 36 import com.oracle.graal.debug.*; |
36 import com.oracle.graal.lir.*; | 37 import com.oracle.graal.lir.*; |
37 import com.oracle.graal.lir.asm.*; | 38 import com.oracle.graal.lir.asm.*; |
38 import com.oracle.graal.loop.phases.*; | 39 import com.oracle.graal.loop.phases.*; |
41 import com.oracle.graal.nodes.spi.*; | 42 import com.oracle.graal.nodes.spi.*; |
42 import com.oracle.graal.phases.*; | 43 import com.oracle.graal.phases.*; |
43 import com.oracle.graal.phases.PhasePlan.PhasePosition; | 44 import com.oracle.graal.phases.PhasePlan.PhasePosition; |
44 import com.oracle.graal.phases.common.*; | 45 import com.oracle.graal.phases.common.*; |
45 import com.oracle.graal.phases.schedule.*; | 46 import com.oracle.graal.phases.schedule.*; |
47 import com.oracle.graal.phases.tiers.*; | |
46 import com.oracle.graal.virtual.phases.ea.*; | 48 import com.oracle.graal.virtual.phases.ea.*; |
47 | 49 |
48 public class GraalCompiler { | 50 public class GraalCompiler { |
49 | 51 |
50 public static CompilationResult compileMethod(final GraalCodeCacheProvider runtime, final Replacements replacements, final Backend backend, final TargetDescription target, | 52 public static CompilationResult compileMethod(final GraalCodeCacheProvider runtime, final Replacements replacements, final Backend backend, final TargetDescription target, |
153 | 155 |
154 if (GraalOptions.PartialEscapeAnalysis && !plan.isPhaseDisabled(PartialEscapeAnalysisPhase.class)) { | 156 if (GraalOptions.PartialEscapeAnalysis && !plan.isPhaseDisabled(PartialEscapeAnalysisPhase.class)) { |
155 new PartialEscapeAnalysisPhase(runtime, assumptions, true, GraalOptions.OptEarlyReadElimination).apply(graph); | 157 new PartialEscapeAnalysisPhase(runtime, assumptions, true, GraalOptions.OptEarlyReadElimination).apply(graph); |
156 } | 158 } |
157 | 159 |
158 if (GraalOptions.OptConvertDeoptsToGuards) { | 160 HighTierContext highTierContext = new HighTierContext(runtime, assumptions); |
159 new ConvertDeoptimizeToGuardPhase().apply(graph); | 161 Suites.HIGH_TIER.apply(graph, highTierContext); |
160 } | |
161 | |
162 new LockEliminationPhase().apply(graph); | |
163 | |
164 if (GraalOptions.OptLoopTransform) { | |
165 new LoopTransformHighPhase().apply(graph); | |
166 new LoopTransformLowPhase().apply(graph); | |
167 } | |
168 new RemoveValueProxyPhase().apply(graph); | |
169 | |
170 if (GraalOptions.CullFrameStates) { | |
171 new CullFrameStatesPhase().apply(graph); | |
172 } | |
173 | 162 |
174 if (GraalOptions.OptCanonicalizer) { | 163 if (GraalOptions.OptCanonicalizer) { |
175 new CanonicalizerPhase(runtime, assumptions).apply(graph); | 164 new CanonicalizerPhase(runtime, assumptions).apply(graph); |
176 } | 165 } |
177 | 166 |