Remove RegisterScavenger::isSuperRegUsed(). This completely reverses the mistaken...
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 8 Aug 2009 13:19:10 +0000 (13:19 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 8 Aug 2009 13:19:10 +0000 (13:19 +0000)
commit9390cd0e86cb3b79f6836acab2a27b275e5bde9e
treeb19a164db68eeee7f29fc43bb60d91c40b14d583
parentdffb051c21d32209c601ca0ca6baae75b6c6463f
Remove RegisterScavenger::isSuperRegUsed(). This completely reverses the mistaken commit r77904.

Now there is no special treatment of instructions that redefine part of a
super-register. Instead, the super-register is marked with <imp-use,kill> and
<imp-def>. For instance, from LowerSubregs on ARM:

subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1<undef>, %D1<kill>, 5
subreg: %D2<def> = FCPYD %D1<kill>, 14, %reg0, %Q1<imp-def>

subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1, %D0<kill>, 6
subreg: %D3<def> = FCPYD %D0<kill>, 14, %reg0, %Q1<imp-use,kill>, %Q1<imp-def>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78466 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/RegisterScavenging.h
lib/CodeGen/LowerSubregs.cpp
lib/CodeGen/RegisterScavenging.cpp