# HG changeset patch # User Chris Seaton # Date 1413306744 -3600 # Node ID ecc27b9d2510dc9eacd4ead048f3fe2baeb2ab1c # Parent 3a586c78a80773dae0fe7bd05484da084c83ec24# Parent b8d89559915df00d73921074112eb45a02ab5514 Merge. diff -r b8d89559915d -r ecc27b9d2510 graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/NeverValidAssumptionTest.java --- a/graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/NeverValidAssumptionTest.java Tue Oct 14 17:46:18 2014 +0200 +++ b/graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/NeverValidAssumptionTest.java Tue Oct 14 18:12:24 2014 +0100 @@ -50,10 +50,12 @@ assertFalse(assumption.isValid()); } - @Test(expected = UnsupportedOperationException.class) - public void testCannotInvalidate() { + @Test + public void testInvalidateDoesNothing() { final NeverValidAssumption assumption = NeverValidAssumption.INSTANCE; assumption.invalidate(); + assumption.invalidate(); + assumption.invalidate(); } } diff -r b8d89559915d -r ecc27b9d2510 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AssumedValue.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AssumedValue.java Tue Oct 14 17:46:18 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AssumedValue.java Tue Oct 14 18:12:24 2014 +0100 @@ -29,9 +29,12 @@ import com.oracle.truffle.api.nodes.*; /** - * A {@link CompilationFinal} value combined with an {@link Assumption} to notify when it changes. - * Note that you should be careful that modifications to this value do not cause deoptimization - * loops. This could be by using a value that is monotonic. + * A value that the compiler can assume is constant, but can be changed by invalidation. + *

+ * Compiled code that uses the value will be invalidated each time the value changes, so you should + * take care to only change values infrequently, or to monitor the number of times the value has + * changed and at some point to replace the value with something more generic so that it does not + * have to be changed and code does not have to keep being recompiled. */ public class AssumedValue { diff -r b8d89559915d -r ecc27b9d2510 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/NeverValidAssumption.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/NeverValidAssumption.java Tue Oct 14 17:46:18 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/NeverValidAssumption.java Tue Oct 14 18:12:24 2014 +0100 @@ -45,7 +45,6 @@ @Override public void invalidate() { - throw new UnsupportedOperationException("Cannot invalidate this assumption - it is never valid"); } @Override