< prev index next >

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

Print this page




  28 import org.graalvm.compiler.core.common.LIRKind;
  29 import org.graalvm.compiler.core.common.spi.LIRKindTool;
  30 import org.graalvm.compiler.core.common.type.AbstractObjectStamp;
  31 import org.graalvm.compiler.core.common.type.ObjectStamp;
  32 import org.graalvm.compiler.core.common.type.Stamp;
  33 
  34 import jdk.vm.ci.meta.Constant;
  35 import jdk.vm.ci.meta.MemoryAccessProvider;
  36 import jdk.vm.ci.meta.ResolvedJavaType;
  37 
  38 public abstract class NarrowOopStamp extends AbstractObjectStamp {
  39 
  40     private final CompressEncoding encoding;
  41 
  42     protected NarrowOopStamp(ResolvedJavaType type, boolean exactType, boolean nonNull, boolean alwaysNull, CompressEncoding encoding) {
  43         super(type, exactType, nonNull, alwaysNull);
  44         this.encoding = encoding;
  45     }
  46 
  47     @Override







  48     protected abstract AbstractObjectStamp copyWith(ResolvedJavaType type, boolean exactType, boolean nonNull, boolean alwaysNull);
  49 
  50     public Stamp uncompressed() {
  51         return new ObjectStamp(type(), isExactType(), nonNull(), alwaysNull());
  52     }
  53 
  54     public CompressEncoding getEncoding() {
  55         return encoding;
  56     }
  57 
  58     @Override
  59     public LIRKind getLIRKind(LIRKindTool tool) {
  60         return tool.getNarrowOopKind();
  61     }
  62 
  63     @Override
  64     public String toString() {
  65         StringBuilder str = new StringBuilder();
  66         str.append('n');
  67         appendString(str);




  28 import org.graalvm.compiler.core.common.LIRKind;
  29 import org.graalvm.compiler.core.common.spi.LIRKindTool;
  30 import org.graalvm.compiler.core.common.type.AbstractObjectStamp;
  31 import org.graalvm.compiler.core.common.type.ObjectStamp;
  32 import org.graalvm.compiler.core.common.type.Stamp;
  33 
  34 import jdk.vm.ci.meta.Constant;
  35 import jdk.vm.ci.meta.MemoryAccessProvider;
  36 import jdk.vm.ci.meta.ResolvedJavaType;
  37 
  38 public abstract class NarrowOopStamp extends AbstractObjectStamp {
  39 
  40     private final CompressEncoding encoding;
  41 
  42     protected NarrowOopStamp(ResolvedJavaType type, boolean exactType, boolean nonNull, boolean alwaysNull, CompressEncoding encoding) {
  43         super(type, exactType, nonNull, alwaysNull);
  44         this.encoding = encoding;
  45     }
  46 
  47     @Override
  48     public void accept(Visitor v) {
  49         super.accept(v);
  50         v.visitLong(encoding.getBase());
  51         v.visitInt(encoding.getShift());
  52     }
  53 
  54     @Override
  55     protected abstract AbstractObjectStamp copyWith(ResolvedJavaType type, boolean exactType, boolean nonNull, boolean alwaysNull);
  56 
  57     public Stamp uncompressed() {
  58         return new ObjectStamp(type(), isExactType(), nonNull(), alwaysNull());
  59     }
  60 
  61     public CompressEncoding getEncoding() {
  62         return encoding;
  63     }
  64 
  65     @Override
  66     public LIRKind getLIRKind(LIRKindTool tool) {
  67         return tool.getNarrowOopKind();
  68     }
  69 
  70     @Override
  71     public String toString() {
  72         StringBuilder str = new StringBuilder();
  73         str.append('n');
  74         appendString(str);


< prev index next >