diff --git a/nvptxcc b/nvptxcc index 6d5f1419..0c578b20 100755 --- a/nvptxcc +++ b/nvptxcc @@ -2,8 +2,18 @@ PTXCC=ptxcc ARGS=${@:2} -$($PTXCC $1 -o $1.o) && \ -$(nvcc test_static_nvptx.cpp examples_ptx/nvcc_helpers.cu examples_ptx/ispc_malloc.cpp $1.o -arch=sm_35 -Iexamples_ptx/ -D_CUDA_ -lcudadevrt $ARGS) +if [ "$NVVM" == "1" ]; +then + LLVM32=$HOME/usr/local/llvm/bin-3.2 + LLVMDIS=$LLVM32/bin/llvm-dis + PTXGEN=$ISPC_HOME/examples_ptx/ptxgen/ptxgen + $($LLVMDIS $1 -o $1.ll) && $($PTXGEN $1.ll > $1.ptx) && \ + $($PTXCC $1.ptx -o $1.o) && \ + $(nvcc test_static_nvptx.cpp examples_ptx/nvcc_helpers.cu examples_ptx/ispc_malloc.cpp $1.o -arch=sm_35 -Iexamples_ptx/ -D_CUDA_ -lcudadevrt $ARGS); +else + $($PTXCC $1 -o $1.o) && \ + $(nvcc test_static_nvptx.cpp examples_ptx/nvcc_helpers.cu examples_ptx/ispc_malloc.cpp $1.o -arch=sm_35 -Iexamples_ptx/ -D_CUDA_ -lcudadevrt $ARGS); +fi