summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp27
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp16
-rw-r--r--llvm/lib/IR/ModuleSummaryIndex.cpp2
-rw-r--r--llvm/lib/Transforms/IPO/FunctionImport.cpp14
4 files changed, 31 insertions, 28 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index 45435962a7c..3598debd636 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -446,7 +446,7 @@ class ModuleSummaryIndexBitcodeReader {
// call graph edges read from the function summary from referencing
// callees by their ValueId to using the GUID instead, which is how
// they are recorded in the summary index being built.
- DenseMap<unsigned, uint64_t> ValueIdToCallGraphGUIDMap;
+ DenseMap<unsigned, GlobalValue::GUID> ValueIdToCallGraphGUIDMap;
/// Map to save the association between summary offset in the VST to the
/// GlobalValueInfo object created when parsing it. Used to access the
@@ -502,7 +502,7 @@ private:
std::error_code initStream(std::unique_ptr<DataStreamer> Streamer);
std::error_code initStreamFromBuffer();
std::error_code initLazyStream(std::unique_ptr<DataStreamer> Streamer);
- uint64_t getGUIDFromValueId(unsigned ValueId);
+ GlobalValue::GUID getGUIDFromValueId(unsigned ValueId);
GlobalValueInfo *getInfoFromSummaryOffset(uint64_t Offset);
};
} // end anonymous namespace
@@ -5444,7 +5444,8 @@ void ModuleSummaryIndexBitcodeReader::freeState() { Buffer = nullptr; }
void ModuleSummaryIndexBitcodeReader::releaseBuffer() { Buffer.release(); }
-uint64_t ModuleSummaryIndexBitcodeReader::getGUIDFromValueId(unsigned ValueId) {
+GlobalValue::GUID
+ModuleSummaryIndexBitcodeReader::getGUIDFromValueId(unsigned ValueId) {
auto VGI = ValueIdToCallGraphGUIDMap.find(ValueId);
assert(VGI != ValueIdToCallGraphGUIDMap.end());
return VGI->second;
@@ -5540,7 +5541,7 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseValueSymbolTable(
// VST_CODE_COMBINED_GVDEFENTRY: [valueid, offset, guid]
unsigned ValueID = Record[0];
uint64_t GlobalValSummaryOffset = Record[1];
- uint64_t GlobalValGUID = Record[2];
+ GlobalValue::GUID GlobalValGUID = Record[2];
std::unique_ptr<GlobalValueInfo> GlobalValInfo =
llvm::make_unique<GlobalValueInfo>(GlobalValSummaryOffset);
SummaryOffsetToInfoMap[GlobalValSummaryOffset] = GlobalValInfo.get();
@@ -5551,7 +5552,7 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseValueSymbolTable(
case bitc::VST_CODE_COMBINED_ENTRY: {
// VST_CODE_COMBINED_ENTRY: [valueid, refguid]
unsigned ValueID = Record[0];
- uint64_t RefGUID = Record[1];
+ GlobalValue::GUID RefGUID = Record[1];
ValueIdToCallGraphGUIDMap[ValueID] = RefGUID;
break;
}
@@ -5787,7 +5788,7 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseEntireSummary() {
"Record size inconsistent with number of references");
for (unsigned I = 4, E = CallGraphEdgeStartIndex; I != E; ++I) {
unsigned RefValueId = Record[I];
- uint64_t RefGUID = getGUIDFromValueId(RefValueId);
+ GlobalValue::GUID RefGUID = getGUIDFromValueId(RefValueId);
FS->addRefEdge(RefGUID);
}
bool HasProfile = (BitCode == bitc::FS_PERMODULE_PROFILE);
@@ -5796,11 +5797,11 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseEntireSummary() {
unsigned CalleeValueId = Record[I];
unsigned CallsiteCount = Record[++I];
uint64_t ProfileCount = HasProfile ? Record[++I] : 0;
- uint64_t CalleeGUID = getGUIDFromValueId(CalleeValueId);
+ GlobalValue::GUID CalleeGUID = getGUIDFromValueId(CalleeValueId);
FS->addCallGraphEdge(CalleeGUID,
CalleeInfo(CallsiteCount, ProfileCount));
}
- uint64_t GUID = getGUIDFromValueId(ValueID);
+ GlobalValue::GUID GUID = getGUIDFromValueId(ValueID);
auto InfoList = TheIndex->findGlobalValueInfoList(GUID);
assert(InfoList != TheIndex->end() &&
"Expected VST parse to create GlobalValueInfo entry");
@@ -5821,10 +5822,10 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseEntireSummary() {
TheIndex->addModulePath(Buffer->getBufferIdentifier(), 0)->first());
for (unsigned I = 2, E = Record.size(); I != E; ++I) {
unsigned RefValueId = Record[I];
- uint64_t RefGUID = getGUIDFromValueId(RefValueId);
+ GlobalValue::GUID RefGUID = getGUIDFromValueId(RefValueId);
FS->addRefEdge(RefGUID);
}
- uint64_t GUID = getGUIDFromValueId(ValueID);
+ GlobalValue::GUID GUID = getGUIDFromValueId(ValueID);
auto InfoList = TheIndex->findGlobalValueInfoList(GUID);
assert(InfoList != TheIndex->end() &&
"Expected VST parse to create GlobalValueInfo entry");
@@ -5855,7 +5856,7 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseEntireSummary() {
"Record size inconsistent with number of references");
for (unsigned I = 4, E = CallGraphEdgeStartIndex; I != E; ++I) {
unsigned RefValueId = Record[I];
- uint64_t RefGUID = getGUIDFromValueId(RefValueId);
+ GlobalValue::GUID RefGUID = getGUIDFromValueId(RefValueId);
FS->addRefEdge(RefGUID);
}
bool HasProfile = (BitCode == bitc::FS_COMBINED_PROFILE);
@@ -5864,7 +5865,7 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseEntireSummary() {
unsigned CalleeValueId = Record[I];
unsigned CallsiteCount = Record[++I];
uint64_t ProfileCount = HasProfile ? Record[++I] : 0;
- uint64_t CalleeGUID = getGUIDFromValueId(CalleeValueId);
+ GlobalValue::GUID CalleeGUID = getGUIDFromValueId(CalleeValueId);
FS->addCallGraphEdge(CalleeGUID,
CalleeInfo(CallsiteCount, ProfileCount));
}
@@ -5883,7 +5884,7 @@ std::error_code ModuleSummaryIndexBitcodeReader::parseEntireSummary() {
FS->setModulePath(ModuleIdMap[ModuleId]);
for (unsigned I = 2, E = Record.size(); I != E; ++I) {
unsigned RefValueId = Record[I];
- uint64_t RefGUID = getGUIDFromValueId(RefValueId);
+ GlobalValue::GUID RefGUID = getGUIDFromValueId(RefValueId);
FS->addRefEdge(RefGUID);
}
auto *Info = getInfoFromSummaryOffset(CurRecordBit);
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index 84bdd8ca2e0..4ee53b51f70 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -2397,11 +2397,10 @@ static void WriteValueSymbolTable(
/// Emit function names and summary offsets for the combined index
/// used by ThinLTO.
-static void
-WriteCombinedValueSymbolTable(const ModuleSummaryIndex &Index,
- BitstreamWriter &Stream,
- std::map<uint64_t, unsigned> &GUIDToValueIdMap,
- uint64_t VSTOffsetPlaceholder) {
+static void WriteCombinedValueSymbolTable(
+ const ModuleSummaryIndex &Index, BitstreamWriter &Stream,
+ std::map<GlobalValue::GUID, unsigned> &GUIDToValueIdMap,
+ uint64_t VSTOffsetPlaceholder) {
assert(VSTOffsetPlaceholder > 0 && "Expected non-zero VSTOffsetPlaceholder");
// Get the offset of the VST we are writing, and backpatch it into
// the VST forward declaration record.
@@ -2427,7 +2426,7 @@ WriteCombinedValueSymbolTable(const ModuleSummaryIndex &Index,
SmallVector<uint64_t, 64> NameVals;
for (const auto &FII : Index) {
- uint64_t FuncGUID = FII.first;
+ GlobalValue::GUID FuncGUID = FII.first;
const auto &VMI = GUIDToValueIdMap.find(FuncGUID);
assert(VMI != GUIDToValueIdMap.end());
@@ -3052,7 +3051,8 @@ static void WritePerModuleGlobalValueSummary(
/// Emit the combined summary section into the combined index file.
static void WriteCombinedGlobalValueSummary(
const ModuleSummaryIndex &I, BitstreamWriter &Stream,
- std::map<uint64_t, unsigned> &GUIDToValueIdMap, unsigned GlobalValueId) {
+ std::map<GlobalValue::GUID, unsigned> &GUIDToValueIdMap,
+ unsigned GlobalValueId) {
Stream.EnterSubblock(bitc::GLOBALVAL_SUMMARY_BLOCK_ID, 3);
// Abbrev for FS_COMBINED.
@@ -3445,7 +3445,7 @@ void llvm::WriteIndexToFile(const ModuleSummaryIndex &Index, raw_ostream &Out) {
// in writing out the call graph edges. Save the mapping from GUID
// to the new global value id to use when writing those edges, which
// are currently saved in the index in terms of GUID.
- std::map<uint64_t, unsigned> GUIDToValueIdMap;
+ std::map<GlobalValue::GUID, unsigned> GUIDToValueIdMap;
unsigned GlobalValueId = 0;
for (auto &II : Index)
GUIDToValueIdMap[II.first] = ++GlobalValueId;
diff --git a/llvm/lib/IR/ModuleSummaryIndex.cpp b/llvm/lib/IR/ModuleSummaryIndex.cpp
index c23e072b48a..5effc65158d 100644
--- a/llvm/lib/IR/ModuleSummaryIndex.cpp
+++ b/llvm/lib/IR/ModuleSummaryIndex.cpp
@@ -23,7 +23,7 @@ void ModuleSummaryIndex::mergeFrom(std::unique_ptr<ModuleSummaryIndex> Other,
StringRef ModPath;
for (auto &OtherGlobalValInfoLists : *Other) {
- uint64_t ValueGUID = OtherGlobalValInfoLists.first;
+ GlobalValue::GUID ValueGUID = OtherGlobalValInfoLists.first;
GlobalValueInfoList &List = OtherGlobalValInfoLists.second;
// Assert that the value info list only has one entry, since we shouldn't
diff --git a/llvm/lib/Transforms/IPO/FunctionImport.cpp b/llvm/lib/Transforms/IPO/FunctionImport.cpp
index b5f1ffb046f..f69bc1dba59 100644
--- a/llvm/lib/Transforms/IPO/FunctionImport.cpp
+++ b/llvm/lib/Transforms/IPO/FunctionImport.cpp
@@ -103,7 +103,8 @@ selectCallee(const GlobalValueInfoList &CalleeInfoList, unsigned Threshold) {
/// Return the summary for the function \p GUID that fits the \p Threshold, or
/// null if there's no match.
-static const FunctionSummary *selectCallee(uint64_t GUID, unsigned Threshold,
+static const FunctionSummary *selectCallee(GlobalValue::GUID GUID,
+ unsigned Threshold,
const ModuleSummaryIndex &Index) {
auto CalleeInfoList = Index.findGlobalValueInfoList(GUID);
if (CalleeInfoList == Index.end()) {
@@ -114,7 +115,8 @@ static const FunctionSummary *selectCallee(uint64_t GUID, unsigned Threshold,
/// Return true if the global \p GUID is exported by module \p ExportModulePath.
static bool isGlobalExported(const ModuleSummaryIndex &Index,
- StringRef ExportModulePath, uint64_t GUID) {
+ StringRef ExportModulePath,
+ GlobalValue::GUID GUID) {
auto CalleeInfoList = Index.findGlobalValueInfoList(GUID);
if (CalleeInfoList == Index.end())
// This global does not have a summary, it is not part of the ThinLTO
@@ -138,7 +140,7 @@ using EdgeInfo = std::pair<const FunctionSummary *, unsigned /* Threshold */>;
static void computeImportForFunction(
StringRef ModulePath, const FunctionSummary &Summary,
const ModuleSummaryIndex &Index, unsigned Threshold,
- const std::map<uint64_t, FunctionSummary *> &DefinedFunctions,
+ const std::map<GlobalValue::GUID, FunctionSummary *> &DefinedFunctions,
SmallVectorImpl<EdgeInfo> &Worklist,
FunctionImporter::ImportMapTy &ImportsForModule,
StringMap<FunctionImporter::ExportSetTy> &ExportLists) {
@@ -198,7 +200,7 @@ static void computeImportForFunction(
/// another module (that may require promotion).
static void ComputeImportForModule(
StringRef ModulePath,
- const std::map<uint64_t, FunctionSummary *> &DefinedFunctions,
+ const std::map<GlobalValue::GUID, FunctionSummary *> &DefinedFunctions,
const ModuleSummaryIndex &Index,
FunctionImporter::ImportMapTy &ImportsForModule,
StringMap<FunctionImporter::ExportSetTy> &ExportLists) {
@@ -242,8 +244,8 @@ void llvm::ComputeCrossModuleImport(
// Collect for each module the list of function it defines.
// GUID -> Summary
- StringMap<std::map<uint64_t, FunctionSummary *>> Module2FunctionInfoMap(
- ModuleCount);
+ StringMap<std::map<GlobalValue::GUID, FunctionSummary *>>
+ Module2FunctionInfoMap(ModuleCount);
for (auto &GlobalList : Index) {
auto GUID = GlobalList.first;
OpenPOWER on IntegriCloud