diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-08-08 07:03:29 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-08-08 07:03:29 +0000 |
commit | 24c2e5cf7e926452ea5875d027ec0d24d9c19e39 (patch) | |
tree | 0cc71d900cf2c51bd04aa8f71c91a7901ad2e75c /include/llvm/CodeGen | |
parent | c5f6a1f9d61d74017d90e149728cb3d283e0a0e0 (diff) | |
download | external_llvm-24c2e5cf7e926452ea5875d027ec0d24d9c19e39.zip external_llvm-24c2e5cf7e926452ea5875d027ec0d24d9c19e39.tar.gz external_llvm-24c2e5cf7e926452ea5875d027ec0d24d9c19e39.tar.bz2 |
Adding kill info to val#.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40925 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen')
-rw-r--r-- | include/llvm/CodeGen/LiveInterval.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/LiveInterval.h b/include/llvm/CodeGen/LiveInterval.h index 71daf61..e8378f2 100644 --- a/include/llvm/CodeGen/LiveInterval.h +++ b/include/llvm/CodeGen/LiveInterval.h @@ -166,8 +166,23 @@ namespace llvm { /// addKillForValNum - Add a kill instruction index to the specified value /// number. void addKillForValNum(unsigned ValNo, unsigned KillIdx) { + assert(ValNo < ValueNumberInfo.size()); ValueNumberInfo[ValNo].kills.push_back(KillIdx); } + + /// replaceKillForValNum - Replace a kill index of the specified value with + /// a new kill index. + bool replaceKillForValNum(unsigned ValNo, unsigned OldKill, + unsigned NewKill) { + SmallVector<unsigned, 4> kills = ValueNumberInfo[ValNo].kills; + SmallVector<unsigned, 4>::iterator I = + std::find(kills.begin(), kills.end(), OldKill); + if (I == kills.end()) + return false; + kills.erase(I); + kills.push_back(NewKill); + return true; + } VNInfo getValNumInfo(unsigned ValNo) const { assert(ValNo < ValueNumberInfo.size()); |