# HG changeset patch # User Josef Eisl # Date 1447947405 -3600 # Node ID f81a818087951e22efe1db7fc68cee121dc9505c # Parent 1aa0e39c8be81e12f31f1799db3cdfe480ef486d TraceInterval: use EnumSet for alwaysInMemory(). diff -r 1aa0e39c8be8 -r f81a81808795 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceInterval.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceInterval.java Wed Nov 18 16:09:26 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceInterval.java Thu Nov 19 16:36:45 2015 +0100 @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.EnumSet; import java.util.List; import jdk.vm.ci.code.BailoutException; @@ -290,7 +291,9 @@ * The interval has more than one definition (e.g. resulting from phi moves), so stores to * memory are not optimized. */ - NoOptimization + NoOptimization; + + public static final EnumSet ALWAYS_IN_MEMORY = EnumSet.of(SpillInDominator, StoreAtDefinition, StartInMemory); } /** @@ -529,8 +532,7 @@ // returns true if this interval has a shadow copy on the stack that is always correct public boolean alwaysInMemory() { - return (splitParent().spillState == SpillState.SpillInDominator || splitParent().spillState == SpillState.StoreAtDefinition || splitParent().spillState == SpillState.StartInMemory) && - !canMaterialize(); + return SpillState.ALWAYS_IN_MEMORY.contains(spillState()) && !canMaterialize(); } void removeFirstUsePos() {