graal/com.oracle.graal.compiler.ptx.test/src/com/oracle/graal/compiler/ptx/test/BasicPTXTest.java
Print this page
rev 8592 : Graal PTX enhancements
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -20,77 +20,43 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.oracle.graal.compiler.ptx.test;
-import org.junit.*;
+import java.lang.reflect.Method;
+
+import org.junit.Test;
-import com.oracle.graal.api.code.*;
-import com.oracle.graal.api.meta.*;
-import com.oracle.graal.api.runtime.*;
-import com.oracle.graal.compiler.*;
-import com.oracle.graal.compiler.ptx.*;
-import com.oracle.graal.compiler.test.*;
-import com.oracle.graal.debug.*;
-import com.oracle.graal.java.*;
-import com.oracle.graal.nodes.*;
-import com.oracle.graal.nodes.type.*;
-import com.oracle.graal.phases.*;
-import com.oracle.graal.phases.PhasePlan.*;
-import com.oracle.graal.ptx.*;
/**
* Test class for small Java methods compiled to PTX kernels.
*/
-public class BasicPTXTest extends GraalCompilerTest {
+public class BasicPTXTest extends PTXTestBase {
@Test
public void testAdd() {
- test("testAddSnippet");
+ compile("testAddSnippet");
}
public static int testAddSnippet(int a) {
return a + 1;
}
@Test
public void testArray() {
- test("testArraySnippet");
+ compile("testArraySnippet");
}
public static int testArraySnippet(int[] array) {
return array[0];
}
- private CompilationResult test(String snippet) {
- StructuredGraph graph = parse(snippet);
- Debug.dump(graph, "Graph");
- TargetDescription target = new TargetDescription(new PTX(), true, 1, 0, true);
- PTXBackend ptxBackend = new PTXBackend(Graal.getRequiredCapability(CodeCacheProvider.class), target);
- PhasePlan phasePlan = new PhasePlan();
- GraphBuilderPhase graphBuilderPhase = new GraphBuilderPhase(runtime, GraphBuilderConfiguration.getDefault(), OptimisticOptimizations.NONE);
- phasePlan.addPhase(PhasePosition.AFTER_PARSING, graphBuilderPhase);
- phasePlan.addPhase(PhasePosition.AFTER_PARSING, new PTXPhase());
- new PTXPhase().apply(graph);
- CompilationResult result = GraalCompiler.compileMethod(runtime, ptxBackend, target, graph.method(), graph, null, phasePlan, OptimisticOptimizations.NONE, new SpeculationLog());
- return result;
- }
-
- private static class PTXPhase extends Phase {
-
- @Override
- protected void run(StructuredGraph graph) {
- for (LocalNode local : graph.getNodes(LocalNode.class)) {
- if (local.kind() == Kind.Object) {
- local.setStamp(StampFactory.declaredNonNull(local.objectStamp().type()));
- }
+ public static void main(String[] args) {
+ BasicPTXTest test = new BasicPTXTest();
+ for (Method m : BasicPTXTest.class.getMethods()) {
+ String name = m.getName();
+ if (m.getAnnotation(Test.class) == null && name.startsWith("test")) {
+ System.out.println(name + ": \n" + new String(test.compile(name).getTargetCode()));
}
}
-
- }
-
- public static void main(String[] args) {
- BasicPTXTest basicPTXTest = new BasicPTXTest();
- System.out.println("testAddSnippet: \n" + new String(basicPTXTest.test("testAddSnippet").getTargetCode()));
- System.out.println("testArraySnippet: \n" + new String(basicPTXTest.test("testArraySnippet").getTargetCode()));
}
}