1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

If a virtual register is already marked alive in this block, that means it is

alive in one of the successor block. Do not add it to the kill list.

llvm-svn: 35041
This commit is contained in:
Evan Cheng 2007-03-09 09:48:56 +00:00
parent e7ba7ee5d8
commit dc9f790abd

View File

@ -152,7 +152,12 @@ void LiveVariables::HandleVirtRegUse(VarInfo &VRInfo, MachineBasicBlock *MBB,
"Should have kill for defblock!");
// Add a new kill entry for this basic block.
VRInfo.Kills.push_back(MI);
unsigned BBNum = MBB->getNumber();
// If this virtual register is already marked as alive in this basic block,
// that means it is alive in at least one of the successor block, it's not
// a kill.
if (VRInfo.AliveBlocks.size() <= BBNum || !VRInfo.AliveBlocks[BBNum])
VRInfo.Kills.push_back(MI);
// Update all dominating blocks to mark them known live.
for (MachineBasicBlock::const_pred_iterator PI = MBB->pred_begin(),