< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/type/KlassPointerStamp.java

Print this page




  55     }
  56 
  57     public static KlassPointerStamp klassNonNull() {
  58         return KLASS_NON_NULL;
  59     }
  60 
  61     public static KlassPointerStamp klassAlwaysNull() {
  62         return KLASS_ALWAYS_NULL;
  63     }
  64 
  65     private KlassPointerStamp(boolean nonNull, boolean alwaysNull) {
  66         this(nonNull, alwaysNull, null);
  67     }
  68 
  69     private KlassPointerStamp(boolean nonNull, boolean alwaysNull, CompressEncoding encoding) {
  70         super(nonNull, alwaysNull);
  71         this.encoding = encoding;
  72     }
  73 
  74     @Override







  75     protected AbstractPointerStamp copyWith(boolean newNonNull, boolean newAlwaysNull) {
  76         return new KlassPointerStamp(newNonNull, newAlwaysNull, encoding);
  77     }
  78 
  79     @Override
  80     public boolean isCompatible(Stamp otherStamp) {
  81         if (this == otherStamp) {
  82             return true;
  83         }
  84         if (otherStamp instanceof KlassPointerStamp) {
  85             KlassPointerStamp other = (KlassPointerStamp) otherStamp;
  86             return Objects.equals(this.encoding, other.encoding);
  87         }
  88         return false;
  89     }
  90 
  91     @Override
  92     public boolean isCompatible(Constant constant) {
  93         if (constant instanceof HotSpotMetaspaceConstant) {
  94             return ((HotSpotMetaspaceConstant) constant).asResolvedJavaType() != null;




  55     }
  56 
  57     public static KlassPointerStamp klassNonNull() {
  58         return KLASS_NON_NULL;
  59     }
  60 
  61     public static KlassPointerStamp klassAlwaysNull() {
  62         return KLASS_ALWAYS_NULL;
  63     }
  64 
  65     private KlassPointerStamp(boolean nonNull, boolean alwaysNull) {
  66         this(nonNull, alwaysNull, null);
  67     }
  68 
  69     private KlassPointerStamp(boolean nonNull, boolean alwaysNull, CompressEncoding encoding) {
  70         super(nonNull, alwaysNull);
  71         this.encoding = encoding;
  72     }
  73 
  74     @Override
  75     public void accept(Visitor v) {
  76         super.accept(v);
  77         v.visitLong(encoding.getBase());
  78         v.visitInt(encoding.getShift());
  79     }
  80 
  81     @Override
  82     protected AbstractPointerStamp copyWith(boolean newNonNull, boolean newAlwaysNull) {
  83         return new KlassPointerStamp(newNonNull, newAlwaysNull, encoding);
  84     }
  85 
  86     @Override
  87     public boolean isCompatible(Stamp otherStamp) {
  88         if (this == otherStamp) {
  89             return true;
  90         }
  91         if (otherStamp instanceof KlassPointerStamp) {
  92             KlassPointerStamp other = (KlassPointerStamp) otherStamp;
  93             return Objects.equals(this.encoding, other.encoding);
  94         }
  95         return false;
  96     }
  97 
  98     @Override
  99     public boolean isCompatible(Constant constant) {
 100         if (constant instanceof HotSpotMetaspaceConstant) {
 101             return ((HotSpotMetaspaceConstant) constant).asResolvedJavaType() != null;


< prev index next >