Mercurial > hg > truffle
changeset 15885:4d18c6bb6b3a
LinearScan: Improve initialization and resizing of intervals array.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 24 May 2014 01:16:09 +0200 |
parents | 0e6f83eeb0ab |
children | e5e7d9dfff1a |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java |
diffstat | 1 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Sat May 24 01:05:08 2014 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Sat May 24 01:16:09 2014 +0200 @@ -65,7 +65,7 @@ boolean callKillsRegisters; - private static final int INITIAL_SPLIT_INTERVALS_CAPACITY = 32; + private static final int SPLIT_INTERVALS_CAPACITY_RIGHT_SHIFT = 1; public static class BlockData { @@ -282,7 +282,7 @@ firstDerivedIntervalIndex = intervalsSize; } if (intervalsSize == intervals.length) { - intervals = Arrays.copyOf(intervals, intervals.length * 2); + intervals = Arrays.copyOf(intervals, intervals.length + (intervals.length >> SPLIT_INTERVALS_CAPACITY_RIGHT_SHIFT)); } intervalsSize++; Variable variable = new Variable(source.kind(), ir.nextVariable()); @@ -591,7 +591,7 @@ void numberInstructions() { intervalsSize = operandSize(); - intervals = new Interval[intervalsSize + INITIAL_SPLIT_INTERVALS_CAPACITY]; + intervals = new Interval[intervalsSize + (intervalsSize >> SPLIT_INTERVALS_CAPACITY_RIGHT_SHIFT)]; ValueProcedure setVariableProc = new ValueProcedure() { @@ -1875,7 +1875,6 @@ } printLir("After register number assignment", true); - } }