changeset 16803:faed55e4d849

Use ValueConsumer in LIRVerifier.
author Josef Eisl <josef.eisl@jku.at>
date Tue, 12 Aug 2014 18:36:57 +0200
parents d7edefd16aca
children 1cba2ac4c0bb
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRVerifier.java
diffstat 1 files changed, 23 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- 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<OperandFlag> flags) {
-            return allowed(op, value, mode, flags);
+        public void visitValue(LIRInstruction op, Value value, OperandMode mode, EnumSet<OperandFlag> 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<OperandFlag> flags) {
-                return use(value, mode, flags);
+            public void visitValue(Value value, OperandMode mode, EnumSet<OperandFlag> flags) {
+                use(value, mode, flags);
             }
         };
-        ValueProcedure defProc = new ValueProcedure() {
+        ValueConsumer defConsumer = new ValueConsumer() {
 
             @Override
-            public Value doValue(Value value, OperandMode mode, EnumSet<OperandFlag> flags) {
-                return def(value, mode, flags);
+            public void visitValue(Value value, OperandMode mode, EnumSet<OperandFlag> 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<OperandFlag> flags) {
+    private void use(Value value, OperandMode mode, EnumSet<OperandFlag> 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<OperandFlag> flags) {
+    private void def(Value value, OperandMode mode, EnumSet<OperandFlag> 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<OperandFlag> flags) {
+    private static void allowed(Object op, Value value, OperandMode mode, EnumSet<OperandFlag> 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);