# HG changeset patch # User Josef Eisl # Date 1407861417 -7200 # Node ID faed55e4d84920c6479eccf82904988156224124 # Parent d7edefd16acadb260b419db8b8de53fd82d3662a Use ValueConsumer in LIRVerifier. diff -r d7edefd16aca -r faed55e4d849 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRVerifier.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRVerifier.java Tue Aug 12 17:55:39 2014 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRVerifier.java Tue Aug 12 18:36:57 2014 +0200 @@ -61,21 +61,21 @@ return isRegister(value) && frameMap.registerConfig.getAttributesMap()[asRegister(value).number].isAllocatable(); } - private static InstructionValueProcedure allowedProc = new InstructionValueProcedure() { + private static InstructionValueConsumer allowedConsumer = new InstructionValueConsumer() { @Override - public Value doValue(LIRInstruction op, Value value, OperandMode mode, EnumSet flags) { - return allowed(op, value, mode, flags); + public void visitValue(LIRInstruction op, Value value, OperandMode mode, EnumSet flags) { + allowed(op, value, mode, flags); } }; public static boolean verify(final LIRInstruction op) { - op.forEachInput(allowedProc); - op.forEachAlive(allowedProc); - op.forEachState(allowedProc); - op.forEachTemp(allowedProc); - op.forEachOutput(allowedProc); + op.visitEachInput(allowedConsumer); + op.visitEachAlive(allowedConsumer); + op.visitEachState(allowedConsumer); + op.visitEachTemp(allowedConsumer); + op.visitEachOutput(allowedConsumer); op.verify(); return true; @@ -103,18 +103,18 @@ private BitSet curRegistersDefined; private void verify() { - ValueProcedure useProc = new ValueProcedure() { + ValueConsumer useConsumer = new ValueConsumer() { @Override - public Value doValue(Value value, OperandMode mode, EnumSet flags) { - return use(value, mode, flags); + public void visitValue(Value value, OperandMode mode, EnumSet flags) { + use(value, mode, flags); } }; - ValueProcedure defProc = new ValueProcedure() { + ValueConsumer defConsumer = new ValueConsumer() { @Override - public Value doValue(Value value, OperandMode mode, EnumSet flags) { - return def(value, mode, flags); + public void visitValue(Value value, OperandMode mode, EnumSet flags) { + def(value, mode, flags); } }; @@ -139,17 +139,17 @@ for (LIRInstruction op : lir.getLIRforBlock(block)) { curInstruction = op; - op.forEachInput(useProc); + op.visitEachInput(useConsumer); if (op.destroysCallerSavedRegisters()) { for (Register register : frameMap.registerConfig.getCallerSaveRegisters()) { curRegistersLive[register.number] = null; } } curRegistersDefined.clear(); - op.forEachAlive(useProc); - op.forEachState(useProc); - op.forEachTemp(defProc); - op.forEachOutput(defProc); + op.visitEachAlive(useConsumer); + op.visitEachState(useConsumer); + op.visitEachTemp(defConsumer); + op.visitEachOutput(defConsumer); curInstruction = null; } @@ -158,7 +158,7 @@ } } - private Value use(Value value, OperandMode mode, EnumSet flags) { + private void use(Value value, OperandMode mode, EnumSet flags) { allowed(curInstruction, value, mode, flags); if (isVariable(value)) { @@ -188,10 +188,9 @@ throw GraalInternalError.shouldNotReachHere(); } } - return value; } - private Value def(Value value, OperandMode mode, EnumSet flags) { + private void def(Value value, OperandMode mode, EnumSet flags) { allowed(curInstruction, value, mode, flags); if (isVariable(value)) { @@ -229,17 +228,16 @@ } } } - return value; } // @formatter:off - private static Value allowed(Object op, Value value, OperandMode mode, EnumSet flags) { + private static void allowed(Object op, Value value, OperandMode mode, EnumSet flags) { if ((isVariable(value) && flags.contains(OperandFlag.REG)) || (isRegister(value) && flags.contains(OperandFlag.REG)) || (isStackSlot(value) && flags.contains(OperandFlag.STACK)) || (isConstant(value) && flags.contains(OperandFlag.CONST) && mode != OperandMode.DEF) || (isIllegal(value) && flags.contains(OperandFlag.ILLEGAL))) { - return value; + return; } throw new GraalInternalError("Invalid LIR%n Instruction: %s%n Mode: %s%n Flags: %s%n Unexpected value: %s %s", op, mode, flags, value.getClass().getSimpleName(), value);