changeset 5262:a6632d6e2753

removed data link from SafepointNode to a LoopEndNode
author Doug Simon <doug.simon@oracle.com>
date Fri, 20 Apr 2012 14:45:58 +0200
parents 6cd293b125ea
children e7f3f0541429
files graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SafepointNode.java
diffstat 2 files changed, 6 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Fri Apr 20 14:45:34 2012 +0200
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Fri Apr 20 14:45:58 2012 +0200
@@ -189,7 +189,7 @@
         // Add safepoints to loop ends
         if (GraalOptions.GenLoopSafepoints) {
             for (LoopEndNode loopEnd : currentGraph.getNodes(LoopEndNode.class)) {
-                SafepointNode safepoint = currentGraph.add(new SafepointNode(loopEnd));
+                SafepointNode safepoint = currentGraph.add(new SafepointNode());
                 currentGraph.addBeforeFixed(loopEnd, safepoint);
             }
         }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SafepointNode.java	Fri Apr 20 14:45:34 2012 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SafepointNode.java	Fri Apr 20 14:45:58 2012 +0200
@@ -31,14 +31,8 @@
  */
 public final class SafepointNode extends FixedWithNextNode implements LIRLowerable, Node.IterableNodeType {
 
-    /**
-     * Will be null if this safepoint is not associated with a loop end.
-     */
-    @Data private final LoopEndNode loopEnd;
-
-    public SafepointNode(LoopEndNode loopEnd) {
+    public SafepointNode() {
         super(StampFactory.illegal());
-        this.loopEnd = loopEnd;
     }
 
 
@@ -51,6 +45,9 @@
      * Gets the loop end (if any) associated with this safepoint.
      */
     public LoopEndNode loopEnd() {
-        return loopEnd;
+        if (next() instanceof LoopEndNode) {
+            return (LoopEndNode) next();
+        }
+        return null;
     }
 }