src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/JVMCIInfopointErrorTest.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.hotspot.test/src/org/graalvm/compiler/hotspot/test

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/JVMCIInfopointErrorTest.java

Print this page




  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 package org.graalvm.compiler.hotspot.test;
  24 
  25 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
  26 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.STACK;
  27 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_IGNORED;
  28 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_IGNORED;
  29 
  30 import java.util.function.Consumer;
  31 
  32 import org.graalvm.compiler.code.CompilationResult;
  33 import org.graalvm.compiler.core.common.LIRKind;
  34 import org.graalvm.compiler.core.common.type.StampFactory;
  35 import org.graalvm.compiler.core.test.GraalCompilerTest;
  36 import org.graalvm.compiler.debug.DebugHandlersFactory;
  37 import org.graalvm.compiler.debug.DebugContext;
  38 import org.graalvm.compiler.debug.DebugContext.Scope;

  39 import org.graalvm.compiler.graph.NodeClass;
  40 import org.graalvm.compiler.hotspot.HotSpotCompiledCodeBuilder;
  41 import org.graalvm.compiler.lir.FullInfopointOp;
  42 import org.graalvm.compiler.lir.LIRFrameState;
  43 import org.graalvm.compiler.lir.LIRInstruction;
  44 import org.graalvm.compiler.lir.LIRInstructionClass;
  45 import org.graalvm.compiler.lir.Variable;
  46 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
  47 import org.graalvm.compiler.lir.gen.LIRGeneratorTool;
  48 import org.graalvm.compiler.nodeinfo.NodeInfo;
  49 import org.graalvm.compiler.nodes.DeoptimizingFixedWithNextNode;
  50 import org.graalvm.compiler.nodes.StructuredGraph;
  51 import org.graalvm.compiler.nodes.spi.LIRLowerable;
  52 import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
  53 import org.junit.Test;
  54 
  55 import jdk.vm.ci.code.BytecodeFrame;
  56 import jdk.vm.ci.code.CodeCacheProvider;
  57 import jdk.vm.ci.code.VirtualObject;
  58 import jdk.vm.ci.code.site.InfopointReason;


 133     public static void testMethod() {
 134     }
 135 
 136     private void test(TestSpec spec) {
 137         test(getDebugContext(), spec);
 138     }
 139 
 140     private void test(DebugContext debug, TestSpec spec) {
 141         ResolvedJavaMethod method = getResolvedJavaMethod("testMethod");
 142 
 143         StructuredGraph graph = parseForCompile(method, debug);
 144         TestNode test = graph.add(new TestNode(spec));
 145         graph.addAfterFixed(graph.start(), test);
 146 
 147         CompilationResult compResult = compile(method, graph);
 148         CodeCacheProvider codeCache = getCodeCache();
 149         HotSpotCompiledCode compiledCode = HotSpotCompiledCodeBuilder.createCompiledCode(codeCache, method, null, compResult);
 150         codeCache.addCode(method, compiledCode, null, null);
 151     }
 152 
 153     @Test(expected = JVMCIError.class)
 154     public void testInvalidShortOop() {
 155         test((tool, state, safepoint) -> {
 156             PlatformKind kind = tool.target().arch.getPlatformKind(JavaKind.Short);
 157             LIRKind lirKind = LIRKind.reference(kind);
 158 
 159             Variable var = tool.newVariable(lirKind);
 160             tool.append(new ValueDef(var));
 161             safepoint.accept(state);
 162             tool.append(new ValueUse(var));
 163         });
 164     }
 165 
 166     @Test(expected = JVMCIError.class)
 167     public void testInvalidShortDerivedOop() {
 168         test((tool, state, safepoint) -> {
 169             Variable baseOop = tool.newVariable(LIRKind.fromJavaKind(tool.target().arch, JavaKind.Object));
 170             tool.append(new ValueDef(baseOop));
 171 
 172             PlatformKind kind = tool.target().arch.getPlatformKind(JavaKind.Short);
 173             LIRKind lirKind = LIRKind.derivedReference(kind, baseOop);
 174 
 175             Variable var = tool.newVariable(lirKind);
 176             tool.append(new ValueDef(var));
 177             safepoint.accept(state);
 178             tool.append(new ValueUse(var));
 179         });
 180     }
 181 
 182     private static LIRFrameState modifyTopFrame(LIRFrameState state, JavaValue[] values, JavaKind[] slotKinds, int locals, int stack, int locks) {
 183         return modifyTopFrame(state, null, values, slotKinds, locals, stack, locks);
 184     }
 185 
 186     private static LIRFrameState modifyTopFrame(LIRFrameState state, VirtualObject[] vobj, JavaValue[] values, JavaKind[] slotKinds, int locals, int stack, int locks) {
 187         BytecodeFrame top = state.topFrame;
 188         top = new BytecodeFrame(top.caller(), top.getMethod(), top.getBCI(), top.rethrowException, top.duringCall, values, slotKinds, locals, stack, locks);
 189         return new LIRFrameState(top, vobj, state.exceptionEdge);
 190     }
 191 
 192     @Test(expected = JVMCIError.class)
 193     public void testUnexpectedScopeValuesLength() {




  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 package org.graalvm.compiler.hotspot.test;
  24 
  25 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
  26 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.STACK;
  27 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_IGNORED;
  28 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_IGNORED;
  29 
  30 import java.util.function.Consumer;
  31 
  32 import org.graalvm.compiler.code.CompilationResult;
  33 import org.graalvm.compiler.core.common.LIRKind;
  34 import org.graalvm.compiler.core.common.type.StampFactory;
  35 import org.graalvm.compiler.core.test.GraalCompilerTest;

  36 import org.graalvm.compiler.debug.DebugContext;
  37 import org.graalvm.compiler.debug.DebugContext.Scope;
  38 import org.graalvm.compiler.debug.DebugHandlersFactory;
  39 import org.graalvm.compiler.graph.NodeClass;
  40 import org.graalvm.compiler.hotspot.HotSpotCompiledCodeBuilder;
  41 import org.graalvm.compiler.lir.FullInfopointOp;
  42 import org.graalvm.compiler.lir.LIRFrameState;
  43 import org.graalvm.compiler.lir.LIRInstruction;
  44 import org.graalvm.compiler.lir.LIRInstructionClass;
  45 import org.graalvm.compiler.lir.Variable;
  46 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
  47 import org.graalvm.compiler.lir.gen.LIRGeneratorTool;
  48 import org.graalvm.compiler.nodeinfo.NodeInfo;
  49 import org.graalvm.compiler.nodes.DeoptimizingFixedWithNextNode;
  50 import org.graalvm.compiler.nodes.StructuredGraph;
  51 import org.graalvm.compiler.nodes.spi.LIRLowerable;
  52 import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
  53 import org.junit.Test;
  54 
  55 import jdk.vm.ci.code.BytecodeFrame;
  56 import jdk.vm.ci.code.CodeCacheProvider;
  57 import jdk.vm.ci.code.VirtualObject;
  58 import jdk.vm.ci.code.site.InfopointReason;


 133     public static void testMethod() {
 134     }
 135 
 136     private void test(TestSpec spec) {
 137         test(getDebugContext(), spec);
 138     }
 139 
 140     private void test(DebugContext debug, TestSpec spec) {
 141         ResolvedJavaMethod method = getResolvedJavaMethod("testMethod");
 142 
 143         StructuredGraph graph = parseForCompile(method, debug);
 144         TestNode test = graph.add(new TestNode(spec));
 145         graph.addAfterFixed(graph.start(), test);
 146 
 147         CompilationResult compResult = compile(method, graph);
 148         CodeCacheProvider codeCache = getCodeCache();
 149         HotSpotCompiledCode compiledCode = HotSpotCompiledCodeBuilder.createCompiledCode(codeCache, method, null, compResult);
 150         codeCache.addCode(method, compiledCode, null, null);
 151     }
 152 
 153     @Test(expected = Error.class)
 154     public void testInvalidShortOop() {
 155         test((tool, state, safepoint) -> {
 156             PlatformKind kind = tool.target().arch.getPlatformKind(JavaKind.Short);
 157             LIRKind lirKind = LIRKind.reference(kind);
 158 
 159             Variable var = tool.newVariable(lirKind);
 160             tool.append(new ValueDef(var));
 161             safepoint.accept(state);
 162             tool.append(new ValueUse(var));
 163         });
 164     }
 165 
 166     @Test(expected = Error.class)
 167     public void testInvalidShortDerivedOop() {
 168         test((tool, state, safepoint) -> {
 169             Variable baseOop = tool.newVariable(LIRKind.fromJavaKind(tool.target().arch, JavaKind.Object));
 170             tool.append(new ValueDef(baseOop));
 171 
 172             PlatformKind kind = tool.target().arch.getPlatformKind(JavaKind.Short);
 173             LIRKind lirKind = LIRKind.derivedReference(kind, baseOop, false);
 174 
 175             Variable var = tool.newVariable(lirKind);
 176             tool.append(new ValueDef(var));
 177             safepoint.accept(state);
 178             tool.append(new ValueUse(var));
 179         });
 180     }
 181 
 182     private static LIRFrameState modifyTopFrame(LIRFrameState state, JavaValue[] values, JavaKind[] slotKinds, int locals, int stack, int locks) {
 183         return modifyTopFrame(state, null, values, slotKinds, locals, stack, locks);
 184     }
 185 
 186     private static LIRFrameState modifyTopFrame(LIRFrameState state, VirtualObject[] vobj, JavaValue[] values, JavaKind[] slotKinds, int locals, int stack, int locks) {
 187         BytecodeFrame top = state.topFrame;
 188         top = new BytecodeFrame(top.caller(), top.getMethod(), top.getBCI(), top.rethrowException, top.duringCall, values, slotKinds, locals, stack, locks);
 189         return new LIRFrameState(top, vobj, state.exceptionEdge);
 190     }
 191 
 192     @Test(expected = JVMCIError.class)
 193     public void testUnexpectedScopeValuesLength() {


src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/JVMCIInfopointErrorTest.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File