Skip to content

Commit

Permalink
Refactor: require root node constructor parameter to have concrete la…
Browse files Browse the repository at this point in the history
…nguage type
  • Loading branch information
DSouzaM committed Aug 27, 2024
1 parent d9420ff commit b40cfe9
Show file tree
Hide file tree
Showing 31 changed files with 110 additions and 135 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ static class InCompiledCodeException extends AbstractTruffleException {
private static final long serialVersionUID = 1L;
}

protected BytecodeDSLOSRTestRootNode(TruffleLanguage<?> language, FrameDescriptor fd) {
protected BytecodeDSLOSRTestRootNode(BytecodeDSLOSRTestLanguage language, FrameDescriptor fd) {
super(language, fd);
}

Expand Down Expand Up @@ -384,7 +384,7 @@ private static void enableInstrumentation(BytecodeDSLOSRTestRootNode root) {
@GenerateBytecode(languageClass = BytecodeDSLOSRTestLanguage.class, enableYield = true)
public abstract static class BytecodeDSLOSRTestRootNodeWithYield extends DebugBytecodeRootNode {

protected BytecodeDSLOSRTestRootNodeWithYield(TruffleLanguage<?> language, FrameDescriptor fd) {
protected BytecodeDSLOSRTestRootNodeWithYield(BytecodeDSLOSRTestLanguage language, FrameDescriptor fd) {
super(language, fd);
}

Expand Down
6 changes: 3 additions & 3 deletions truffle/docs/bytecode_dsl/BytecodeDSL.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Below is the complete Bytecode DSL specification for a small interpreter with a
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class)
public abstract static class SampleInterpreter extends RootNode implements BytecodeRootNode {
protected SampleInterpreter(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected SampleInterpreter(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}
Expand All @@ -44,8 +44,8 @@ From this specification, Bytecode DSL generates a bytecode interpreter in `Sampl
The generated code contains a builder class that automatically generates bytecode from a series of builder calls. We can build a bytecode program that adds two arguments as follows.

```
var rootNodes = SampleInterpreterGen.create(BytecodeConfig.DEFAULT, b -> {
b.beginRoot(null); // TruffleLanguage goes here
var rootNodes = SampleInterpreterGen.create(getLanguage(), BytecodeConfig.DEFAULT, b -> {
b.beginRoot();
b.beginReturn();
b.beginAdd();
b.emitLoadArgument(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
*/
package com.oracle.truffle.api.benchmark.bytecode;

import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeRootNode;
import com.oracle.truffle.api.bytecode.GenerateBytecode;
import com.oracle.truffle.api.bytecode.GenerateBytecodeTestVariants;
Expand All @@ -60,14 +59,10 @@
})
abstract class BytecodeBenchmarkRootNode extends RootNode implements BytecodeRootNode {

protected BytecodeBenchmarkRootNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BytecodeBenchmarkRootNode(BenchmarkLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

protected BytecodeBenchmarkRootNode(TruffleLanguage<?> language, FrameDescriptor.Builder frameDescriptor) {
super(language, frameDescriptor.build());
}

@Operation
static final class Add {
@Specialization
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
import org.junit.Test;

import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeConfig;
import com.oracle.truffle.api.bytecode.BytecodeLocal;
import com.oracle.truffle.api.bytecode.BytecodeNode;
Expand Down Expand Up @@ -1410,7 +1409,7 @@ private static BoxingEliminationTestRootNode parse(BytecodeParser<BoxingEliminat
@ShortCircuitOperation(name = "OrReturn", operator = Operator.OR_RETURN_VALUE, booleanConverter = ToBoolean.class)
public abstract static class BoxingEliminationTestRootNode extends DebugBytecodeRootNode implements BytecodeRootNode {

protected BoxingEliminationTestRootNode(TruffleLanguage<?> language,
protected BoxingEliminationTestRootNode(BytecodeDSLTestLanguage language,
FrameDescriptor.Builder frameDescriptor) {
super(language, customize(frameDescriptor).build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
import org.junit.Test;

import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeConfig;
import com.oracle.truffle.api.bytecode.BytecodeLocal;
import com.oracle.truffle.api.bytecode.BytecodeNode;
Expand Down Expand Up @@ -256,7 +255,7 @@ public void testCastConstantIntToLong() {
@SuppressWarnings("unused")
abstract static class BoxingEliminationTypeSystemRootNode extends DebugBytecodeRootNode implements BytecodeRootNode {

protected BoxingEliminationTypeSystemRootNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BoxingEliminationTypeSystemRootNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
import org.junit.runners.Parameterized.Parameters;

import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeConfig;
import com.oracle.truffle.api.bytecode.BytecodeLocal;
import com.oracle.truffle.api.bytecode.BytecodeNode;
Expand Down Expand Up @@ -313,7 +312,7 @@ public void testConstantOperandsInPrologNestedRoot() {

abstract class ConstantOperandTestRootNode extends RootNode implements BytecodeRootNode {

protected ConstantOperandTestRootNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected ConstantOperandTestRootNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down Expand Up @@ -405,7 +404,7 @@ public static int doInt(@SuppressWarnings("unused") Object ignored, int replacem
abstract class ConstantOperandsInPrologTestRootNode extends RootNode implements BytecodeRootNode {
public final List<Object> prologEvents = new ArrayList<>();

protected ConstantOperandsInPrologTestRootNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected ConstantOperandsInPrologTestRootNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand All @@ -426,7 +425,7 @@ public static void doVoid(String name, int number, @Bind ConstantOperandsInProlo
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class)
@SuppressWarnings("unused")
abstract class ConstantOperandErrorRootNode extends RootNode implements BytecodeRootNode {
protected ConstantOperandErrorRootNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected ConstantOperandErrorRootNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@

import org.junit.Test;

import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeConfig;
import com.oracle.truffle.api.bytecode.BytecodeLabel;
import com.oracle.truffle.api.bytecode.BytecodeParser;
Expand Down Expand Up @@ -960,7 +959,7 @@ private static DeadCodeTestRootNode parse(BytecodeParser<DeadCodeTestRootNodeGen
@ShortCircuitOperation(name = "OrReturn", operator = Operator.OR_RETURN_VALUE, booleanConverter = ToBoolean.class)
public abstract static class DeadCodeTestRootNode extends DebugBytecodeRootNode implements BytecodeRootNode {

protected DeadCodeTestRootNode(TruffleLanguage<?> language,
protected DeadCodeTestRootNode(BytecodeDSLTestLanguage language,
FrameDescriptor.Builder frameDescriptor) {
super(language, customize(frameDescriptor).build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
import org.junit.Assert;
import org.junit.Test;

import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeConfig;
import com.oracle.truffle.api.bytecode.BytecodeLocation;
import com.oracle.truffle.api.bytecode.BytecodeNode;
Expand Down Expand Up @@ -374,7 +373,7 @@ public void testInterceptsOnceWithExceptionalEpilog() {

@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class)
abstract class BytecodeNodeInterceptsAll extends RootNode implements BytecodeRootNode {
protected BytecodeNodeInterceptsAll(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BytecodeNodeInterceptsAll(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down Expand Up @@ -527,7 +526,7 @@ public static Object perform(VirtualFrame frame, BytecodeNodeInterceptsAll calle
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class)
abstract class BytecodeNodeInterceptsNothing extends RootNode implements BytecodeRootNode {

protected BytecodeNodeInterceptsNothing(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BytecodeNodeInterceptsNothing(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand All @@ -553,7 +552,7 @@ public static Object perform() {
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class)
abstract class BytecodeNodeInterceptsCF extends RootNode implements BytecodeRootNode {

protected BytecodeNodeInterceptsCF(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BytecodeNodeInterceptsCF(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down Expand Up @@ -584,7 +583,7 @@ public static Object perform() {
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class)
abstract class BytecodeNodeInterceptsInternal extends RootNode implements BytecodeRootNode {

protected BytecodeNodeInterceptsInternal(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BytecodeNodeInterceptsInternal(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down Expand Up @@ -616,7 +615,7 @@ public static Object perform() {
abstract class BytecodeNodeInterceptsTruffleWithEpilog extends RootNode implements BytecodeRootNode {
public int interceptCount = 0;

protected BytecodeNodeInterceptsTruffleWithEpilog(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BytecodeNodeInterceptsTruffleWithEpilog(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@

import org.junit.Test;

import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeConfig;
import com.oracle.truffle.api.bytecode.BytecodeNode;
import com.oracle.truffle.api.bytecode.BytecodeParser;
Expand All @@ -60,7 +59,6 @@
import com.oracle.truffle.api.bytecode.BytecodeTier;
import com.oracle.truffle.api.bytecode.GenerateBytecode;
import com.oracle.truffle.api.bytecode.Operation;
import com.oracle.truffle.api.bytecode.test.VariadicTest.TestLanguage;
import com.oracle.truffle.api.dsl.ImplicitCast;
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.dsl.TypeSystem;
Expand Down Expand Up @@ -184,14 +182,14 @@ private static ContinueAtSizes calculateSizes(BytecodeRootNode node) throws IOEx
record ContinueAtSizes(int cached, int uncached) {
}

@GenerateBytecode(languageClass = TestLanguage.class, //
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class, //
enableSerialization = true, //
enableYield = true, //
boxingEliminationTypes = {boolean.class}, //
enableUncachedInterpreter = true)
abstract static class OneOperationNode extends RootNode implements BytecodeRootNode {

protected OneOperationNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected OneOperationNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand All @@ -205,14 +203,14 @@ static int doDefault(int a, int b) {

}

@GenerateBytecode(languageClass = TestLanguage.class, //
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class, //
enableSerialization = true, //
enableYield = true, //
boxingEliminationTypes = {boolean.class}, //
enableUncachedInterpreter = true)
abstract static class TwoOperationNode extends RootNode implements BytecodeRootNode {

protected TwoOperationNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected TwoOperationNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand All @@ -234,14 +232,14 @@ static int doDefault(int a, int b) {

}

@GenerateBytecode(languageClass = TestLanguage.class, //
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class, //
enableSerialization = true, //
enableYield = true, //
boxingEliminationTypes = {boolean.class}, //
enableUncachedInterpreter = true)
abstract static class TwentyOperationNode extends RootNode implements BytecodeRootNode {

protected TwentyOperationNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected TwentyOperationNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down Expand Up @@ -407,7 +405,7 @@ static int doDefault(int a, int b) {

}

@GenerateBytecode(languageClass = TestLanguage.class, //
@GenerateBytecode(languageClass = BytecodeDSLTestLanguage.class, //
enableSerialization = true, //
enableYield = true, //
boxingEliminationTypes = {boolean.class, int.class, byte.class, long.class, float.class, double.class}, //
Expand All @@ -416,7 +414,7 @@ static int doDefault(int a, int b) {
@SuppressWarnings({"unused", "truffle"})
abstract static class ManyInstructionNode extends RootNode implements BytecodeRootNode {

protected ManyInstructionNode(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected ManyInstructionNode(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ public void testBoxingElimination() {
boxingEliminationTypes = {int.class})
public abstract static class InstrumentationTestRootNode extends DebugBytecodeRootNode implements BytecodeRootNode {

protected InstrumentationTestRootNode(TruffleLanguage<?> language,
protected InstrumentationTestRootNode(BytecodeInstrumentationTestLanguage language,
FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}
Expand Down Expand Up @@ -478,7 +478,7 @@ protected Object createContext(Env env) {
@GenerateBytecode(languageClass = BytecodeInstrumentationTestLanguage.class)
public abstract static class InstrumentationErrorRootNode1 extends DebugBytecodeRootNode implements BytecodeRootNode {

protected InstrumentationErrorRootNode1(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected InstrumentationErrorRootNode1(BytecodeInstrumentationTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.Truffle;
import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.bytecode.BytecodeConfig;
import com.oracle.truffle.api.bytecode.BytecodeLocal;
import com.oracle.truffle.api.bytecode.BytecodeNode;
Expand Down Expand Up @@ -793,7 +792,7 @@ public void testGetLocalNamesAndInfos() {
abstract class BytecodeNodeWithLocalIntrospection extends DebugBytecodeRootNode implements BytecodeRootNode {
public int reservedLocalIndex = -1;

protected BytecodeNodeWithLocalIntrospection(TruffleLanguage<?> language, FrameDescriptor frameDescriptor) {
protected BytecodeNodeWithLocalIntrospection(BytecodeDSLTestLanguage language, FrameDescriptor frameDescriptor) {
super(language, frameDescriptor);
}

Expand Down
Loading

0 comments on commit b40cfe9

Please sign in to comment.