X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FCodeGen%2FLiveVariables.h;h=5c714e308aaca046e9c13641a25f3323eef8a7f4;hb=24387df2074e41da767b3ad1ba10d9fe413cacfe;hp=8938330fad673f1e612c682a7abeb325e06f7585;hpb=fc8663dbe084741bc7adfa5dde01e663abb37a55;p=oota-llvm.git diff --git a/include/llvm/CodeGen/LiveVariables.h b/include/llvm/CodeGen/LiveVariables.h index 8938330fad6..5c714e308aa 100644 --- a/include/llvm/CodeGen/LiveVariables.h +++ b/include/llvm/CodeGen/LiveVariables.h @@ -2,8 +2,8 @@ // // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -154,20 +154,6 @@ private: // Intermediate data structures SmallVector *PHIVarInfo; - /// addRegisterKilled - We have determined MI kills a register. Look for the - /// operand that uses it and mark it as IsKill. If AddIfNotFound is true, - /// add a implicit operand if it's not found. Returns true if the operand - /// exists / is added. - bool addRegisterKilled(unsigned IncomingReg, MachineInstr *MI, - bool AddIfNotFound = false); - - /// addRegisterDead - We have determined MI defined a register without a use. - /// Look for the operand that defines it and mark it as IsDead. If - /// AddIfNotFound is true, add a implicit operand if it's not found. Returns - /// true if the operand exists / is added. - bool addRegisterDead(unsigned IncomingReg, MachineInstr *MI, - bool AddIfNotFound = false); - void addRegisterKills(unsigned Reg, MachineInstr *MI, SmallSet &SubKills); @@ -216,9 +202,9 @@ public: /// not found. void addVirtualRegisterKilled(unsigned IncomingReg, MachineInstr *MI, bool AddIfNotFound = false) { - if (addRegisterKilled(IncomingReg, MI, AddIfNotFound)) + if (MI->addRegisterKilled(IncomingReg, RegInfo, AddIfNotFound)) getVarInfo(IncomingReg).Kills.push_back(MI); - } + } /// removeVirtualRegisterKilled - Remove the specified virtual /// register from the live variable information. Returns true if the @@ -234,7 +220,7 @@ public: for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { MachineOperand &MO = MI->getOperand(i); if (MO.isRegister() && MO.isKill() && MO.getReg() == reg) { - MO.unsetIsKill(); + MO.setIsKill(false); Removed = true; break; } @@ -247,13 +233,13 @@ public: /// removeVirtualRegistersKilled - Remove all killed info for the specified /// instruction. void removeVirtualRegistersKilled(MachineInstr *MI); - + /// addVirtualRegisterDead - Add information about the fact that the specified /// register is dead after being used by the specified instruction. If /// AddIfNotFound is true, add a implicit operand if it's not found. void addVirtualRegisterDead(unsigned IncomingReg, MachineInstr *MI, bool AddIfNotFound = false) { - if (addRegisterDead(IncomingReg, MI, AddIfNotFound)) + if (MI->addRegisterDead(IncomingReg, RegInfo, AddIfNotFound)) getVarInfo(IncomingReg).Kills.push_back(MI); } @@ -271,7 +257,7 @@ public: for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { MachineOperand &MO = MI->getOperand(i); if (MO.isRegister() && MO.isDef() && MO.getReg() == reg) { - MO.unsetIsDead(); + MO.setIsDead(false); Removed = true; break; } @@ -296,10 +282,12 @@ public: /// register. VarInfo &getVarInfo(unsigned RegIdx); - void MarkVirtRegAliveInBlock(VarInfo &VRInfo, MachineBasicBlock *BB); - void MarkVirtRegAliveInBlock(VarInfo &VRInfo, MachineBasicBlock *BB, + void MarkVirtRegAliveInBlock(VarInfo& VRInfo, MachineBasicBlock* DefBlock, + MachineBasicBlock *BB); + void MarkVirtRegAliveInBlock(VarInfo& VRInfo, MachineBasicBlock* DefBlock, + MachineBasicBlock *BB, std::vector &WorkList); - void HandleVirtRegUse(VarInfo &VRInfo, MachineBasicBlock *MBB, + void HandleVirtRegUse(unsigned reg, MachineBasicBlock *MBB, MachineInstr *MI); };