Bardia Mahjour via llvm-dev
2019-Jul-31 17:49 UTC
[llvm-dev] Loop Opt WG Meeting Minutes for July 31, 2019
--------------------------- Wed, July 31, 2019: --------------------------- - Status Updates - Impact of Loop Rotation on existing passes (Min-Yih) - Overview of findings: https://medium.com/@mshockwave/llvm-loop-lr-survey-6df55f8dff74 - 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) (http://lists.llvm.org/pipermail/llvm-dev/2019-July/134063.html) - 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, Siddharth) - 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>