Skip to content
  1. Nov 04, 2012
  2. Nov 02, 2012
  3. Nov 01, 2012
    • Tobias Grosser's avatar
      Remove runtime tests from polly test suite · 3eb851f3
      Tobias Grosser authored
      Similar to LLVM we now follow the policy of only having LLVM-IR level tests in
      the Polly test suite. Testing for miscompilation of larger programs should be
      done with the llvm test suite.
      
      llvm-svn: 167255
      3eb851f3
    • Tobias Grosser's avatar
      Dependences: Add support to calculate memory based dependences · 81a1c750
      Tobias Grosser authored
      Instead of calculating exact value (flow) dependences, it is also possible to
      calculate memory based dependences. Sometimes memory based dependences are a lot
      easier to calculate. To evaluate the benefits, we add an option to calculate
      memory based dependences (use -polly-value-dependences=false).
      
      llvm-svn: 167251
      81a1c750
    • Tobias Grosser's avatar
      Codegen: Selectively copy in array addresses for OpenMP code · ebe8c8ce
      Tobias Grosser authored
      The detection of values that need to be copied in to the generated OpenMP
      subfunction also detects the array base addresses needed in the SCoP. Hence, it
      is not necessary to unconditionally copy all the base addresses to the generated
      function.
      
      Test cases are modified to reflect this change. Arrays which are global
      variables do not occur in the struct passed to the subfunction anymore. A test
      case for base address copy-in is added in copy_in_array.{c,ll}.
      
      Committed with slight modifications
      
      Contributed by:  Armin Groesslinger <armin.groesslinger@uni-passau.de>
      
      llvm-svn: 167215
      ebe8c8ce
    • Tobias Grosser's avatar
      CodeGen: Add scop-parameters to the OpenMP context · 177982c4
      Tobias Grosser authored
      In addition to the arrays and clast variables a SCoP statement may also refer to
      values defined before the SCoP or to function arguments. Detect these values and
      add them to the set of values passed to the function generated for OpenMP
      parallel execution of a clast.
      
      Committed with additional test cases and some refactoring.
      
      Contributed by:  Armin Groesslinger  <armin.groesslinger@uni-passau.de>
      
      llvm-svn: 167214
      177982c4
    • Tobias Grosser's avatar
      Codegen: Copy and restore the ValueMap and ClastVars explicitly · a17f666f
      Tobias Grosser authored
      When generating OpenMP or GPGPU code the original ValueMap and ClastVars must be
      kept. We already recovered the original ClastVars by reverting the changes, but
      we did not keep the content of the ValueMap. This patch keeps now an explicit
      copy of both maps and restores them after generating OpenMP or GPGPU code.
      
      This is an adapted version of a patch contributed by:
      Armin Groesslinger  <armin.groesslinger@uni-passau.de>
      
      llvm-svn: 167213
      a17f666f
  4. Oct 21, 2012
    • Tobias Grosser's avatar
      cmake: Use suffix for shared modules instead of the one for shared libraries · 6c8e6966
      Tobias Grosser authored
      On Linux there is no difference between shared modules and shared libaries, both
      are '.so' files. However, on darwin only shared modules are '.so' files. Shared
      libraries have the '.dynlib' suffix.
      
      Fix test cases on darwin by expecting a shared module suffix for Polly instead
      of a shared library suffix.
      
      This fixes PR14135
      
      Reported by:  Jack Howarth  <howarth@bromo.med.uc.edu>
      
      llvm-svn: 166402
      6c8e6966
  5. Oct 16, 2012
  6. Sep 11, 2012
  7. Aug 03, 2012
    • Tobias Grosser's avatar
      Add preliminary implementation for GPGPU code generation. · 6217e18a
      Tobias Grosser authored
      Translate the selected parallel loop body into a ptx string and run it with the
      cuda driver API. We limit this preliminary implementation to target the
      following special test cases:
      
        - Support only 2-dimensional parallel loops with or without only one innermost
          non-parallel loop.
        - Support write memory access to only one array in a SCoP.
      
      The patch was committed with smaller changes to the build system:
      
      There is now a flag to enable gpu code generation explictly. This was required
      as we need the llvm.codegen() patch applied on the llvm sources, to compile this
      feature correctly. Also, enabling gpu code generation does not require cuda.
      This requirement was removed to allow 'make polly-test' runs, even without an
      installed cuda runtime.
      
      Contributed by:  Yabin Hu  <yabin.hwu@gmail.com>
      
      llvm-svn: 161239
      6217e18a
  8. Aug 01, 2012
  9. Jul 13, 2012
    • Tobias Grosser's avatar
      Revert "Add preliminary implementation for GPGPU code generation." · 6cc23b07
      Tobias Grosser authored
      I did not take into account, that this patch fails to compile without the
      llvm.codegen patch applied. This breaks buildbots.
      
      I revert this until we found a solution to commit this without buildbots
      complaining.
      
      This reverts commit cb43ab80e94434e780a66be3b9a6ad466822fe33.
      
      llvm-svn: 160165
      6cc23b07
    • Tobias Grosser's avatar
      Add preliminary implementation for GPGPU code generation. · b299d281
      Tobias Grosser authored
      Translate the selected parallel loop body into a ptx string and run it
      with cuda driver API. We limit this preliminary implementation to
      target the following special test cases:
        - Support only 2-dimensional parallel loops with or without only one
          innermost non-parallel loop.
        - Support write memory access to only one array in a SCoP.
      
      Contributed by:  Yabin Hu <yabin.hwu@gmail.com>
      
      llvm-svn: 160164
      b299d281
  10. Jun 11, 2012
  11. May 22, 2012
    • Tobias Grosser's avatar
      ScopInfo: Add parameter bounds to context · 18daacad
      Tobias Grosser authored
      Derive the maximal and minimal values of a parameter from the type it has. Add
      this information to the scop context. This information is needed, to derive
      optimal types during code generation.
      
      llvm-svn: 157245
      18daacad
  12. May 06, 2012
  13. Apr 27, 2012
    • Tobias Grosser's avatar
      SCEV based code generation · e71c6ab5
      Tobias Grosser authored
      This is an incomplete implementation of the SCEV based code generation.
      When finished it will remove the need for -indvars -enable-iv-rewrite.
      
      For the moment it is still disabled. Even though it passes 'make polly-test',
      there are still loose ends especially in respect of OpenMP code generation.
      
      llvm-svn: 155717
      e71c6ab5
  14. Apr 24, 2012
  15. Apr 16, 2012
  16. Apr 12, 2012
  17. Apr 11, 2012
  18. Apr 07, 2012
    • Tobias Grosser's avatar
      CodeGen: Allow Polly to do 'grouped unrolling', but no vector generation. · 84ecc47e
      Tobias Grosser authored
      Grouped unrolling means that we unroll a loop such that the different instances
      of a certain statement are scheduled right after each other, but we do
      not generate any vector code. The idea here is that we can schedule the
      bb vectorizer right afterwards and use it heuristics to decide when
      vectorization should be performed.
      
      llvm-svn: 154251
      84ecc47e
  19. Apr 03, 2012
    • Tobias Grosser's avatar
      CodeGen: Recreate old ivs with the original type · 0905a238
      Tobias Grosser authored
      To avoid overflows we still use a larger type (i64) while calculating the value
      of the old ivs.  However, we truncate the result to the type of the old iv when
      providing it to the new code.
      
      A corresponding test case is added to the polly test suite. Also, a failing test
      case is fixed.
      
      This fixes PR12311.
      
      Contributed by: Tsingray Liu  <tsingrayliu@gmail.com>
      
      llvm-svn: 153952
      0905a238
  20. Apr 01, 2012
  21. Mar 30, 2012
  22. Mar 29, 2012
  23. Mar 26, 2012
  24. Mar 23, 2012
  25. Mar 16, 2012
Loading