Bardia Mahjour via llvm-dev
2019-Aug-14 17:36 UTC
[llvm-dev] Loop Opt WG Meeting Minutes for Aug 14, 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>