diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2009-11-13 23:16:41 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2009-11-13 23:16:41 +0000 |
| commit | 1f6a3c820a997fd3c4c08dedff6706f5e045e42d (patch) | |
| tree | ce08ff3dbbd490f5645f8f3fef2a926edb48d2c4 /lib/CodeGen/VirtRegRewriter.cpp | |
| parent | 2b1ffeea2889e83b2765eacaadd668de8b03f643 (diff) | |
Fix PR5411. Bug in UpdateKills. A reg def partially define its super-registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88719 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/VirtRegRewriter.cpp')
| -rw-r--r-- | lib/CodeGen/VirtRegRewriter.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/VirtRegRewriter.cpp b/lib/CodeGen/VirtRegRewriter.cpp index e357214b8a..dcd2a75ae0 100644 --- a/lib/CodeGen/VirtRegRewriter.cpp +++ b/lib/CodeGen/VirtRegRewriter.cpp @@ -583,6 +583,10 @@ static void UpdateKills(MachineInstr &MI, const TargetRegisterInfo* TRI, RegKills.reset(*SR); KillOps[*SR] = NULL; } + for (const unsigned *SR = TRI->getSuperRegisters(Reg); *SR; ++SR) { + RegKills.reset(*SR); + KillOps[*SR] = NULL; + } } } |
