Skip to content

[llvm] Drop unaligned from calls to readNext (NFC) #88841

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions llvm/include/llvm/ProfileData/InstrProfReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -508,9 +508,9 @@ class InstrProfLookupTrait {
using namespace support;

offset_type KeyLen =
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
endian::readNext<offset_type, llvm::endianness::little>(D);
offset_type DataLen =
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
endian::readNext<offset_type, llvm::endianness::little>(D);
return std::make_pair(KeyLen, DataLen);
}

Expand Down
25 changes: 11 additions & 14 deletions llvm/include/llvm/ProfileData/MemProf.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ struct PortableMemInfoBlock {
switch (Id) {
#define MIBEntryDef(NameTag, Name, Type) \
case Meta::Name: { \
Name = endian::readNext<Type, llvm::endianness::little, unaligned>(Ptr); \
Name = endian::readNext<Type, llvm::endianness::little>(Ptr); \
} break;
#include "llvm/ProfileData/MIBEntryDef.inc"
#undef MIBEntryDef
Expand Down Expand Up @@ -221,13 +221,12 @@ struct Frame {
using namespace support;

const uint64_t F =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
const uint32_t L =
endian::readNext<uint32_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint32_t, llvm::endianness::little>(Ptr);
const uint32_t C =
endian::readNext<uint32_t, llvm::endianness::little, unaligned>(Ptr);
const bool I =
endian::readNext<bool, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint32_t, llvm::endianness::little>(Ptr);
const bool I = endian::readNext<bool, llvm::endianness::little>(Ptr);
return Frame(/*Function=*/F, /*LineOffset=*/L, /*Column=*/C,
/*IsInlineFrame=*/I);
}
Expand Down Expand Up @@ -474,16 +473,15 @@ class RecordLookupTrait {
using namespace support;

offset_type KeyLen =
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
endian::readNext<offset_type, llvm::endianness::little>(D);
offset_type DataLen =
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
endian::readNext<offset_type, llvm::endianness::little>(D);
return std::make_pair(KeyLen, DataLen);
}

uint64_t ReadKey(const unsigned char *D, offset_type /*Unused*/) {
using namespace support;
return endian::readNext<external_key_type, llvm::endianness::little,
unaligned>(D);
return endian::readNext<external_key_type, llvm::endianness::little>(D);
}

data_type ReadData(uint64_t K, const unsigned char *D,
Expand Down Expand Up @@ -615,16 +613,15 @@ class FrameLookupTrait {
using namespace support;

offset_type KeyLen =
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
endian::readNext<offset_type, llvm::endianness::little>(D);
offset_type DataLen =
endian::readNext<offset_type, llvm::endianness::little, unaligned>(D);
endian::readNext<offset_type, llvm::endianness::little>(D);
return std::make_pair(KeyLen, DataLen);
}

uint64_t ReadKey(const unsigned char *D, offset_type /*Unused*/) {
using namespace support;
return endian::readNext<external_key_type, llvm::endianness::little,
unaligned>(D);
return endian::readNext<external_key_type, llvm::endianness::little>(D);
}

data_type ReadData(uint64_t K, const unsigned char *D,
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/MC/MCPseudoProbe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ template <typename T> ErrorOr<T> MCPseudoProbeDecoder::readUnencodedNumber() {
if (Data + sizeof(T) > End) {
return std::error_code();
}
T Val = endian::readNext<T, llvm::endianness::little, unaligned>(Data);
T Val = endian::readNext<T, llvm::endianness::little>(Data);
return ErrorOr<T>(Val);
}

Expand Down
4 changes: 2 additions & 2 deletions llvm/lib/ProfileData/InstrProf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1135,9 +1135,9 @@ static T swapToHostOrder(const unsigned char *&D, llvm::endianness Orig) {
using namespace support;

if (Orig == llvm::endianness::little)
return endian::readNext<T, llvm::endianness::little, unaligned>(D);
return endian::readNext<T, llvm::endianness::little>(D);
else
return endian::readNext<T, llvm::endianness::big, unaligned>(D);
return endian::readNext<T, llvm::endianness::big>(D);
}

static std::unique_ptr<ValueProfData> allocValueProfData(uint32_t TotalSize) {
Expand Down
53 changes: 19 additions & 34 deletions llvm/lib/ProfileData/InstrProfReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,9 @@ readBinaryIdsInternal(const MemoryBuffer &DataBuffer,

uint64_t BILen = 0;
if (Endian == llvm::endianness::little)
BILen =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(BI);
BILen = endian::readNext<uint64_t, llvm::endianness::little>(BI);
else
BILen = endian::readNext<uint64_t, llvm::endianness::big, unaligned>(BI);
BILen = endian::readNext<uint64_t, llvm::endianness::big>(BI);

if (BILen == 0)
return make_error<InstrProfError>(instrprof_error::malformed,
Expand Down Expand Up @@ -923,17 +922,15 @@ data_type InstrProfLookupTrait::ReadData(StringRef K, const unsigned char *D,
// Read hash.
if (D + sizeof(uint64_t) >= End)
return data_type();
uint64_t Hash =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D);
uint64_t Hash = endian::readNext<uint64_t, llvm::endianness::little>(D);

// Initialize number of counters for GET_VERSION(FormatVersion) == 1.
uint64_t CountsSize = N / sizeof(uint64_t) - 1;
// If format version is different then read the number of counters.
if (GET_VERSION(FormatVersion) != IndexedInstrProf::ProfVersion::Version1) {
if (D + sizeof(uint64_t) > End)
return data_type();
CountsSize =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D);
CountsSize = endian::readNext<uint64_t, llvm::endianness::little>(D);
}
// Read counter values.
if (D + CountsSize * sizeof(uint64_t) > End)
Expand All @@ -943,24 +940,22 @@ data_type InstrProfLookupTrait::ReadData(StringRef K, const unsigned char *D,
CounterBuffer.reserve(CountsSize);
for (uint64_t J = 0; J < CountsSize; ++J)
CounterBuffer.push_back(
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D));
endian::readNext<uint64_t, llvm::endianness::little>(D));

// Read bitmap bytes for GET_VERSION(FormatVersion) > 10.
if (GET_VERSION(FormatVersion) > IndexedInstrProf::ProfVersion::Version10) {
uint64_t BitmapBytes = 0;
if (D + sizeof(uint64_t) > End)
return data_type();
BitmapBytes =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(D);
BitmapBytes = endian::readNext<uint64_t, llvm::endianness::little>(D);
// Read bitmap byte values.
if (D + BitmapBytes * sizeof(uint8_t) > End)
return data_type();
BitmapByteBuffer.clear();
BitmapByteBuffer.reserve(BitmapBytes);
for (uint64_t J = 0; J < BitmapBytes; ++J)
BitmapByteBuffer.push_back(static_cast<uint8_t>(
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(
D)));
endian::readNext<uint64_t, llvm::endianness::little>(D)));
}

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

memprof::IndexedVersion Version = memprof::Version0;
if (FirstWord == memprof::Version1) {
Expand All @@ -1282,17 +1276,15 @@ Error IndexedInstrProfReader::readHeader() {
const uint64_t RecordTableOffset =
Version == memprof::Version0
? FirstWord
: support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
: support::endian::readNext<uint64_t, llvm::endianness::little>(
Ptr);
// The offset in the stream right before invoking
// FrameTableGenerator.Emit.
const uint64_t FramePayloadOffset =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
// The value returned from FrameTableGenerator.Emit.
const uint64_t FrameTableOffset =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);

// Read the schema.
auto SchemaOr = memprof::readMemProfSchema(Ptr);
Expand Down Expand Up @@ -1330,8 +1322,7 @@ Error IndexedInstrProfReader::readHeader() {
const unsigned char *Ptr = Start + BinaryIdOffset;
// Read binary ids size.
BinaryIdsSize =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
if (BinaryIdsSize % sizeof(uint64_t))
return error(instrprof_error::bad_header);
// Set the binary ids start.
Expand All @@ -1348,8 +1339,7 @@ Error IndexedInstrProfReader::readHeader() {
const unsigned char *Ptr = Start + VTableNamesOffset;

CompressedVTableNamesLen =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);

// Writer first writes the length of compressed string, and then the actual
// content.
Expand All @@ -1369,29 +1359,24 @@ Error IndexedInstrProfReader::readHeader() {
if (Ptr + 2 * sizeof(uint64_t) > PtrEnd)
return error(instrprof_error::truncated);
const uint64_t NumTraces =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
TemporalProfTraceStreamSize =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
for (unsigned i = 0; i < NumTraces; i++) {
// Expect at least two 64 bit fields: Weight and NumFunctions
if (Ptr + 2 * sizeof(uint64_t) > PtrEnd)
return error(instrprof_error::truncated);
TemporalProfTraceTy Trace;
Trace.Weight =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
const uint64_t NumFunctions =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
// Expect at least NumFunctions 64 bit fields
if (Ptr + NumFunctions * sizeof(uint64_t) > PtrEnd)
return error(instrprof_error::truncated);
for (unsigned j = 0; j < NumFunctions; j++) {
const uint64_t NameRef =
support::endian::readNext<uint64_t, llvm::endianness::little,
unaligned>(Ptr);
support::endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
Trace.FunctionNameRefs.push_back(NameRef);
}
TemporalProfTraces.push_back(std::move(Trace));
Expand Down
25 changes: 12 additions & 13 deletions llvm/lib/ProfileData/MemProf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,14 @@ static IndexedMemProfRecord deserializeV0(const MemProfSchema &Schema,

// Read the meminfo nodes.
const uint64_t NumNodes =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
for (uint64_t I = 0; I < NumNodes; I++) {
IndexedAllocationInfo Node;
const uint64_t NumFrames =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
for (uint64_t J = 0; J < NumFrames; J++) {
const FrameId Id =
endian::readNext<FrameId, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<FrameId, llvm::endianness::little>(Ptr);
Node.CallStack.push_back(Id);
}
Node.CSId = hashCallStack(Node.CallStack);
Expand All @@ -162,15 +162,15 @@ static IndexedMemProfRecord deserializeV0(const MemProfSchema &Schema,

// Read the callsite information.
const uint64_t NumCtxs =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
for (uint64_t J = 0; J < NumCtxs; J++) {
const uint64_t NumFrames =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
llvm::SmallVector<FrameId> Frames;
Frames.reserve(NumFrames);
for (uint64_t K = 0; K < NumFrames; K++) {
const FrameId Id =
endian::readNext<FrameId, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<FrameId, llvm::endianness::little>(Ptr);
Frames.push_back(Id);
}
Record.CallSites.push_back(Frames);
Expand All @@ -188,22 +188,21 @@ static IndexedMemProfRecord deserializeV2(const MemProfSchema &Schema,

// Read the meminfo nodes.
const uint64_t NumNodes =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
for (uint64_t I = 0; I < NumNodes; I++) {
IndexedAllocationInfo Node;
Node.CSId =
endian::readNext<CallStackId, llvm::endianness::little, unaligned>(Ptr);
Node.CSId = endian::readNext<CallStackId, llvm::endianness::little>(Ptr);
Node.Info.deserialize(Schema, Ptr);
Ptr += PortableMemInfoBlock::serializedSize();
Record.AllocSites.push_back(Node);
}

// Read the callsite information.
const uint64_t NumCtxs =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
for (uint64_t J = 0; J < NumCtxs; J++) {
CallStackId CSId =
endian::readNext<CallStackId, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<CallStackId, llvm::endianness::little>(Ptr);
Record.CallSiteIds.push_back(CSId);
}

Expand Down Expand Up @@ -245,7 +244,7 @@ Expected<MemProfSchema> readMemProfSchema(const unsigned char *&Buffer) {

const unsigned char *Ptr = Buffer;
const uint64_t NumSchemaIds =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
if (NumSchemaIds > static_cast<uint64_t>(Meta::Size)) {
return make_error<InstrProfError>(instrprof_error::malformed,
"memprof schema invalid");
Expand All @@ -254,7 +253,7 @@ Expected<MemProfSchema> readMemProfSchema(const unsigned char *&Buffer) {
MemProfSchema Result;
for (size_t I = 0; I < NumSchemaIds; I++) {
const uint64_t Tag =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
if (Tag >= static_cast<uint64_t>(Meta::Size)) {
return make_error<InstrProfError>(instrprof_error::malformed,
"memprof schema invalid");
Expand Down
14 changes: 7 additions & 7 deletions llvm/lib/ProfileData/MemProfReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ llvm::SmallVector<SegmentEntry> readSegmentEntries(const char *Ptr) {
using namespace support;

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

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

const uint64_t NumItemsToRead =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
CallStackMap Items;

for (uint64_t I = 0; I < NumItemsToRead; I++) {
const uint64_t StackId =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);
const uint64_t NumPCs =
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr);
endian::readNext<uint64_t, llvm::endianness::little>(Ptr);

SmallVector<uint64_t> CallStack;
CallStack.reserve(NumPCs);
for (uint64_t J = 0; J < NumPCs; J++) {
CallStack.push_back(
endian::readNext<uint64_t, llvm::endianness::little, unaligned>(Ptr));
endian::readNext<uint64_t, llvm::endianness::little>(Ptr));
}

Items[StackId] = CallStack;
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/ProfileData/SampleProfReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,7 @@ ErrorOr<T> SampleProfileReaderBinary::readUnencodedNumber() {
}

using namespace support;
T Val = endian::readNext<T, llvm::endianness::little, unaligned>(Data);
T Val = endian::readNext<T, llvm::endianness::little>(Data);
return Val;
}

Expand Down