mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
Revert "[profile] Add binary id into profiles"
Revert "[profile] Change linkage type of a compiler-rt func" This reverts commits f984ac2715f71c38a7872fa2c2ad535b3d4fa285 and 467c7191249b76abff33853b1692a77f327c2422 because it broke some builds.
This commit is contained in:
parent
a9e9596567
commit
8179b3101d
@ -1103,7 +1103,6 @@ namespace RawInstrProf {
|
||||
// raw header.
|
||||
// Version 5: Bit 60 of FuncHash is reserved for the flag for the context
|
||||
// sensitive records.
|
||||
// Version 6: Added binary id.
|
||||
const uint64_t Version = INSTR_PROF_RAW_VERSION;
|
||||
|
||||
template <class IntPtrT> inline uint64_t getMagic();
|
||||
|
@ -137,7 +137,6 @@ INSTR_PROF_RAW_HEADER(uint64_t, NamesSize, NamesSize)
|
||||
INSTR_PROF_RAW_HEADER(uint64_t, CountersDelta, (uintptr_t)CountersBegin)
|
||||
INSTR_PROF_RAW_HEADER(uint64_t, NamesDelta, (uintptr_t)NamesBegin)
|
||||
INSTR_PROF_RAW_HEADER(uint64_t, ValueKindLast, IPVK_Last)
|
||||
INSTR_PROF_RAW_HEADER(uint64_t, BinaryIdsSize, __llvm_write_binary_ids(NULL))
|
||||
#undef INSTR_PROF_RAW_HEADER
|
||||
/* INSTR_PROF_RAW_HEADER end */
|
||||
|
||||
@ -646,7 +645,7 @@ serializeValueProfDataFrom(ValueProfRecordClosure *Closure,
|
||||
(uint64_t)'f' << 16 | (uint64_t)'R' << 8 | (uint64_t)129
|
||||
|
||||
/* Raw profile format version (start from 1). */
|
||||
#define INSTR_PROF_RAW_VERSION 6
|
||||
#define INSTR_PROF_RAW_VERSION 5
|
||||
/* Indexed profile format version (start from 1). */
|
||||
#define INSTR_PROF_INDEX_VERSION 7
|
||||
/* Coverage mapping format version (start from 0). */
|
||||
|
@ -82,9 +82,6 @@ public:
|
||||
/// Read a single record.
|
||||
virtual Error readNextRecord(NamedInstrProfRecord &Record) = 0;
|
||||
|
||||
/// Print binary ids on stream OS.
|
||||
virtual Error printBinaryIds(raw_ostream &OS) { return success(); };
|
||||
|
||||
/// Iterator over profile data.
|
||||
InstrProfIterator begin() { return InstrProfIterator(this); }
|
||||
InstrProfIterator end() { return InstrProfIterator(); }
|
||||
@ -225,9 +222,6 @@ private:
|
||||
uint32_t ValueKindLast;
|
||||
uint32_t CurValueDataSize;
|
||||
|
||||
uint64_t BinaryIdsSize;
|
||||
const uint8_t *BinaryIdsStart;
|
||||
|
||||
public:
|
||||
RawInstrProfReader(std::unique_ptr<MemoryBuffer> DataBuffer)
|
||||
: DataBuffer(std::move(DataBuffer)) {}
|
||||
@ -237,7 +231,6 @@ public:
|
||||
static bool hasFormat(const MemoryBuffer &DataBuffer);
|
||||
Error readHeader() override;
|
||||
Error readNextRecord(NamedInstrProfRecord &Record) override;
|
||||
Error printBinaryIds(raw_ostream &OS) override;
|
||||
|
||||
bool isIRLevelProfile() const override {
|
||||
return (Version & VARIANT_MASK_IR_PROF) != 0;
|
||||
|
@ -24,8 +24,8 @@
|
||||
#include "llvm/Support/Error.h"
|
||||
#include "llvm/Support/ErrorOr.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/SwapByteOrder.h"
|
||||
#include "llvm/Support/SymbolRemappingReader.h"
|
||||
#include "llvm/Support/SwapByteOrder.h"
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
#include <cstddef>
|
||||
@ -374,13 +374,11 @@ Error RawInstrProfReader<IntPtrT>::readHeader(
|
||||
auto PaddingBytesAfterCounters = swap(Header.PaddingBytesAfterCounters);
|
||||
NamesSize = swap(Header.NamesSize);
|
||||
ValueKindLast = swap(Header.ValueKindLast);
|
||||
BinaryIdsSize = swap(Header.BinaryIdsSize);
|
||||
|
||||
auto DataSizeInBytes = DataSize * sizeof(RawInstrProf::ProfileData<IntPtrT>);
|
||||
auto PaddingSize = getNumPaddingBytes(NamesSize);
|
||||
|
||||
// Profile data starts after profile header and binary ids if exist.
|
||||
ptrdiff_t DataOffset = sizeof(RawInstrProf::Header) + BinaryIdsSize;
|
||||
ptrdiff_t DataOffset = sizeof(RawInstrProf::Header);
|
||||
ptrdiff_t CountersOffset =
|
||||
DataOffset + DataSizeInBytes + PaddingBytesBeforeCounters;
|
||||
ptrdiff_t NamesOffset = CountersOffset + (sizeof(uint64_t) * CountersSize) +
|
||||
@ -394,10 +392,6 @@ Error RawInstrProfReader<IntPtrT>::readHeader(
|
||||
Data = reinterpret_cast<const RawInstrProf::ProfileData<IntPtrT> *>(
|
||||
Start + DataOffset);
|
||||
DataEnd = Data + DataSize;
|
||||
|
||||
// Binary ids start just after the header.
|
||||
BinaryIdsStart =
|
||||
reinterpret_cast<const uint8_t *>(&Header) + sizeof(RawInstrProf::Header);
|
||||
CountersStart = reinterpret_cast<const uint64_t *>(Start + CountersOffset);
|
||||
NamesStart = Start + NamesOffset;
|
||||
ValueDataStart = reinterpret_cast<const uint8_t *>(Start + ValueDataOffset);
|
||||
@ -512,33 +506,6 @@ Error RawInstrProfReader<IntPtrT>::readNextRecord(NamedInstrProfRecord &Record)
|
||||
return success();
|
||||
}
|
||||
|
||||
template <class IntPtrT>
|
||||
Error RawInstrProfReader<IntPtrT>::printBinaryIds(raw_ostream &OS) {
|
||||
if (BinaryIdsSize == 0)
|
||||
return success();
|
||||
|
||||
OS << "Binary IDs: \n";
|
||||
const uint8_t *BI = BinaryIdsStart;
|
||||
while (BI < BinaryIdsStart + BinaryIdsSize) {
|
||||
uint64_t BinaryIdLen = swap(*reinterpret_cast<const uint64_t *>(BI));
|
||||
// Increment by binary id length data type size.
|
||||
BI += sizeof(BinaryIdLen);
|
||||
if (BI > (const uint8_t *)DataBuffer->getBufferEnd())
|
||||
return make_error<InstrProfError>(instrprof_error::malformed);
|
||||
|
||||
for (uint64_t I = 0; I < BinaryIdLen; I++)
|
||||
OS << format("%02x", BI[I]);
|
||||
OS << "\n";
|
||||
|
||||
// Increment by binary id data length.
|
||||
BI += BinaryIdLen;
|
||||
if (BI > (const uint8_t *)DataBuffer->getBufferEnd())
|
||||
return make_error<InstrProfError>(instrprof_error::malformed);
|
||||
}
|
||||
|
||||
return success();
|
||||
}
|
||||
|
||||
namespace llvm {
|
||||
|
||||
template class RawInstrProfReader<uint32_t>;
|
||||
|
Binary file not shown.
Binary file not shown.
@ -14,7 +14,7 @@ RUN: llvm-profdata show %p/Inputs/c-general.profraw -o - --function=switches | F
|
||||
|
||||
SWITCHES-LABEL: Counters:
|
||||
SWITCHES-NEXT: switches:
|
||||
SWITCHES-NEXT: Hash: 0x0099a0c98383683e
|
||||
SWITCHES-NEXT: Hash: 0xa50a07f391ae4be5
|
||||
SWITCHES-NEXT: Counters: 19
|
||||
SWITCHES-NEXT: Function count: 1
|
||||
SWITCHES-LABEL: Functions shown: 1
|
||||
|
@ -8,10 +8,9 @@
|
||||
// INSTR_PROF_RAW_HEADER(uint64_t, CountersDelta, (uintptr_t)CountersBegin)
|
||||
// INSTR_PROF_RAW_HEADER(uint64_t, NamesDelta, (uintptr_t)NamesBegin)
|
||||
// INSTR_PROF_RAW_HEADER(uint64_t, ValueKindLast, IPVK_Last)
|
||||
// INSTR_PROF_RAW_HEADER(uint64_t, BinaryIdsSize, __llvm_write_binary_ids(NULL))
|
||||
|
||||
RUN: printf '\201rforpl\377' > %t.profraw
|
||||
RUN: printf '\6\0\0\0\0\0\0\0' >> %t.profraw
|
||||
RUN: printf '\5\0\0\0\0\0\0\0' >> %t.profraw
|
||||
RUN: printf '\1\0\0\0\0\0\0\0' >> %t.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
||||
RUN: printf '\2\0\0\0\0\0\0\0' >> %t.profraw
|
||||
@ -20,7 +19,6 @@ RUN: printf '\10\0\0\0\0\0\0\0' >> %t.profraw
|
||||
RUN: printf '\0\0\6\0\1\0\0\0' >> %t.profraw
|
||||
RUN: printf '\0\0\6\0\2\0\0\0' >> %t.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
||||
|
||||
// Data Section
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
RUN: printf '\377lprofR\201' > %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\6' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\5' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\2' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\3' >> %t
|
||||
@ -8,7 +8,6 @@ RUN: printf '\0\0\0\0\0\0\0\20' >> %t
|
||||
RUN: printf '\0\0\0\0\1\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\2\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
|
||||
RUN: printf '\134\370\302\114\333\030\275\254' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\1' >> %t
|
||||
|
@ -1,5 +1,5 @@
|
||||
RUN: printf '\201Rforpl\377' > %t
|
||||
RUN: printf '\6\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\5\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\2\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\3\0\0\0\0\0\0\0' >> %t
|
||||
@ -8,7 +8,6 @@ RUN: printf '\20\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\1\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\2\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
|
||||
RUN: printf '\254\275\030\333\114\302\370\134' >> %t
|
||||
RUN: printf '\1\0\0\0\0\0\0\0' >> %t
|
||||
|
@ -1,5 +1,5 @@
|
||||
RUN: printf '\377lprofr\201' > %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\6' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\5' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\2' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\3' >> %t
|
||||
@ -8,7 +8,6 @@ RUN: printf '\0\0\0\0\0\0\0\20' >> %t
|
||||
RUN: printf '\0\0\0\1\0\4\0\0' >> %t
|
||||
RUN: printf '\0\0\0\2\0\4\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
|
||||
RUN: printf '\134\370\302\114\333\030\275\254' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\1' >> %t
|
||||
|
@ -1,5 +1,5 @@
|
||||
RUN: printf '\201rforpl\377' > %t
|
||||
RUN: printf '\6\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\5\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\2\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\3\0\0\0\0\0\0\0' >> %t
|
||||
@ -8,7 +8,6 @@ RUN: printf '\20\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\4\0\1\0\0\0' >> %t
|
||||
RUN: printf '\0\0\4\0\2\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t
|
||||
|
||||
RUN: printf '\254\275\030\333\114\302\370\134' >> %t
|
||||
RUN: printf '\1\0\0\0\0\0\0\0' >> %t
|
||||
|
@ -1,5 +1,5 @@
|
||||
RUN: printf '\201rforpl\377' > %t-foo.profraw
|
||||
RUN: printf '\6\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\5\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
@ -8,7 +8,6 @@ RUN: printf '\10\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\0\0\4\0\1\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\0\0\4\0\2\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
|
||||
RUN: printf '\254\275\030\333\114\302\370\134' >> %t-foo.profraw
|
||||
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
@ -21,7 +20,7 @@ RUN: printf '\023\0\0\0\0\0\0\0' >> %t-foo.profraw
|
||||
RUN: printf '\3\0foo\0\0\0' >> %t-foo.profraw
|
||||
|
||||
RUN: printf '\201rforpl\377' > %t-bar.profraw
|
||||
RUN: printf '\6\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\5\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\2\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
@ -30,7 +29,6 @@ RUN: printf '\10\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\0\0\6\0\1\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\0\0\6\0\2\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
RUN: printf '\0\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
|
||||
RUN: printf '\067\265\035\031\112\165\023\344' >> %t-bar.profraw
|
||||
RUN: printf '\02\0\0\0\0\0\0\0' >> %t-bar.profraw
|
||||
|
@ -2069,7 +2069,7 @@ static int showInstrProfile(const std::string &Filename, bool ShowCounts,
|
||||
bool ShowAllFunctions, bool ShowCS,
|
||||
uint64_t ValueCutoff, bool OnlyListBelow,
|
||||
const std::string &ShowFunction, bool TextFormat,
|
||||
bool ShowBinaryIds, raw_fd_ostream &OS) {
|
||||
raw_fd_ostream &OS) {
|
||||
auto ReaderOrErr = InstrProfReader::create(Filename);
|
||||
std::vector<uint32_t> Cutoffs = std::move(DetailedSummaryCutoffs);
|
||||
if (ShowDetailedSummary && Cutoffs.empty()) {
|
||||
@ -2251,11 +2251,6 @@ static int showInstrProfile(const std::string &Filename, bool ShowCounts,
|
||||
OS << "Total count: " << PS->getTotalCount() << "\n";
|
||||
PS->printDetailedSummary(OS);
|
||||
}
|
||||
|
||||
if (ShowBinaryIds)
|
||||
if (Error E = Reader->printBinaryIds(OS))
|
||||
exitWithError(std::move(E), Filename);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2506,8 +2501,6 @@ static int show_main(int argc, const char *argv[]) {
|
||||
cl::desc("Show the information of each section in the sample profile. "
|
||||
"The flag is only usable when the sample profile is in "
|
||||
"extbinary format"));
|
||||
cl::opt<bool> ShowBinaryIds("binary-ids", cl::init(false),
|
||||
cl::desc("Show binary ids in the profile. "));
|
||||
|
||||
cl::ParseCommandLineOptions(argc, argv, "LLVM profile data summary\n");
|
||||
|
||||
@ -2526,11 +2519,11 @@ static int show_main(int argc, const char *argv[]) {
|
||||
WithColor::warning() << "-function argument ignored: showing all functions\n";
|
||||
|
||||
if (ProfileKind == instr)
|
||||
return showInstrProfile(
|
||||
Filename, ShowCounts, TopNFunctions, ShowIndirectCallTargets,
|
||||
ShowMemOPSizes, ShowDetailedSummary, DetailedSummaryCutoffs,
|
||||
ShowAllFunctions, ShowCS, ValueCutoff, OnlyListBelow, ShowFunction,
|
||||
TextFormat, ShowBinaryIds, OS);
|
||||
return showInstrProfile(Filename, ShowCounts, TopNFunctions,
|
||||
ShowIndirectCallTargets, ShowMemOPSizes,
|
||||
ShowDetailedSummary, DetailedSummaryCutoffs,
|
||||
ShowAllFunctions, ShowCS, ValueCutoff,
|
||||
OnlyListBelow, ShowFunction, TextFormat, OS);
|
||||
else
|
||||
return showSampleProfile(Filename, ShowCounts, ShowAllFunctions,
|
||||
ShowDetailedSummary, ShowFunction,
|
||||
|
Loading…
Reference in New Issue
Block a user