Skip to content
  1. Sep 13, 2016
  2. Sep 12, 2016
  3. Sep 08, 2016
    • Tobias Grosser's avatar
      ScopInfo: Make clear that no double-free problem exists · 55a7af7d
      Tobias Grosser authored
      When running the clang static analyser to check for memory issues, this code
      originally showed a double free, as the analyser was unable to understand that
      isl_set_free always returns NULL and consequently later uses of the isl object
      we just freed will never be reached. Without this knowledge, the analyser has
      to issue a warning.
      
      We refactor the code to make it clear that for empty maps the current loop
      iteration is aborted.
      
      llvm-svn: 280940
      55a7af7d
    • Tobias Grosser's avatar
      ScopInfo: Add missing __isl_take annotation · 2a526fee
      Tobias Grosser authored
      llvm-svn: 280923
      2a526fee
  4. Sep 03, 2016
    • Tobias Grosser's avatar
      ScopInfo: Do not derive assumptions from all GEP pointer instructions · 8d4cb1a0
      Tobias Grosser authored
      ... but instead rely on the assumptions that we derive for load/store
      instructions.
      
      Before we were able to delinearize arrays, we used GEP pointer instructions
      to derive information about the likely range of induction variables, which
      gave us more freedom during loop scheduling. Today, this is not needed
      any more as we delinearize multi-dimensional memory accesses and as part
      of this process also "assume" that all accesses to these arrays remain
      inbounds. The old derive-assumptions-from-GEP code has consequently become
      mostly redundant. We drop it both to clean up our code, but also to improve
      compile time. This change reduces the scop construction time for 3mm in
      no-asserts mode on my machine from 48 to 37 ms.
      
      llvm-svn: 280601
      8d4cb1a0
  5. Sep 02, 2016
    • Tobias Grosser's avatar
      Drop '@brief' from doxygen comments · c80d6979
      Tobias Grosser authored
      LLVM's coding guideline suggests to not use @brief for one-sentence doxygen
      comments to improve readability. Switch this once and for all to ensure people
      do not copy @brief comments from other parts of Polly, when writing new code.
      
      llvm-svn: 280468
      c80d6979
  6. Sep 01, 2016
    • Michael Kruse's avatar
      Allow mapping scalar MemoryAccesses to array elements. · 2fa35194
      Michael Kruse authored
      Change the code around setNewAccessRelation to allow to use a an existing array
      element for memory instead of an ad-hoc alloca. This facility will be used for
      DeLICM/DeGVN to convert scalar dependencies into regular ones.
      
      The changes necessary include:
      - Make the code generator use the implicit locations instead of the alloca ones.
      - A test case
      - Make the JScop importer accept changes of scalar accesses for that test case.
      - Adapt the MemoryAccess interface to the fact that the MemoryKind can change.
        They are named (get|is)OriginalXXX() to get the status of the memory access
        before any change by setNewAccessRelation() (some properties such as
        getIncoming() do not change even if the kind is changed and are still
        required). To get the modified properties, there is (get|is)LatestXXX(). The
        old accessors without Original|Latest become synonyms of the
        (get|is)OriginalXXX() to not make functional changes in unrelated code.
      
      Differential Revision: https://reviews.llvm.org/D23962
      
      llvm-svn: 280408
      2fa35194
    • Michael Kruse's avatar
      Check validity of new access relations. NFC. · 772ce720
      Michael Kruse authored
      There are some constraints on maps that can be access relations. In builds with assertions enabled, verify
      
        - The access domain is the same space as the statement's domain (modulo parameters).
        - Whether an access is defined for every instance of the statement. (codegen does not yet support partial access relations)
        - Whether the access range links to an array, represented by a ScopArrayInfo.
        - The number of access dimensions equals the dimensions of the array.
        - The array is not an indirect access. (also not supported by codegen)
      
      Differential Revision: https://reviews.llvm.org/D23916
      
      llvm-svn: 280404
      772ce720
    • Michael Kruse's avatar
      [ScopInfo] Add missing ISL annotations NFC. · d56b90a9
      Michael Kruse authored
      llvm-svn: 280343
      d56b90a9
  7. Aug 21, 2016
  8. Aug 03, 2016
  9. Jul 30, 2016
  10. Jul 25, 2016
  11. Jul 22, 2016
  12. Jul 11, 2016
    • Tobias Grosser's avatar
      Fix gcc compile failure · faef9a76
      Tobias Grosser authored
      Commit r275056 introduced a gcc compile failure due to us using two
      types named 'Type', the first being the newly introduced member variable
      'Type' the second being llvm::Type. We resolve this issue by renaming
      the newly introduced member variable to AccessType.
      
      llvm-svn: 275057
      faef9a76
    • Tobias Grosser's avatar
      InvariantEquivClassTy: Use struct instead of 4-tuple to increase readability · 4e2d9c45
      Tobias Grosser authored
      Summary:
      With a struct we can use named accessors instead of generic std::get<3>()
      calls. This increases readability of the source code.
      
      Reviewers: jdoerfert
      
      Subscribers: pollydev, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D21955
      
      llvm-svn: 275056
      4e2d9c45
    • Tobias Grosser's avatar
      load hoisting: compute memory access invalid context only for domain · 5329277f
      Tobias Grosser authored
      We now compute the invalid context of memory accesses only for the domain under
      which the memory access is executed. Without limiting ourselves to this
      restricted domain, invalid accesses outside of the domain of actually executed
      statement instances may result in the execution domain of the statement to
      become empty despite the fact that the statement will actually be executed. As a
      result, such scops would use unitialized values for their computations which
      results in incorrect computations.
      
      This fixes http://llvm.org/PR27944 and unbreaks the
      -polly-position=before-vectorizer buildbots.
      
      llvm-svn: 275053
      5329277f
  13. Jul 08, 2016
  14. Jul 01, 2016
  15. Jun 28, 2016
  16. Jun 27, 2016
  17. Jun 06, 2016
  18. Jun 02, 2016
  19. May 31, 2016
  20. May 23, 2016
Loading