diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-07-09 05:56:21 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-07-09 05:56:21 +0000 |
| commit | d4d9e53b2035722d71ff395997457f84243b8cb8 (patch) | |
| tree | 79a2be18e6362ead033186562e23b666ba4d8399 /llvm/lib | |
| parent | ab71ead011c6b6ebbd80d30c9b4c6306f17d3d6c (diff) | |
| download | bcm5719-llvm-d4d9e53b2035722d71ff395997457f84243b8cb8.tar.gz bcm5719-llvm-d4d9e53b2035722d71ff395997457f84243b8cb8.zip | |
Avoid creating %physreg:subidx operands in SimpleRegisterCoalescing::RemoveCopyByCommutingDef.
This fixes PR7602.
llvm-svn: 107957
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp b/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp index 87337c9676e..b547c1df743 100644 --- a/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp +++ b/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp @@ -460,7 +460,10 @@ bool SimpleRegisterCoalescing::RemoveCopyByCommutingDef(const CoalescerPair &CP, LiveInterval::iterator ULR = IntA.FindLiveRangeContaining(UseIdx); if (ULR == IntA.end() || ULR->valno != AValNo) continue; - UseMO.setReg(NewReg); + if (TargetRegisterInfo::isPhysicalRegister(NewReg)) + UseMO.substPhysReg(NewReg, *tri_); + else + UseMO.setReg(NewReg); if (UseMI == CopyMI) continue; if (UseMO.isKill()) { |

