]> rtime.felk.cvut.cz Git - hercules2020/hercules-compiler.git/log
hercules2020/hercules-compiler.git
5 years agoUpdate changelog for 2018.12.14-1 release master debian/2018.12.14-1
Michal Sojka [Fri, 14 Dec 2018 15:20:31 +0000 (16:20 +0100)]
Update changelog for 2018.12.14-1 release

5 years agoRefresh libpremnotify patch
Flavio Kreiliger [Fri, 14 Dec 2018 15:02:55 +0000 (16:02 +0100)]
Refresh libpremnotify patch

5 years agoUpdate HerculesCompiler submodule
Michal Sojka [Fri, 14 Dec 2018 14:32:56 +0000 (15:32 +0100)]
Update HerculesCompiler submodule

* HerculesCompiler d505f4c...304d82e (3):
  > Fix for newBackedge when SCEV could not be computed.Added HERCULES_FORCE_COMPATIBLE environment variable to avoid PREMization of certain functions
  > Removed CPU lock from GPUguard
  > Added option for using GPUguard in libpremnotify-cpu

5 years agoUpdate changelog for 2018.12-1 release debian/2018.12-1
Michal Sojka [Thu, 13 Dec 2018 11:19:07 +0000 (12:19 +0100)]
Update changelog for 2018.12-1 release

5 years agoUpdate HerculesCompiler
Michal Sojka [Thu, 13 Dec 2018 11:16:39 +0000 (12:16 +0100)]
Update HerculesCompiler

* HerculesCompiler 2b5f477...d505f4c (16):
  > Included backwards compatibility for 3arg hypercall, and ignore IRQ handler time in gguard-hyper
  > Added system headers to hypercall-if.h
  > Changed hypercall-if.h include to work dir
  > Added hypercall interface for gpuguard-hyper
  > Added GPUguard for hypervisor
  > Better gitignore for gpuguard-legacy
  > Better gitignore for gpuguard-lkm
  > Safety check in gpuguard-ompif.h for lkm version
  > Added old, one-init-one-run version of gpuguard used for early experiments
  > Changed label for SoftDMA test from ItBf to SAFE, in cases when
    the reason is not Partially Analyzable code
  > Extended safety check for SoftDMA to avoid crash on non-unique IVs
    per dim (in poly_covariance)
  > Added SoftDMA Cache Line optimization. Fixed issue where
    cache-based Execute phase would be specialized. Fixed cache line
    size to 64B to match TX2 A57. Minor other fixes
  > Fixed issue where Intervals would be created within loops instead
    of around. Fixed issue where wrong upper bound on range would be
    reported when loop IV is initialized from parent IV.
  > Moved last HERCULES optimization to later
  > Resetting virtual iteratior limit in parent header
  > Cleaning up unneccessary instructions after first wave of default optimizations

5 years agoUpdate changelog for 2018.11-6 release debian/2018.11-6
Michal Sojka [Wed, 28 Nov 2018 05:52:13 +0000 (06:52 +0100)]
Update changelog for 2018.11-6 release

5 years agoUpdate HerculesCompiler submodule
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

5 years agoUpdate changelog for 2018.11-5 release debian/2018.11-5
Michal Sojka [Fri, 23 Nov 2018 07:44:39 +0000 (08:44 +0100)]
Update changelog for 2018.11-5 release

5 years agoAdd and compile LLVM linker (LLD)
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.

5 years agoUpdate changelog for 2018.11-4 release debian/2018.11-4
Michal Sojka [Thu, 22 Nov 2018 22:43:31 +0000 (23:43 +0100)]
Update changelog for 2018.11-4 release

5 years agoConfigure clang with LLVM_ENABLE_LLD=ON
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.

5 years agoUpdate changelog for 2018.11-3 release debian/2018.11-3
Michal Sojka [Thu, 22 Nov 2018 21:36:36 +0000 (22:36 +0100)]
Update changelog for 2018.11-3 release

5 years agoRemove use_gpuguard.patch since GPUGUARD is now disabled by default
Kreiliger, Flavio [Thu, 22 Nov 2018 16:18:50 +0000 (16:18 +0000)]
Remove use_gpuguard.patch since GPUGUARD is now disabled by default

