Add RegisterDefIsDead to correspond to KillsRegister, mark both const

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22987 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-08-23 22:43:24 +00:00
parent b980578b41
commit 20647a55bf

View File

@ -127,8 +127,9 @@ public:
/// KillsRegister - Return true if the specified instruction kills the
/// specified register.
bool KillsRegister(MachineInstr *MI, unsigned Reg) {
std::pair<killed_iterator, killed_iterator> KIP = killed_range(MI);
bool KillsRegister(MachineInstr *MI, unsigned Reg) const {
typedef std::multimap<MachineInstr*, unsigned>::const_iterator cki;
std::pair<cki, cki> KIP = RegistersKilled.equal_range(MI);
for (; KIP.first != KIP.second; ++KIP.first)
if (KIP.first->second == Reg)
return true;
@ -145,6 +146,17 @@ public:
dead_range(MachineInstr *MI) {
return RegistersDead.equal_range(MI);
}
/// RegisterDefIsDead - Return true if the specified instruction defines the
/// specified register, but that definition is dead.
bool RegisterDefIsDead(MachineInstr *MI, unsigned Reg) const {
typedef std::multimap<MachineInstr*, unsigned>::const_iterator cki;
std::pair<cki, cki> KIP = RegistersDead.equal_range(MI);
for (; KIP.first != KIP.second; ++KIP.first)
if (KIP.first->second == Reg)
return true;
return false;
}
//===--------------------------------------------------------------------===//
// API to update live variable information