# HG changeset patch # User Andreas Woess # Date 1375714800 -7200 # Node ID bcfccdbae99aa4606cf8e7d3d8ad1b11cd949ce1 # Parent 810d0f574d062a666ad2a2693b8a5f0f2792ba4b TruffleCache refactoring. diff -r 810d0f574d06 -r bcfccdbae99a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java --- 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()); diff -r 810d0f574d06 -r bcfccdbae99a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java --- 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) {