Mercurial > hg > truffle
changeset 19544:c99fb69e93c7
Perform deoptimize to guard conversion for fast partial evaluation.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sun, 22 Feb 2015 23:54:35 +0100 |
parents | 353669a84287 |
children | 10a0f4aef97c |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java |
diffstat | 2 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java Sun Feb 22 23:44:37 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java Sun Feb 22 23:54:35 2015 +0100 @@ -100,6 +100,10 @@ couldSet = true; ifNodeUsages.setTrueSuccessorProbability(probabilityToSet); } + + if (!couldSet && node.usages().filter(FixedGuardNode.class).isNotEmpty()) { + couldSet = true; + } } } }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Sun Feb 22 23:44:37 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Sun Feb 22 23:54:35 2015 +0100 @@ -253,6 +253,9 @@ new GraphBuilderPhase.Instance(providers.getMetaAccess(), providers.getStampProvider(), this.snippetReflection, providers.getConstantReflection(), newConfig, TruffleCompilerImpl.Optimizations).apply(graph); Debug.dump(graph, "After FastPE"); + // Perform deoptimize to guard conversion. + new ConvertDeoptimizeToGuardPhase().apply(graph, tierContext); + for (MethodCallTargetNode methodCallTargetNode : graph.getNodes(MethodCallTargetNode.TYPE)) { Class<? extends FixedWithNextNode> macroSubstitution = providers.getReplacements().getMacroSubstitution(methodCallTargetNode.targetMethod()); if (macroSubstitution != null) {