[llvm-dev] Loop Opt WG Meeting Minutes for Aug 14, 2019

Bardia Mahjour via llvm-dev llvm-dev at lists.llvm.org
Wed Aug 14 10:36:47 PDT 2019


---------------------------
Wed, Aug 14, 2019:
---------------------------

- Presentation on Loop Guard (Whitney)
  - General agreement is to find guards for simplified loops only.
  - What to allow in between guard basic-block and pre-header (and between
    exit block and successor of loop guard)?
    - avoid arbitrary control-flow with possible side-effects.
    - only allow empty blocks or blocks without side-effect and simple
      control flow.
  - single-entry/single-exit region maybe too general, so instead only
allow
    a "chain" of merge-able basic blocks
    - start with this and iterate on it as we make progress
    - do not check that the compare instruction compares induction variable
      against upper bound.
  - SCEV has the concept of set of conditions that are true on entry to the
    loop. See whether that concept is applicable/helpful in the case of
    detecting loop guards? (Whitney)
  - In addition to loop fusion, we need to detect loop guards for loop
    interchange because otherwise simple loop nests may be incorrectly
    diagnosed as imperfect.
  - check jump-threading to see if it has a bug leaving duplicate
    branches (Whitney)
  - change the loop guard detection code to bale out if multiple
exit-blocks
    are present.
     - in theory we could do better and detect loop guards for multi-exit
       loops as long as all the exit blocks converge to a basic block that
       is post-dominated by the successor of the guard. However, this is
       currently not possible due to unavailability of post-dominator tree
       support in loop passes.

  - *** Looking for volunteers to help add support for post-dominator tree
        in loop passes. ***

- Delinearization/Multi-dimensional array indexing (Gary Elsesser,
Siddharth)
  - First impression is that MLIR diverges from LLVM-IR itself, requiring
all
    transforms to be redone at MLIR level.
  - Could have transforms done at a higher-level IR, but LLVM IR also needs
    that info.
  - Discuss the LLVM IR extension RFC in one of the future calls.

- Status Updates
  - Three submissions made for the LLVM Developers Conference in Oct 2019:
    - Loop Optimization Working Group
    - Writing Loop Optimizations in LLVM
    - Intelligent Loop Fission
  - Data Dependence Graph (https://reviews.llvm.org/D65350)
    - Awaiting further comments. Please take the time to review. Thank you.

---------------------------
Tentative Agenda for Aug 28
---------------------------
- Delinearization/Multi-dimensional array indexing RFC
 (Siddharth, Gary, Michael F., Michael K., et al)

- Status Updates
  - Data Dependence Graph (https://reviews.llvm.org/D65350) (Bardia)
  - Follow up on Loop Guard Investigation (Whitney)
  - 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/20190814/3aeed51a/attachment.html>


More information about the llvm-dev mailing list