LiveIntervalAnalysis: Avoid multiple connected liveness components
authorMatthias Braun <matze@braunis.de>
Tue, 22 Sep 2015 22:37:44 +0000 (22:37 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 22 Sep 2015 22:37:44 +0000 (22:37 +0000)
commit6404850444e4da30486c3bcc0cad2969cf4b5559
tree5172be4699ed9a5b5389a813f318e23703463f89
parentc047a220175f4d8c4c8539db1b386eca8fcc8ede
LiveIntervalAnalysis: Avoid multiple connected liveness components

We may have subregister defs which are unused but not discovered and
cleaned up prior to liveness analysis. This creates multiple connected
components in the resulting live range which are forbidden in the
MachineVerifier because they would unnecesarily constrain the register
allocator. Rewrite those dead definitions to define a newly created
virtual register.

Differential Revision: http://reviews.llvm.org/D13035

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@248335 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/LiveIntervalAnalysis.cpp
test/CodeGen/AMDGPU/partially-dead-super-register-immediate.ll