Skip to content

Commit f430e37

Browse files
[llvm] Drop unaligned from calls to readNext (NFC) (#88841)
Now readNext defaults to unaligned accesses. This patch drops unaligned to improve readability.
1 parent 13ea36d commit f430e37

File tree

8 files changed

+55
-74
lines changed

8 files changed

+55
-74
lines changed

llvm/include/llvm/ProfileData/InstrProfReader.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -508,9 +508,9 @@ class InstrProfLookupTrait {
508508
using namespace support;
509509

510510
offset_type KeyLen =
511-
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
511+
endian::readNext<offset_type, llvm::endianness::little>(D);
512512
offset_type DataLen =
513-
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
513+
endian::readNext<offset_type, llvm::endianness::little>(D);
514514
return std::make_pair(KeyLen, DataLen);
515515
}
516516

llvm/include/llvm/ProfileData/MemProf.h

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ struct PortableMemInfoBlock {
6868
switch (Id) {
6969
#define MIBEntryDef(NameTag, Name, Type) \
7070
case Meta::Name: { \
71-
Name = endian::readNext<Type, llvm::endianness::little, unaligned>(Ptr); \
71+
Name = endian::readNext<Type, llvm::endianness::little>(Ptr); \
7272
} break;
7373
#include "llvm/ProfileData/MIBEntryDef.inc"
7474
#undef MIBEntryDef
@@ -223,13 +223,12 @@ struct Frame {
223223
using namespace support;
224224

225225
const uint64_t F =
226-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
226+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
227227
const uint32_t L =
228-
endian::readNext<uint32_t, llvm::endianness::little, unaligned>(Ptr);
228+
endian::readNext<uint32_t, llvm::endianness::little>(Ptr);
229229
const uint32_t C =
230-
endian::readNext<uint32_t, llvm::endianness::little, unaligned>(Ptr);
231-
const bool I =
232-
endian::readNext<bool, llvm::endianness::little, unaligned>(Ptr);
230+
endian::readNext<uint32_t, llvm::endianness::little>(Ptr);
231+
const bool I = endian::readNext<bool, llvm::endianness::little>(Ptr);
233232
return Frame(/*Function=*/F, /*LineOffset=*/L, /*Column=*/C,
234233
/*IsInlineFrame=*/I);
235234
}
@@ -482,16 +481,15 @@ class RecordLookupTrait {
482481
using namespace support;
483482

484483
offset_type KeyLen =
485-
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
484+
endian::readNext<offset_type, llvm::endianness::little>(D);
486485
offset_type DataLen =
487-
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
486+
endian::readNext<offset_type, llvm::endianness::little>(D);
488487
return std::make_pair(KeyLen, DataLen);
489488
}
490489

491490
uint64_t ReadKey(const unsigned char *D, offset_type /*Unused*/) {
492491
using namespace support;
493-
return endian::readNext<external_key_type, llvm::endianness::little,
494-
unaligned>(D);
492+
return endian::readNext<external_key_type, llvm::endianness::little>(D);
495493
}
496494

497495
data_type ReadData(uint64_t K, const unsigned char *D,
@@ -623,16 +621,15 @@ class FrameLookupTrait {
623621
using namespace support;
624622

625623
offset_type KeyLen =
626-
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
624+
endian::readNext<offset_type, llvm::endianness::little>(D);
627625
offset_type DataLen =
628-
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
626+
endian::readNext<offset_type, llvm::endianness::little>(D);
629627
return std::make_pair(KeyLen, DataLen);
630628
}
631629

632630
uint64_t ReadKey(const unsigned char *D, offset_type /*Unused*/) {
633631
using namespace support;
634-
return endian::readNext<external_key_type, llvm::endianness::little,
635-
unaligned>(D);
632+
return endian::readNext<external_key_type, llvm::endianness::little>(D);
636633
}
637634

638635
data_type ReadData(uint64_t K, const unsigned char *D,

llvm/lib/MC/MCPseudoProbe.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ template <typename T> ErrorOr<T> MCPseudoProbeDecoder::readUnencodedNumber() {
343343
if (Data + sizeof(T) > End) {
344344
return std::error_code();
345345
}
346-
T Val = endian::readNext<T, llvm::endianness::little, unaligned>(Data);
346+
T Val = endian::readNext<T, llvm::endianness::little>(Data);
347347
return ErrorOr<T>(Val);
348348
}
349349

llvm/lib/ProfileData/InstrProf.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,9 +1135,9 @@ static T swapToHostOrder(const unsigned char *&D, llvm::endianness Orig) {
11351135
using namespace support;
11361136

11371137
if (Orig == llvm::endianness::little)
1138-
return endian::readNext<T, llvm::endianness::little, unaligned>(D);
1138+
return endian::readNext<T, llvm::endianness::little>(D);
11391139
else
1140-
return endian::readNext<T, llvm::endianness::big, unaligned>(D);
1140+
return endian::readNext<T, llvm::endianness::big>(D);
11411141
}
11421142

11431143
static std::unique_ptr<ValueProfData> allocValueProfData(uint32_t TotalSize) {

llvm/lib/ProfileData/InstrProfReader.cpp

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,9 @@ readBinaryIdsInternal(const MemoryBuffer &DataBuffer,
115115

116116
uint64_t BILen = 0;
117117
if (Endian == llvm::endianness::little)
118-
BILen =
119-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(BI);
118+
BILen = endian::readNext<uint64_t, llvm::endianness::little>(BI);
120119
else
121-
BILen = endian::readNext<uint64_t, llvm::endianness::big, unaligned>(BI);
120+
BILen = endian::readNext<uint64_t, llvm::endianness::big>(BI);
122121

123122
if (BILen == 0)
124123
return make_error<InstrProfError>(instrprof_error::malformed,
@@ -923,17 +922,15 @@ data_type InstrProfLookupTrait::ReadData(StringRef K, const unsigned char *D,
923922
// Read hash.
924923
if (D + sizeof(uint64_t) >= End)
925924
return data_type();
926-
uint64_t Hash =
927-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D);
925+
uint64_t Hash = endian::readNext<uint64_t, llvm::endianness::little>(D);
928926

929927
// Initialize number of counters for GET_VERSION(FormatVersion) == 1.
930928
uint64_t CountsSize = N / sizeof(uint64_t) - 1;
931929
// If format version is different then read the number of counters.
932930
if (GET_VERSION(FormatVersion) != IndexedInstrProf::ProfVersion::Version1) {
933931
if (D + sizeof(uint64_t) > End)
934932
return data_type();
935-
CountsSize =
936-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D);
933+
CountsSize = endian::readNext<uint64_t, llvm::endianness::little>(D);
937934
}
938935
// Read counter values.
939936
if (D + CountsSize * sizeof(uint64_t) > End)
@@ -943,24 +940,22 @@ data_type InstrProfLookupTrait::ReadData(StringRef K, const unsigned char *D,
943940
CounterBuffer.reserve(CountsSize);
944941
for (uint64_t J = 0; J < CountsSize; ++J)
945942
CounterBuffer.push_back(
946-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D));
943+
endian::readNext<uint64_t, llvm::endianness::little>(D));
947944

948945
// Read bitmap bytes for GET_VERSION(FormatVersion) > 10.
949946
if (GET_VERSION(FormatVersion) > IndexedInstrProf::ProfVersion::Version10) {
950947
uint64_t BitmapBytes = 0;
951948
if (D + sizeof(uint64_t) > End)
952949
return data_type();
953-
BitmapBytes =
954-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D);
950+
BitmapBytes = endian::readNext<uint64_t, llvm::endianness::little>(D);
955951
// Read bitmap byte values.
956952
if (D + BitmapBytes * sizeof(uint8_t) > End)
957953
return data_type();
958954
BitmapByteBuffer.clear();
959955
BitmapByteBuffer.reserve(BitmapBytes);
960956
for (uint64_t J = 0; J < BitmapBytes; ++J)
961957
BitmapByteBuffer.push_back(static_cast<uint8_t>(
962-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(
963-
D)));
958+
endian::readNext<uint64_t, llvm::endianness::little>(D)));
964959
}
965960

966961
DataBuffer.emplace_back(K, Hash, std::move(CounterBuffer),
@@ -1256,8 +1251,7 @@ Error IndexedInstrProfReader::readHeader() {
12561251
// memprof::MemProfVersion0 or the MemProf version number in
12571252
// memprof::MemProfVersion1.
12581253
const uint64_t FirstWord =
1259-
support::endian::readNext<uint64_t, llvm::endianness::little,
1260-
unaligned>(Ptr);
1254+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
12611255

12621256
memprof::IndexedVersion Version = memprof::Version0;
12631257
if (FirstWord == memprof::Version1) {
@@ -1282,17 +1276,15 @@ Error IndexedInstrProfReader::readHeader() {
12821276
const uint64_t RecordTableOffset =
12831277
Version == memprof::Version0
12841278
? FirstWord
1285-
: support::endian::readNext<uint64_t, llvm::endianness::little,
1286-
unaligned>(Ptr);
1279+
: support::endian::readNext<uint64_t, llvm::endianness::little>(
1280+
Ptr);
12871281
// The offset in the stream right before invoking
12881282
// FrameTableGenerator.Emit.
12891283
const uint64_t FramePayloadOffset =
1290-
support::endian::readNext<uint64_t, llvm::endianness::little,
1291-
unaligned>(Ptr);
1284+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
12921285
// The value returned from FrameTableGenerator.Emit.
12931286
const uint64_t FrameTableOffset =
1294-
support::endian::readNext<uint64_t, llvm::endianness::little,
1295-
unaligned>(Ptr);
1287+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
12961288

12971289
// Read the schema.
12981290
auto SchemaOr = memprof::readMemProfSchema(Ptr);
@@ -1330,8 +1322,7 @@ Error IndexedInstrProfReader::readHeader() {
13301322
const unsigned char *Ptr = Start + BinaryIdOffset;
13311323
// Read binary ids size.
13321324
BinaryIdsSize =
1333-
support::endian::readNext<uint64_t, llvm::endianness::little,
1334-
unaligned>(Ptr);
1325+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
13351326
if (BinaryIdsSize % sizeof(uint64_t))
13361327
return error(instrprof_error::bad_header);
13371328
// Set the binary ids start.
@@ -1348,8 +1339,7 @@ Error IndexedInstrProfReader::readHeader() {
13481339
const unsigned char *Ptr = Start + VTableNamesOffset;
13491340

13501341
CompressedVTableNamesLen =
1351-
support::endian::readNext<uint64_t, llvm::endianness::little,
1352-
unaligned>(Ptr);
1342+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
13531343

13541344
// Writer first writes the length of compressed string, and then the actual
13551345
// content.
@@ -1369,29 +1359,24 @@ Error IndexedInstrProfReader::readHeader() {
13691359
if (Ptr + 2 * sizeof(uint64_t) > PtrEnd)
13701360
return error(instrprof_error::truncated);
13711361
const uint64_t NumTraces =
1372-
support::endian::readNext<uint64_t, llvm::endianness::little,
1373-
unaligned>(Ptr);
1362+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
13741363
TemporalProfTraceStreamSize =
1375-
support::endian::readNext<uint64_t, llvm::endianness::little,
1376-
unaligned>(Ptr);
1364+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
13771365
for (unsigned i = 0; i < NumTraces; i++) {
13781366
// Expect at least two 64 bit fields: Weight and NumFunctions
13791367
if (Ptr + 2 * sizeof(uint64_t) > PtrEnd)
13801368
return error(instrprof_error::truncated);
13811369
TemporalProfTraceTy Trace;
13821370
Trace.Weight =
1383-
support::endian::readNext<uint64_t, llvm::endianness::little,
1384-
unaligned>(Ptr);
1371+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
13851372
const uint64_t NumFunctions =
1386-
support::endian::readNext<uint64_t, llvm::endianness::little,
1387-
unaligned>(Ptr);
1373+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
13881374
// Expect at least NumFunctions 64 bit fields
13891375
if (Ptr + NumFunctions * sizeof(uint64_t) > PtrEnd)
13901376
return error(instrprof_error::truncated);
13911377
for (unsigned j = 0; j < NumFunctions; j++) {
13921378
const uint64_t NameRef =
1393-
support::endian::readNext<uint64_t, llvm::endianness::little,
1394-
unaligned>(Ptr);
1379+
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
13951380
Trace.FunctionNameRefs.push_back(NameRef);
13961381
}
13971382
TemporalProfTraces.push_back(std::move(Trace));

llvm/lib/ProfileData/MemProf.cpp

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,14 @@ static IndexedMemProfRecord deserializeV0(const MemProfSchema &Schema,
144144

145145
// Read the meminfo nodes.
146146
const uint64_t NumNodes =
147-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
147+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
148148
for (uint64_t I = 0; I < NumNodes; I++) {
149149
IndexedAllocationInfo Node;
150150
const uint64_t NumFrames =
151-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
151+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
152152
for (uint64_t J = 0; J < NumFrames; J++) {
153153
const FrameId Id =
154-
endian::readNext<FrameId, llvm::endianness::little, unaligned>(Ptr);
154+
endian::readNext<FrameId, llvm::endianness::little>(Ptr);
155155
Node.CallStack.push_back(Id);
156156
}
157157
Node.CSId = hashCallStack(Node.CallStack);
@@ -162,15 +162,15 @@ static IndexedMemProfRecord deserializeV0(const MemProfSchema &Schema,
162162

163163
// Read the callsite information.
164164
const uint64_t NumCtxs =
165-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
165+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
166166
for (uint64_t J = 0; J < NumCtxs; J++) {
167167
const uint64_t NumFrames =
168-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
168+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
169169
llvm::SmallVector<FrameId> Frames;
170170
Frames.reserve(NumFrames);
171171
for (uint64_t K = 0; K < NumFrames; K++) {
172172
const FrameId Id =
173-
endian::readNext<FrameId, llvm::endianness::little, unaligned>(Ptr);
173+
endian::readNext<FrameId, llvm::endianness::little>(Ptr);
174174
Frames.push_back(Id);
175175
}
176176
Record.CallSites.push_back(Frames);
@@ -188,22 +188,21 @@ static IndexedMemProfRecord deserializeV2(const MemProfSchema &Schema,
188188

189189
// Read the meminfo nodes.
190190
const uint64_t NumNodes =
191-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
191+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
192192
for (uint64_t I = 0; I < NumNodes; I++) {
193193
IndexedAllocationInfo Node;
194-
Node.CSId =
195-
endian::readNext<CallStackId, llvm::endianness::little, unaligned>(Ptr);
194+
Node.CSId = endian::readNext<CallStackId, llvm::endianness::little>(Ptr);
196195
Node.Info.deserialize(Schema, Ptr);
197196
Ptr += PortableMemInfoBlock::serializedSize();
198197
Record.AllocSites.push_back(Node);
199198
}
200199

201200
// Read the callsite information.
202201
const uint64_t NumCtxs =
203-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
202+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
204203
for (uint64_t J = 0; J < NumCtxs; J++) {
205204
CallStackId CSId =
206-
endian::readNext<CallStackId, llvm::endianness::little, unaligned>(Ptr);
205+
endian::readNext<CallStackId, llvm::endianness::little>(Ptr);
207206
Record.CallSiteIds.push_back(CSId);
208207
}
209208

@@ -263,7 +262,7 @@ Expected<MemProfSchema> readMemProfSchema(const unsigned char *&Buffer) {
263262

264263
const unsigned char *Ptr = Buffer;
265264
const uint64_t NumSchemaIds =
266-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
265+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
267266
if (NumSchemaIds > static_cast<uint64_t>(Meta::Size)) {
268267
return make_error<InstrProfError>(instrprof_error::malformed,
269268
"memprof schema invalid");
@@ -272,7 +271,7 @@ Expected<MemProfSchema> readMemProfSchema(const unsigned char *&Buffer) {
272271
MemProfSchema Result;
273272
for (size_t I = 0; I < NumSchemaIds; I++) {
274273
const uint64_t Tag =
275-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
274+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
276275
if (Tag >= static_cast<uint64_t>(Meta::Size)) {
277276
return make_error<InstrProfError>(instrprof_error::malformed,
278277
"memprof schema invalid");

llvm/lib/ProfileData/MemProfReader.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ llvm::SmallVector<SegmentEntry> readSegmentEntries(const char *Ptr) {
8686
using namespace support;
8787

8888
const uint64_t NumItemsToRead =
89-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
89+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
9090
llvm::SmallVector<SegmentEntry> Items;
9191
for (uint64_t I = 0; I < NumItemsToRead; I++) {
9292
Items.push_back(*reinterpret_cast<const SegmentEntry *>(
@@ -100,11 +100,11 @@ readMemInfoBlocks(const char *Ptr) {
100100
using namespace support;
101101

102102
const uint64_t NumItemsToRead =
103-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
103+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
104104
llvm::SmallVector<std::pair<uint64_t, MemInfoBlock>> Items;
105105
for (uint64_t I = 0; I < NumItemsToRead; I++) {
106106
const uint64_t Id =
107-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
107+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
108108
const MemInfoBlock MIB = *reinterpret_cast<const MemInfoBlock *>(Ptr);
109109
Items.push_back({Id, MIB});
110110
// Only increment by size of MIB since readNext implicitly increments.
@@ -117,20 +117,20 @@ CallStackMap readStackInfo(const char *Ptr) {
117117
using namespace support;
118118

119119
const uint64_t NumItemsToRead =
120-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
120+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
121121
CallStackMap Items;
122122

123123
for (uint64_t I = 0; I < NumItemsToRead; I++) {
124124
const uint64_t StackId =
125-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
125+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
126126
const uint64_t NumPCs =
127-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
127+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
128128

129129
SmallVector<uint64_t> CallStack;
130130
CallStack.reserve(NumPCs);
131131
for (uint64_t J = 0; J < NumPCs; J++) {
132132
CallStack.push_back(
133-
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr));
133+
endian::readNext<uint64_t, llvm::endianness::little>(Ptr));
134134
}
135135

136136
Items[StackId] = CallStack;

llvm/lib/ProfileData/SampleProfReader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ ErrorOr<T> SampleProfileReaderBinary::readUnencodedNumber() {
503503
}
504504

505505
using namespace support;
506-
T Val = endian::readNext<T, llvm::endianness::little, unaligned>(Data);
506+
T Val = endian::readNext<T, llvm::endianness::little>(Data);
507507
return Val;
508508
}
509509

0 commit comments

Comments
 (0)