changeset 16494:d8d90184ec66

Merge.
author Doug Simon <doug.simon@oracle.com>
date Fri, 11 Jul 2014 14:21:57 +0200
parents b45bb90c0192 (current diff) 6ce37ad3ea47 (diff)
children 569b90d12edb
files graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java
diffstat 5 files changed, 13 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardPhiNode.java	Fri Jul 11 14:19:21 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardPhiNode.java	Fri Jul 11 14:21:57 2014 +0200
@@ -26,6 +26,9 @@
 import com.oracle.graal.graph.*;
 import com.oracle.graal.nodes.extended.*;
 
+/**
+ * Guard {@link PhiNode}s merge guard dependencies at control flow merges.
+ */
 @NodeInfo(nameTemplate = "GuardPhi({i#values})", allowedUsageTypes = {InputType.Guard})
 public class GuardPhiNode extends PhiNode implements GuardingNode {
 
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryPhiNode.java	Fri Jul 11 14:19:21 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryPhiNode.java	Fri Jul 11 14:21:57 2014 +0200
@@ -28,7 +28,7 @@
 import com.oracle.graal.nodes.extended.*;
 
 /**
- * The {@code PhiNode} represents the merging of dataflow in the memory graph.
+ * Memory {@code PhiNode}s merge memory dependencies at control flow merges.
  */
 @NodeInfo(nameTemplate = "MemoryPhi({i#values}) {p#locationIdentity/s}", allowedUsageTypes = {InputType.Memory})
 public class MemoryPhiNode extends PhiNode implements MemoryNode {
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java	Fri Jul 11 14:19:21 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java	Fri Jul 11 14:21:57 2014 +0200
@@ -27,7 +27,13 @@
 import com.oracle.graal.graph.spi.*;
 import com.oracle.graal.nodes.calc.*;
 
-public abstract class PhiNode extends FloatingNode {
+/**
+ * {@code PhiNode}s represent the merging of edges at a control flow merges ({@link MergeNode} or
+ * {@link LoopBeginNode}). For a {@link MergeNode}, the order of the values corresponds to the order
+ * of the ends. For {@link LoopBeginNode}s, the first value corresponds to the loop's predecessor,
+ * while the rest of the values correspond to the {@link LoopEndNode}s.
+ */
+public abstract class PhiNode extends FloatingNode implements Simplifiable {
 
     @Input(InputType.Association) private MergeNode merge;
 
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValuePhiNode.java	Fri Jul 11 14:19:21 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValuePhiNode.java	Fri Jul 11 14:21:57 2014 +0200
@@ -28,8 +28,7 @@
 import com.oracle.graal.nodes.type.*;
 
 /**
- * The {@code PhiNode} represents the merging of dataflow in the graph. It refers to a merge and a
- * variable.
+ * Value {@link PhiNode}s merge data flow values at control flow merges.
  */
 @NodeInfo(nameTemplate = "ValuePhi({i#values})")
 public class ValuePhiNode extends PhiNode implements Simplifiable {
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java	Fri Jul 11 14:19:21 2014 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java	Fri Jul 11 14:21:57 2014 +0200
@@ -202,7 +202,7 @@
                         }
 
                         StructuredGraph inlineGraph = replacements.getMethodSubstitution(methodCallTargetNode.targetMethod());
-                        if (inlineGraph == null && canBeInlined(methodCallTargetNode)) {
+                        if (inlineGraph == null && !methodCallTargetNode.targetMethod().isNative() && methodCallTargetNode.targetMethod().canBeInlined()) {
                             inlineGraph = parseGraph(methodCallTargetNode.targetMethod(), methodCallTargetNode.arguments(), assumptions, phaseContext, false);
                         }
 
@@ -242,10 +242,6 @@
         }
     }
 
-    private static boolean canBeInlined(MethodCallTargetNode methodCallTargetNode) {
-        return !methodCallTargetNode.targetMethod().isNative() && methodCallTargetNode.targetMethod().getAnnotation(TruffleCallBoundary.class) == null;
-    }
-
     private StructuredGraph parseGraph(final ResolvedJavaMethod targetMethod, final NodeInputList<ValueNode> arguments, final Assumptions assumptions, final PhaseContext phaseContext,
                     boolean ignoreSlowPath) {