[llvm-dev] Loop Opt WG Meeting Minutes for July 31, 2019

Bardia Mahjour via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 31 10:49:59 PDT 2019

Wed, July 31, 2019:
- Status Updates
  - Impact of Loop Rotation on existing passes (Min-Yih)
    - Overview of findings:
    - In this experiment the Old Pass Manager was used. OPM runs lcssa
      before loop rotation, causing some of the LIT tests to fail. Perhaps
      we need to focus on the NPM.
    - Challenges:
      - Adding a restriction to existing passes is not very practical.
        eg if LICM started requiring rotated form, it would make people
        working with down-stream code unhappy.
      - Having loop rotation as part of the canonical form requires
        strong justification, and careful examination of its impact.
        Instead of making it part of canonical form, start making loop
        passes work with loop rotated form and make it a requirement
        gradually. It's easy to have new passes require rotated form.
      - Loop rotation impact on code size needs to be investigated.
        Does anyone know of a good test suite to use?

  - Bugzilla bugs update (Vivek)
    - somewhat common problem in loop vectorization: small loop
      vectorization created bad performing code when SCEV cannot determine
      the iteration count of the loop.

  - Loop Cache Cost Analysis (https://reviews.llvm.org/D63459) (Ettore)
    - All comments are addressed. Ready to commit.

  - Loop Guard API (https://reviews.llvm.org/D63885) (Whitney)
    - Committed, but further changes needed to make the code more useful.
      Whitney has a presentation that she will share next time.

  - Data Dependence Graph (https://reviews.llvm.org/D65350) (Bardia)
    - Directed graph work committed. First patch of DDG work is up for
      review and awaiting more comments.

  - Loop Terminology doc (https://reviews.llvm.org/D65164) (Philip Reames)
    - Documentation is now available and ready to to grow as we continue
      discussion on canonical loop forms.

- Delinearization/Multi-dimensional array indexing (Gary, Siddharth)
  - All in agreement on the importance of this topic. More time needed to
    read through the proposals (including MLIR).

- Loop vs Function pass (Jamie Schmeiser)
	- loop sink pass appears to be the only outlier where its implemented
      as a different kind of pass in the NPM vs OPM.
	- loop passes are mostly there for compile-time efficiency....
      When writing new passes start with function pass to prototype and
      overtime evolve it into a loop pass.

- People interested in vectorizing loops with early exist please
  contact Philip Reames.

Tentative Agenda for next meeting (Aug 14th @ 11:00 am EST):
- Presentation on Loop Guard (Whitney)
- Delinearization/Multi-dimensional array indexing (Gary Elsesser,

- Status Updates
  - Data Dependence Graph (https://reviews.llvm.org/D65350) (Bardia)
  - Impact of Loop Rotation on existing passes (Min-Yih)
  - Bugzilla bugs update (Vivek)
  - Others?

Bardia Mahjour
Compiler Optimizations
IBM Toronto Software Lab
bmahjour at ca.ibm.com (905) 413-2336
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190731/1701f897/attachment.html>

More information about the llvm-dev mailing list