< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/Stamp.java
Print this page
@@ -24,21 +24,22 @@
package org.graalvm.compiler.core.common.type;
import org.graalvm.compiler.core.common.LIRKind;
import org.graalvm.compiler.core.common.spi.LIRKindTool;
+import org.graalvm.compiler.serviceprovider.SpeculationReasonGroup.SpeculationContextObject;
import jdk.vm.ci.meta.Constant;
import jdk.vm.ci.meta.JavaKind;
import jdk.vm.ci.meta.MemoryAccessProvider;
import jdk.vm.ci.meta.MetaAccessProvider;
import jdk.vm.ci.meta.ResolvedJavaType;
/**
* A stamp is the basis for a type system.
*/
-public abstract class Stamp {
+public abstract class Stamp implements SpeculationContextObject {
protected Stamp() {
}
/**
@@ -183,6 +184,17 @@
Constant otherConstant = other.asConstant();
return otherConstant != null && constant.equals(otherConstant);
}
return false;
}
+
+ /**
+ * Convert a Stamp into a representation that can be resolved symbolically into the original
+ * stamp. If this stamp contains no references to JVMCI types then simply return null.
+ */
+ public SymbolicJVMCIReference<? extends Stamp> makeSymbolic() {
+ return null;
+ }
+
+ @Override
+ public abstract String toString();
}
< prev index next >