mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
Keep UsedBlocks info accurate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35140 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7e79e396a4
commit
e951cd1647
@ -160,6 +160,8 @@ void PNE::LowerAtomicPHINode(MachineBasicBlock &MBB,
|
|||||||
// Realize that the destination register is defined by the PHI copy now, not
|
// Realize that the destination register is defined by the PHI copy now, not
|
||||||
// the PHI itself.
|
// the PHI itself.
|
||||||
LV->getVarInfo(DestReg).DefInst = PHICopy;
|
LV->getVarInfo(DestReg).DefInst = PHICopy;
|
||||||
|
|
||||||
|
LV->getVarInfo(IncomingReg).UsedBlocks[MBB.getNumber()] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust the VRegPHIUseCount map to account for the removal of this PHI
|
// Adjust the VRegPHIUseCount map to account for the removal of this PHI
|
||||||
@ -210,6 +212,7 @@ void PNE::LowerAtomicPHINode(MachineBasicBlock &MBB,
|
|||||||
// instruction kills the incoming value.
|
// instruction kills the incoming value.
|
||||||
//
|
//
|
||||||
LiveVariables::VarInfo &InRegVI = LV->getVarInfo(SrcReg);
|
LiveVariables::VarInfo &InRegVI = LV->getVarInfo(SrcReg);
|
||||||
|
InRegVI.UsedBlocks[opBlock.getNumber()] = true;
|
||||||
|
|
||||||
// Loop over all of the successors of the basic block, checking to see
|
// Loop over all of the successors of the basic block, checking to see
|
||||||
// if the value is either live in the block, or if it is killed in the
|
// if the value is either live in the block, or if it is killed in the
|
||||||
|
@ -198,6 +198,9 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
|
|||||||
varInfo.DefInst = prevMi;
|
varInfo.DefInst = prevMi;
|
||||||
|
|
||||||
// update live variables for regB
|
// update live variables for regB
|
||||||
|
LiveVariables::VarInfo& varInfoB = LV.getVarInfo(regB);
|
||||||
|
// regB is used in this BB.
|
||||||
|
varInfoB.UsedBlocks[mbbi->getNumber()] = true;
|
||||||
if (LV.removeVirtualRegisterKilled(regB, mbbi, mi))
|
if (LV.removeVirtualRegisterKilled(regB, mbbi, mi))
|
||||||
LV.addVirtualRegisterKilled(regB, prevMi);
|
LV.addVirtualRegisterKilled(regB, prevMi);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user