changeset 16421:c158f653275e

don't forget to record assumptions
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Mon, 07 Jul 2014 20:26:31 -0700
parents e4ac25d4e13d
children 7f20dee1be60
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java	Mon Jul 07 17:43:27 2014 -0700
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java	Mon Jul 07 20:26:31 2014 -0700
@@ -72,11 +72,14 @@
             if (result != null) {
                 return result;
             }
-            ResolvedJavaType exact = stampType.findUniqueConcreteSubtype();
-            if (exact != null) {
-                result = checkInstanceOf(forValue, exact, objectStamp.nonNull(), true);
-                if (result != null) {
-                    return result;
+            if (tool.assumptions() != null && tool.assumptions().useOptimisticAssumptions()) {
+                ResolvedJavaType exact = stampType.findUniqueConcreteSubtype();
+                if (exact != null) {
+                    result = checkInstanceOf(forValue, exact, objectStamp.nonNull(), true);
+                    if (result != null) {
+                        tool.assumptions().recordConcreteSubtype(stampType, exact);
+                        return result;
+                    }
                 }
             }
         }