5 years agoUpdate HerculesCompiler and openmp submodules
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

5 years agoUsed default path for passes if no environment variable was specified
Kreiliger, Flavio [Thu, 22 Nov 2018 11:04:39 +0000 (11:04 +0000)]
Used default path for passes if no environment variable was specified

[The patch was streamlined by Michal Sojka]

5 years agoCheck first for generated Option.h in build directory and then at the original location
Kreiliger, Flavio [Thu, 22 Nov 2018 11:04:38 +0000 (11:04 +0000)]
Check first for generated Option.h in build directory and then at the original location

5 years agoSpecify in Makefile if GPUGUARD is used
Kreiliger, Flavio [Thu, 22 Nov 2018 11:04:37 +0000 (11:04 +0000)]
Specify in Makefile if GPUGUARD is used

 * Set USE_GPUGUARD variable in Makefile to enable GPUGUARD

5 years agoAdd git-buildpackage configuration and instructions
Michal Sojka [Thu, 22 Nov 2018 08:41:44 +0000 (09:41 +0100)]
Add git-buildpackage configuration and instructions

5 years agoChanged debian/rules devel debian/2018.11-2
Flavio Kreiliger [Mon, 17 Sep 2018 15:43:42 +0000 (17:43 +0200)]
Changed debian/rules

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.

[Commit message modified by Michal Sojka]

5 years agodebian: Requier newer cmake only during cross-compiling
Michal Sojka [Wed, 21 Nov 2018 07:52:59 +0000 (08:52 +0100)]
debian: Requier newer cmake only during cross-compiling

For native compilation (e.g. on TX2), older cmake is sufficient.

5 years agodebian: Reformat build rependencies
Michal Sojka [Wed, 21 Nov 2018 07:50:53 +0000 (08:50 +0100)]
debian: Reformat build rependencies

Put each dependency on a separate line.

5 years agodebian: Allow building against NVIDIA's CUDA package
Michal Sojka [Wed, 21 Nov 2018 07:46:15 +0000 (08:46 +0100)]
debian: Allow building against NVIDIA's CUDA package

Previously, build-depends contained only the name of official Debian
package. NVIDA's package has different name.

5 years agoREADME: Build only binary package
Michal Sojka [Tue, 20 Nov 2018 23:19:16 +0000 (00:19 +0100)]
README: Build only binary package

Building the source package takes ages on TX2 and is not needed for
unofficial packages.

5 years agoDecide whether to use GPU-guard in the main Makefile
Michal Sojka [Tue, 20 Nov 2018 21:56:25 +0000 (22:56 +0100)]
Decide whether to use GPU-guard in the main Makefile

5 years agoConfigure clang via cmake options rather than via modifying sources
Michal Sojka [Tue, 20 Nov 2018 21:36:02 +0000 (22:36 +0100)]
Configure clang via cmake options rather than via modifying sources

5 years agoUse Makefile configuration
Kreiliger, Flavio [Tue, 20 Nov 2018 14:07:01 +0000 (14:07 +0000)]
Use Makefile configuration

5 years agoConfigure HerculesCompiler via CMake rather than by editing Options.h
Michal Sojka [Tue, 20 Nov 2018 09:13:52 +0000 (10:13 +0100)]
Configure HerculesCompiler via CMake rather than by editing Options.h

We will update the top-level Makefile to take this into account in the
next comits.

5 years agoUpdated Hercules compiler submodules
Flavio Kreiliger [Tue, 13 Nov 2018 08:58:59 +0000 (09:58 +0100)]
Updated Hercules compiler submodules

5 years agoUpdated HerculesCompiler submodule
Flavio Kreiliger [Tue, 6 Nov 2018 11:13:15 +0000 (12:13 +0100)]
Updated HerculesCompiler submodule

 * Also updated some patches to still work with this version (more
   updates will come in next commits)

5 years agoUpdated git submodules
Flavio Kreiliger [Tue, 9 Oct 2018 12:50:48 +0000 (14:50 +0200)]
Updated git submodules

