diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-06-25 03:27:12 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-06-25 03:27:12 +0000 |
commit | 351c8818f2ff89d567094f46c3e220d6501ec3fa (patch) | |
tree | 8710d8d195782f88cc3e2adbf01896ab2aafde00 /lib/CodeGen/PHIElimination.cpp | |
parent | 82d58b147f25f97b522f8916a47b40f2d81bfa56 (diff) |
Handle <undef> operands in TwoAddressInstructionPass.
When the source register to a 2-addr instruction is undefined, there is
no need to attempt any transformations - simply replace the source
register with the destination register.
This also comes up when lowering IMPLICIT_DEF instructions - make sure
the <undef> flag is moved to the new partial register def operand:
%vreg8<def> = INSERT_SUBREG %vreg9<undef>, %vreg0<kill>, sub_16bit
rewrite undef:
%vreg8<def> = INSERT_SUBREG %vreg8<undef>, %vreg0<kill>, sub_16bit
convert to:
%vreg8:sub_16bit<def,read-undef> = COPY %vreg0<kill>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159120 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/PHIElimination.cpp')
0 files changed, 0 insertions, 0 deletions