changeset 19101:212299803bf6

Merge
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Tue, 03 Feb 2015 17:03:19 +0100
parents d2ec5e56ed31 (diff) 9865883b5114 (current diff)
children 026749fff52c
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/InstructionNumberer.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/StackUsePosList.java graal/com.oracle.graal.loop/src/com/oracle/graal/loop/phases/LoopTransformHighPhase.java graal/com.oracle.graal.loop/src/com/oracle/graal/loop/phases/LoopTransformLowPhase.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/phases/VerifyNoIntrinsicsLeftPhase.java
diffstat 2 files changed, 17 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java	Tue Feb 03 15:29:03 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java	Tue Feb 03 17:03:19 2015 +0100
@@ -69,18 +69,21 @@
 
     @Override
     public void lower(LoweringTool tool) {
-        /*
-         * Don't allow guards with action None and reason RuntimeConstraint to float. In cases where
-         * 2 guards are testing equivalent conditions they might be lowered at the same location. If
-         * the guard with the None action is lowered before the the other guard then the code will
-         * be stuck repeatedly deoptimizing without invalidating the code. Conditional elimination
-         * will eliminate the guard if it's truly redundant in this case.
-         */
-        if (graph().getGuardsStage().allowsFloatingGuards() && (getAction() != DeoptimizationAction.None || getReason() != DeoptimizationReason.RuntimeConstraint)) {
-            ValueNode guard = tool.createGuard(this, condition(), getReason(), getAction(), isNegated()).asNode();
-            this.replaceAtUsages(guard);
-            ValueAnchorNode newAnchor = graph().add(new ValueAnchorNode(guard.asNode()));
-            graph().replaceFixedWithFixed(this, newAnchor);
+        if (graph().getGuardsStage().allowsFloatingGuards()) {
+            /*
+             * Don't allow guards with action None and reason RuntimeConstraint to float. In cases
+             * where 2 guards are testing equivalent conditions they might be lowered at the same
+             * location. If the guard with the None action is lowered before the the other guard
+             * then the code will be stuck repeatedly deoptimizing without invalidating the code.
+             * Conditional elimination will eliminate the guard if it's truly redundant in this
+             * case.
+             */
+            if (getAction() != DeoptimizationAction.None || getReason() != DeoptimizationReason.RuntimeConstraint) {
+                ValueNode guard = tool.createGuard(this, condition(), getReason(), getAction(), isNegated()).asNode();
+                this.replaceAtUsages(guard);
+                ValueAnchorNode newAnchor = graph().add(new ValueAnchorNode(guard.asNode()));
+                graph().replaceFixedWithFixed(this, newAnchor);
+            }
         } else {
             lowerToIf().lower(tool);
         }
--- a/test/blacklist_sparc.txt	Tue Feb 03 15:29:03 2015 +0100
+++ b/test/blacklist_sparc.txt	Tue Feb 03 17:03:19 2015 +0100
@@ -1,5 +1,4 @@
 com.oracle.graal.replacements.test.StandardMethodSubstitutionsTest
 com.oracle.graal.hotspot.amd64.test.CompressedNullCheckTest
-com.oracle.graal.compiler.test.ea.UnsafeEATest
-com.oracle.graal.truffle.test.SimplePartialEvaluationTest
-com.oracle.graal.replacements.test.ArraysSubstitutionsTest
+com.oracle.graal.hotspot.test.HotSpotCryptoSubstitutionTest
+