Skip to content

Commit 7507423

Browse files
cstancuChristian Wimmer
authored andcommitted
[GR-51460] [GR-51514] Various clean-ups.
PullRequest: graal/16679
2 parents 347e0a7 + d3dc291 commit 7507423

File tree

28 files changed

+135
-152
lines changed

28 files changed

+135
-152
lines changed

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/heap/ImageHeapScanner.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ protected ImageHeapConstant createImageHeapObject(JavaConstant constant, ScanRea
259259
if (type.isArray()) {
260260
Integer length = hostedValuesProvider.readArrayLength(constant);
261261
if (type.getComponentType().isPrimitive()) {
262-
return new ImageHeapPrimitiveArray(type, constant, asObject(constant), length);
262+
return new ImageHeapPrimitiveArray(type, constant, snippetReflection.asObject(Object.class, constant), length);
263263
} else {
264264
return createImageHeapObjectArray(constant, type, length, reason);
265265
}
@@ -689,7 +689,7 @@ public void rescanObject(Object object, ScanReason reason) {
689689

690690
private void rescanCollectionElements(JavaConstant constant) {
691691
if (isNonNullObjectConstant(constant)) {
692-
rescanCollectionElements(asObject(((ImageHeapConstant) constant).getHostedObject()));
692+
rescanCollectionElements(snippetReflection.asObject(Object.class, constant));
693693
}
694694
}
695695

@@ -730,10 +730,6 @@ void doScan(JavaConstant constant, ScanReason reason) {
730730
markReachable(value, reason, null);
731731
}
732732

733-
protected Object asObject(JavaConstant constant) {
734-
return snippetReflection.asObject(Object.class, constant);
735-
}
736-
737733
private JavaConstant asConstant(Object object) {
738734
return hostedValuesProvider.forObject(object);
739735
}

substratevm/src/com.oracle.svm.core.graal.llvm/src/com/oracle/svm/core/graal/llvm/LLVMGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@
4949
import org.graalvm.nativeimage.c.constant.CEnum;
5050
import org.graalvm.nativeimage.c.function.CEntryPoint;
5151

52-
import com.oracle.svm.core.FrameAccess;
5352
import com.oracle.svm.core.ReservedRegisters;
5453
import com.oracle.svm.core.SubstrateOptions;
5554
import com.oracle.svm.core.SubstrateUtil;
55+
import com.oracle.svm.core.config.ConfigurationValues;
5656
import com.oracle.svm.core.graal.code.SubstrateCallingConvention;
5757
import com.oracle.svm.core.graal.code.SubstrateCallingConventionType;
5858
import com.oracle.svm.core.graal.code.SubstrateDataBuilder;
@@ -1000,7 +1000,7 @@ public void emitReturn(JavaKind javaKind, Value input) {
10001000
if (javaKind == JavaKind.Int) {
10011001
assert LLVMIRBuilder.isIntegerType(typeOf(retVal));
10021002
retVal = arithmetic.emitIntegerConvert(retVal, builder.intType());
1003-
} else if (returnsEnum && javaKind == FrameAccess.getWordKind()) {
1003+
} else if (returnsEnum && javaKind == ConfigurationValues.getWordKind()) {
10041004
/*
10051005
* An enum value is represented by a long in the function body, but is returned as
10061006
* an object (CEnum values are returned as an int)

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/FrameAccess.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,17 @@
2424
*/
2525
package com.oracle.svm.core;
2626

27-
import jdk.graal.compiler.api.replacements.Fold;
28-
import jdk.graal.compiler.core.common.type.Stamp;
29-
import jdk.graal.compiler.core.common.type.StampFactory;
3027
import org.graalvm.nativeimage.ImageSingletons;
3128
import org.graalvm.nativeimage.c.function.CodePointer;
3229
import org.graalvm.word.Pointer;
3330

3431
import com.oracle.svm.core.config.ConfigurationValues;
3532

33+
import jdk.graal.compiler.api.replacements.Fold;
34+
import jdk.graal.compiler.core.common.type.Stamp;
35+
import jdk.graal.compiler.core.common.type.StampFactory;
3636
import jdk.vm.ci.aarch64.AArch64;
3737
import jdk.vm.ci.code.Architecture;
38-
import jdk.vm.ci.meta.JavaKind;
3938

4039
public abstract class FrameAccess {
4140

@@ -86,10 +85,6 @@ public static int uncompressedReferenceSize() {
8685
return wordSize();
8786
}
8887

89-
public static JavaKind getWordKind() {
90-
return ConfigurationValues.getTarget().wordJavaKind;
91-
}
92-
9388
public static Stamp getWordStamp() {
9489
return StampFactory.forKind(ConfigurationValues.getTarget().wordJavaKind);
9590
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/config/ConfigurationValues.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@
2424
*/
2525
package com.oracle.svm.core.config;
2626

27-
import jdk.graal.compiler.api.replacements.Fold;
2827
import org.graalvm.nativeimage.ImageSingletons;
2928

3029
import com.oracle.svm.core.SubstrateTargetDescription;
3130

31+
import jdk.graal.compiler.api.replacements.Fold;
32+
import jdk.vm.ci.meta.JavaKind;
33+
3234
/**
3335
* Accessors for important configuration objects that are always accessible via the
3436
* {@link ImageSingletons}.
@@ -44,4 +46,9 @@ public static SubstrateTargetDescription getTarget() {
4446
public static ObjectLayout getObjectLayout() {
4547
return ImageSingletons.lookup(ObjectLayout.class);
4648
}
49+
50+
@Fold
51+
public static JavaKind getWordKind() {
52+
return getTarget().wordJavaKind;
53+
}
4754
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/deopt/Deoptimizer.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@
3232
import java.nio.ByteOrder;
3333
import java.util.ArrayList;
3434

35-
import jdk.graal.compiler.core.common.NumUtil;
36-
import jdk.graal.compiler.core.common.util.TypeConversion;
37-
import jdk.graal.compiler.options.Option;
38-
import jdk.graal.compiler.word.BarrieredAccess;
39-
import jdk.graal.compiler.word.Word;
4035
import org.graalvm.nativeimage.CurrentIsolate;
4136
import org.graalvm.nativeimage.IsolateThread;
4237
import org.graalvm.nativeimage.c.function.CodePointer;
@@ -87,6 +82,11 @@
8782
import com.oracle.svm.core.util.TimeUtils;
8883
import com.oracle.svm.core.util.VMError;
8984

85+
import jdk.graal.compiler.core.common.NumUtil;
86+
import jdk.graal.compiler.core.common.util.TypeConversion;
87+
import jdk.graal.compiler.options.Option;
88+
import jdk.graal.compiler.word.BarrieredAccess;
89+
import jdk.graal.compiler.word.Word;
9090
import jdk.internal.misc.Unsafe;
9191
import jdk.vm.ci.code.InstalledCode;
9292
import jdk.vm.ci.meta.DeoptimizationAction;
@@ -971,9 +971,9 @@ private JavaConstant readValue(ValueInfo valueInfo, FrameInfoQueryResult sourceF
971971
return readConstant(sourceSp, WordFactory.signed(valueInfo.getData()), valueInfo.getKind(), valueInfo.isCompressedReference(), sourceFrame);
972972
case ReservedRegister:
973973
if (ReservedRegisters.singleton().getThreadRegister() != null && ReservedRegisters.singleton().getThreadRegister().number == valueInfo.getData()) {
974-
return JavaConstant.forIntegerKind(FrameAccess.getWordKind(), targetThread.rawValue());
974+
return JavaConstant.forIntegerKind(ConfigurationValues.getWordKind(), targetThread.rawValue());
975975
} else if (ReservedRegisters.singleton().getHeapBaseRegister() != null && ReservedRegisters.singleton().getHeapBaseRegister().number == valueInfo.getData()) {
976-
return JavaConstant.forIntegerKind(FrameAccess.getWordKind(), CurrentIsolate.getIsolate().rawValue());
976+
return JavaConstant.forIntegerKind(ConfigurationValues.getWordKind(), CurrentIsolate.getIsolate().rawValue());
977977
} else {
978978
throw fatalDeoptimizationError("Unexpected reserved register: " + valueInfo.getData(), sourceFrame);
979979
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/graal/snippets/NonSnippetLowerings.java

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,25 @@
3232
import java.util.Map;
3333
import java.util.function.Predicate;
3434

35+
import org.graalvm.word.LocationIdentity;
36+
37+
import com.oracle.svm.core.FrameAccess;
38+
import com.oracle.svm.core.SubstrateOptions;
39+
import com.oracle.svm.core.SubstrateUtil;
40+
import com.oracle.svm.core.code.CodeInfoTable;
41+
import com.oracle.svm.core.config.ConfigurationValues;
42+
import com.oracle.svm.core.graal.code.SubstrateBackend;
43+
import com.oracle.svm.core.graal.meta.KnownOffsets;
44+
import com.oracle.svm.core.graal.meta.RuntimeConfiguration;
45+
import com.oracle.svm.core.graal.nodes.LoweredDeadEndNode;
46+
import com.oracle.svm.core.graal.nodes.ThrowBytecodeExceptionNode;
47+
import com.oracle.svm.core.meta.SharedMethod;
48+
import com.oracle.svm.core.meta.SubstrateObjectConstant;
49+
import com.oracle.svm.core.snippets.ImplicitExceptions;
50+
import com.oracle.svm.core.snippets.SnippetRuntime;
51+
import com.oracle.svm.core.snippets.SubstrateForeignCallTarget;
52+
import com.oracle.svm.core.util.VMError;
53+
3554
import jdk.graal.compiler.core.common.memory.BarrierType;
3655
import jdk.graal.compiler.core.common.memory.MemoryOrderMode;
3756
import jdk.graal.compiler.core.common.spi.ForeignCallDescriptor;
@@ -79,24 +98,6 @@
7998
import jdk.graal.compiler.nodes.type.StampTool;
8099
import jdk.graal.compiler.options.OptionValues;
81100
import jdk.graal.compiler.phases.util.Providers;
82-
import org.graalvm.word.LocationIdentity;
83-
84-
import com.oracle.svm.core.FrameAccess;
85-
import com.oracle.svm.core.SubstrateOptions;
86-
import com.oracle.svm.core.SubstrateUtil;
87-
import com.oracle.svm.core.code.CodeInfoTable;
88-
import com.oracle.svm.core.graal.code.SubstrateBackend;
89-
import com.oracle.svm.core.graal.meta.KnownOffsets;
90-
import com.oracle.svm.core.graal.meta.RuntimeConfiguration;
91-
import com.oracle.svm.core.graal.nodes.LoweredDeadEndNode;
92-
import com.oracle.svm.core.graal.nodes.ThrowBytecodeExceptionNode;
93-
import com.oracle.svm.core.meta.SharedMethod;
94-
import com.oracle.svm.core.meta.SubstrateObjectConstant;
95-
import com.oracle.svm.core.snippets.ImplicitExceptions;
96-
import com.oracle.svm.core.snippets.SnippetRuntime;
97-
import com.oracle.svm.core.snippets.SubstrateForeignCallTarget;
98-
import com.oracle.svm.core.util.VMError;
99-
100101
import jdk.vm.ci.code.CallingConvention;
101102
import jdk.vm.ci.meta.DeoptimizationAction;
102103
import jdk.vm.ci.meta.DeoptimizationReason;
@@ -380,14 +381,14 @@ public void lower(FixedNode node, LoweringTool tool) {
380381
*/
381382
JavaConstant codeInfo = SubstrateObjectConstant.forObject(CodeInfoTable.getImageCodeCache());
382383
ValueNode codeInfoConstant = ConstantNode.forConstant(codeInfo, tool.getMetaAccess(), graph);
383-
ValueNode codeStartFieldOffset = ConstantNode.forIntegerKind(FrameAccess.getWordKind(), knownOffsets.getImageCodeInfoCodeStartOffset(), graph);
384+
ValueNode codeStartFieldOffset = ConstantNode.forIntegerKind(ConfigurationValues.getWordKind(), knownOffsets.getImageCodeInfoCodeStartOffset(), graph);
384385
AddressNode codeStartField = graph.unique(new OffsetAddressNode(codeInfoConstant, codeStartFieldOffset));
385386
/*
386387
* Uses ANY_LOCATION because runtime-compiled code can be persisted and
387388
* loaded in a process where image code is located elsewhere.
388389
*/
389390
ReadNode codeStart = graph.add(new ReadNode(codeStartField, LocationIdentity.ANY_LOCATION, FrameAccess.getWordStamp(), BarrierType.NONE, MemoryOrderMode.PLAIN));
390-
ValueNode offset = ConstantNode.forIntegerKind(FrameAccess.getWordKind(), targetMethod.getCodeOffsetInImage(), graph);
391+
ValueNode offset = ConstantNode.forIntegerKind(ConfigurationValues.getWordKind(), targetMethod.getCodeOffsetInImage(), graph);
391392
AddressNode address = graph.unique(new OffsetAddressNode(codeStart, offset));
392393

393394
loweredCallTarget = graph.add(new IndirectCallTargetNode(
@@ -410,7 +411,7 @@ public void lower(FixedNode node, LoweringTool tool) {
410411
int vtableEntryOffset = knownOffsets.getVTableOffset(method.getVTableIndex());
411412

412413
hub = graph.unique(new LoadHubNode(runtimeConfig.getProviders().getStampProvider(), graph.addOrUnique(PiNode.create(receiver, nullCheck))));
413-
AddressNode address = graph.unique(new OffsetAddressNode(hub, ConstantNode.forIntegerKind(FrameAccess.getWordKind(), vtableEntryOffset, graph)));
414+
AddressNode address = graph.unique(new OffsetAddressNode(hub, ConstantNode.forIntegerKind(ConfigurationValues.getWordKind(), vtableEntryOffset, graph)));
414415
ReadNode entry = graph.add(new ReadNode(address, SubstrateBackend.getVTableIdentity(), FrameAccess.getWordStamp(), BarrierType.NONE, MemoryOrderMode.PLAIN));
415416
loweredCallTarget = createIndirectCall(graph, callTarget, parameters, method, signature, callType, invokeKind, entry);
416417

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/graal/stackvalue/LoweredStackValueNode.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
*/
2525
package com.oracle.svm.core.graal.stackvalue;
2626

27+
import org.graalvm.word.WordBase;
28+
29+
import com.oracle.svm.core.FrameAccess;
30+
import com.oracle.svm.core.config.ConfigurationValues;
31+
2732
import jdk.graal.compiler.graph.NodeClass;
2833
import jdk.graal.compiler.lir.ConstantValue;
2934
import jdk.graal.compiler.lir.VirtualStackSlot;
@@ -32,10 +37,6 @@
3237
import jdk.graal.compiler.nodeinfo.NodeSize;
3338
import jdk.graal.compiler.nodes.spi.LIRLowerable;
3439
import jdk.graal.compiler.nodes.spi.NodeLIRBuilderTool;
35-
import org.graalvm.word.WordBase;
36-
37-
import com.oracle.svm.core.FrameAccess;
38-
3940
import jdk.vm.ci.meta.JavaConstant;
4041

4142
/**
@@ -99,7 +100,7 @@ public void generate(NodeLIRBuilderTool gen) {
99100
stackSlotHolder.gen = gen;
100101

101102
if (sizeInBytes == 0) {
102-
gen.setResult(this, new ConstantValue(gen.getLIRGeneratorTool().getLIRKind(FrameAccess.getWordStamp()), JavaConstant.forIntegerKind(FrameAccess.getWordKind(), 0)));
103+
gen.setResult(this, new ConstantValue(gen.getLIRGeneratorTool().getLIRKind(FrameAccess.getWordStamp()), JavaConstant.forIntegerKind(ConfigurationValues.getWordKind(), 0)));
103104
} else {
104105
VirtualStackSlot slot = stackSlotHolder.slot;
105106
if (slot == null) {

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/graal/thread/AddressOfVMThreadLocalNode.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
*/
2525
package com.oracle.svm.core.graal.thread;
2626

27+
import com.oracle.svm.core.FrameAccess;
28+
import com.oracle.svm.core.config.ConfigurationValues;
29+
import com.oracle.svm.core.graal.nodes.FloatingWordCastNode;
30+
import com.oracle.svm.core.threadlocal.VMThreadLocalInfo;
31+
2732
import jdk.graal.compiler.graph.NodeClass;
2833
import jdk.graal.compiler.nodeinfo.NodeCycles;
2934
import jdk.graal.compiler.nodeinfo.NodeInfo;
@@ -34,11 +39,6 @@
3439
import jdk.graal.compiler.nodes.calc.FloatingNode;
3540
import jdk.graal.compiler.nodes.spi.Lowerable;
3641
import jdk.graal.compiler.nodes.spi.LoweringTool;
37-
38-
import com.oracle.svm.core.FrameAccess;
39-
import com.oracle.svm.core.graal.nodes.FloatingWordCastNode;
40-
import com.oracle.svm.core.threadlocal.VMThreadLocalInfo;
41-
4242
import jdk.vm.ci.meta.JavaKind;
4343

4444
@NodeInfo(cycles = NodeCycles.CYCLES_1, size = NodeSize.SIZE_1)
@@ -62,9 +62,9 @@ public void lower(LoweringTool tool) {
6262
if (base.getStackKind() == JavaKind.Object) {
6363
base = graph().unique(new FloatingWordCastNode(FrameAccess.getWordStamp(), base));
6464
}
65-
assert base.getStackKind() == FrameAccess.getWordKind();
65+
assert base.getStackKind() == ConfigurationValues.getWordKind();
6666

67-
ConstantNode offset = ConstantNode.forIntegerKind(FrameAccess.getWordKind(), threadLocalInfo.offset, graph());
67+
ConstantNode offset = ConstantNode.forIntegerKind(ConfigurationValues.getWordKind(), threadLocalInfo.offset, graph());
6868
ValueNode address = graph().unique(new AddNode(base, offset));
6969
replaceAtUsagesAndDelete(address);
7070
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/threadlocal/VMThreadLocalInfo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import org.graalvm.word.WordBase;
3535

3636
import com.oracle.svm.core.BuildPhaseProvider.ReadyForCompilation;
37-
import com.oracle.svm.core.FrameAccess;
37+
import com.oracle.svm.core.config.ConfigurationValues;
3838
import com.oracle.svm.core.heap.UnknownPrimitiveField;
3939

4040
import jdk.vm.ci.meta.JavaKind;
@@ -104,7 +104,7 @@ public VMThreadLocalInfo(FastThreadLocal threadLocal) {
104104
} else if (threadLocalClass == FastThreadLocalLong.class) {
105105
storageKind = JavaKind.Long;
106106
} else if (threadLocalClass == FastThreadLocalWord.class) {
107-
storageKind = FrameAccess.getWordKind();
107+
storageKind = ConfigurationValues.getWordKind();
108108
} else if (threadLocalClass == FastThreadLocalObject.class) {
109109
storageKind = JavaKind.Object;
110110
} else if (threadLocalClass == FastThreadLocalBytes.class) {

substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/hosted/runtimecompilation/RuntimeCompilationFeature.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
import com.oracle.graal.pointsto.util.GraalAccess;
6666
import com.oracle.graal.pointsto.util.ParallelExecutionException;
6767
import com.oracle.svm.common.meta.MultiMethod;
68-
import com.oracle.svm.core.FrameAccess;
6968
import com.oracle.svm.core.ParsingReason;
7069
import com.oracle.svm.core.SubstrateOptions;
7170
import com.oracle.svm.core.config.ConfigurationValues;
@@ -363,7 +362,7 @@ public void duringSetup(DuringSetupAccess c) {
363362

364363
DuringSetupAccessImpl config = (DuringSetupAccessImpl) c;
365364
AnalysisMetaAccess aMetaAccess = config.getMetaAccess();
366-
SubstrateWordTypes wordTypes = new SubstrateWordTypes(aMetaAccess, FrameAccess.getWordKind());
365+
SubstrateWordTypes wordTypes = new SubstrateWordTypes(aMetaAccess, ConfigurationValues.getWordKind());
367366
SubstrateProviders substrateProviders = ImageSingletons.lookup(SubstrateGraalCompilerSetup.class).getSubstrateProviders(aMetaAccess, wordTypes);
368367
objectReplacer = new GraalGraphObjectReplacer(config.getUniverse(), substrateProviders, universeFactory);
369368
config.registerObjectReplacer(objectReplacer);

0 commit comments

Comments
 (0)