Skip to content

Commit 1dc28cc

Browse files
committed
[JDK-8358545] Adapt "JDK-8357660: [JVMCI] Add support for retrieving all BootstrapMethodInvocations directly from ConstantPool"
PullRequest: graal/20996
2 parents 9316c8d + 3babd84 commit 1dc28cc

File tree

4 files changed

+29
-2
lines changed

4 files changed

+29
-2
lines changed

common.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
1010
"jdks": {
11-
"galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+26-3288", "platformspecific": true, "extrabundles": ["static-libs"]},
11+
"galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+26-3319", "platformspecific": true, "extrabundles": ["static-libs"]},
1212

1313
"oraclejdk17": {"name": "jpg-jdk", "version": "17.0.7", "build_id": "jdk-17.0.7+8", "platformspecific": true, "extrabundles": ["static-libs"]},
1414
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.7+4-jvmci-23.1-b02", "platformspecific": true },

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/replacements/classfile/ClassfileConstantPool.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
import java.io.DataInputStream;
3131
import java.io.IOException;
32+
import java.util.List;
3233

3334
import jdk.graal.compiler.core.common.LibGraalSupport;
3435
import jdk.graal.compiler.debug.GraalError;
@@ -37,7 +38,6 @@
3738
import jdk.graal.compiler.replacements.classfile.ClassfileConstant.FieldRef;
3839
import jdk.graal.compiler.replacements.classfile.ClassfileConstant.Primitive;
3940
import jdk.graal.compiler.replacements.classfile.ClassfileConstant.Utf8;
40-
4141
import jdk.vm.ci.meta.ConstantPool;
4242
import jdk.vm.ci.meta.JavaConstant;
4343
import jdk.vm.ci.meta.JavaField;
@@ -181,6 +181,11 @@ public JavaMethod lookupMethod(int index, int opcode, ResolvedJavaMethod caller)
181181
return result;
182182
}
183183

184+
@Override
185+
public List<BootstrapMethodInvocation> lookupBootstrapMethodInvocations(boolean invokeDynamic) {
186+
throw GraalError.unimplementedOverride(); // ExcludeFromJacocoGeneratedReport
187+
}
188+
184189
@Override
185190
public JavaType lookupType(int index, int opcode) {
186191
return get(ClassRef.class, index).resolve(this);

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/infrastructure/WrappedConstantPool.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,11 @@ public BootstrapMethodInvocation lookupBootstrapMethodInvocation(int cpi, int op
185185
return null;
186186
}
187187

188+
@Override
189+
public List<BootstrapMethodInvocation> lookupBootstrapMethodInvocations(boolean invokeDynamic) {
190+
return wrapped.lookupBootstrapMethodInvocations(invokeDynamic).stream().map(WrappedBootstrapMethodInvocation::new).collect(Collectors.toUnmodifiableList());
191+
}
192+
188193
public class WrappedBootstrapMethodInvocation implements BootstrapMethodInvocation {
189194

190195
private final BootstrapMethodInvocation wrapped;
@@ -217,5 +222,15 @@ public JavaConstant getType() {
217222
public List<JavaConstant> getStaticArguments() {
218223
return wrapped.getStaticArguments().stream().map(WrappedConstantPool.this::lookupConstant).collect(Collectors.toList());
219224
}
225+
226+
@Override
227+
public void resolve() {
228+
wrapped.resolve();
229+
}
230+
231+
@Override
232+
public JavaConstant lookup() {
233+
return lookupConstant(wrapped.lookup());
234+
}
220235
}
221236
}

substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterConstantPool.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
import jdk.vm.ci.meta.ResolvedJavaMethod;
4242
import jdk.vm.ci.meta.Signature;
4343

44+
import java.util.List;
45+
4446
public final class InterpreterConstantPool implements ConstantPool {
4547

4648
private final InterpreterResolvedObjectType holder;
@@ -89,6 +91,11 @@ public JavaMethod lookupMethod(int cpi, int opcode, ResolvedJavaMethod caller) {
8991
throw VMError.intentionallyUnimplemented();
9092
}
9193

94+
@Override
95+
public List<BootstrapMethodInvocation> lookupBootstrapMethodInvocations(boolean invokeDynamic) {
96+
throw VMError.intentionallyUnimplemented();
97+
}
98+
9299
@Override
93100
public JavaType lookupType(int cpi, int opcode) {
94101
return (JavaType) at(cpi);

0 commit comments

Comments
 (0)