[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