- 19 Apr, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
-
- 18 Apr, 2019 3 commits
-
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
Macros perform similar purpose as phase driver (see phase.c), the main difference is to decouple it away from just running phases cyclically. Still uses counters, but the user controls what these are. User for minimize_transfers.c and algebraic_wlfi.c.
-
- 16 Apr, 2019 4 commits
-
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
Some testing showed that the implementation was not ideal, leading to problems in later CUDA traversals. I'm removing this, in favour of a better implementation.
-
- 09 Apr, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
Completely forgot that EMRL is one by default, therefore whenever we entered IWLMEM, we entered EMRTU, which in some very rare cases did cause problems. We now check that the EMRCI and EMRTU flag is on as well!
-
- 08 Apr, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
Have moved out a function used in both traversals to the cuda_utils module. Also, I've removed the ISEMRLIFTED flag from EMRL/EMRTU, as it was preventing certain cases from being identified (such as cond functions).
-
- 04 Apr, 2019 3 commits
-
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
This optimisation works together with the CUDA IWLMEM optimisation to introduce CUDA memory transfers into the AST. We need this traversal when using the EMR optimisation as IWLMEM would otherwise lead to inoptimal code generation. IWLMEM, when encountering a lift ERC, would within the loop function create a host2device and cause a memory allocation and free on the CUDA device. The EMRTU (EMR Type Update) traversal identifies such cases, and correclty transforms the lifted ERCs into CUDA device_types *and* fixes the arguments of the loop function applications (initial and recursi
-
Hans-Nikolai Viessmann authored
We will use this later for EMRTU (relating to CUDA IWLMEM optimisation).
-
- 03 Apr, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
-
- 02 Apr, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
The insert_memory_transfers module was split into several different files (insert_withloop_memtran.c & insert_cudast_memtran.c) by Jing starting from the 26-03-2010, and this was left in the git history. This module is not used anywhere, and as far as I can tell, provides nothing in addition to the other modules. As such its safe to remove the files. Additionally, I've identified the following libsac2c modules which are also stale: icm_betest.c icm_trace.c icm_comment.c BEtest.c wl_empty_result_handling.c create_lac_fun.c wl_descalarization.c cuda_create_dfg.c idag.c elemqueue.c elemlist.c cygcompat.c cygwinhelpers.c One needs to take a closer look at this and see if they are still useful.
-
- 28 Mar, 2019 2 commits
-
-
Artem Shinkarov authored
Extend modulo primitive to support all "whole number" types See merge request !107
-
Hans-Nikolai Viessmann authored
Us `integral type` instead of `integer types`.
-
- 27 Mar, 2019 2 commits
-
-
Hans-Nikolai Viessmann authored
Additionally, * we add an error when trying to use _mod_SxV_, _mod_VxS_, and _mod_VxV_ which are not actually implemented. * add a test to make sure _mod_SxS_ functions correctly.
-
Sven-Bodo Scholz authored
-
- 21 Jan, 2019 1 commit
-
-
Artem Shinkarov authored
[HOTFIX] fix incorrect assert check See merge request !104
-
- 20 Jan, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
-
- 11 Jan, 2019 1 commit
-
-
Artem Shinkarov authored
Remove Package Build to Seperate Project See merge request !103
-
- 10 Jan, 2019 4 commits
-
-
Hans-Nikolai Viessmann authored
* also changed to the special `merge_request` specifier to build on MR creation and update.
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
fix incorrect symlinking in archive dist... we now use the version manager script instead.
-
Hans-Nikolai Viessmann authored
add manual requires for the moment
-
- 09 Jan, 2019 1 commit
-
-
Artem Shinkarov authored
Extended Memory Optimisations See merge request !80
-
- 02 Jan, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
We no longer print RC/ERC via print.c, but use the pre/post traversal function injection fascility to _nicely_ associate this with the relevent traversals (i.e. wrci and emrci). Additionally we update documentation and include some more tests (and improve some existing ones as well).
-
- 31 Dec, 2018 12 commits
-
-
Hans-Nikolai Viessmann authored
Main changes: * moved some repeated code into header file (used in three places) * fixed up various comments throughout * resolved some inconsistencies in memory profiling code (had incorrectly counted allocation/free sizes) * some minor refactoring throughout * added some further tests for memory profiler
-
Signed-off-by:
Hans-Nikolai Viessmann <hv15@hw.ac.uk>
-
Hans-Nikolai Viessmann authored
We now correctly allocate the lifted N_avis from EMRL when using the CUDA backend - this is critically as we're replace a host2device with a plain alloc + fill. Additionally we fixup/correclty handle the the seq/mt_pth cases as well.
-
Hans-Nikolai Viessmann authored
Support for dynamic pre/post traversal function inject is not being handled *yet*, so lets remove these print functions for the moment. They can be trivially restored later.
-
Hans-Nikolai Viessmann authored
For the EMR tests we need to use the mini-stdlib, but because we have placed them in their own directory, we get missing include errors. This happens in run.sh when we first generate the test makefile. We extend the flags to find the missing includes correctly.
-
Hans-Nikolai Viessmann authored
We also activate EMRCF and EMRL per-default. One needs only specify `-doEMRCI` to activate the whole spiel.
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-
Hans-Nikolai Viessmann authored
-