5 years agoUpdated to new HerculesCompiler version
Flavio Kreiliger [Tue, 25 Sep 2018 10:57:49 +0000 (12:57 +0200)]
Updated to new HerculesCompiler version

5 years agoUpdated to latest Hercules and openmp version
Flavio Kreiliger [Tue, 18 Sep 2018 15:52:04 +0000 (17:52 +0200)]
Updated to latest Hercules and openmp version

5 years agoCompile libpremnotify-gpu only when nvcc is detected
Michal Sojka [Tue, 20 Nov 2018 07:56:16 +0000 (08:56 +0100)]
Compile libpremnotify-gpu only when nvcc is detected

And use gcc-5 when building debian package.

5 years agoAdded commands for building libpremnotify-gpu
Flavio Kreiliger [Mon, 17 Sep 2018 15:39:48 +0000 (17:39 +0200)]
Added commands for building libpremnotify-gpu

[Minor modifications by Michal Sojka]

5 years agoAdd require-cuda.patch
Michal Sojka [Thu, 13 Sep 2018 08:28:35 +0000 (10:28 +0200)]
Add require-cuda.patch

Requiring CUDA cannot be specified from cmake command line, so we have
to patch the source.

5 years agodebian: Use native libelf as build dependency
Michal Sojka [Thu, 6 Sep 2018 17:45:09 +0000 (19:45 +0200)]
debian: Use native libelf as build dependency

Without this, CUDA offloading target is not built.

5 years agodebian: Add CUDA to build dependencies
Michal Sojka [Thu, 6 Sep 2018 17:25:36 +0000 (19:25 +0200)]
debian: Add CUDA to build dependencies

5 years agoUse gcc-5 to avoid various compile errors
Michal Sojka [Thu, 6 Sep 2018 14:37:13 +0000 (16:37 +0200)]
Use gcc-5 to avoid various compile errors

nvcc fails in strange ways with gcc-6. Even if we build with CUDA 9,
where gcc-6 is officially supported.

5 years agoREADME: Make links hyperlinks
Michal Sojka [Thu, 6 Sep 2018 15:02:25 +0000 (17:02 +0200)]
README: Make links hyperlinks

5 years agoFixed problems with compilation
Flavio Kreiliger [Thu, 6 Sep 2018 12:08:44 +0000 (14:08 +0200)]
Fixed problems with compilation

  * 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

5 years agoCorrect submodule URL
Michal Sojka [Tue, 4 Sep 2018 08:45:44 +0000 (10:45 +0200)]
Correct submodule URL

5 years agoRename README
Michal Sojka [Tue, 4 Sep 2018 08:28:46 +0000 (10:28 +0200)]
Rename README

5 years agoUpdate configuration for the new compiler version and add a new libpremnotify patch
Michal Sojka [Tue, 4 Sep 2018 08:25:15 +0000 (10:25 +0200)]
Update configuration for the new compiler version and add a new libpremnotify patch

5 years agoUpdate changelog for 2018.7-1 release
Michal Sojka [Mon, 3 Sep 2018 15:08:11 +0000 (17:08 +0200)]
Update changelog for 2018.7-1 release

5 years agoUpdate to the new compiler version published by ETHZ
Michal Sojka [Mon, 3 Sep 2018 15:02:52 +0000 (17:02 +0200)]
Update to the new compiler version published by ETHZ

5 years agoClean native build directory
Michal Sojka [Fri, 11 May 2018 12:35:04 +0000 (14:35 +0200)]
Clean native build directory

5 years agoUpdate changelog for 2017.11-3 release debian/2017.11-3
Michal Sojka [Fri, 11 May 2018 09:52:28 +0000 (11:52 +0200)]
Update changelog for 2017.11-3 release

5 years agoBuild libpremnotify before the compiler
Michal Sojka [Fri, 11 May 2018 09:45:48 +0000 (11:45 +0200)]
Build libpremnotify before the compiler

This is to see potential build failures early in the build.

5 years agoUse correct cross-compiler for libpremnotify-cpu
Michal Sojka [Fri, 11 May 2018 09:40:09 +0000 (11:40 +0200)]
Use correct cross-compiler for libpremnotify-cpu

