From 472405e0dc05f6fb8c09af00713ff893fff25b94 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 19 Jul 2004 06:55:21 +0000 Subject: [PATCH] Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14997 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/LiveVariables.h | 12 ++++-------- lib/CodeGen/LiveIntervalAnalysis.cpp | 2 +- lib/CodeGen/LiveVariables.cpp | 5 +++-- lib/CodeGen/PHIElimination.cpp | 8 ++++---- lib/CodeGen/TwoAddressInstructionPass.cpp | 4 ++-- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/include/llvm/CodeGen/LiveVariables.h b/include/llvm/CodeGen/LiveVariables.h index 1df98e50e00..80cbb41950b 100644 --- a/include/llvm/CodeGen/LiveVariables.h +++ b/include/llvm/CodeGen/LiveVariables.h @@ -151,11 +151,9 @@ public: /// specified register is killed after being used by the specified /// instruction. /// - void addVirtualRegisterKilled(unsigned IncomingReg, - MachineBasicBlock *MBB, - MachineInstr *MI) { + void addVirtualRegisterKilled(unsigned IncomingReg, MachineInstr *MI) { RegistersKilled.insert(std::make_pair(MI, IncomingReg)); - getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MBB, MI)); + getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MI->getParent(),MI)); } /// removeVirtualRegisterKilled - Remove the specified virtual @@ -189,11 +187,9 @@ public: /// addVirtualRegisterDead - Add information about the fact that the specified /// register is dead after being used by the specified instruction. /// - void addVirtualRegisterDead(unsigned IncomingReg, - MachineBasicBlock *MBB, - MachineInstr *MI) { + void addVirtualRegisterDead(unsigned IncomingReg, MachineInstr *MI) { RegistersDead.insert(std::make_pair(MI, IncomingReg)); - getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MBB, MI)); + getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MI->getParent(),MI)); } /// removeVirtualRegisterDead - Remove the specified virtual diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index ee988b10a40..a20d23bb764 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -263,7 +263,7 @@ std::vector LiveIntervals::addIntervalsForSpills( nI.addRange(start, end); added.push_back(&nI); // update live variables - lv_->addVirtualRegisterKilled(nReg, mi->getParent(),mi); + lv_->addVirtualRegisterKilled(nReg, mi); DEBUG(std::cerr << "\t\t\t\tadded new interval: " << nI << '\n'); } diff --git a/lib/CodeGen/LiveVariables.cpp b/lib/CodeGen/LiveVariables.cpp index 883b7813e7f..c82208aceab 100644 --- a/lib/CodeGen/LiveVariables.cpp +++ b/lib/CodeGen/LiveVariables.cpp @@ -99,7 +99,7 @@ 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(std::make_pair(MBB, MI)); + VRInfo.Kills.push_back(std::make_pair(MI->getParent(), MI)); // Update all dominating blocks to mark them known live. const BasicBlock *BB = MBB->getBasicBlock(); @@ -233,7 +233,8 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &MF) { assert(VRInfo.DefInst == 0 && "Variable multiply defined!"); VRInfo.DefInst = MI; - VRInfo.Kills.push_back(std::make_pair(MBB, MI)); // Defaults to dead + // Defaults to dead + VRInfo.Kills.push_back(std::make_pair(MI->getParent(), MI)); } else if (MRegisterInfo::isPhysicalRegister(MO.getReg()) && AllocatablePhysicalRegisters[MO.getReg()]) { HandlePhysRegDef(MO.getReg(), MI); diff --git a/lib/CodeGen/PHIElimination.cpp b/lib/CodeGen/PHIElimination.cpp index 40bf5883ddc..4b6723797ac 100644 --- a/lib/CodeGen/PHIElimination.cpp +++ b/lib/CodeGen/PHIElimination.cpp @@ -122,7 +122,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) { // each for each incoming block), the "def" block and instruction fields // for the VarInfo is not filled in. // - LV->addVirtualRegisterKilled(IncomingReg, &MBB, PHICopy); + LV->addVirtualRegisterKilled(IncomingReg, PHICopy); // Since we are going to be deleting the PHI node, if it is the last use // of any registers, or if the value itself is dead, we need to move this @@ -140,7 +140,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) { // Add all of the kills back, which will update the appropriate info... for (unsigned i = 0, e = Range.size(); i != e; ++i) - LV->addVirtualRegisterKilled(Range[i].second, &MBB, PHICopy); + LV->addVirtualRegisterKilled(Range[i].second, PHICopy); } RKs = LV->dead_range(MI); @@ -149,7 +149,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) { Range.assign(RKs.first, RKs.second); LV->removeVirtualRegistersDead(RKs.first, RKs.second); for (unsigned i = 0, e = Range.size(); i != e; ++i) - LV->addVirtualRegisterDead(Range[i].second, &MBB, PHICopy); + LV->addVirtualRegisterDead(Range[i].second, PHICopy); } } @@ -251,7 +251,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) { // if (!ValueIsLive) { MachineBasicBlock::iterator Prev = prior(I); - LV->addVirtualRegisterKilled(SrcReg, &opBlock, Prev); + LV->addVirtualRegisterKilled(SrcReg, Prev); } } } diff --git a/lib/CodeGen/TwoAddressInstructionPass.cpp b/lib/CodeGen/TwoAddressInstructionPass.cpp index 2190f2162e4..f2815eecffb 100644 --- a/lib/CodeGen/TwoAddressInstructionPass.cpp +++ b/lib/CodeGen/TwoAddressInstructionPass.cpp @@ -151,10 +151,10 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) { // update live variables for regB if (LV->removeVirtualRegisterKilled(regB, &*mbbi, mi)) - LV->addVirtualRegisterKilled(regB, &*mbbi, prevMi); + LV->addVirtualRegisterKilled(regB, prevMi); if (LV->removeVirtualRegisterDead(regB, &*mbbi, mi)) - LV->addVirtualRegisterDead(regB, &*mbbi, prevMi); + LV->addVirtualRegisterDead(regB, prevMi); } // replace all occurences of regB with regA -- 2.34.1