mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-22 02:05:01 +00:00
Use a SmallString buffer instead of a std::string for debug info path lookup. NFC.
This code appends the filename to the directory then looks that up in a StringMap. We should be using the existing Twine::toStringRef method instead of Twine::str() as most times we'll succeed in the lookup. Its possible that we should also consider allowing StringMap to lookup a key using a Twine in addition to a StringRef but that would complicate the code with little known benefit above and beyond this change. This saves 170k temporary allocations when running llc on the verify_use_list_order bitcode with debug info for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237823 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fa3d0dc026
commit
bed96c8d97
@ -360,8 +360,10 @@ unsigned MCDwarfLineTableHeader::getFile(StringRef &Directory,
|
||||
FileNumber = SourceIdMap.size() + 1;
|
||||
assert((MCDwarfFiles.empty() || FileNumber == MCDwarfFiles.size()) &&
|
||||
"Don't mix autonumbered and explicit numbered line table usage");
|
||||
SmallString<256> Buffer;
|
||||
auto IterBool = SourceIdMap.insert(
|
||||
std::make_pair((Directory + Twine('\0') + FileName).str(), FileNumber));
|
||||
std::make_pair((Directory + Twine('\0') + FileName).toStringRef(Buffer),
|
||||
FileNumber));
|
||||
if (!IterBool.second)
|
||||
return IterBool.first->second;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user