[LLVMdev] VMkit AOT build problem: llc crushed on glibj compilation to native(.s) file
Allan Tong
actong88 at gmail.com
Sun Aug 1 23:10:20 PDT 2010
On Mon, Jul 19, 2010 at 7:40 PM, Minas Abrahamyan <minas.subs at gmail.com> wrote:
> Trying to build AOT version of vmkit java,
> building for that classpath glibj.zip:
>
> $ cd vmkit/tools/vmjc/libvmjc
> $ make ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1 REQUIRES_FRAME_POINTER=1
>
> has eventually, after 50 minutes, brought:
> <<<
> llvm[0]: Compiling glibj.zip to llvm
> llvm[0]: Optimizing glibj.zip
> llvm[0]: Compiling glibj.zip.bc to native
> UNREACHABLE executed!
> 0 llc 0x0000000000c0e04f
> 1 llc 0x0000000000c0fc4a
> 2 libpthread.so.0 0x0000003b6400f0f0
> 3 libc.so.6 0x0000003b634326c5 gsignal + 53
> 4 libc.so.6 0x0000003b63433ea5 abort + 373
> 5 llc 0x0000000000bf07e4
> llvm::llvm_unreachable_internal(char const*, char const*, unsigned
> int) + 356
> 6 llc 0x00000000008f353d
> 7 llc 0x00000000008f3614
> 8 llc 0x00000000008f85e2
> 9 llc 0x00000000008f894e
> 10 llc 0x00000000008fa586
> llvm::AsmPrinter::EmitGlobalVariable(llvm::GlobalVariable const*) +
> 550
> 11 llc 0x00000000008f412f
> llvm::AsmPrinter::doFinalization(llvm::Module&) + 63
> 12 llc 0x0000000000ba0369
> llvm::FPPassManager::doFinalization(llvm::Module&) + 57
> 13 llc 0x0000000000ba691f
> llvm::FPPassManager::runOnModule(llvm::Module&) + 95
> 14 llc 0x0000000000ba644e
> llvm::MPPassManager::runOnModule(llvm::Module&) + 462
> 15 llc 0x0000000000ba655d
> llvm::PassManagerImpl::run(llvm::Module&) + 125
> 16 llc 0x000000000051dca0 main + 2672
> 17 libc.so.6 0x0000003b6341eb1d __libc_start_main + 253
> 18 llc 0x000000000051bb19
> Stack dump:
> 0. Program arguments:
> /home/mn/tests/VMkit/llvm/Release-Asserts/bin/llc
> -relocation-model=pic -disable-fp-elim glibj-optimized.zip.bc -o
> glibj.zip.s
> 1. Running pass 'Function Pass Manager' on module 'glibj-optimized.zip.bc'.
> make: *** [glibj.zip.s] Aborted (core dumped)
>>>>
>
> File sizes: glibj.zip.bc (93Mb), glibj-optimized.zip.bc (93Mb),
> glibj-optimized.zip.s was ~>190Mb when this crush occurred.
>
> How this can be corrected?
Attached patch should fix the issue. The unreachable condition was
caused by a constant expression involving an inttoptr from i32. This
results in a zext to 64 bits, but apparently LowerConstant in
AsmPrinter doesn't handle constant expressions involving zext. Aren't
zext constant expressions supported by LLVM?
- Allan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libvmjc.diff
Type: text/x-patch
Size: 909 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100802/503b0ad2/attachment.bin>
More information about the llvm-dev
mailing list