src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/VerifyingMoveFactory.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/VerifyingMoveFactory.java

Print this page




  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 package org.graalvm.compiler.lir.gen;
  24 
  25 import static org.graalvm.compiler.lir.LIRValueUtil.isJavaConstant;
  26 import static org.graalvm.compiler.lir.LIRValueUtil.isVariable;
  27 
  28 import java.util.EnumSet;
  29 
  30 import org.graalvm.compiler.lir.LIRInstruction;
  31 import org.graalvm.compiler.lir.LIRInstruction.OperandFlag;
  32 import org.graalvm.compiler.lir.LIRInstruction.OperandMode;
  33 import org.graalvm.compiler.lir.StandardOp.LoadConstantOp;
  34 import org.graalvm.compiler.lir.gen.LIRGeneratorTool.MoveFactory;
  35 
  36 import jdk.vm.ci.meta.AllocatableValue;
  37 import jdk.vm.ci.meta.Constant;
  38 import jdk.vm.ci.meta.JavaConstant;
  39 import jdk.vm.ci.meta.Value;
  40 
  41 /**
  42  * Wrapper for {@link MoveFactory} that checks that the instructions created adhere to the contract
  43  * of {@link MoveFactory}.
  44  */
  45 public final class VerifyingMoveFactory implements MoveFactory {
  46 
  47     private final MoveFactory inner;
  48 
  49     public VerifyingMoveFactory(MoveFactory inner) {
  50         this.inner = inner;
  51     }
  52 
  53     @Override
  54     public boolean canInlineConstant(JavaConstant c) {
  55         return inner.canInlineConstant(c);
  56     }
  57 
  58     @Override
  59     public boolean allowConstantToStackMove(Constant constant) {
  60         return inner.allowConstantToStackMove(constant);
  61     }
  62 
  63     @Override
  64     public LIRInstruction createMove(AllocatableValue result, Value input) {
  65         LIRInstruction inst = inner.createMove(result, input);
  66         assert checkResult(inst, result, input);
  67         return inst;
  68     }
  69 
  70     @Override
  71     public LIRInstruction createStackMove(AllocatableValue result, AllocatableValue input) {
  72         LIRInstruction inst = inner.createStackMove(result, input);
  73         assert checkResult(inst, result, input);
  74         return inst;




  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 package org.graalvm.compiler.lir.gen;
  24 
  25 import static org.graalvm.compiler.lir.LIRValueUtil.isJavaConstant;
  26 import static org.graalvm.compiler.lir.LIRValueUtil.isVariable;
  27 
  28 import java.util.EnumSet;
  29 
  30 import org.graalvm.compiler.lir.LIRInstruction;
  31 import org.graalvm.compiler.lir.LIRInstruction.OperandFlag;
  32 import org.graalvm.compiler.lir.LIRInstruction.OperandMode;
  33 import org.graalvm.compiler.lir.StandardOp.LoadConstantOp;
  34 import org.graalvm.compiler.lir.gen.LIRGeneratorTool.MoveFactory;
  35 
  36 import jdk.vm.ci.meta.AllocatableValue;
  37 import jdk.vm.ci.meta.Constant;

  38 import jdk.vm.ci.meta.Value;
  39 
  40 /**
  41  * Wrapper for {@link MoveFactory} that checks that the instructions created adhere to the contract
  42  * of {@link MoveFactory}.
  43  */
  44 public final class VerifyingMoveFactory implements MoveFactory {
  45 
  46     private final MoveFactory inner;
  47 
  48     public VerifyingMoveFactory(MoveFactory inner) {
  49         this.inner = inner;
  50     }
  51 
  52     @Override
  53     public boolean canInlineConstant(Constant c) {
  54         return inner.canInlineConstant(c);
  55     }
  56 
  57     @Override
  58     public boolean allowConstantToStackMove(Constant constant) {
  59         return inner.allowConstantToStackMove(constant);
  60     }
  61 
  62     @Override
  63     public LIRInstruction createMove(AllocatableValue result, Value input) {
  64         LIRInstruction inst = inner.createMove(result, input);
  65         assert checkResult(inst, result, input);
  66         return inst;
  67     }
  68 
  69     @Override
  70     public LIRInstruction createStackMove(AllocatableValue result, AllocatableValue input) {
  71         LIRInstruction inst = inner.createStackMove(result, input);
  72         assert checkResult(inst, result, input);
  73         return inst;


src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/VerifyingMoveFactory.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File