Skip to content

Commit 18627a6

Browse files
committed
Move code reflection API into incubating module
Reviewed-by: psandoz, asotona
1 parent 86dfc36 commit 18627a6

File tree

402 files changed

+2514
-2062
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

402 files changed

+2514
-2062
lines changed

README.md

+4-8
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,10 @@ tracking.
1515

1616
The Babylon JDK builds like any other JDK, see the build instructions above.
1717

18-
### Code shared between `java.base` and `jdk.compiler` modules
19-
20-
A subset of code in `java.base` is copied with package renaming into
21-
the `jdk.compiler` module. This is the set of code required to build
22-
and serialize code models. Due to bootstrapping constraints, compiling
23-
the compiler it cannot depend on all code in `java.base`. In the future
24-
we may come up with a better solution. For now the build has been modified
25-
to copy the code, which leverages the script `cr-util/copy-to-compiler.sh`.
18+
The Babylon API and implementation resides in the incubating model
19+
`jdk.incubator.code`. Compilation and execution of dependent code requires
20+
that this module be made visible by explicitly adding to the list of modules
21+
e.g., such as with the command line option `--add-modules jdk.incubator.code`.
2622

2723
### Testing
2824

cr-examples/spirv/src/main/java/intel/code/spirv/PointerType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
package intel.code.spirv;
2727

28-
import java.lang.reflect.code.TypeElement;
28+
import jdk.incubator.code.TypeElement;
2929
import java.util.Objects;
3030
import java.util.List;
3131

cr-examples/spirv/src/main/java/intel/code/spirv/SpirvModuleGenerator.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@
4848
import jdk.incubator.vector.FloatVector;
4949
import java.lang.foreign.MemorySegment;
5050
import java.lang.foreign.ValueLayout;
51-
import java.lang.reflect.code.Block;
52-
import java.lang.reflect.code.Body;
53-
import java.lang.reflect.code.Op;
54-
import java.lang.reflect.code.Value;
55-
import java.lang.reflect.code.op.CoreOp;
56-
import java.lang.reflect.code.TypeElement;
57-
import java.lang.reflect.code.type.MethodRef;
58-
import java.lang.reflect.code.type.ClassType;
59-
import java.lang.reflect.code.type.JavaType;
51+
import jdk.incubator.code.Block;
52+
import jdk.incubator.code.Body;
53+
import jdk.incubator.code.Op;
54+
import jdk.incubator.code.Value;
55+
import jdk.incubator.code.op.CoreOp;
56+
import jdk.incubator.code.TypeElement;
57+
import jdk.incubator.code.type.MethodRef;
58+
import jdk.incubator.code.type.ClassType;
59+
import jdk.incubator.code.type.JavaType;
6060
import uk.ac.manchester.beehivespirvtoolkit.lib.SPIRVHeader;
6161
import uk.ac.manchester.beehivespirvtoolkit.lib.SPIRVModule;
6262
import uk.ac.manchester.beehivespirvtoolkit.lib.SPIRVFunction;

cr-examples/spirv/src/main/java/intel/code/spirv/SpirvOp.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727

2828
import java.util.List;
2929
import java.util.Map;
30-
import java.lang.reflect.code.Op;
31-
import java.lang.reflect.code.Value;
32-
import java.lang.reflect.code.CopyContext;
33-
import java.lang.reflect.code.TypeElement;
34-
import java.lang.reflect.code.type.JavaType;
30+
import jdk.incubator.code.Op;
31+
import jdk.incubator.code.Value;
32+
import jdk.incubator.code.CopyContext;
33+
import jdk.incubator.code.TypeElement;
34+
import jdk.incubator.code.type.JavaType;
3535

