Skip to content

Commit c951736

Browse files
author
Killian Perlin
committed
resolve merge conflict
the nanopass code was changed to adhere to the new function call architecture
1 parent 08ec2a8 commit c951736

File tree

5 files changed

+18
-43
lines changed

5 files changed

+18
-43
lines changed

lkql_jit/language/src/main/java/com/adacore/lkql_jit/langkit_translator/passes/Hierarchy.java

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ private void become(int size, boolean[] matrix, HashMap<String, Integer> index)
7979
/**
8080
* Computes a hierarchy of currently available classes in the Lkt bindings.
8181
*/
82+
@SuppressWarnings("unchecked")
8283
@TruffleBoundary
8384
public static Hierarchy initial() {
8485
// Collect all inital classes
@@ -250,30 +251,4 @@ public void removeAll(Collection<String> classes) {
250251

251252
become(size, matrix, index);
252253
}
253-
254-
// Primarily used in testing
255-
/** Equality implementation */
256-
@TruffleBoundary
257-
public boolean equals(Object otherObject) {
258-
if (otherObject == null) return false;
259-
if (otherObject instanceof Hierarchy other) {
260-
if (size != other.size) return false;
261-
if (!index.keySet().equals(other.index.keySet())) return false;
262-
263-
for (var x : index.keySet()) {
264-
final var classX = index.get(x);
265-
final var otherX = other.index.get(x);
266-
for (var y : index.keySet()) {
267-
final var classY = index.get(y);
268-
final var otherY = other.index.get(y);
269-
if (
270-
matrix[classX * size + classY] != other.matrix[otherX * size + otherY]
271-
) return false;
272-
}
273-
}
274-
275-
return true;
276-
}
277-
return false;
278-
}
279254
}

lkql_jit/language/src/main/java/com/adacore/lkql_jit/langkit_translator/passes/TranslationPass.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1977,16 +1977,10 @@ public LKQLNode visit(Liblkqllang.PassDecl passDecl) {
19771977
scriptFrames.enterFrame(passDecl);
19781978

19791979
final int nbFakeArgs = Constants.PASS_FAKE_ARGS.length;
1980-
final var parameterDeclarations = new ParameterDeclaration[nbFakeArgs];
1981-
final var readArguments = new ReadArgument[nbFakeArgs];
1980+
final var readParameters = new ReadParameter[nbFakeArgs];
19821981
for (int i = 0; i < nbFakeArgs; i++) {
19831982
final String argName = Constants.PASS_FAKE_ARGS[i];
1984-
parameterDeclarations[i] = new ParameterDeclaration(
1985-
source.createUnavailableSection(),
1986-
argName,
1987-
null
1988-
);
1989-
readArguments[i] = new ReadArgument(
1983+
readParameters[i] = new ReadParameter(
19901984
source.createUnavailableSection(),
19911985
scriptFrames.getParameter(argName)
19921986
);
@@ -2003,7 +1997,7 @@ public LKQLNode visit(Liblkqllang.PassDecl passDecl) {
20031997
addBlock,
20041998
delBlock,
20051999
rewriteBlock,
2006-
readArguments[0]
2000+
readParameters[0]
20072001
);
20082002

20092003
final var docstring = passDecl.pDoc();
@@ -2012,16 +2006,18 @@ public LKQLNode visit(Liblkqllang.PassDecl passDecl) {
20122006
location,
20132007
scriptFrames.getFrameDescriptor(),
20142008
scriptFrames.getClosureDescriptor(),
2015-
parameterDeclarations,
2009+
Constants.PASS_FAKE_ARGS,
2010+
new Expr[Constants.PASS_FAKE_ARGS.length],
20162011
docstring.isNone() ? "" : parseStringLiteral(docstring),
2017-
passExpr
2012+
passExpr,
2013+
"<anonymous>"
20182014
);
20192015

20202016
// Cleanup
20212017
inPass = false;
20222018
this.scriptFrames.exitFrame();
20232019

2024-
final var functionDecl = new FunctionDeclaration(location, null, name, slot, funExpr);
2020+
final var functionDecl = new FunctionDeclaration(location, null, slot, funExpr);
20252021

20262022
return functionDecl;
20272023
}

lkql_jit/language/src/main/java/com/adacore/lkql_jit/nodes/expressions/DynamicConstructorCall.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public int arity() {
5252
public String[] getArgNames() {
5353
final var argNames = new String[args.getArgs().length];
5454
for (int i = 0; i < argNames.length; i++) {
55-
argNames[i] = ((NamedArg) this.args.getArgs()[i]).getArgName().getName();
55+
argNames[i] = this.args.getArgs()[i].getArgStringName();
5656
}
5757
return argNames;
5858
}
@@ -61,7 +61,11 @@ public String[] getArgNames() {
6161

6262
@Override
6363
public Object executeGeneric(VirtualFrame frame) {
64-
return new DynamicAdaNode(nodeKind, this.args.executeArgList(frame), this.getArgNames());
64+
final Object[] argVals = new Object[arity()];
65+
for (int i = 0; i < arity(); i++) {
66+
argVals[i] = args.getArgs()[i].executeGeneric(frame);
67+
}
68+
return new DynamicAdaNode(nodeKind, argVals, this.getArgNames());
6569
}
6670

6771
// ----- Override methods -----

lkql_jit/language/src/main/java/com/adacore/lkql_jit/nodes/pass/PassExpr.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.adacore.lkql_jit.LKQLLanguage;
99
import com.adacore.lkql_jit.exception.LKQLRuntimeException;
1010
import com.adacore.lkql_jit.nodes.expressions.Expr;
11-
import com.adacore.lkql_jit.nodes.expressions.value_read.ReadArgument;
11+
import com.adacore.lkql_jit.nodes.expressions.value_read.ReadParameter;
1212
import com.adacore.lkql_jit.runtime.values.DynamicAdaNode;
1313
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
1414
import com.oracle.truffle.api.dsl.Fallback;
@@ -25,7 +25,7 @@
2525
* A pass expr is the body of the synthesized function and contains
2626
* all the logic needed to execute a pass.
2727
*/
28-
@NodeChild(value = "readInput", type = ReadArgument.class)
28+
@NodeChild(value = "readInput", type = ReadParameter.class)
2929
public abstract class PassExpr extends Expr {
3030

3131
// This field doesn't need to be a child with regard to execution,

lkql_jit/language/src/main/java/com/adacore/lkql_jit/nodes/pass/RunPass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public Object executeGeneric(VirtualFrame frame) {
5555
}
5656

5757
// Setup all units roots
58-
final var roots = ctx.getAllUnitsRoots();
58+
final var roots = ctx.allUnitsRoots();
5959
final var units = new Object[roots.length];
6060
for (int i = 0; i < roots.length; i++) {
6161
if (ctx.isVerbose()) {

0 commit comments

Comments
 (0)