<div dir="ltr">I noticed you're using cuda_runtime.h in the source file.  Where are you getting this file?  From the CUDA toolkit?<div><br></div><div>Since the error is in the back-end, can you just post the .ll or .bc file you are trying to compile?</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Mar 18, 2013 at 12:42 AM, upit <span dir="ltr"><<a href="mailto:uday_pitambare@yahoo.com" target="_blank">uday_pitambare@yahoo.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am trying to generate PTX code for 'nbody' sample program's kernel<br>
(<a href="http://nbody_kernel.cu" target="_blank">nbody_kernel.cu</a>) using clang/LLVM version 3.2. The nbody CUDA program is<br>
available in Nvidia's SDK.<br>
<br>
I am referring to <a href="https://github.com/jholewinski/llvm-ptx-samples" target="_blank">https://github.com/jholewinski/llvm-ptx-samples</a> project.<br>
<br>
Following are my commands,<br>
<br>
clang++ -O4 -S -I/usr/local/cuda/include -emit-llvm -target nvptx64<br>
<a href="http://nbody_kernel.cu" target="_blank">nbody_kernel.cu</a> -o nbody_kernel.ll<br>
<br>
opt -O3 -loop-unroll -unroll-allow-partial nbody_kernel.ll -o<br>
nbody_kernel.ll<br>
<br>
llc nbody_kernel.ll -o nbody_kernel.ptx<br>
<br>
After execution of the last command(llc) I get a UNREACHABLE executed! error<br>
with the following stack trace<br>
<br>
[DEVICE-C++] nbody.kernel.cpp<br>
unexpected address space<br>
UNREACHABLE executed at<br>
/home/pratnali/LLVM/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:1317!<br>
0  <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f3857bdf0cb<br>
llvm::sys::PrintStackTrace(_IO_FILE*) + 43<br>
1  <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f3857bde74a<br>
2  libpthread.so.0   0x00007f3856c3c460<br>
3  libc.so.6         0x00007f3855a90b15 gsignal + 53<br>
4  libc.so.6         0x00007f3855a91f96 abort + 390<br>
5  <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f3857bc30f7 llvm::llvm_unreachable_internal(char<br>
const*, char const*, unsigned int) + 359<br>
6  <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f385722967d<br>
7  <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f385722b6d7<br>
8  <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f3857341723<br>
llvm::FPPassManager::doInitialization(llvm::Module&) + 99<br>
9  <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f385734639d<br>
llvm::MPPassManager::runOnModule(llvm::Module&) + 205<br>
10 <a href="http://libLLVM-3.3svn.so" target="_blank">libLLVM-3.3svn.so</a> 0x00007f3857349b7c<br>
llvm::PassManagerImpl::run(llvm::Module&) + 268<br>
11 llc               0x000000000040b534<br>
12 llc               0x000000000040d131 main + 465<br>
13 libc.so.6         0x00007f3855a7d4bd __libc_start_main + 253<br>
14 llc               0x0000000000406e59<br>
Stack dump:<br>
0.      Program arguments: llc nbody.kernel.ll -o nbody.kernel.ptx<br>
make: *** [nbody.kernel.ptx] Aborted<br>
<br>
<br>
I replaced the global indexes like for e.g threadIdx.x with<br>
__builtin_ptx_read_tid_x() and others. There are no problems in generating<br>
LLVM IR (i.e .ll). The error pops up while trying to generate PTX from the<br>
IR using llc.<br>
<br>
Any pointers on what might be going on here ? Will appreciate any help in<br>
going forward<br>
<br>
I have attached my program and observations in a README here.<br>
LLVM_PTX_nbody.tar.gz<br>
<<a href="http://llvm.1065342.n5.nabble.com/file/n56026/LLVM_PTX_nbody.tar.gz" target="_blank">http://llvm.1065342.n5.nabble.com/file/n56026/LLVM_PTX_nbody.tar.gz</a>><br>
<br>
You can easily reproduce the problem using this.<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://llvm.1065342.n5.nabble.com/UNREACHABLE-executed-error-while-trying-to-generate-PTX-tp56026.html" target="_blank">http://llvm.1065342.n5.nabble.com/UNREACHABLE-executed-error-while-trying-to-generate-PTX-tp56026.html</a><br>

Sent from the LLVM - Dev mailing list archive at Nabble.com.<br>
_______________________________________________<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>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><br><div>Thanks,</div><div><br></div><div>Justin Holewinski</div>
</div>