# HG changeset patch # User Doug Simon # Date 1428613752 -7200 # Node ID 9d58a4cda922ba530fe93138a5bc28ba88e5af28 # Parent 550e422e54837b113e2f426a7d4a6e5a31f246d9 improved ImmutableCode invariant checking diff -r 550e422e5483 -r 9d58a4cda922 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java Thu Apr 09 22:03:39 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java Thu Apr 09 23:09:12 2015 +0200 @@ -137,7 +137,7 @@ public void checkNewNodes(GraphBuilderContext b, InvocationPlugin plugin, NodeIterable newNodes) { if (GraalOptions.ImmutableCode.getValue()) { for (Node node : newNodes) { - if (node instanceof ConstantNode) { + if (node.hasUsages() && node instanceof ConstantNode) { ConstantNode c = (ConstantNode) node; if (c.getKind() == Kind.Object && !AheadOfTimeVerificationPhase.isLegalObjectConstant(c)) { throw new AssertionError("illegal constant node in AOT: " + node); diff -r 550e422e5483 -r 9d58a4cda922 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsUtil.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsUtil.java Thu Apr 09 22:03:39 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsUtil.java Thu Apr 09 23:09:12 2015 +0200 @@ -22,6 +22,7 @@ */ package com.oracle.graal.replacements; +import com.oracle.graal.compiler.common.*; import com.oracle.graal.replacements.nodes.*; // JaCoCo Exclude @@ -35,7 +36,7 @@ static { boolean assertionsEnabled = false; assert (assertionsEnabled = true) != false; - REPLACEMENTS_ASSERTIONS_ENABLED = assertionsEnabled; + REPLACEMENTS_ASSERTIONS_ENABLED = assertionsEnabled && GraalOptions.ImmutableCode.getValue() == null; } /**