ARM: Fix more fast-isel verifier failures.
authorJim Grosbach <grosbach@apple.com>
Fri, 16 Aug 2013 23:37:31 +0000 (23:37 +0000)
committerJim Grosbach <grosbach@apple.com>
Fri, 16 Aug 2013 23:37:31 +0000 (23:37 +0000)
commitb49860ef030cb2dba0386278ee8737eecc4e7272
tree49e12e5f8665c077022e4848d94bc262cceb0ef8
parent0673379712100110c213a0e7610b73b6c706e83d
ARM: Fix more fast-isel verifier failures.

Teach the generic instruction selection helper functions to constrain
the register classes of their input operands. For non-physical register
references, the generic code needs to be careful not to mess that up
when replacing references to result registers. As the comment indicates
for MachineRegisterInfo::replaceRegWith(), it's important to call
constrainRegClass() first.

rdar://12594152

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188593 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/Target/ARM/ARMFastISel.cpp
test/CodeGen/ARM/fast-isel.ll