[LLVMdev] VMkit AOT build problem: llc crushed on glibj compilation to native(.s) file

nicolas geoffray nicolas.geoffray at gmail.com
Tue Aug 3 13:35:08 PDT 2010


Hi Allan,

Thanks for the fix! So is this a bug in LLVM? Can you reduce that to a small
test case and file a bug?

Nicolas

2010/8/2 Allan Tong <actong88 at gmail.com>

> 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
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100803/5115acda/attachment.html>


More information about the llvm-dev mailing list