1. 19 Apr, 2019 2 commits
    • Hans-Nikolai Viessmann's avatar
      fix spurious CMake build problem · fd1eb007
      Hans-Nikolai Viessmann authored
      This is a known issue with running a CMake built Makefile system
      that eventually calls and External_Project. The various _steps_ in
      the External_Project are **not** considered individual jobs with
      interdependencies. This can therefor cause multiple instances of one
      _step_ to be run, leading to undefined behavior. The issue is
      documented in [1] and affects all versions of CMake > 3.10.
      
      The workaround for this is to explicitly set dependencies on the _steps_
      and remove DEPENDS from the External_Project.
      
      [1]: https://gitlab.kitware.com/cmake/cmake/issues/18663
      fd1eb007
    • Hans-Nikolai Viessmann's avatar
      Fix missing includes · b6931c58
      Hans-Nikolai Viessmann authored
      b6931c58
  2. 18 Apr, 2019 3 commits
  3. 16 Apr, 2019 4 commits
  4. 09 Apr, 2019 1 commit
    • Hans-Nikolai Viessmann's avatar
      Fix incorrect traversal doflag check · 54490710
      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!
      54490710
  5. 08 Apr, 2019 1 commit
    • Hans-Nikolai Viessmann's avatar
      refactoring of EMRTU and IWLMEM · e0ecc1fc
      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).
      e0ecc1fc
  6. 04 Apr, 2019 3 commits
    • Hans-Nikolai Viessmann's avatar
      284fc096
    • Hans-Nikolai Viessmann's avatar
      add EMRTU optimistation · 0db3f254
      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
      0db3f254
    • Hans-Nikolai Viessmann's avatar
      EMRL mark fundef has allocation lifts · c27c2728
      Hans-Nikolai Viessmann authored
      We will use this later for EMRTU (relating to CUDA IWLMEM
      optimisation).
      c27c2728
  7. 03 Apr, 2019 1 commit
  8. 02 Apr, 2019 1 commit
    • Hans-Nikolai Viessmann's avatar
      remove stale CUDA module · 9af256c3
      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.
      9af256c3
  9. 28 Mar, 2019 2 commits
  10. 27 Mar, 2019 2 commits
  11. 21 Jan, 2019 1 commit
  12. 20 Jan, 2019 1 commit
  13. 11 Jan, 2019 1 commit
  14. 10 Jan, 2019 4 commits
  15. 09 Jan, 2019 1 commit
  16. 02 Jan, 2019 1 commit
    • Hans-Nikolai Viessmann's avatar
      [emr] use pre/post traversal function injection · 967ef275
      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).
      967ef275
  17. 31 Dec, 2018 11 commits