<div dir="ltr">Hi <span style="font-family:arial,sans-serif;font-size:13px">Gaël</span><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Thanks for looking into this. I've made a little progress myself. "llcj" must be run from the root directory of the compiled Java class files, i.e. the "tools/trainer/Release+Asserts" directory. Then its call to "vmjc" succeeds, it calls "opt", but then it fails again when it tries to run "llc", saying that it cannot find the vmkit garbage collector. So I added the "static-gc-printer.so" with a "-load" option. </span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Now it finds the GC, but that still fails with:</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><div><font face="arial, sans-serif">llc: VmkitGCPrinter.cpp:270: llvm::Constant *FindMetadata(const llvm::Function &): Assertion `0 && "Should have found a JavaMethod"' failed.</font></div>
<div><font face="arial, sans-serif">0  llc                  0x0000000000ff1295 llvm::sys::PrintStackTrace(_IO_FILE*) + 37</font></div><div><font face="arial, sans-serif">1  llc                  0x0000000000ff1753</font></div>
<div><font face="arial, sans-serif">2  libpthread.so.0      0x00007fce83f1b880</font></div><div><font face="arial, sans-serif">3  libc.so.6            0x00007fce8317a389 gsignal + 57</font></div><div><font face="arial, sans-serif">4  libc.so.6            0x00007fce8317b788 abort + 328</font></div>
<div><font face="arial, sans-serif">5  libc.so.6            0x00007fce831734a6</font></div><div><font face="arial, sans-serif">6  libc.so.6            0x00007fce83173552</font></div><div><font face="arial, sans-serif">7  static-gc-printer.so 0x00007fce82f41a7e</font></div>
<div><font face="arial, sans-serif">8  static-gc-printer.so 0x00007fce82f41fe2</font></div><div><font face="arial, sans-serif">9  llc                  0x0000000000b58781 llvm::AsmPrinter::doFinalization(llvm::Module&) + 1217</font></div>
<div><font face="arial, sans-serif">10 llc                  0x0000000000f8fa1e llvm::FPPassManager::doFinalization(llvm::Module&) + 94</font></div><div><font face="arial, sans-serif">11 llc                  0x0000000000f8fd2e llvm::MPPassManager::runOnModule(llvm::Module&) + 686</font></div>
<div><font face="arial, sans-serif">12 llc                  0x0000000000f904df llvm::PassManagerImpl::run(llvm::Module&) + 543</font></div><div><font face="arial, sans-serif">13 llc                  0x0000000000524f2a main + 6506</font></div>
<div><font face="arial, sans-serif">14 libc.so.6            0x00007fce83166b05 __libc_start_main + 245</font></div><div><font face="arial, sans-serif">15 llc                  0x00000000005234f3</font></div><div><font face="arial, sans-serif">Stack dump:</font></div>
<div><font face="arial, sans-serif">0.<span class="" style="white-space:pre">   </span>Program arguments: /home/db538/vmkit/llvm-3.3.src/Release+Asserts/bin/llc /tmp/llvm_xJHwnR/HelloWorld.bc -disable-fp-elim -load /home/db538/vmkit/vmkit/Release+Asserts/lib/static-gc-printer.so -o /tmp/llvm_xJHwnR/HelloWorld.s </font></div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">I checked and the method it's looking for is "JnJVM_HelloWorld_main___3Ljava_lang_String_2". Thoughts?</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Thanks,</div><div style="font-family:arial,sans-serif;font-size:13px">Dave</div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 7, 2014 at 6:55 PM, Gaël Thomas <span dir="ltr"><<a href="mailto:gael.thomas@lip6.fr" target="_blank">gael.thomas@lip6.fr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi David,<br>
<br>
I don't know where is the problem, but I'm investigating that :)<br>
Basically, I never had to use llcj and I don't know how and if it<br>
works... I send you a mail as soon as I understand how llcj should<br>
work.<br>
<br>
Gaël<br>
<br>
<br>
2014-03-07 15:06 GMT+01:00 David Brazdil <<a href="mailto:david.brazdil@gmail.com">david.brazdil@gmail.com</a>>:<br>
<div><div class="h5">> Hi,<br>
> I'm new to VMKit and I'm trying to use its AOT Java compiler but I'm<br>
> immediately getting an error message which I don't understand.<br>
><br>
> Everything was compiler as suggested in the Getting Started tutorial, using<br>
> GNU Classpath. I try to run:<br>
><br>
>     llcj ../../tools/trainer/Release+Asserts/HelloWorld.class<br>
><br>
> and get the following output:<br>
><br>
>     Can not materiale a function in AOT mode.0  vmjc<br>
> 0x0000000000f2cea5 llvm::sys::PrintStackTrace(_IO_FILE*) + 37<br>
>     1  vmjc            0x0000000000f2d363<br>
>     2  libpthread.so.0 0x00007f4fbbe83880<br>
>     3  libc.so.6       0x00007f4fbb0e2389 gsignal + 57<br>
>     4  libc.so.6       0x00007f4fbb0e3788 abort + 328<br>
>     5  vmjc            0x000000000052f6f9<br>
>     6  vmjc            0x00000000005739cc<br>
>     7  vmjc            0x0000000000573795<br>
>     8  vmjc            0x0000000000572d24<br>
> j3::JavaMethod::invokeIntStatic(j3::Jnjvm*, j3::Class*, ...) + 116<br>
>     9  vmjc            0x0000000000587c9e<br>
> j3::Class::initialiseClass(j3::Jnjvm*) + 574<br>
>     10 vmjc            0x0000000000574c82<br>
>     11 vmjc            0x0000000000574a45<br>
>     12 vmjc            0x00000000005735a4<br>
> j3::JavaMethod::invokeJavaObjectStatic(j3::Jnjvm*, j3::Class*, ...) + 116<br>
>     13 vmjc            0x000000000058a921<br>
> j3::Jnjvm::noClassDefFoundError(j3::Class*, vmkit::UTF8 const*) + 1665<br>
>     14 vmjc            0x000000000056c2bb j3::Class::readClass() + 427<br>
>     15 vmjc            0x0000000000591a78<br>
> j3::JnjvmClassLoader::constructClass(vmkit::UTF8 const*, j3::ClassBytes*) +<br>
> 360<br>
>     16 vmjc            0x0000000000591743<br>
> j3::JnjvmBootstrapLoader::internalLoad(vmkit::UTF8 const*, bool,<br>
> j3::JavaString*) + 131<br>
>     17 vmjc            0x0000000000591d76<br>
> j3::JnjvmClassLoader::loadName(vmkit::UTF8 const*, bool, bool,<br>
> j3::JavaString*) + 38<br>
>     18 vmjc            0x000000000052b43a mainCompilerStart(j3::JavaThread*)<br>
> + 586<br>
>     19 vmjc            0x00000000005b0300<br>
> vmkit::Thread::internalThreadStart(vmkit::Thread*) + 528<br>
>     20 libpthread.so.0 0x00007f4fbbe7c0a2<br>
>     21 libc.so.6       0x00007f4fbb192d1d clone + 109<br>
><br>
> This is produced inside the JavaAOTCompiler.h, in method materializeFunction<br>
> which is called from JavaMethod::compiledPtr. What am I doing wrong?<br>
><br>
> Cheers,<br>
> David<br>
><br>
</div></div>> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
-------------------------------------------------------------------<br>
Gaël Thomas, Associate Professor, UPMC<br>
<a href="http://pagesperso-systeme.lip6.fr/Gael.Thomas/" target="_blank">http://pagesperso-systeme.lip6.fr/Gael.Thomas/</a><br>
-------------------------------------------------------------------<br>
</font></span></blockquote></div><br></div>