diff options
| author | Dan Gohman <gohman@apple.com> | 2010-05-13 19:24:00 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2010-05-13 19:24:00 +0000 |
| commit | 7767d2747b06725697036bb4cd9a2ea95b92684c (patch) | |
| tree | e95b68c00150c6371f9abaf443757b8f3d890eef /llvm/lib/CodeGen/MachineRegisterInfo.cpp | |
| parent | 5b510c14742650615c9a3129a97fb4a634c1f77a (diff) | |
| download | bcm5719-llvm-7767d2747b06725697036bb4cd9a2ea95b92684c.tar.gz bcm5719-llvm-7767d2747b06725697036bb4cd9a2ea95b92684c.zip | |
Add a utility function for conservatively clearing kill flags, and make
use of it in MachineCSE.
llvm-svn: 103726
Diffstat (limited to 'llvm/lib/CodeGen/MachineRegisterInfo.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MachineRegisterInfo.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineRegisterInfo.cpp b/llvm/lib/CodeGen/MachineRegisterInfo.cpp index 5465fca05f7..402be479eac 100644 --- a/llvm/lib/CodeGen/MachineRegisterInfo.cpp +++ b/llvm/lib/CodeGen/MachineRegisterInfo.cpp @@ -133,6 +133,15 @@ bool MachineRegisterInfo::hasOneNonDBGUse(unsigned RegNo) const { return ++UI == use_nodbg_end(); } +/// clearKillFlags - Iterate over all the uses of the given register and +/// clear the kill flag from the MachineOperand. This function is used by +/// optimization passes which extend register lifetimes and need only +/// preserve conservative kill flag information. +void MachineRegisterInfo::clearKillFlags(unsigned Reg) const { + for (use_iterator UI = use_begin(Reg), UE = use_end(); UI != UE; ++UI) + UI.getOperand().setIsKill(false); +} + bool MachineRegisterInfo::isLiveIn(unsigned Reg) const { for (livein_iterator I = livein_begin(), E = livein_end(); I != E; ++I) if (I->first == Reg || I->second == Reg) |

