export CC = gcc-5
export CXX = g++-5
+USE_GPUGUARD = # OFF if empty
+
all: libpremnotify
all: passes
cd $(@D) && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(PREFIX)" \
-DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_BACKTRACES=ON -DLLVM_ENABLE_WERROR=OFF \
-DBUILD_SHARED_LIBS=OFF -DLLVM_ENABLE_RTTI=ON $(LLVM_CROSS_FLAGS) \
- -DCMAKE_CXX_FLAGS='-DHERCULES_PASS_ROOT=\"$(PREFIX)/lib/hercules/src/passes/\"' \
+ -DLLVM_ENABLE_LLD=ON \
+ -DCMAKE_CXX_FLAGS='-DHERCULES_PASS_ROOT=\"$(PREFIX)/lib/hercules/src/passes/\" -DOPENMP_NVPTX_COMPUTE_CAPABILITY=62 $(if $(USE_GPUGUARD),-DUSE_GPUGUARD)' \
+ -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITY="62" \
-G"Ninja" $(CURDIR)/llvm
$(TMP_DESTDIR)/$(PREFIX)/lib/cmake/llvm: | llvm-clang
build_passes/build.ninja: | build_passes $(TMP_DESTDIR)/$(PREFIX)/lib/cmake/llvm
cd $(@D) && cmake -DCMAKE_INSTALL_PREFIX="$(PREFIX)" \
- -DLLVM_DIR':'STRING=$(TMP_DESTDIR)$(PREFIX)/lib/cmake/llvm -DCMAKE_BUILD_TYPE=DEBUG \
+ -DLLVM_DIR':'STRING=$(TMP_DESTDIR)$(PREFIX)/lib/cmake/llvm \
+ -DCMAKE_BUILD_TYPE=DEBUG \
$(LLVM_CROSS_FLAGS) -DLLVM_TARGETS_TO_BUILD="X86;ARM" \
+ -DCPU_CACHE_SIZE_DEFAULT=524288 \
+ -DGPU_CACHE_SIZE_DEFAULT=524288 \
+ -DGPU_SCRATCHPAD_SIZE_DEFAULT=48000 \
+ -DUSE_HW_CACHES=ON \
+ -DHIERARCHICAL_INTERVALS=ON \
+ -DPREFETCH_REPS=1 \
+ -DUSE_HW_CACHES_PREFETCH=ON \
+ -DUSE_HW_CACHES_INLINEPTX_PREFETCH=OFF \
+ -DUSE_HW_CACHES_LIBCALL=OFF \
+ -DUSE_HW_CACHES_VOLALOAD=OFF \
+ -DUSE_HW_CACHES_SINGLEWRITEBACK=OFF \
+ -DUSE_HW_CACHES_INDWRITEBACK_LIBCALL=ON \
+ -DUSE_HW_CACHES_INDWRITEBACK_INLINE=OFF \
+ -DULES_EXTERNAL_LINKAGE=OFF \
+ -DALWAYS_INLINE_UNSPECIALIZED=OFF \
+ -DALWAYS_INLINE_LOAD=OFF \
+ -DALWAYS_INLINE_EXECUTE=OFF \
+ -DALWAYS_INLINE_STORE=OFF \
+ -DAGGRESSIVELY_INLINE_CALL_TREE=OFF \
-G "Ninja" $(CURDIR)/HerculesCompiler/llvm-passes
passes: build_passes/build.ninja
ninja -C build_passes
libpremnotify:
- $(MAKE) -C HerculesCompiler/libpremnotify
+ $(MAKE) -C HerculesCompiler/libpremnotify NVCC_FLAGS=$(if $(USE_GPUGUARD),-DUSE_GPUGUARD)
install: all
DESTDIR=$(DESTDIR) ninja -C build install