[llvm-commits] [llvm] r155618 - in /llvm/trunk/lib/Target/X86: X86.td X86Subtarget.cpp
Pete Cooper
pete.cooper at gmail.com
Sat Apr 28 15:38:18 PDT 2012
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 :)
Pete
On Sat, Apr 28, 2012 at 12:03 AM, Pete Cooper <pete.cooper at gmail.com> wrote:
> Hi Craig
>
> With gratuitous copy and paste I've got the x86 JIT working on AVX. This
> passes make check for me.
>
> I did this in a rush so please have a good look at the patch to see if you
> want to commit it. I think it also needs some whitespace removal.
>
> The only change I really wasn't happy with is the one in X86BaseInfo.h. I
> hit that llvm_unreachable on most of the tests after my changes. I'm
> confused as my code is mostly copied from the X86MCCodeEmitter so i don't
> know why it doesn't fire from there.
>
> Thanks,
> Pete
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120428/3384577b/attachment.html>
More information about the llvm-commits
mailing list