diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-10-05 00:01:48 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-10-05 00:01:48 +0000 |
commit | 200a8cef256f6aade13692752a8fa8f6120cf04f (patch) | |
tree | 35a0d3109848ca250a7bf7c6d053b0ed40753dc2 /utils | |
parent | b077cf338bd85a6a7397ec88d65278f02f0ed06f (diff) | |
download | llvm-200a8cef256f6aade13692752a8fa8f6120cf04f.tar.gz llvm-200a8cef256f6aade13692752a8fa8f6120cf04f.tar.bz2 llvm-200a8cef256f6aade13692752a8fa8f6120cf04f.tar.xz |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141139 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
0 files changed, 0 insertions, 0 deletions