5 years agoGenerate multi-file orig.tar.gz
Michal Sojka [Fri, 11 May 2018 09:36:46 +0000 (11:36 +0200)]
Generate multi-file orig.tar.gz

5 years agoAdd build dependencies needed for off-loading
Michal Sojka [Fri, 11 May 2018 08:30:34 +0000 (10:30 +0200)]
Add build dependencies needed for off-loading

5 years agoSpecify minimum cmake version
Michal Sojka [Fri, 11 May 2018 08:28:49 +0000 (10:28 +0200)]
Specify minimum cmake version

This is the version that is known to work for cross-building.

5 years agoUpdate debian/changelog debian/2017.11-2
Michal Sojka [Thu, 10 May 2018 23:22:58 +0000 (01:22 +0200)]
Update debian/changelog

5 years agoREADME: Cover cross-building for Xenial
Michal Sojka [Thu, 10 May 2018 23:00:34 +0000 (01:00 +0200)]
README: Cover cross-building for Xenial

5 years agoBuild native *-tblgen during cross builds
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.

5 years agoFix cross-building of Hercules passes
Michal Sojka [Thu, 10 May 2018 21:28:59 +0000 (23:28 +0200)]
Fix cross-building of Hercules passes

5 years agoMark python3 dependency as any
Michal Sojka [Thu, 10 May 2018 13:05:44 +0000 (15:05 +0200)]
Mark python3 dependency as any

This ensures that cross-build does not install target (arm) version of
python3 but a native (amd64) one.

5 years agoAdd README
Michal Sojka [Mon, 7 May 2018 06:33:32 +0000 (08:33 +0200)]
Add README

5 years agoSwitch to release build
Michal Sojka [Mon, 7 May 2018 05:36:13 +0000 (07:36 +0200)]
Switch to release build

5 years agoUpdate prefix etc.
Michal Sojka [Sun, 6 May 2018 22:07:50 +0000 (00:07 +0200)]
Update prefix etc.

5 years agoUpdate rules
Michal Sojka [Sun, 6 May 2018 22:06:13 +0000 (00:06 +0200)]
Update rules

5 years agoUpdate rules
Michal Sojka [Sun, 6 May 2018 22:03:27 +0000 (00:03 +0200)]
Update rules

5 years agoUpdate patch
Michal Sojka [Sun, 6 May 2018 21:47:21 +0000 (23:47 +0200)]
Update patch

5 years agoAdd debian/patches etc.
Michal Sojka [Sun, 6 May 2018 21:42:26 +0000 (23:42 +0200)]
Add debian/patches etc.

5 years agoAlso compile and install libpremnotify
Michal Sojka [Sun, 6 May 2018 21:22:06 +0000 (23:22 +0200)]
Also compile and install libpremnotify

5 years agoBuild & install Hercules passes
Michal Sojka [Sun, 6 May 2018 09:44:32 +0000 (11:44 +0200)]
Build & install Hercules passes

5 years agoCreate orig.tar.gz from git index rather than from worktree
Michal Sojka [Sun, 6 May 2018 08:19:03 +0000 (10:19 +0200)]
Create orig.tar.gz from git index rather than from worktree

5 years agoUpdate Makefile
Michal Sojka [Thu, 3 May 2018 07:13:55 +0000 (09:13 +0200)]
Update Makefile

5 years agoCross compile to arm64 works
Michal Sojka [Thu, 3 May 2018 06:44:15 +0000 (08:44 +0200)]
Cross compile to arm64 works

5 years agoAdd build dependencies and create-orig-tgz Makefile target
Michal Sojka [Wed, 2 May 2018 17:27:17 +0000 (19:27 +0200)]
Add build dependencies and create-orig-tgz Makefile target

5 years agoAdd simple debian packaging
Michal Sojka [Wed, 2 May 2018 16:12:02 +0000 (18:12 +0200)]
Add simple debian packaging

5 years agoInitial commit
Ing. Michal Sojka [Wed, 2 May 2018 08:47:07 +0000 (10:47 +0200)]
Initial commit