aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-08-08 07:03:29 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-08-08 07:03:29 +0000
commit24c2e5cf7e926452ea5875d027ec0d24d9c19e39 (patch)
tree0cc71d900cf2c51bd04aa8f71c91a7901ad2e75c /include/llvm/CodeGen
parentc5f6a1f9d61d74017d90e149728cb3d283e0a0e0 (diff)
downloadexternal_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.h15
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());