[ThinLTO] Add string saver onto index for value names
Summary: Adds a string saver to the ModuleSummaryIndex so it can store value names in the case of adding a ValueInfo for a GUID when we don't have the name stored in a Module string table. This is motivated by the upcoming summary parser patch, where we will read value names from the summary entry and want to store them, even when a Module is not available. Currently this allows us to store the name in the legacy bitcode case, and I have added a test to show that. Reviewers: pcc, dexonsmith Subscribers: mehdi_amini, inglorion, eraman, steven_wu, llvm-commits Differential Revision: https://reviews.llvm.org/D47842 llvm-svn: 335570
This commit is contained in:
@@ -4836,11 +4836,14 @@ void ModuleSummaryIndexBitcodeReader::setValueGUID(
|
||||
if (PrintSummaryGUIDs)
|
||||
dbgs() << "GUID " << ValueGUID << "(" << OriginalNameID << ") is "
|
||||
<< ValueName << "\n";
|
||||
|
||||
|
||||
// UseStrtab is false for legacy summary formats and value names are
|
||||
// created on stack. We can't use them outside of parseValueSymbolTable.
|
||||
// created on stack. In that case we save the name in a string saver in
|
||||
// the index so that the value name can be recorded.
|
||||
ValueIdToValueInfoMap[ValueID] = std::make_pair(
|
||||
TheIndex.getOrInsertValueInfo(ValueGUID, UseStrtab ? ValueName : ""),
|
||||
TheIndex.getOrInsertValueInfo(
|
||||
ValueGUID,
|
||||
UseStrtab ? ValueName : TheIndex.saveString(ValueName.str())),
|
||||
OriginalNameID);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user