< 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,44 **** package org.graalvm.compiler.core.common.type; import org.graalvm.compiler.core.common.LIRKind; import org.graalvm.compiler.core.common.spi.LIRKindTool; 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 { protected Stamp() { } /** --- 24,45 ---- 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 implements SpeculationContextObject { protected Stamp() { } /**
*** 183,188 **** --- 184,200 ---- 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 >