[Register Coalescer] Fix wrong live-range information with rematerialization.
authorQuentin Colombet <qcolombet@apple.com>
Fri, 11 Apr 2014 19:45:07 +0000 (19:45 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Fri, 11 Apr 2014 19:45:07 +0000 (19:45 +0000)
commit441d6d505bf3339b5c7bb4374216128a4935b25e
treeff2acb63cb43823fe6fa7efea6dd59ee6fdb6552
parent6e6126ac4c30a475c44bdfae3a75b71b571cba94
[Register Coalescer] Fix wrong live-range information with rematerialization.
When rematerializing an instruction that defines a super register that would be
used by a physical subregisters we use the related physical super register for
the definition.
To keep the live-range information accurate, all the defined subregisters must be
marked as dead def, otherwise the register allocation may miss some
interferences.

Working on a reduced test-case!

<rdar://problem/16582185>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206060 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegisterCoalescer.cpp