Michal Sojka [Wed, 28 Nov 2018 05:50:02 +0000 (06:50 +0100)]
Update HerculesCompiler submodule
HerculesCompiler a18ca9f...2b5f477 (7):
> Only insert __prem_channel if entry is main
> Fixed issue with Iterbuffered loops on multiple independent loop nests
> Better support for strange loop nests
> Keep original name for main_dummy after compilation
> Removed white text output for white bg terminals
> Added support for main_dummy_* matching
> Whitelisted NVVM libmath functions
Michal Sojka [Fri, 23 Nov 2018 07:41:39 +0000 (08:41 +0100)]
Add and compile LLVM linker (LLD)
This linker can cross-link for different architecure. Unfortunately, I
haven't found a way how to tell clang to use this linker by default so
one has to link manually by using the ld.lld command.
Michal Sojka [Thu, 22 Nov 2018 22:40:50 +0000 (23:40 +0100)]
Configure clang with LLVM_ENABLE_LLD=ON
This enables the use of LLVM linker rather than using GNU linker.
With LLVM linker it is possible to use the compiler as a
cross-compiler e.g. by using --target=aarch64 switch.
Michal Sojka [Thu, 22 Nov 2018 21:25:00 +0000 (22:25 +0100)]
Update HerculesCompiler and openmp submodules
* HerculesCompiler 9ff0055...a18ca9f (9):
> Fixed issue with participating threads, and lowered throttle thread prio to not block bottom halves of interrupt handlers
> Better error message if a Compatible interval fails to be registered
> Registering Compatible intervals
> Added support for COMPATIBLE in PremRegistry
> Less verbose tiler
> Adjusted output from Mark
> Changed kernel name to function name for non-NVIDIA
> Added possibility to whitelist external functions through HERCULES_EXTERNAL_WHITELIST
> Disable GPUguard by default
* openmp 7716df0...691e996 (1):
> Disable GPUguard by default
Added rule to ignore missing dependency information in shared
libraries. This resolves the following error:
dpkg-shlibdeps: error: no dependency information found for
/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 (used by
debian/hercules-compiler/opt/hercules-compiler/lib/libomptarget.rtl.cuda.so)
The error appears when compiling the package on TX2.
* Added trailing / to HERCULES_PASS_ROOT in Makefile to fix path problem during usage of the hercules compiler
* Changed llvm-passes/include/Config/Options.h to solve errors during hercules configuration
- enabled USE_HW_CACHES_INDWRITEBACK_LIBCALL, DONT_SPECIALIZE_EXECUTE and PREFETCH_REPS 1
Michal Sojka [Thu, 10 May 2018 20:42:23 +0000 (22:42 +0200)]
Build native *-tblgen during cross builds
For some reason, LLVM buildsystem does treat our crossbuilds as native
builds. Perhaps because we use qemu-user-static to allow running cross
binaries. To build everything correcly, native tblgen binaries are
needed.
This commit build native tblgen binaries and uses them for the cross
build.