summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMISelLowering.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-05 00:01:48 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-05 00:01:48 +0000
commitd5d39bb098b548ee371c6a6281ba7363763b26af (patch)
treefc547bcd36a2045e6bc3866b6a246fa9bbcbf37c /llvm/lib/Target/ARM/ARMISelLowering.cpp
parent9d5bda9be150500db82055e8aeb20efc0c235425 (diff)
downloadbcm5719-llvm-d5d39bb098b548ee371c6a6281ba7363763b26af.tar.gz
bcm5719-llvm-d5d39bb098b548ee371c6a6281ba7363763b26af.zip
Also add <imp-use,kill> flags for redefined super-registers.
For example: %vreg10:dsub_0<def,undef> = COPY %vreg1 %vreg10:dsub_1<def> = COPY %vreg2 is rewritten as: %D2<def> = COPY %D0, %Q1<imp-def> %D3<def> = COPY %D1, %Q1<imp-use,kill>, %Q1<imp-def> The first COPY doesn't care about the previous value of %Q1, so it doesn't read that register. The second COPY is a partial redefinition of %Q1, so it implicitly kills and redefines that register. This makes it possible to recognize instructions that can harmlessly clobber the full super-register. The write and don't read the super-register. llvm-svn: 141139
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud