src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File open Sdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java

Print this page




  43         DIV,
  44         REM
  45     }
  46 
  47     public enum Type {
  48         SIGNED,
  49         UNSIGNED
  50     }
  51 
  52     private final Op op;
  53     private final Type type;
  54     private final boolean canDeopt;
  55 
  56     protected IntegerDivRemNode(NodeClass<? extends IntegerDivRemNode> c, Stamp stamp, Op op, Type type, ValueNode x, ValueNode y) {
  57         super(c, stamp, x, y);
  58         this.op = op;
  59         this.type = type;
  60 
  61         // Assigning canDeopt during constructor, because it must never change during lifetime of
  62         // the node.
  63         this.canDeopt = ((IntegerStamp) getY().stamp(NodeView.DEFAULT)).contains(0);

  64     }
  65 
  66     public final Op getOp() {
  67         return op;
  68     }
  69 
  70     public final Type getType() {
  71         return type;
  72     }
  73 
  74     @Override
  75     public void lower(LoweringTool tool) {
  76         tool.getLowerer().lower(this, tool);
  77     }
  78 
  79     @Override
  80     public boolean canDeoptimize() {
  81         return canDeopt;
  82     }
  83 }


  43         DIV,
  44         REM
  45     }
  46 
  47     public enum Type {
  48         SIGNED,
  49         UNSIGNED
  50     }
  51 
  52     private final Op op;
  53     private final Type type;
  54     private final boolean canDeopt;
  55 
  56     protected IntegerDivRemNode(NodeClass<? extends IntegerDivRemNode> c, Stamp stamp, Op op, Type type, ValueNode x, ValueNode y) {
  57         super(c, stamp, x, y);
  58         this.op = op;
  59         this.type = type;
  60 
  61         // Assigning canDeopt during constructor, because it must never change during lifetime of
  62         // the node.
  63         IntegerStamp yStamp = (IntegerStamp) getY().stamp(NodeView.DEFAULT);
  64         this.canDeopt = yStamp.contains(0) || yStamp.contains(-1);
  65     }
  66 
  67     public final Op getOp() {
  68         return op;
  69     }
  70 
  71     public final Type getType() {
  72         return type;
  73     }
  74 
  75     @Override
  76     public void lower(LoweringTool tool) {
  77         tool.getLowerer().lower(this, tool);
  78     }
  79 
  80     @Override
  81     public boolean canDeoptimize() {
  82         return canDeopt;
  83     }
  84 }
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File