Mercurial > hg > graal-compiler
changeset 17294:6d85dfeb6981
LSRA: replace anonymous ValueConsumers with Lambdas.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 29 Sep 2014 14:40:39 +0200 |
parents | 6855e4c325d0 |
children | ae0496f76cce |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java |
diffstat | 1 files changed, 34 insertions(+), 50 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Mon Sep 29 14:37:21 2014 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Mon Sep 29 14:40:39 2014 +0200 @@ -612,13 +612,9 @@ intervalsSize = operandSize(); intervals = new Interval[intervalsSize + (intervalsSize >> SPLIT_INTERVALS_CAPACITY_RIGHT_SHIFT)]; - ValueConsumer setVariableConsumer = new ValueConsumer() { - - @Override - public void visitValue(Value value, OperandMode mode, EnumSet<OperandFlag> flags) { - if (isVariable(value)) { - getOrCreateInterval(asVariable(value)); - } + ValueConsumer setVariableConsumer = (value, mode, flags) -> { + if (isVariable(value)) { + getOrCreateInterval(asVariable(value)); } }; @@ -678,56 +674,44 @@ List<LIRInstruction> instructions = ir.getLIRforBlock(block); int numInst = instructions.size(); - ValueConsumer useConsumer = new ValueConsumer() { - - @Override - public void visitValue(Value operand, OperandMode mode, EnumSet<OperandFlag> flags) { - if (isVariable(operand)) { - int operandNum = operandNumber(operand); - if (!liveKill.get(operandNum)) { - liveGen.set(operandNum); - Debug.log("liveGen for operand %d", operandNum); - } - if (block.getLoop() != null) { - intervalInLoop.setBit(operandNum, block.getLoop().getIndex()); - } - } - - if (DetailedAsserts.getValue()) { - verifyInput(block, liveKill, operand); - } - } - }; - ValueConsumer stateConsumer = new ValueConsumer() { - - @Override - public void visitValue(Value operand, OperandMode mode, EnumSet<OperandFlag> flags) { + ValueConsumer useConsumer = (operand, mode, flags) -> { + if (isVariable(operand)) { int operandNum = operandNumber(operand); if (!liveKill.get(operandNum)) { liveGen.set(operandNum); - Debug.log("liveGen in state for operand %d", operandNum); + Debug.log("liveGen for operand %d", operandNum); + } + if (block.getLoop() != null) { + intervalInLoop.setBit(operandNum, block.getLoop().getIndex()); } } + + if (DetailedAsserts.getValue()) { + verifyInput(block, liveKill, operand); + } }; - ValueConsumer defConsumer = new ValueConsumer() { + ValueConsumer stateConsumer = (operand, mode, flags) -> { + int operandNum = operandNumber(operand); + if (!liveKill.get(operandNum)) { + liveGen.set(operandNum); + Debug.log("liveGen in state for operand %d", operandNum); + } + }; + ValueConsumer defConsumer = (operand, mode, flags) -> { + if (isVariable(operand)) { + int varNum = operandNumber(operand); + liveKill.set(varNum); + Debug.log("liveKill for operand %d", varNum); + if (block.getLoop() != null) { + intervalInLoop.setBit(varNum, block.getLoop().getIndex()); + } + } - @Override - public void visitValue(Value operand, OperandMode mode, EnumSet<OperandFlag> flags) { - if (isVariable(operand)) { - int varNum = operandNumber(operand); - liveKill.set(varNum); - Debug.log("liveKill for operand %d", varNum); - if (block.getLoop() != null) { - intervalInLoop.setBit(varNum, block.getLoop().getIndex()); - } - } - - if (DetailedAsserts.getValue()) { - // fixed intervals are never live at block boundaries, so - // they need not be processed in live sets - // process them only in debug mode so that this can be checked - verifyTemp(liveKill, operand); - } + if (DetailedAsserts.getValue()) { + // fixed intervals are never live at block boundaries, so + // they need not be processed in live sets + // process them only in debug mode so that this can be checked + verifyTemp(liveKill, operand); } };