Skip to content

Commit cd1f983

Browse files
Renamings.
1 parent c8981cd commit cd1f983

File tree

10 files changed

+68
-64
lines changed

10 files changed

+68
-64
lines changed

substratevm/src/com.oracle.objectfile/src/com/oracle/objectfile/debugentry/DebugInfoBase.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,11 @@ public abstract class DebugInfoBase {
171171
/**
172172
* Bit mask used for tagging oops.
173173
*/
174-
private int reservedBitsMask;
174+
private int reservedHubBitsMask;
175175
/**
176176
* Number of low order bits used for tagging oops.
177177
*/
178-
private int numReservedBits;
178+
private int numReservedHubBits;
179179
/**
180180
* Number of bytes used to store an oop reference.
181181
*/
@@ -211,8 +211,8 @@ public abstract class DebugInfoBase {
211211
public DebugInfoBase(ByteOrder byteOrder) {
212212
this.byteOrder = byteOrder;
213213
this.useHeapBase = true;
214-
this.reservedBitsMask = 0;
215-
this.numReservedBits = 0;
214+
this.reservedHubBitsMask = 0;
215+
this.numReservedHubBits = 0;
216216
this.compressionShift = 0;
217217
this.referenceSize = 0;
218218
this.pointerSize = 0;
@@ -250,12 +250,12 @@ public void installDebugInfo(DebugInfoProvider debugInfoProvider) {
250250
/*
251251
* Save count of low order tag bits that may appear in references.
252252
*/
253-
reservedBitsMask = debugInfoProvider.reservedBitsMask();
253+
reservedHubBitsMask = debugInfoProvider.reservedHubBitsMask();
254254

255255
/* Mask must be contiguous from bit 0. */
256-
assert ((reservedBitsMask + 1) & reservedBitsMask) == 0;
256+
assert ((reservedHubBitsMask + 1) & reservedHubBitsMask) == 0;
257257

258-
numReservedBits = Integer.bitCount(reservedBitsMask);
258+
numReservedHubBits = Integer.bitCount(reservedHubBitsMask);
259259

260260
/* Save amount we need to shift references by when loading from an object field. */
261261
compressionShift = debugInfoProvider.compressionShift();
@@ -705,12 +705,12 @@ public boolean useHeapBase() {
705705
return useHeapBase;
706706
}
707707

708-
public int reservedBitsMask() {
709-
return reservedBitsMask;
708+
public int reservedHubBitsMask() {
709+
return reservedHubBitsMask;
710710
}
711711

712-
public int numReservedBits() {
713-
return numReservedBits;
712+
public int numReservedHubBits() {
713+
return numReservedHubBits;
714714
}
715715

716716
public int compressionShift() {

substratevm/src/com.oracle.objectfile/src/com/oracle/objectfile/debuginfo/DebugInfoProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public interface DebugInfoProvider {
5252
/**
5353
* Mask selecting low order bits used for tagging oops.
5454
*/
55-
int reservedBitsMask();
55+
int reservedHubBitsMask();
5656

5757
/**
5858
* Number of bytes used to store an oop reference.

substratevm/src/com.oracle.objectfile/src/com/oracle/objectfile/elf/dwarf/DwarfInfoSectionImpl.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2132,8 +2132,8 @@ public int writeCompressedOopConversionExpression(boolean isHub, byte[] buffer,
21322132
*/
21332133

21342134
boolean useHeapBase = dwarfSections.useHeapBase();
2135-
int reservedBitsMask = dwarfSections.reservedBitsMask();
2136-
int numReservedBits = dwarfSections.numReservedBits();
2135+
int reservedHubBitsMask = dwarfSections.reservedHubBitsMask();
2136+
int numReservedHubBits = dwarfSections.numReservedHubBits();
21372137
int compressionShift = dwarfSections.compressionShift();
21382138
int numAlignmentBits = dwarfSections.numAlignmentBits();
21392139

@@ -2143,12 +2143,12 @@ public int writeCompressedOopConversionExpression(boolean isHub, byte[] buffer,
21432143
* The required expression will be one of these paths:
21442144
*
21452145
* push object address ................................ (1 byte) ..... [offset] ............
2146-
* IF reservedBitsMask != 0 ................................................................
2147-
* . push reservedBitsMask ............................ (1 byte) ..... [offset, mask] ......
2146+
* IF reservedHubBitsMask != 0 .............................................................
2147+
* . push reservedHubBitsMask.......................... (1 byte) ..... [offset, mask] ......
21482148
* . NOT .............................................. (1 byte) ..... [offset, ~mask] .....
21492149
* . AND .............................................. (1 byte) ..... [offset] ............
2150-
* . IF numReservedBits == numAlignmentBits && compressionShift == 0 .......................
2151-
* ... push numReservedBits ........................... (1 byte) ..... [offset, right shift]
2150+
* . IF numReservedHubBits == numAlignmentBits && compressionShift == 0 ....................
2151+
* ... push numReservedHubBits ........................ (1 byte) ..... [offset, right shift]
21522152
* ... LSHR ........................................... (1 byte) ..... [offset] ............
21532153
* ... IF compressionShift != numAlignmentBits .............................................
21542154
* ..... push numAlignmentBits - compressionShift ..... (1 byte) ..... [offset, left shift]
@@ -2176,13 +2176,13 @@ public int writeCompressedOopConversionExpression(boolean isHub, byte[] buffer,
21762176
pos = writeULEB(0, buffer, pos);
21772177
int exprStart = pos;
21782178
pos = writeExprOpcode(DwarfExpressionOpcode.DW_OP_push_object_address, buffer, pos);
2179-
if (isHub && reservedBitsMask != 0) {
2180-
if (numReservedBits == numAlignmentBits && compressionShift == 0) {
2181-
pos = writeExprOpcodeLiteral(reservedBitsMask, buffer, pos);
2179+
if (isHub && reservedHubBitsMask != 0) {
2180+
if (numReservedHubBits == numAlignmentBits && compressionShift == 0) {
2181+
pos = writeExprOpcodeLiteral(reservedHubBitsMask, buffer, pos);
21822182
pos = writeExprOpcode(DwarfExpressionOpcode.DW_OP_not, buffer, pos);
21832183
pos = writeExprOpcode(DwarfExpressionOpcode.DW_OP_and, buffer, pos);
21842184
} else {
2185-
pos = writeExprOpcodeLiteral(numReservedBits, buffer, pos);
2185+
pos = writeExprOpcodeLiteral(numReservedHubBits, buffer, pos);
21862186
pos = writeExprOpcode(DwarfExpressionOpcode.DW_OP_shr, buffer, pos);
21872187
if (compressionShift != numAlignmentBits) {
21882188
pos = writeExprOpcodeLiteral(numAlignmentBits - compressionShift, buffer, pos);

substratevm/src/com.oracle.svm.core.genscavenge/src/com/oracle/svm/core/genscavenge/HeapImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ public int maxInvocationCount() {
867867
@RestrictHeapAccess(access = RestrictHeapAccess.Access.NO_ALLOCATION, reason = "Must not allocate while printing diagnostics.")
868868
public void printDiagnostics(Log log, ErrorContext context, int maxDiagnosticLevel, int invocationCount) {
869869
log.string("Heap settings and statistics:").indent(true);
870-
log.string("Reserved object header bits: 0b").number(Heap.getHeap().getObjectHeader().getReservedBitsMask(), 2, false).newline();
870+
log.string("Reserved hub pointer bits: 0b").number(Heap.getHeap().getObjectHeader().getReservedHubBitsMask(), 2, false).newline();
871871

872872
log.string("Aligned chunk size: ").unsigned(HeapParameters.getAlignedHeapChunkSize()).newline();
873873
log.string("Large array threshold: ").unsigned(HeapParameters.getLargeArrayThreshold()).newline();

substratevm/src/com.oracle.svm.core.genscavenge/src/com/oracle/svm/core/genscavenge/ObjectHeaderImpl.java

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -79,26 +79,26 @@ public final class ObjectHeaderImpl extends ObjectHeader {
7979
private static final UnsignedWord IDHASH_STATE_IN_FIELD = Word.unsigned(0b10);
8080

8181
private final int numAlignmentBits;
82-
private final int numReservedBits;
83-
private final int numReservedExtraBits;
82+
private final int numReservedHubBits;
83+
private final int numReservedExtraHubBits;
8484

85-
private final int reservedBitsMask;
85+
private final int reservedHubBitsMask;
8686

8787
@Platforms(Platform.HOSTED_ONLY.class)
8888
ObjectHeaderImpl() {
8989
numAlignmentBits = CodeUtil.log2(ConfigurationValues.getObjectLayout().getAlignment());
90-
int numMinimumReservedBits = 3;
91-
VMError.guarantee(numMinimumReservedBits <= numAlignmentBits, "Minimum set of reserved bits must be provided by object alignment");
90+
int numMinReservedHubBits = 3;
91+
VMError.guarantee(numMinReservedHubBits <= numAlignmentBits, "Minimum set of reserved bits must be provided by object alignment");
9292
if (isIdentityHashFieldOptional()) {
9393
VMError.guarantee(ReferenceAccess.singleton().haveCompressedReferences(), "Ensures hubs (at the start of the image heap) remain addressable");
94-
numReservedBits = numMinimumReservedBits + 2;
95-
VMError.guarantee(numReservedBits <= numAlignmentBits || hasShift(),
94+
numReservedHubBits = numMinReservedHubBits + 2;
95+
VMError.guarantee(numReservedHubBits <= numAlignmentBits || hasShift(),
9696
"With no shift, forwarding references are stored directly in the header (with 64-bit, must be) and we cannot use non-alignment header bits");
9797
} else {
98-
numReservedBits = numMinimumReservedBits;
98+
numReservedHubBits = numMinReservedHubBits;
9999
}
100-
numReservedExtraBits = numReservedBits - numAlignmentBits;
101-
reservedBitsMask = (1 << numReservedBits) - 1;
100+
numReservedExtraHubBits = numReservedHubBits - numAlignmentBits;
101+
reservedHubBitsMask = (1 << numReservedHubBits) - 1;
102102
}
103103

104104
@Fold
@@ -109,15 +109,15 @@ public static ObjectHeaderImpl getObjectHeaderImpl() {
109109
}
110110

111111
@Override
112-
public int getReservedBitsMask() {
113-
return reservedBitsMask;
112+
public int getReservedHubBitsMask() {
113+
return reservedHubBitsMask;
114114
}
115115

116116
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
117117
@Override
118118
public Pointer extractPotentialDynamicHubFromHeader(Word header) {
119119
if (ReferenceAccess.singleton().haveCompressedReferences()) {
120-
UnsignedWord hubBits = header.unsignedShiftRight(numReservedBits);
120+
UnsignedWord hubBits = header.unsignedShiftRight(numReservedHubBits);
121121
UnsignedWord baseRelativeBits = hubBits.shiftLeft(numAlignmentBits);
122122
return KnownIntrinsics.heapBase().add(baseRelativeBits);
123123
} else {
@@ -277,7 +277,7 @@ public Word encodeAsObjectHeader(DynamicHub hub, boolean rememberedSet, boolean
277277
Word result = Word.objectToUntrackedPointer(hub);
278278
if (SubstrateOptions.SpawnIsolates.getValue()) {
279279
result = result.subtract(KnownIntrinsics.heapBase());
280-
result = result.shiftLeft(numReservedExtraBits);
280+
result = result.shiftLeft(numReservedExtraHubBits);
281281
}
282282
if (rememberedSet) {
283283
result = result.or(REMSET_OR_MARKED1_BIT);
@@ -291,7 +291,7 @@ public Word encodeAsObjectHeader(DynamicHub hub, boolean rememberedSet, boolean
291291
/** Clear the object header bits from a header. */
292292
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
293293
UnsignedWord clearBits(UnsignedWord header) {
294-
UnsignedWord mask = Word.unsigned(reservedBitsMask);
294+
UnsignedWord mask = Word.unsigned(reservedHubBitsMask);
295295
return header.and(mask.not());
296296
}
297297

@@ -314,9 +314,9 @@ public static boolean isConsumedHeapChunkZapped(UnsignedWord header) {
314314
}
315315

316316
@Override
317-
public long encodeAsImageHeapObjectHeader(ImageHeapObject obj, long hubOffsetFromHeapBase) {
318-
long header = hubOffsetFromHeapBase << numReservedExtraBits;
319-
assert (header & reservedBitsMask) == 0 : "Object header bits must be zero initially";
317+
public long encodeHubPointerForImageHeap(ImageHeapObject obj, long hubOffsetFromHeapBase) {
318+
long header = hubOffsetFromHeapBase << numReservedExtraHubBits;
319+
assert (header & reservedHubBitsMask) == 0 : "Object header bits must be zero initially";
320320
if (obj.getPartition() instanceof ChunkedImageHeapPartition partition) {
321321
if (partition.isWritable() && HeapImpl.usesImageHeapCardMarking()) {
322322
header |= REMSET_OR_MARKED1_BIT.rawValue();
@@ -336,8 +336,8 @@ public long encodeAsImageHeapObjectHeader(ImageHeapObject obj, long hubOffsetFro
336336
@Override
337337
public void verifyDynamicHubOffsetInImageHeap(long offsetFromHeapBase) {
338338
long referenceSizeMask = getReferenceSize() == Integer.BYTES ? 0xFFFF_FFFFL : -1L;
339-
long encoded = (offsetFromHeapBase << numReservedExtraBits) & referenceSizeMask;
340-
boolean shiftLosesInformation = (encoded >>> numReservedExtraBits != offsetFromHeapBase);
339+
long encoded = (offsetFromHeapBase << numReservedExtraHubBits) & referenceSizeMask;
340+
boolean shiftLosesInformation = (encoded >>> numReservedExtraHubBits != offsetFromHeapBase);
341341
if (shiftLosesInformation) {
342342
throw VMError.shouldNotReachHere("Hub is too far from heap base for encoding in object header: " + offsetFromHeapBase);
343343
}
@@ -487,7 +487,7 @@ private UnsignedWord getForwardHeader(Object copy) {
487487
private UnsignedWord getHeaderBitsFromHeader(UnsignedWord header) {
488488
assert !isProducedHeapChunkZapped(header) : "Produced chunk zap value";
489489
assert !isConsumedHeapChunkZapped(header) : "Consumed chunk zap value";
490-
return header.and(reservedBitsMask);
490+
return header.and(reservedHubBitsMask);
491491
}
492492

493493
@Fold

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/graal/meta/SubstrateBasicLoweringProvider.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,12 @@ protected ValueNode createReadHub(StructuredGraph graph, ValueNode object, Lower
259259

260260
int hubOffset = ol.getHubOffset();
261261
int bytesToRead = ol.getHubSize();
262-
long reservedHeaderBitsMask = oh.getReservedBitsMask();
262+
long reservedHubBitsMask = oh.getReservedHubBitsMask();
263263
if (hubOffset > 0 && hubOffset + ol.getHubSize() <= Long.BYTES && target.arch.getByteOrder() == ByteOrder.LITTLE_ENDIAN) {
264264
/* Prepare to emit a 64-bit read at offset 0 (reduces the code size). */
265265
hubOffset = 0;
266266
bytesToRead = Long.BYTES;
267-
reservedHeaderBitsMask = (reservedHeaderBitsMask << Integer.SIZE) | ((1L << Integer.SIZE) - 1);
267+
reservedHubBitsMask = (reservedHubBitsMask << Integer.SIZE) | ((1L << Integer.SIZE) - 1);
268268
}
269269

270270
/* Read the raw hub data from the correct part of the object header. */
@@ -273,19 +273,19 @@ protected ValueNode createReadHub(StructuredGraph graph, ValueNode object, Lower
273273
AddressNode hubAddressNode = graph.unique(new OffsetAddressNode(object, hubOffsetNode));
274274
ValueNode rawHubData = graph.unique(new FloatingReadNode(hubAddressNode, NamedLocationIdentity.FINAL_LOCATION, null, readStamp, null, BarrierType.NONE));
275275

276-
if (reservedHeaderBitsMask != 0L) {
276+
if (reservedHubBitsMask != 0L) {
277277
/* Get rid of the reserved header bits and extract the actual hub bits. */
278-
assert CodeUtil.isPowerOf2(reservedHeaderBitsMask + 1) : "only the lowest bits may be set";
279-
int numReservedBits = CodeUtil.log2(reservedHeaderBitsMask + 1);
278+
assert CodeUtil.isPowerOf2(reservedHubBitsMask + 1) : "only the lowest bits may be set";
279+
int numReservedHubBits = CodeUtil.log2(reservedHubBitsMask + 1);
280280
int compressionShift = ReferenceAccess.singleton().getCompressionShift();
281281
int numAlignmentBits = CodeUtil.log2(ol.getAlignment());
282282
assert compressionShift <= numAlignmentBits : "compression discards bits";
283283

284-
if (numReservedBits == numAlignmentBits && compressionShift == 0) {
284+
if (numReservedHubBits == numAlignmentBits && compressionShift == 0) {
285285
/* AND with a constant is slightly smaller than 2 shifts. */
286-
rawHubData = graph.unique(new AndNode(rawHubData, ConstantNode.forIntegerStamp(readStamp, ~reservedHeaderBitsMask, graph)));
286+
rawHubData = graph.unique(new AndNode(rawHubData, ConstantNode.forIntegerStamp(readStamp, ~reservedHubBitsMask, graph)));
287287
} else {
288-
rawHubData = graph.unique(new UnsignedRightShiftNode(rawHubData, ConstantNode.forInt(numReservedBits, graph)));
288+
rawHubData = graph.unique(new UnsignedRightShiftNode(rawHubData, ConstantNode.forInt(numReservedHubBits, graph)));
289289
if (compressionShift != numAlignmentBits) {
290290
int shift = numAlignmentBits - compressionShift;
291291
rawHubData = graph.unique(new LeftShiftNode(rawHubData, ConstantNode.forInt(shift, graph)));

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/heap/ObjectHeader.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,13 @@ protected ObjectHeader() {
6060
/**
6161
* Returns a mask where all reserved bits are set.
6262
*/
63-
public abstract int getReservedBitsMask();
63+
public abstract int getReservedHubBitsMask();
6464

65-
public abstract long encodeAsImageHeapObjectHeader(ImageHeapObject obj, long hubOffsetFromHeapBase);
65+
/**
66+
* Returns an encoded hub pointer that can be used when writing the object header of an image
67+
* heap object. Note that the returned value is not necessarily the full object header.
68+
*/
69+
public abstract long encodeHubPointerForImageHeap(ImageHeapObject obj, long hubOffsetFromHeapBase);
6670

6771
public abstract Word encodeAsTLABObjectHeader(DynamicHub hub);
6872

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/image/NativeImageDebugInfoFeature.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
import java.util.function.Function;
3131
import java.util.function.Supplier;
3232

33-
import com.oracle.svm.core.ReservedRegisters;
34-
import jdk.graal.compiler.word.Word;
3533
import org.graalvm.nativeimage.ImageSingletons;
3634
import org.graalvm.nativeimage.Platform;
3735
import org.graalvm.word.PointerBase;
@@ -42,6 +40,7 @@
4240
import com.oracle.objectfile.BasicProgbitsSectionImpl;
4341
import com.oracle.objectfile.debuginfo.DebugInfoProvider;
4442
import com.oracle.objectfile.io.AssemblyBuffer;
43+
import com.oracle.svm.core.ReservedRegisters;
4544
import com.oracle.svm.core.SubstrateOptions;
4645
import com.oracle.svm.core.UniqueShortNameProvider;
4746
import com.oracle.svm.core.UniqueShortNameProviderDefaultImpl;
@@ -63,6 +62,7 @@
6362
import jdk.graal.compiler.core.common.CompressEncoding;
6463
import jdk.graal.compiler.debug.DebugContext;
6564
import jdk.graal.compiler.printer.GraalDebugHandlersFactory;
65+
import jdk.graal.compiler.word.Word;
6666

6767
@AutomaticallyRegisteredFeature
6868
@SuppressWarnings("unused")
@@ -120,12 +120,12 @@ public void beforeAnalysis(BeforeAnalysisAccess access) {
120120
CompressEncoding compressEncoding = ImageSingletons.lookup(CompressEncoding.class);
121121
CGlobalData<PointerBase> compressionShift = CGlobalDataFactory.createWord(Word.signed(compressEncoding.getShift()), "__svm_compression_shift");
122122
CGlobalData<PointerBase> useHeapBase = CGlobalDataFactory.createWord(Word.unsigned(compressEncoding.hasBase() ? 1 : 0), "__svm_use_heap_base");
123-
CGlobalData<PointerBase> reservedBitsMask = CGlobalDataFactory.createWord(Word.unsigned(Heap.getHeap().getObjectHeader().getReservedBitsMask()), "__svm_reserved_bits_mask");
123+
CGlobalData<PointerBase> reservedHubBitsMask = CGlobalDataFactory.createWord(Word.unsigned(Heap.getHeap().getObjectHeader().getReservedHubBitsMask()), "__svm_reserved_bits_mask");
124124
CGlobalData<PointerBase> objectAlignment = CGlobalDataFactory.createWord(Word.unsigned(ConfigurationValues.getObjectLayout().getAlignment()), "__svm_object_alignment");
125125
CGlobalData<PointerBase> heapBaseRegnum = CGlobalDataFactory.createWord(Word.unsigned(ReservedRegisters.singleton().getHeapBaseRegister().number), "__svm_heap_base_regnum");
126126
CGlobalDataFeature.singleton().registerWithGlobalHiddenSymbol(compressionShift);
127127
CGlobalDataFeature.singleton().registerWithGlobalHiddenSymbol(useHeapBase);
128-
CGlobalDataFeature.singleton().registerWithGlobalHiddenSymbol(reservedBitsMask);
128+
CGlobalDataFeature.singleton().registerWithGlobalHiddenSymbol(reservedHubBitsMask);
129129
CGlobalDataFeature.singleton().registerWithGlobalHiddenSymbol(objectAlignment);
130130
CGlobalDataFeature.singleton().registerWithGlobalHiddenSymbol(heapBaseRegnum);
131131
}

0 commit comments

Comments
 (0)