3636
public abstract class SpirvOp extends Op {
3737
private final TypeElement type;

cr-examples/spirv/src/main/java/intel/code/spirv/SpirvOps.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@
2626
package intel.code.spirv;
2727

2828
import java.util.List;
29-
import java.lang.reflect.code.Block;
30-
import java.lang.reflect.code.Body;
31-
import java.lang.reflect.code.Op;
32-
import java.lang.reflect.code.Value;
33-
import java.lang.reflect.code.CopyContext;
34-
import java.lang.reflect.code.OpTransformer;
35-
import java.lang.reflect.code.TypeElement;
36-
import java.lang.reflect.code.type.MethodRef;
37-
import java.lang.reflect.code.type.FieldRef;
38-
import java.lang.reflect.code.type.FunctionType;
39-
import java.lang.reflect.code.type.JavaType;
29+
import jdk.incubator.code.Block;
30+
import jdk.incubator.code.Body;
31+
import jdk.incubator.code.Op;
32+
import jdk.incubator.code.Value;
33+
import jdk.incubator.code.CopyContext;
34+
import jdk.incubator.code.OpTransformer;
35+
import jdk.incubator.code.TypeElement;
36+
import jdk.incubator.code.type.MethodRef;
37+
import jdk.incubator.code.type.FieldRef;
38+
import jdk.incubator.code.type.FunctionType;
39+
import jdk.incubator.code.type.JavaType;
4040

4141
public class SpirvOps {
4242
private static final String NAME_PREFIX = "spirv.";

cr-examples/spirv/src/main/java/intel/code/spirv/SpirvType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
package intel.code.spirv;
2727

28-
import java.lang.reflect.code.TypeElement;
28+
import jdk.incubator.code.TypeElement;
2929

3030
public abstract sealed class SpirvType implements TypeElement permits PointerType, StorageType {
3131
}

cr-examples/spirv/src/main/java/intel/code/spirv/TranslateToSpirvModel.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@
2929
import java.util.ArrayList;
3030
import java.util.Map;
3131
import java.util.HashMap;
32-
import java.lang.reflect.code.Block;
33-
import java.lang.reflect.code.Body;
34-
import java.lang.reflect.code.op.CoreOp;
35-
import java.lang.reflect.code.Op;
36-
import java.lang.reflect.code.Value;
37-
import java.lang.reflect.code.TypeElement;
38-
import java.lang.reflect.code.type.JavaType;
32+
import jdk.incubator.code.Block;
33+
import jdk.incubator.code.Body;
34+
import jdk.incubator.code.op.CoreOp;
35+
import jdk.incubator.code.Op;
36+
import jdk.incubator.code.Value;
37+
import jdk.incubator.code.TypeElement;
38+
import jdk.incubator.code.type.JavaType;
3939

4040
public class TranslateToSpirvModel {
4141
private Map<Block, Block.Builder> blockMap; // Java block to spirv block builder

cr-examples/spirv/src/test/java/intel/code/spirv/ExampleUseTest.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@
2727

2828
import java.lang.reflect.Method;
2929
import java.lang.foreign.MemorySegment;
30-
import java.lang.runtime.CodeReflection;
31-
import java.lang.reflect.code.op.CoreOp;
30+
import jdk.incubator.code.Op;
31+
import jdk.incubator.code.CodeReflection;
32+
import jdk.incubator.code.op.CoreOp;
3233
import org.junit.jupiter.api.Test;
3334

3435
public class ExampleUseTest {
@@ -51,7 +52,7 @@ public void test() throws Exception {
5152
String methodName = "matrixMultiply";
5253
Method method = ExampleUseTest.class.getDeclaredMethod(methodName, float[].class, float[].class, float[].class, int.class);
5354

54-
CoreOp.FuncOp javaFunc = method.getCodeModel().get();
55+
CoreOp.FuncOp javaFunc = Op.ofMethod(method).get();
5556
SpirvOps.FuncOp spirvFunc = TranslateToSpirvModel.translateFunction(javaFunc);
5657
MemorySegment spirvBinary = SpirvModuleGenerator.generateModule(methodName, spirvFunc);
5758

cr-examples/triton/src/main/java/oracle/code/triton/ArithMathOps.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.*;
29-
import java.lang.reflect.code.op.*;
30-
import java.lang.reflect.code.type.JavaType;
28+
import jdk.incubator.code.*;
29+
import jdk.incubator.code.op.*;
30+
import jdk.incubator.code.type.JavaType;
3131
import java.util.HashMap;
3232
import java.util.List;
3333
import java.util.Map;

cr-examples/triton/src/main/java/oracle/code/triton/ConstantType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.TypeElement;
28+
import jdk.incubator.code.TypeElement;
2929
import java.util.List;
3030
import java.util.Objects;
3131

cr-examples/triton/src/main/java/oracle/code/triton/Float16.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.TypeElement;
29-
import java.lang.reflect.code.type.JavaType;
28+
import jdk.incubator.code.TypeElement;
29+
import jdk.incubator.code.type.JavaType;
3030

3131
// Fake float 16 type
3232
public final class Float16 extends TritonNumber {

cr-examples/triton/src/main/java/oracle/code/triton/Functions.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@
2626
package oracle.code.triton;
2727

2828
import java.lang.reflect.Method;
29-
import java.lang.reflect.code.op.CoreOp;
30-
import java.lang.runtime.CodeReflection;
29+
import jdk.incubator.code.Op;
30+
import jdk.incubator.code.op.CoreOp;
31+
import jdk.incubator.code.CodeReflection;
3132
import java.util.Optional;
3233
import java.util.stream.Stream;
3334

@@ -57,6 +58,6 @@ static CoreOp.FuncOp getJavaCodeModel(String name) {
5758
.findFirst();
5859

5960
Method m = om.get();
60-
return m.getCodeModel().get();
61+
return Op.ofMethod(m).get();
6162
}
6263
}

cr-examples/triton/src/main/java/oracle/code/triton/PtrType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.TypeElement;
28+
import jdk.incubator.code.TypeElement;
2929
import java.util.List;
3030
import java.util.Objects;
3131

cr-examples/triton/src/main/java/oracle/code/triton/SCFOps.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.*;
29-
import java.lang.reflect.code.op.*;
30-
import java.lang.reflect.code.type.FunctionType;
31-
import java.lang.reflect.code.type.JavaType;
32-
import java.lang.reflect.code.type.TupleType;
28+
import jdk.incubator.code.*;
29+
import jdk.incubator.code.op.*;
30+
import jdk.incubator.code.type.FunctionType;
31+
import jdk.incubator.code.type.JavaType;
32+
import jdk.incubator.code.type.TupleType;
3333
import java.util.ArrayList;
3434
import java.util.List;
3535
import java.util.function.Consumer;

cr-examples/triton/src/main/java/oracle/code/triton/SimpleCountedForLoopInfo.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.Op;
29-
import java.lang.reflect.code.Value;
30-
import java.lang.reflect.code.analysis.Patterns;
31-
import java.lang.reflect.code.op.CoreOp;
32-
import java.lang.reflect.code.op.CoreOp.VarAccessOp.VarLoadOp;
33-
import java.lang.reflect.code.op.CoreOp.VarAccessOp.VarStoreOp;
34-
import java.lang.reflect.code.op.ExtendedOp;
35-
import java.lang.reflect.code.type.JavaType;
28+
import jdk.incubator.code.Op;
29+
import jdk.incubator.code.Value;
30+
import jdk.incubator.code.analysis.Patterns;
31+
import jdk.incubator.code.op.CoreOp;
32+
import jdk.incubator.code.op.CoreOp.VarAccessOp.VarLoadOp;
33+
import jdk.incubator.code.op.CoreOp.VarAccessOp.VarStoreOp;
34+
import jdk.incubator.code.op.ExtendedOp;
35+
import jdk.incubator.code.type.JavaType;
3636
import java.util.ArrayList;
3737
import java.util.List;
3838

39-
import static java.lang.reflect.code.analysis.Patterns.*;
39+
import static jdk.incubator.code.analysis.Patterns.*;
4040

4141
// @@@ Very basic, limited, and partially correct
4242
public class SimpleCountedForLoopInfo {

cr-examples/triton/src/main/java/oracle/code/triton/TensorType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.TypeElement;
28+
import jdk.incubator.code.TypeElement;
2929
import java.util.ArrayList;
3030
import java.util.List;
3131
import java.util.Objects;

cr-examples/triton/src/main/java/oracle/code/triton/Triton.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
package oracle.code.triton;
2727

2828
import java.lang.reflect.Type;
29-
import java.lang.runtime.CodeReflection;
29+
import jdk.incubator.code.CodeReflection;
3030
import java.util.List;
3131

3232
public class Triton {

cr-examples/triton/src/main/java/oracle/code/triton/TritonOps.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.*;
29-
import java.lang.reflect.code.op.*;
30-
import java.lang.reflect.code.type.*;
28+
import jdk.incubator.code.*;
29+
import jdk.incubator.code.op.*;
30+
import jdk.incubator.code.type.*;
3131
import java.util.*;
3232
import java.util.function.Consumer;
3333

cr-examples/triton/src/main/java/oracle/code/triton/TritonTestOps.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.CopyContext;
29-
import java.lang.reflect.code.OpTransformer;
30-
import java.lang.reflect.code.TypeElement;
31-
import java.lang.reflect.code.Value;
32-
import java.lang.reflect.code.op.OpFactory;
33-
import java.lang.reflect.code.op.ExternalizableOp;
34-
import java.lang.reflect.code.type.JavaType;
28+
import jdk.incubator.code.CopyContext;
29+
import jdk.incubator.code.OpTransformer;
30+
import jdk.incubator.code.TypeElement;
31+
import jdk.incubator.code.Value;
32+
import jdk.incubator.code.op.OpFactory;
33+
import jdk.incubator.code.op.ExternalizableOp;
34+
import jdk.incubator.code.type.JavaType;
3535
import java.util.List;
3636

3737
public class TritonTestOps {

cr-examples/triton/src/main/java/oracle/code/triton/TritonTransformer.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@
2929
import java.lang.invoke.MethodHandles;
3030
import java.lang.reflect.Field;
3131
import java.lang.reflect.Method;
32-
import java.lang.reflect.code.*;
33-
import java.lang.reflect.code.analysis.SSA;
34-
import java.lang.reflect.code.op.CoreOp;
35-
import java.lang.reflect.code.op.ExtendedOp;
36-
import java.lang.reflect.code.type.JavaType;
37-
import java.lang.reflect.code.type.VarType;
32+
import jdk.incubator.code.*;
33+
import jdk.incubator.code.analysis.SSA;
34+
import jdk.incubator.code.op.CoreOp;
35+
import jdk.incubator.code.op.ExtendedOp;
36+
import jdk.incubator.code.type.JavaType;
37+
import jdk.incubator.code.type.VarType;
3838
import java.util.*;
3939
import java.util.concurrent.atomic.AtomicInteger;
4040
import java.util.stream.Stream;
4141

42-
import static java.lang.reflect.code.op.CoreOp.*;
43-
import static java.lang.reflect.code.type.FunctionType.functionType;
42+
import static jdk.incubator.code.op.CoreOp.*;
43+
import static jdk.incubator.code.type.FunctionType.functionType;
4444

4545
public final class TritonTransformer {
4646
private TritonTransformer() {}

cr-examples/triton/src/main/java/oracle/code/triton/TritonType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
package oracle.code.triton;
2727

28-
import java.lang.reflect.code.TypeElement;
28+
import jdk.incubator.code.TypeElement;
2929

3030
public abstract sealed class TritonType implements TypeElement
3131
permits ConstantType, PtrType, TensorType {

cr-examples/triton/src/test/java/oracle/code/triton/TestAddKernel.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
import org.junit.jupiter.api.Test;
2828
import org.junit.jupiter.api.extension.ExtendWith;
2929

30-
import java.lang.reflect.code.TypeElement;
31-
import java.lang.reflect.code.type.JavaType;
32-
import java.lang.runtime.CodeReflection;
30+
import jdk.incubator.code.TypeElement;
31+
import jdk.incubator.code.type.JavaType;
32+
import jdk.incubator.code.CodeReflection;
3333
import java.util.List;
3434

3535
@ExtendWith(TritonTestExtension.class)

cr-examples/triton/src/test/java/oracle/code/triton/TestBroadcast.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
import org.junit.jupiter.api.Test;
2828
import org.junit.jupiter.api.extension.ExtendWith;
2929

30-
import java.lang.reflect.code.TypeElement;
31-
import java.lang.reflect.code.type.JavaType;
32-
import java.lang.runtime.CodeReflection;
30+
import jdk.incubator.code.TypeElement;
31+
import jdk.incubator.code.type.JavaType;
32+
import jdk.incubator.code.CodeReflection;
3333
import java.util.List;
3434

3535
import static oracle.code.triton.Triton.*;

cr-examples/triton/src/test/java/oracle/code/triton/TestCdiv.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
import org.junit.jupiter.api.Test;
2828
import org.junit.jupiter.api.extension.ExtendWith;
2929

30-
import java.lang.reflect.code.TypeElement;
31-
import java.lang.reflect.code.type.JavaType;
32-
import java.lang.runtime.CodeReflection;
30+
import jdk.incubator.code.TypeElement;
31+
import jdk.incubator.code.type.JavaType;
32+
import jdk.incubator.code.CodeReflection;
3333
import java.util.List;
3434

3535
import static oracle.code.triton.Triton.*;

cr-examples/triton/src/test/java/oracle/code/triton/TestCountedLoop.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
import org.junit.jupiter.api.Test;
2828
import org.junit.jupiter.api.extension.ExtendWith;
2929

30-
import java.lang.reflect.code.TypeElement;
31-
import java.lang.reflect.code.type.JavaType;
32-
import java.lang.runtime.CodeReflection;
30+
import jdk.incubator.code.TypeElement;
31+
import jdk.incubator.code.type.JavaType;
32+
import jdk.incubator.code.CodeReflection;
3333
import java.util.List;
3434

3535
import static oracle.code.triton.Triton.*;

0 commit comments

Comments
 (0)