Fix a bug in the 3-address conversion of LEA when one of the operands is an
authorNadav Rotem <nadav.rotem@intel.com>
Mon, 16 Jul 2012 10:52:25 +0000 (10:52 +0000)
committerNadav Rotem <nadav.rotem@intel.com>
Mon, 16 Jul 2012 10:52:25 +0000 (10:52 +0000)
commitd93ea88cdef5cd7e5b540f1fe913c798a8d27b24
tree05e50baf8794149e53a2cbd61a63ced3bb694141
parent349f14c72cbcd3c50091d20a874967aca5f2f746
Fix a bug in the 3-address conversion of LEA when one of the operands is an
undef virtual register. The problem is that ProcessImplicitDefs removes the
definition of the register and marks all uses as undef. If we lose the undef
marker then we get a register which has no def, is not marked as undef. The
live interval analysis does not collect information for these virtual
registers and we crash in later passes.

Together with Michael Kuperstein <michael.m.kuperstein@intel.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160260 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/2012-07-16-LeaUndef.ll [new file with mode: 0644]