# HG changeset patch # User Christian Wimmer # Date 1440786231 25200 # Node ID f9a6a2f0b414dfe0cbc0285703d107defafed55b # Parent a6adaf9c330d48930c3003098e363e8f50cbf311 Invert logic for recording the assumptions of an AssumptionResult to Assumptions; this allows using assumption-free AssumptionResults when compiling without speculative optimizations diff -r a6adaf9c330d -r f9a6a2f0b414 jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/Assumptions.java --- a/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/Assumptions.java Tue Aug 25 15:27:13 2015 -0700 +++ b/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/Assumptions.java Fri Aug 28 11:23:51 2015 -0700 @@ -72,6 +72,24 @@ System.arraycopy(other.assumptions, 0, newAssumptions, this.assumptions.length, other.assumptions.length); this.assumptions = newAssumptions; } + + public boolean canRecordTo(Assumptions target) { + /* + * We can use the result if it is either assumption free, or if we have a valid + * Assumptions object where we can record assumptions. + */ + return assumptions.length == 0 || target != null; + } + + public void recordTo(Assumptions target) { + assert canRecordTo(target); + + if (assumptions.length > 0) { + for (Assumption assumption : assumptions) { + target.record(assumption); + } + } + } } /** @@ -348,12 +366,6 @@ record(new ConcreteMethod(method, context, impl)); } - public void record(AssumptionResult result) { - for (Assumption assumption : result.assumptions) { - record(assumption); - } - } - public void record(Assumption assumption) { assumptions.add(assumption); }