[llvm-commits] [llvm] r155618 - in /llvm/trunk/lib/Target/X86: X86.td X86Subtarget.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Sat Apr 28 17:07:25 PDT 2012


On Apr 28, 2012, at 3:38 PM, Pete Cooper wrote:

> I tracked down the difference in llc and lli which leads to a crash in one but not the other with these changes applied.  The llvm_unreachable i removed here from X86BaseInfo.h fires in lli because of a MOV32r0 instruction.
> 
> The JIT passes this instruction all the way through to emission.  llc instead calls LowerUnaryToTwoAddr(OutMI, X86::XOR32rr); which stops any MOV32r0 instructions from ever getting to MC emission and triggering the llvm_unreachable.
> 
> Anyone got any advice on this?  We could have the JIT also make the LowerUnaryToTwoAddr call but without refactoring this is getting to be a mess of copied and pasted code.  Not that I helped that at all with this patch :)

You can handle MOV32r0 in X86InstrInfo::expandPostRAPseudo(), just like we do with the corresponding vector pseudos.

/jakob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120428/62bd64a2/attachment.html>


More information about the llvm-commits mailing list