diff --git a/Makefile b/Makefile index 69b8423c..d0c327ea 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ # If you have your own special version of llvm and/or clang, change # these variables to match. -LLVM_CONFIG=$(shell which $(HOME)/usr/local/llvm/bin-trunk/bin/llvm-config) +LLVM_CONFIG=$(shell which $(HOME)/usr/local/llvm/bin-3.2/bin/llvm-config) CLANG_INCLUDE=$(shell $(LLVM_CONFIG) --includedir) # Enable ARM by request diff --git a/examples_ptx/common_gpu.mk b/examples_ptx/common_gpu.mk index 0e3a3df7..6f40c22c 100644 --- a/examples_ptx/common_gpu.mk +++ b/examples_ptx/common_gpu.mk @@ -28,6 +28,7 @@ ISPC_FLAGS=-O3 --math-lib=default --target=nvptx64 --opt=fast-math # ISPC_OBJS=$(ISPC_SRC:%.ispc=objs_gpu/%_ispc.o) ISPC_BCS=$(ISPC_SRC:%.ispc=objs_gpu/%_ispc.bc) +ISPC_PTX=$(ISPC_SRC:%.ispc=objs_gpu/%_ispc.ptx) ISPC_HEADERS=$(ISPC_SRC:%.ispc=objs_gpu/%_ispc.h) CXX_OBJS=$(CXX_SRC:%.cpp=objs_gpu/%_gcc.o) CU_OBJS=$(CU_SRC:%.cu=objs_gpu/%_cu.o) @@ -36,9 +37,15 @@ CU_OBJS=$(CU_SRC:%.cu=objs_gpu/%_cu.o) CXX_SRC+=ispc_malloc.cpp CXX_OBJS+=objs_gpu/ispc_malloc_gcc.o -# PTXGEN = $(HOME)/ptxgen -# PTXGEN += -opt=3 -# PTXGEN += -ftz=1 -prec-div=0 -prec-sqrt=0 -fma=1 +PTXGEN = $(HOME)/ptxgen +PTXGEN += -opt=3 +PTXGEN += -ftz=1 -prec-div=0 -prec-sqrt=0 -fma=1 + +LLVM32=$(HOME)/usr/local/llvm/bin-3.2 +LLVM32DIS=$(LLVM32)/bin/llvm-dis + +LLC=$(HOME)/usr/local/llvm/bin-trunk/bin/llc +LLC_FLAGS=-march=nvptx64 -mcpu=sm_35 # .SUFFIXES: .bc .o .cu @@ -51,7 +58,7 @@ ifdef CU_SRC endif -all: dirs $(PROGgpu) $(PROGcu) $(ISPC_BCS) +all: dirs $(PROGgpu) $(PROGcu) $(ISPC_PTX) $(ISPC_BCS) dirs: /bin/mkdir -p objs_gpu/ @@ -82,7 +89,12 @@ objs_gpu/%_nvcc.o: %.cu objs_gpu/%_ispc.h objs_gpu/%_ispc.bc: %.ispc $(ISPC) $(ISPC_FLAGS) --emit-llvm -h objs_gpu/$*_ispc.h -o objs_gpu/$*_ispc.bc $< -objs_gpu/%_ispc.o: objs_gpu/%_ispc.bc +objs_gpu/%_ispc.ptx: objs_gpu/%_ispc.bc + $(LLVM32DIS) $< -o objs/$*_ispc-ll32.ll +# $(LLC) $(LLC_FLAGS) -o $@ $< + $(PTXGEN) objs/$*_ispc-ll32.ll > $@ + +objs_gpu/%_ispc.o: objs_gpu/%_ispc.ptx $(PTXCC) $< $(PTXCC_FLAGS) -o $@ diff --git a/type.cpp b/type.cpp index b240003c..107a70de 100644 --- a/type.cpp +++ b/type.cpp @@ -1409,7 +1409,7 @@ ArrayType::Mangle() const { sprintf(buf, "%d", numElements); else buf[0] = '\0'; - return s + "[" + buf + "]"; + return s + "_5B_" + buf + "_5C_"; }