mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
BitcodeReader: Use std:::piecewise_construct when upgrading type refs
r267296 used std::piecewise_construct without using std::forward_as_tuple, and r267298 hacked it out (using an emplace_back followed by a couple of reset() calls) because of a problem on a bot. I'm finally circling back to call forward_as_tuple as I should have to begin with (thanks to David Blaikie for pointing out the missing piece). Note that this code uses emplace_back() instead of push_back(make_pair()) because the move constructor for TrackingMDRef is expensive (cheaper than a copy, but still expensive). llvm-svn: 272306
This commit is contained in:
parent
01d87ac7ba
commit
969e6070d4
@ -1238,9 +1238,9 @@ Metadata *BitcodeReaderMetadataList::upgradeTypeRefArray(Metadata *MaybeTuple) {
|
||||
|
||||
// Create and return a placeholder to use for now. Eventually
|
||||
// resolveTypeRefArrays() will be resolve this forward reference.
|
||||
OldTypeRefs.Arrays.emplace_back();
|
||||
OldTypeRefs.Arrays.back().first.reset(Tuple);
|
||||
OldTypeRefs.Arrays.back().second = MDTuple::getTemporary(Context, None);
|
||||
OldTypeRefs.Arrays.emplace_back(
|
||||
std::piecewise_construct, std::forward_as_tuple(Tuple),
|
||||
std::forward_as_tuple(MDTuple::getTemporary(Context, None)));
|
||||
return OldTypeRefs.Arrays.back().second.get();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user