Mercurial > hg > truffle
changeset 11208:bcfccdbae99a
TruffleCache refactoring.
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Mon, 05 Aug 2013 17:00:00 +0200 |
parents | 810d0f574d06 |
children | a4a5fa1d1947 |
files | graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java |
diffstat | 2 files changed, 13 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Mon Aug 05 16:52:16 2013 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Mon Aug 05 17:00:00 2013 +0200 @@ -177,7 +177,7 @@ // EA frame and clean up. new VerifyFrameDoesNotEscapePhase().apply(graph, false); - new PartialEscapePhase(false, new CanonicalizerPhase(!AOTCompilation.getValue())).apply(graph, new PhaseContext(metaAccessProvider, assumptions, replacements)); + new PartialEscapePhase(false, new CanonicalizerPhase(!AOTCompilation.getValue())).apply(graph, context); new VerifyNoIntrinsicsLeftPhase().apply(graph, false); for (MaterializeFrameNode materializeNode : graph.getNodes(MaterializeFrameNode.class).snapshot()) { materializeNode.replaceAtUsages(materializeNode.getFrame());
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java Mon Aug 05 16:52:16 2013 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java Mon Aug 05 17:00:00 2013 +0200 @@ -148,17 +148,15 @@ } private void optimizeGraph(StructuredGraph newGraph, Assumptions assumptions) { - - ConditionalEliminationPhase eliminate = new ConditionalEliminationPhase(metaAccessProvider); + PhaseContext context = new PhaseContext(metaAccessProvider, assumptions, replacements); + ConditionalEliminationPhase conditionalEliminationPhase = new ConditionalEliminationPhase(metaAccessProvider); ConvertDeoptimizeToGuardPhase convertDeoptimizeToGuardPhase = new ConvertDeoptimizeToGuardPhase(); - - CanonicalizerPhase.Instance canonicalizerPhase = new CanonicalizerPhase.Instance(metaAccessProvider, assumptions, !AOTCompilation.getValue(), null, null); + CanonicalizerPhase canonicalizerPhase = new CanonicalizerPhase(!AOTCompilation.getValue()); + EarlyReadEliminationPhase readEliminationPhase = new EarlyReadEliminationPhase(canonicalizerPhase); - EarlyReadEliminationPhase earlyRead = new EarlyReadEliminationPhase(new CanonicalizerPhase(true)); - PhaseContext context = new PhaseContext(metaAccessProvider, assumptions, replacements); - Integer maxNodes = TruffleCompilerOptions.TruffleOperationCacheMaxNodes.getValue(); + int maxNodes = TruffleCompilerOptions.TruffleOperationCacheMaxNodes.getValue(); - contractGraph(newGraph, eliminate, convertDeoptimizeToGuardPhase, canonicalizerPhase, earlyRead, context); + contractGraph(newGraph, conditionalEliminationPhase, convertDeoptimizeToGuardPhase, canonicalizerPhase, readEliminationPhase, context); while (newGraph.getNodeCount() <= maxNodes) { @@ -171,7 +169,7 @@ break; } - contractGraph(newGraph, eliminate, convertDeoptimizeToGuardPhase, canonicalizerPhase, earlyRead, context); + contractGraph(newGraph, conditionalEliminationPhase, convertDeoptimizeToGuardPhase, canonicalizerPhase, readEliminationPhase, context); } if (newGraph.getNodeCount() > maxNodes && (TruffleCompilerOptions.TraceTruffleCacheDetails.getValue() || TruffleCompilerOptions.TraceTrufflePerformanceWarnings.getValue())) { @@ -179,19 +177,19 @@ } } - private static void contractGraph(StructuredGraph newGraph, ConditionalEliminationPhase eliminate, ConvertDeoptimizeToGuardPhase convertDeoptimizeToGuardPhase, - CanonicalizerPhase.Instance canonicalizerPhase, EarlyReadEliminationPhase earlyRead, PhaseContext context) { + private static void contractGraph(StructuredGraph newGraph, ConditionalEliminationPhase conditionalEliminationPhase, ConvertDeoptimizeToGuardPhase convertDeoptimizeToGuardPhase, + CanonicalizerPhase canonicalizerPhase, EarlyReadEliminationPhase readEliminationPhase, PhaseContext context) { // Canonicalize / constant propagate. - canonicalizerPhase.apply(newGraph); + canonicalizerPhase.apply(newGraph, context); // Early read eliminiation - earlyRead.apply(newGraph, context); + readEliminationPhase.apply(newGraph, context); // Convert deopt to guards. convertDeoptimizeToGuardPhase.apply(newGraph); // Conditional elimination. - eliminate.apply(newGraph); + conditionalEliminationPhase.apply(newGraph); } private void expandGraph(StructuredGraph newGraph, int maxNodes) {