diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java @ 13294:29907e69ae8d

rework of switch generation: move code into platform independent SwitchStrategy, add boolean switch strategy
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 11 Dec 2013 15:59:40 +0100
parents da9db8331658
children 1cf373d2b415
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java	Wed Dec 11 15:15:35 2013 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java	Wed Dec 11 15:59:40 2013 +0100
@@ -54,6 +54,15 @@
         assert keySuccessors.length == keys.length + 1;
         assert keySuccessors.length == keyProbabilities.length;
         this.keys = keys;
+        assert assertValues();
+        assert assertSorted();
+    }
+
+    private boolean assertSorted() {
+        for (int i = 1; i < keys.length; i++) {
+            assert keys[i - 1] < keys[i];
+        }
+        return true;
     }
 
     /**
@@ -70,6 +79,11 @@
         this(value, new AbstractBeginNode[successorCount], keys, keyProbabilities, keySuccessors);
     }
 
+    @Override
+    public boolean isSorted() {
+        return true;
+    }
+
     /**
      * Gets the key at the specified index.
      *