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

Pete Cooper pete.cooper at gmail.com
Sat Apr 28 16:01:04 PDT 2012


On Sat, Apr 28, 2012 at 3:56 PM, Eric Christopher <echristo at apple.com>wrote:

>
> 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.
> >
>
> I just found this too :)
>
> > 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 :)
>
> I'm for this change. While we want to get rid of MRMInitReg (and AVX isn't
> helping) the assert is pretty much just checking that LowerUnaryToTwoAddr
> is running here. It's valid code so we should just accept it IMO.
>
> The rest of the patch looks fine, someone should file a bug to refactor
> this :)
>
Great.  Thanks for taking the time to review this Eric.

I'll give it a couple of hours and if there's no objections I'll commit
(after whitespace removal that is)

Pete

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


More information about the llvm-commits mailing list