mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-28 05:06:07 +00:00
[LTO] Teach computeLTOCacheKey to return std::string (NFC) (#105331)
Without this patch, computeLTOCacheKey computes SHA1, creates its hexadecimal representation with toHex, which returns std::string, and then copies it to an output parameter of type SmallString. This patch removes the redirection and teaches computeLTOCacheKey to directly return std::string computed by toHex. With the move semantics, no buffer copy should be involved. While I am at it, this patch adds a Twine to concatenate two strings.
This commit is contained in:
parent
d9b6e9f1c1
commit
0f22d47a7a
@ -62,11 +62,9 @@ void thinLTOInternalizeAndPromoteInIndex(
|
||||
|
||||
/// Computes a unique hash for the Module considering the current list of
|
||||
/// export/import and other global analysis results.
|
||||
/// The hash is produced in \p Key.
|
||||
void computeLTOCacheKey(
|
||||
SmallString<40> &Key, const lto::Config &Conf,
|
||||
const ModuleSummaryIndex &Index, StringRef ModuleID,
|
||||
const FunctionImporter::ImportMapTy &ImportList,
|
||||
std::string computeLTOCacheKey(
|
||||
const lto::Config &Conf, const ModuleSummaryIndex &Index,
|
||||
StringRef ModuleID, const FunctionImporter::ImportMapTy &ImportList,
|
||||
const FunctionImporter::ExportSetTy &ExportList,
|
||||
const std::map<GlobalValue::GUID, GlobalValue::LinkageTypes> &ResolvedODR,
|
||||
const GVSummaryMapTy &DefinedGlobals,
|
||||
|
@ -88,10 +88,10 @@ extern cl::opt<bool> EnableMemProfContextDisambiguation;
|
||||
|
||||
// Computes a unique hash for the Module considering the current list of
|
||||
// export/import and other global analysis results.
|
||||
// The hash is produced in \p Key.
|
||||
void llvm::computeLTOCacheKey(
|
||||
SmallString<40> &Key, const Config &Conf, const ModuleSummaryIndex &Index,
|
||||
StringRef ModuleID, const FunctionImporter::ImportMapTy &ImportList,
|
||||
// Returns the hash in its hexadecimal representation.
|
||||
std::string llvm::computeLTOCacheKey(
|
||||
const Config &Conf, const ModuleSummaryIndex &Index, StringRef ModuleID,
|
||||
const FunctionImporter::ImportMapTy &ImportList,
|
||||
const FunctionImporter::ExportSetTy &ExportList,
|
||||
const std::map<GlobalValue::GUID, GlobalValue::LinkageTypes> &ResolvedODR,
|
||||
const GVSummaryMapTy &DefinedGlobals,
|
||||
@ -355,7 +355,7 @@ void llvm::computeLTOCacheKey(
|
||||
}
|
||||
}
|
||||
|
||||
Key = toHex(Hasher.result());
|
||||
return toHex(Hasher.result());
|
||||
}
|
||||
|
||||
static void thinLTOResolvePrevailingGUID(
|
||||
@ -1488,11 +1488,10 @@ public:
|
||||
// no module hash.
|
||||
return RunThinBackend(AddStream);
|
||||
|
||||
SmallString<40> Key;
|
||||
// The module may be cached, this helps handling it.
|
||||
computeLTOCacheKey(Key, Conf, CombinedIndex, ModuleID, ImportList,
|
||||
ExportList, ResolvedODR, DefinedGlobals, CfiFunctionDefs,
|
||||
CfiFunctionDecls);
|
||||
std::string Key = computeLTOCacheKey(
|
||||
Conf, CombinedIndex, ModuleID, ImportList, ExportList, ResolvedODR,
|
||||
DefinedGlobals, CfiFunctionDefs, CfiFunctionDecls);
|
||||
Expected<AddStreamFn> CacheAddStreamOrErr = Cache(Task, Key, ModuleID);
|
||||
if (Error Err = CacheAddStreamOrErr.takeError())
|
||||
return Err;
|
||||
|
@ -382,13 +382,13 @@ public:
|
||||
Conf.RelocModel = TMBuilder.RelocModel;
|
||||
Conf.CGOptLevel = TMBuilder.CGOptLevel;
|
||||
Conf.Freestanding = Freestanding;
|
||||
SmallString<40> Key;
|
||||
computeLTOCacheKey(Key, Conf, Index, ModuleID, ImportList, ExportList,
|
||||
ResolvedODR, DefinedGVSummaries);
|
||||
std::string Key =
|
||||
computeLTOCacheKey(Conf, Index, ModuleID, ImportList, ExportList,
|
||||
ResolvedODR, DefinedGVSummaries);
|
||||
|
||||
// This choice of file name allows the cache to be pruned (see pruneCache()
|
||||
// in include/llvm/Support/CachePruning.h).
|
||||
sys::path::append(EntryPath, CachePath, "llvmcache-" + Key);
|
||||
sys::path::append(EntryPath, CachePath, Twine("llvmcache-", Key));
|
||||
}
|
||||
|
||||
// Access the path to this entry in the cache.
|
||||
|
Loading…
x
Reference in New Issue
Block a user