mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
[WinEH] Avoid holding references to BlockColor (DenseMap) entries while inserting new elements
Differential Revision: https://reviews.llvm.org/D27693 llvm-svn: 289694
This commit is contained in:
parent
af1853c43a
commit
9f2d83ffdb
@ -1202,8 +1202,12 @@ void WinEHPrepare::replaceUseWithLoad(Value *V, Use &U, AllocaInst *&SpillSlot,
|
||||
Goto->setSuccessor(0, PHIBlock);
|
||||
CatchRet->setSuccessor(NewBlock);
|
||||
// Update the color mapping for the newly split edge.
|
||||
// Grab a reference to the ColorVector to be inserted before getting the
|
||||
// reference to the vector we are copying because inserting the new
|
||||
// element in BlockColors might cause the map to be reallocated.
|
||||
ColorVector &ColorsForNewBlock = BlockColors[NewBlock];
|
||||
ColorVector &ColorsForPHIBlock = BlockColors[PHIBlock];
|
||||
BlockColors[NewBlock] = ColorsForPHIBlock;
|
||||
ColorsForNewBlock = ColorsForPHIBlock;
|
||||
for (BasicBlock *FuncletPad : ColorsForPHIBlock)
|
||||
FuncletBlocks[FuncletPad].push_back(NewBlock);
|
||||
// Treat the new block as incoming for load insertion.
|
||||
|
Loading…
Reference in New Issue
Block a user