]> rtime.felk.cvut.cz Git - hercules2020/hercules-compiler.git/blobdiff - Makefile
Configure clang with LLVM_ENABLE_LLD=ON
[hercules2020/hercules-compiler.git] / Makefile
index 424e638fdc721a3ad75d04a39949dbee25737da3..7cf318ef326e497ce3071fcc8ee970ac0700a2be 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,8 @@ TMP_DESTDIR = $(CURDIR)/install
 export CC = gcc-5
 export CXX = g++-5
 
+USE_GPUGUARD = # OFF if empty
+
 all: libpremnotify
 all: passes
 
@@ -62,7 +64,9 @@ build/build.ninja: | build llvm/tools/clang llvm/projects/openmp
        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
@@ -70,15 +74,35 @@ $(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