Skip to content

Commit 3b5860a

Browse files
committed
[GR-60011] Delete CompositeValueClass.
PullRequest: graal/19392
2 parents bcd53e5 + eaf37ca commit 3b5860a

File tree

12 files changed

+29
-249
lines changed

12 files changed

+29
-249
lines changed

compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/lir/test/CompositeValueReplacementTest1.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public CompositeValue forEachComponent(LIRInstruction inst, OperandMode mode, In
7575
protected void visitEachComponent(LIRInstruction inst, OperandMode mode, InstructionValueConsumer proc) {
7676
proc.visitValue(inst, value, mode, flags);
7777
}
78+
79+
@Override
80+
public String toString() {
81+
return String.valueOf(value);
82+
}
7883
}
7984

8085
private static class DummyValue extends Value {

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/graph/NodeClass.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
import jdk.graal.compiler.nodeinfo.NodeSize;
7272
import jdk.graal.compiler.nodeinfo.Verbosity;
7373
import jdk.internal.misc.Unsafe;
74+
import org.graalvm.nativeimage.Platform;
75+
import org.graalvm.nativeimage.Platforms;
7476

7577
/**
7678
* Metadata for every {@link Node} type. The metadata includes:
@@ -109,6 +111,7 @@ private static <T extends Annotation> T getAnnotationTimed(AnnotatedElement e, C
109111
/**
110112
* Gets the {@link NodeClass} associated with a given {@link Class}.
111113
*/
114+
@Platforms(Platform.HOSTED_ONLY.class)
112115
public static <T> NodeClass<T> create(Class<T> c) {
113116
assert getUnchecked(c) == null;
114117
Class<? super T> superclass = c.getSuperclass();
@@ -120,6 +123,7 @@ public static <T> NodeClass<T> create(Class<T> c) {
120123
}
121124

122125
@SuppressWarnings("unchecked")
126+
@Platforms(Platform.HOSTED_ONLY.class)
123127
private static <T> NodeClass<T> getUnchecked(Class<T> clazz) {
124128
try {
125129
Field field = clazz.getDeclaredField("TYPE");
@@ -130,6 +134,7 @@ private static <T> NodeClass<T> getUnchecked(Class<T> clazz) {
130134
}
131135
}
132136

137+
@Platforms(Platform.HOSTED_ONLY.class)
133138
public static <T> NodeClass<T> get(Class<T> clazz) {
134139
NodeClass<T> result = getUnchecked(clazz);
135140
if (result == null && clazz != NODE_CLASS) {
@@ -169,12 +174,14 @@ public static <T> NodeClass<T> get(Class<T> clazz) {
169174

170175
private final int leafId;
171176

177+
@Platforms(Platform.HOSTED_ONLY.class)
172178
public NodeClass(Class<T> clazz, NodeClass<? super T> superNodeClass) {
173179
this(clazz, superNodeClass, new FieldsScanner.DefaultCalcOffset(), null, 0);
174180
}
175181

176182
@SuppressWarnings("try")
177-
public NodeClass(Class<T> clazz, NodeClass<? super T> superNodeClass, FieldsScanner.CalcOffset calcOffset, int[] presetIterableIds, int presetIterableId) {
183+
@Platforms(Platform.HOSTED_ONLY.class)
184+
private NodeClass(Class<T> clazz, NodeClass<? super T> superNodeClass, FieldsScanner.CalcOffset calcOffset, int[] presetIterableIds, int presetIterableId) {
178185
super(clazz);
179186
DebugContext debug = DebugContext.forCurrentThread();
180187
this.superNodeClass = superNodeClass;

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/lir/CompositeValue.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ public abstract class CompositeValue extends Value {
4848

4949
public CompositeValue(ValueKind<?> kind) {
5050
super(kind);
51-
assert CompositeValueClass.get(getClass()) != null;
5251
}
5352

5453
/**
@@ -64,10 +63,11 @@ public CompositeValue(ValueKind<?> kind) {
6463

6564
protected abstract void visitEachComponent(LIRInstruction inst, LIRInstruction.OperandMode mode, InstructionValueConsumer proc);
6665

66+
/**
67+
* Must be implemented by subclasses.
68+
*/
6769
@Override
68-
public String toString() {
69-
return CompositeValueClass.format(this);
70-
}
70+
public abstract String toString();
7171

7272
@Override
7373
public int hashCode() {

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/lir/CompositeValueClass.java

Lines changed: 0 additions & 125 deletions
This file was deleted.

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/lir/LIRInstructionClass.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@
4040
import jdk.graal.compiler.lir.StandardOp.ValueMoveOp;
4141
import jdk.vm.ci.code.BytecodeFrame;
4242
import jdk.vm.ci.meta.Value;
43+
import org.graalvm.nativeimage.Platform;
44+
import org.graalvm.nativeimage.Platforms;
4345

4446
public class LIRInstructionClass<T> extends LIRIntrospection<T> {
4547

48+
@Platforms(Platform.HOSTED_ONLY.class)
4649
public static <T extends LIRInstruction> LIRInstructionClass<T> create(Class<T> c) {
4750
return new LIRInstructionClass<>(c);
4851
}
@@ -63,10 +66,12 @@ public static <T extends LIRInstruction> LIRInstructionClass<T> create(Class<T>
6366
private String opcodeConstant;
6467
private int opcodeIndex;
6568

69+
@Platforms(Platform.HOSTED_ONLY.class)
6670
private LIRInstructionClass(Class<T> clazz) {
6771
this(clazz, new FieldsScanner.DefaultCalcOffset());
6872
}
6973

74+
@Platforms(Platform.HOSTED_ONLY.class)
7075
public LIRInstructionClass(Class<T> clazz, FieldsScanner.CalcOffset calcOffset) {
7176
super(clazz);
7277
assert INSTRUCTION_CLASS.isAssignableFrom(clazz);
@@ -95,6 +100,7 @@ public LIRInstructionClass(Class<T> clazz, FieldsScanner.CalcOffset calcOffset)
95100
}
96101

97102
@SuppressWarnings("unchecked")
103+
@Platforms(Platform.HOSTED_ONLY.class)
98104
public static <T> LIRInstructionClass<T> get(Class<T> clazz) {
99105
try {
100106
Field field = clazz.getDeclaredField("TYPE");

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/lir/aarch64/AArch64AddressValue.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,4 +163,10 @@ protected void visitEachComponent(LIRInstruction inst, LIRInstruction.OperandMod
163163
proc.visitValue(inst, base, mode, flags);
164164
proc.visitValue(inst, offset, mode, flags);
165165
}
166+
167+
@Override
168+
public String toString() {
169+
return String.format("{base: %s, offset: %s} bitMemoryTransferSize: %s displacement: %s scaleFactor: %s addressingMode: %s",
170+
base, offset, bitMemoryTransferSize, displacement, scaleFactor, addressingMode);
171+
}
166172
}

substratevm/src/com.oracle.svm.graal.hotspot.libgraal/src/com/oracle/svm/graal/hotspot/libgraal/LibGraalCompilerSupport.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public class LibGraalCompilerSupport {
3939

4040
public final EconomicMap<Class<?>, Object> nodeClasses = ImageHeapMap.create();
4141
public final EconomicMap<Class<?>, Object> instructionClasses = ImageHeapMap.create();
42-
public final EconomicMap<Class<?>, Object> compositeValueClasses = ImageHeapMap.create();
4342

4443
protected EconomicMap<Class<?>, Object> basePhaseStatistics = ImageHeapMap.create();
4544
protected EconomicMap<Class<?>, Object> lirPhaseStatistics = ImageHeapMap.create();

substratevm/src/com.oracle.svm.graal.hotspot.libgraal/src/com/oracle/svm/graal/hotspot/libgraal/LibGraalFieldsOffsetsFeature.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,6 @@ public final class LibGraalFieldsOffsetsFeature implements InternalFeature {
9292
private Class<?> lirInstructionClass;
9393
private Class<?> lirInstructionClassClass;
9494
private MethodHandle lirInstructionClassClassGetMethod;
95-
private Class<?> compositeValueClass;
96-
private Class<?> compositeValueClassClass;
97-
private MethodHandle compositeValueClassClassGetMethod;
9895

9996
private static class FieldsOffsetsReplacement {
10097
protected final Object fields;
@@ -128,8 +125,6 @@ public void duringSetup(DuringSetupAccess a) {
128125
nodeClassClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.graph.NodeClass");
129126
lirInstructionClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.lir.LIRInstruction");
130127
lirInstructionClassClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.lir.LIRInstructionClass");
131-
compositeValueClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.lir.CompositeValue");
132-
compositeValueClassClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.lir.CompositeValueClass");
133128
fieldIntrospectionClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.core.common.FieldIntrospection");
134129
inputEdgesClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.graph.InputEdges");
135130
successorEdgesClass = libGraalFeature.loadClassOrFail("jdk.graal.compiler.graph.SuccessorEdges");
@@ -151,7 +146,6 @@ public void duringSetup(DuringSetupAccess a) {
151146
nodeClassClassComputeIterationMaskMethod = mhl.findStatic(nodeClassClass, "computeIterationMask", MethodType.methodType(long.class, edgesTypeClass, int.class, long[].class));
152147

153148
lirInstructionClassClassGetMethod = mhl.findStatic(lirInstructionClassClass, "get", MethodType.methodType(lirInstructionClassClass, Class.class));
154-
compositeValueClassClassGetMethod = mhl.findStatic(compositeValueClassClass, "get", MethodType.methodType(compositeValueClassClass, Class.class));
155149

156150
fieldIntrospectionClassGetDataMethod = mhl.findVirtual(fieldIntrospectionClass, "getData", MethodType.methodType(fieldsClass));
157151
fieldIntrospectionClassGetAllFieldsMethod = mhl.findVirtual(fieldIntrospectionClass, "getAllFields", MethodType.methodType(fieldsClass.arrayType()));
@@ -251,8 +245,6 @@ private void classReachabilityListener(DuringAnalysisAccess a, Class<?> newlyRea
251245
registerClass(newlyReachableClass, LibGraalCompilerSupport.get().nodeClasses, this::getNodeClassFromNode, false, access);
252246
} else if (!newlyReachableClass.equals(lirInstructionClass) && lirInstructionClass.isAssignableFrom(newlyReachableClass)) {
253247
registerClass(newlyReachableClass, LibGraalCompilerSupport.get().instructionClasses, this::getLIRInstructionClassFromLIRInstruction, true, access);
254-
} else if (!newlyReachableClass.equals(compositeValueClass) && compositeValueClass.isAssignableFrom(newlyReachableClass)) {
255-
registerClass(newlyReachableClass, LibGraalCompilerSupport.get().compositeValueClasses, this::getCompositeValueClassFromCompositeValue, true, access);
256248
}
257249
}
258250

@@ -486,15 +478,4 @@ private Object getLIRInstructionClassFromLIRInstruction(Class<?> clazz) {
486478
throw VMError.shouldNotReachHere(e);
487479
}
488480
}
489-
490-
private Object getCompositeValueClassFromCompositeValue(Class<?> clazz) {
491-
try {
492-
assert compositeValueClass.isAssignableFrom(clazz);
493-
Object nodeClassInstance = compositeValueClassClassGetMethod.invoke(clazz);
494-
assert compositeValueClassClass.isInstance(nodeClassInstance);
495-
return nodeClassInstance;
496-
} catch (Throwable e) {
497-
throw VMError.shouldNotReachHere(e);
498-
}
499-
}
500481
}

substratevm/src/com.oracle.svm.graal.hotspot.libgraal/src/com/oracle/svm/graal/hotspot/libgraal/LibGraalSubstitutions.java

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -360,19 +360,6 @@ static final class Target_jdk_graal_compiler_lir_phases_LIRPhase_LIRPhaseStatist
360360
@TargetClass(className = "jdk.graal.compiler.graph.NodeClass", classLoader = LibGraalClassLoaderSupplier.class, onlyWith = LibGraalFeature.IsEnabled.class)
361361
static final class Target_jdk_graal_compiler_graph_NodeClass {
362362

363-
/*
364-
* Redirect method to image build-time pre-computed nodeClasses map in
365-
* LibGraalCompilerSupport.
366-
*/
367-
@Substitute
368-
public static Target_jdk_graal_compiler_graph_NodeClass get(Class<?> clazz) {
369-
Object nodeClass = LibGraalCompilerSupport.get().nodeClasses.get(clazz);
370-
if (nodeClass == null) {
371-
throw VMError.shouldNotReachHere(String.format("Unknown node class: %s%n", clazz.getName()));
372-
}
373-
return SubstrateUtil.cast(nodeClass, Target_jdk_graal_compiler_graph_NodeClass.class);
374-
}
375-
376363
@Alias //
377364
private String shortName;
378365

@@ -387,40 +374,6 @@ public String shortName() {
387374
}
388375
}
389376

390-
@TargetClass(className = "jdk.graal.compiler.lir.LIRInstructionClass", classLoader = LibGraalClassLoaderSupplier.class, onlyWith = LibGraalFeature.IsEnabled.class)
391-
static final class Target_jdk_graal_compiler_lir_LIRInstructionClass {
392-
393-
/*
394-
* Redirect method to image build-time pre-computed instructionClasses map in
395-
* LibGraalCompilerSupport.
396-
*/
397-
@Substitute
398-
public static Target_jdk_graal_compiler_lir_LIRInstructionClass get(Class<?> clazz) {
399-
Object instructionClass = LibGraalCompilerSupport.get().instructionClasses.get(clazz);
400-
if (instructionClass == null) {
401-
throw VMError.shouldNotReachHere(String.format("Unknown instruction class: %s%n", clazz.getName()));
402-
}
403-
return SubstrateUtil.cast(instructionClass, Target_jdk_graal_compiler_lir_LIRInstructionClass.class);
404-
}
405-
}
406-
407-
@TargetClass(className = "jdk.graal.compiler.lir.CompositeValueClass", classLoader = LibGraalClassLoaderSupplier.class, onlyWith = LibGraalFeature.IsEnabled.class)
408-
static final class Target_jdk_graal_compiler_lir_CompositeValueClass {
409-
410-
/*
411-
* Redirect method to image build-time pre-computed compositeValueClasses map in
412-
* LibGraalCompilerSupport.
413-
*/
414-
@Substitute
415-
public static Target_jdk_graal_compiler_lir_CompositeValueClass get(Class<?> clazz) {
416-
Object compositeValueClass = LibGraalCompilerSupport.get().compositeValueClasses.get(clazz);
417-
if (compositeValueClass == null) {
418-
throw VMError.shouldNotReachHere(String.format("Unknown composite value class: %s%n", clazz.getName()));
419-
}
420-
return SubstrateUtil.cast(compositeValueClass, Target_jdk_graal_compiler_lir_CompositeValueClass.class);
421-
}
422-
}
423-
424377
@TargetClass(className = "jdk.graal.compiler.hotspot.HotSpotGraalOptionValues", classLoader = LibGraalClassLoaderSupplier.class, onlyWith = LibGraalFeature.IsEnabled.class)
425378
static final class Target_jdk_graal_compiler_hotspot_HotSpotGraalOptionValues {
426379

substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/GraalCompilerSupport.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
import jdk.graal.compiler.debug.DebugHandlersFactory;
4444
import jdk.graal.compiler.graph.Node;
4545
import jdk.graal.compiler.graph.NodeClass;
46-
import jdk.graal.compiler.lir.CompositeValueClass;
4746
import jdk.graal.compiler.lir.LIRInstructionClass;
4847
import jdk.graal.compiler.lir.phases.LIRPhase;
4948
import jdk.graal.compiler.phases.BasePhase;
@@ -56,7 +55,6 @@ public class GraalCompilerSupport {
5655

5756
public final EconomicMap<Class<?>, NodeClass<?>> nodeClasses = ImageHeapMap.create();
5857
public final EconomicMap<Class<?>, LIRInstructionClass<?>> instructionClasses = ImageHeapMap.create();
59-
public final EconomicMap<Class<?>, CompositeValueClass<?>> compositeValueClasses = ImageHeapMap.create();
6058
public HashMap<Class<? extends NodeMatchRules>, EconomicMap<Class<? extends Node>, List<MatchStatement>>> matchRuleRegistry;
6159

6260
protected EconomicMap<Class<?>, BasePhase.BasePhaseStatistics> basePhaseStatistics;

0 commit comments

Comments
 (0)