[llvm] r260338 - [Orc] Add lazy-JITting support for i386.
Dimitry Andric via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 22 05:01:49 PST 2016
Hi Lang,
Thanks for fixing it. On i386-freebsd, the OrcLazy tests now all succeed:
-- Testing: 4 tests, 4 threads --
PASS: LLVM :: ExecutionEngine/OrcLazy/anonymous_globals.ll (1 of 4)
PASS: LLVM :: ExecutionEngine/OrcLazy/hello.ll (2 of 4)
PASS: LLVM :: ExecutionEngine/OrcLazy/private_linkage.ll (3 of 4)
PASS: LLVM :: ExecutionEngine/OrcLazy/global_aliases.ll (4 of 4)
Testing Time: 0.10s
Expected Passes : 4
-Dimitry
> On 21 Feb 2016, at 23:57, Lang Hames <lhames at gmail.com> wrote:
>
> Hi Dimitry, Reid,
>
> I've added stack realignment code to the i386 resolver function in r261503. This should fix the failures due to the fxsave/fxrstor instructions. Hopefully this will fix the BSD bots.
>
> Reid - this doesn't address the relocation issue you encountered, so we can't turn these tests back on on Windows yet, but it's a step in the right direction.
>
> Cheers,
> Lang.
>
> On Sun, Feb 21, 2016 at 12:20 PM, Lang Hames <lhames at gmail.com <mailto:lhames at gmail.com>> wrote:
> Hi Dimitry,
>
> This looks similar to the issue that Reid ran in to. I suspect it's a stack alignment issue: This code assumes the stack is 16-byte aligned, and I guess that's not true on Windows or BSD.
>
> I'll add some stack realignment code now and see if it gets the builders green again.
>
> Cheers,
> Lang.
>
>
> On Sun, Feb 21, 2016 at 5:42 AM, Dimitry Andric <dimitry at andric.com <mailto:dimitry at andric.com>> wrote:
> On 10 Feb 2016, at 02:02, Lang Hames via llvm-commits <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
> >
> > Author: lhames
> > Date: Tue Feb 9 19:02:33 2016
> > New Revision: 260338
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=260338&view=rev <http://llvm.org/viewvc/llvm-project?rev=260338&view=rev>
> > Log:
> > [Orc] Add lazy-JITting support for i386.
> >
> > This patch adds a new class, OrcI386, which contains the hooks needed to
> > support lazy-JITing on i386 (currently only for Pentium 2 or above, as the JIT
> > re-entry code uses the FXSAVE/FXRSTOR instructions).
> >
> > Support for i386 is enabled in the LLI lazy JIT and the Orc C API, and
> > regression and unit tests are enabled for this architecture.
>
> Hi,
>
> I was wondering why I was always getting OrcLazy test failures on i386-freebsd recently, but it appears to have been introduced with this commit. :)
>
> All the OrcLazy tests result in lli getting a SIGBUS:
>
> FAIL: LLVM :: ExecutionEngine/OrcLazy/anonymous_globals.ll (18054 of 25776)
> ******************** TEST 'LLVM :: ExecutionEngine/OrcLazy/anonymous_globals.ll' FAILED ********************
> Script:
> --
> /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/lli -jit-kind=orc-lazy /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/anonymous_globals.ll
> --
> Exit Code: 138
>
> Command Output (stderr):
> --
> /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/test/ExecutionEngine/OrcLazy/Output/anonymous_globals.ll.script: line 1: 11213 Bus error (core dumped) /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/lli -jit-kind=orc-lazy /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/anonymous_globals.ll
>
> --
>
> ********************
> Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60..
> FAIL: LLVM :: ExecutionEngine/OrcLazy/global_aliases.ll (18064 of 25776)
> ******************** TEST 'LLVM :: ExecutionEngine/OrcLazy/global_aliases.ll' FAILED ********************
> Script:
> --
> /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/lli -jit-kind=orc-lazy /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/global_aliases.ll
> --
> Exit Code: 138
>
> Command Output (stderr):
> --
> /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/test/ExecutionEngine/OrcLazy/Output/global_aliases.ll.script: line 1: 11214 Bus error (core dumped) /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/lli -jit-kind=orc-lazy /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/global_aliases.ll
>
> --
>
> ********************
> Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60..
> FAIL: LLVM :: ExecutionEngine/OrcLazy/hello.ll (18077 of 25776)
> ******************** TEST 'LLVM :: ExecutionEngine/OrcLazy/hello.ll' FAILED ********************
> Script:
> --
> /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/lli -jit-kind=orc-lazy -orc-lazy-debug=funcs-to-stdout /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/hello.ll | /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/FileCheck /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/hello.ll
> --
> Exit Code: 2
>
> Command Output (stderr):
> --
> FileCheck error: '-' is empty.
>
> --
>
> ********************
> Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60..
> FAIL: LLVM :: ExecutionEngine/OrcLazy/private_linkage.ll (18078 of 25776)
> ******************** TEST 'LLVM :: ExecutionEngine/OrcLazy/private_linkage.ll' FAILED ********************
> Script:
> --
> /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/lli -jit-kind=orc-lazy /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/private_linkage.ll
> --
> Exit Code: 138
>
> Command Output (stderr):
> --
> /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/test/ExecutionEngine/OrcLazy/Output/private_linkage.ll.script: line 1: 11218 Bus error (core dumped) /home/dim/obj/llvm-261275M-trunk-freebsd11-i386-ninja-rel-1/./bin/lli -jit-kind=orc-lazy /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/private_linkage.ll
>
> --
>
> ********************
> Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.
> FAIL: LLVM-Unit :: ExecutionEngine/Orc/OrcJITTests/OrcCAPIExecutionTest.TestLazyIRCompilation (24756 of 25776)
> ******************** TEST 'LLVM-Unit :: ExecutionEngine/Orc/OrcJITTests/OrcCAPIExecutionTest.TestLazyIRCompilation' FAILED ********************
> Note: Google Test filter = OrcCAPIExecutionTest.TestLazyIRCompilation
> [==========] Running 1 test from 1 test case.
> [----------] Global test environment set-up.
> [----------] 1 test from OrcCAPIExecutionTest
> [ RUN ] OrcCAPIExecutionTest.TestLazyIRCompilation
>
> ********************
>
> Unfortunately, the debugger seems to have trouble following the execution, so it does not really show anything interesting in the stack trace:
>
> (gdb) run
> Starting program: /home/dim/obj/llvm-orc-r260338/bin/lli -jit-kind=orc-lazy /share/dim/src/llvm/trunk/test/ExecutionEngine/OrcLazy/private_linkage.ll
> [New Thread 29612000 (LWP 101099)]
>
> Program received signal SIGBUS, Bus error.
> [Switching to Thread 29612000 (LWP 101099)]
> 0x28fa600f in ?? ()
> (gdb) bt
> #0 0x28fa600f in ?? ()
> #1 0x2913aff5 in ?? ()
> #2 0x0815adcd in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)
> at /share/dim/src/llvm/trunk/tools/lli/lli.cpp:414
>
> It appears to die on an fxsave instruction, though:
>
> (gdb) disassemble 0x28fa6000,0x28fa6020
> Dump of assembler code from 0x28fa6000 to 0x28fa6020:
> 0x28fa6000: push %ebp
> 0x28fa6001: mov %esp,%ebp
> 0x28fa6003: push %eax
> 0x28fa6004: push %ebx
> 0x28fa6005: push %ecx
> 0x28fa6006: push %edx
> 0x28fa6007: push %esi
> 0x28fa6008: push %edi
> 0x28fa6009: sub $0x21c,%esp
> => 0x28fa600f: fxsave 0x10(%esp)
> 0x28fa6014: mov 0x4(%ebp),%esi
> 0x28fa6017: sub $0x5,%esi
> 0x28fa601a: mov %esi,0x4(%esp)
> 0x28fa601e: movl $0x296182c0,(%esp)
> End of assembler dump.
> (gdb) info registers
> eax 0xbfbfe6e0 -1077942560
> ecx 0x2913bff0 689160176
> edx 0x3 3
> ebx 0x905e994 151382420
> esp 0xbfbfd58c 0xbfbfd58c
> ebp 0xbfbfd7c0 0xbfbfd7c0
> esi 0xbfbfd7f0 -1077946384
> edi 0xbfbfd820 -1077946336
> eip 0x28fa600f 0x28fa600f
> eflags 0x210292 [ AF SF IF RF ID ]
> cs 0x33 51
> ss 0x3b 59
> ds 0x3b 59
> es 0x3b 59
> fs 0x3b 59
> gs 0x1b 27
>
> Any ideas on how to debug this further?
>
> -Dimitry
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160222/ebab8d4e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160222/ebab8d4e/attachment.sig>
More information about the llvm-commits
mailing list