Mercurial > hg > truffle
changeset 16359:f686fae77383
LSRA spill optimization: rename SpillInDominator.MultipleSpills to SpillState.SpillInDominator.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Wed, 04 Jun 2014 16:05:14 +0200 |
parents | 9371b9c246ca |
children | ec54fc47ba5d |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java |
diffstat | 2 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java Wed Jun 04 15:40:23 2014 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java Wed Jun 04 16:05:14 2014 +0200 @@ -309,9 +309,10 @@ OneSpillStore, /** - * The interval is spilled multiple times. + * The interval is spilled multiple times or is spilled in a loop. Place the store somewhere + * on the dominator path between the definition and the usages. */ - MultipleSpills, + SpillInDominator, /** * The interval should be stored immediately after its definition to prevent multiple @@ -654,7 +655,7 @@ } void setSpillDefinitionPos(int pos) { - assert spillState() == SpillState.MultipleSpills || spillDefinitionPos() == -1 : "cannot set the position twice"; + assert spillState() == SpillState.SpillInDominator || spillDefinitionPos() == -1 : "cannot set the position twice"; splitParent().spillDefinitionPos = pos; }
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Wed Jun 04 15:40:23 2014 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Wed Jun 04 16:05:14 2014 +0200 @@ -455,11 +455,11 @@ case OneSpillStore: { // the interval is spilled more then once - interval.setSpillState(SpillState.MultipleSpills); + interval.setSpillState(SpillState.SpillInDominator); break; } - case MultipleSpills: + case SpillInDominator: case StoreAtDefinition: case StartInMemory: case NoOptimization: @@ -1887,7 +1887,7 @@ private void findSpillPosition() { for (Interval interval : intervals) { - if (interval != null && interval.isSplitParent() && interval.spillState() == SpillState.MultipleSpills) { + if (interval != null && interval.isSplitParent() && interval.spillState() == SpillState.SpillInDominator) { AbstractBlock<?> defBlock = blockForId(interval.spillDefinitionPos()); AbstractBlock<?> spillBlock = null; try (Indent indent = Debug.logAndIndent("interval %s (%s)", interval, defBlock)) {