Mercurial > hg > graal-compiler
changeset 23028:f81a81808795
TraceInterval: use EnumSet for alwaysInMemory().
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 19 Nov 2015 16:36:45 +0100 |
parents | 1aa0e39c8be8 |
children | ccfa6d4d989b |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceInterval.java |
diffstat | 1 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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<SpillState> 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() {