Bardia Mahjour via llvm-dev
2019-Jun-19 17:38 UTC
[llvm-dev] Loop Opt WG Meeting Minutes for June 19th, 2019
--------------------------- Wed, Jun 19th, 2019: --------------------------- - Status Updates - Loop Cost Analysis (https://reviews.llvm.org/D63459) - Code is under review. thanks for quick and useful feedback. - DDG - Prototype work and internal reviews are mostly completed. - First patch will be `DirectedGraph` as a base class for dependence graphs. - Will have a presentation on the design of DDG for the next meeting. - Canonical Loop Structure and Loop Guards - Should all loops have a guard (meaning add dummy guards for unguarded loops)? - Not right now. Start by adding some method to find existing guards and define the API that we want to use for straight forward cases. We can then expand on it later on either by improving the guard detection itself, or by changing canonicalization passes to make it easier for the existing API to find guards. - Start with simple loop guard and iterate to get it improved. - Questions to be answered (perhaps through code reviews) are: - Is any branch around the loop a guard? - Should it be a guard only if the branch condition matches the condition in the latch? - Can there be more than one loop guard? - Would the guard itself be part of the loop? - Many passes work on rotated loops, not just simplified loop. For new passes should we only support rotated form? - Definition of canonical is not well defined and needs to be improved. - Ideally there should only be *one* canonical form. - Some passes including SCEV maybe affected by early exists (eg. after jumpthreading scev wasn't able to detect back edges). - Let's survey existing analysis and transformations to see what their requirements are. Thanks Min-Yih Hsu for volunteering to look into it. - Once we are clear on what the canonical form should be, we can discuss whether passes should preserve that form. - New vs Old Pass Manager - Having to maintain two separate interfaces is costly. Can we agree on supporting only the NPM for the new passes we are developing? - Documentation is an issue for the new PM - NPM cannot be used yet if we want the pass to be enabled by default (because the OPM is the default PM). - the build bots only test the default pipeline. - Volunteers for looking into existing bugs and/or investigating why some loop passes are currently disabled. - Vivek kindly volunteered to prepare a list of reproducible loop optimization bugs in Bugzilla. - Loop Pass vs Function Pass: - Some llvm passes implement loop interface for the NPM and function interface for OPM (or vice-versa) - Add this item to agenda for a future meeting. ------------------------------ Decisions and To Do's: ------------------------------ - Presentation on DDG for the next meeting (Bardia) - Scan Bugzilla for loop related issues so we can identify common deficiencies and discuss solutions. (Vivek) - Survey existing loop passes to see what form of loop they expect. This will help us decide on the definition of canonicity. (Min-Yih Hsu) - Follow up on the status of New vs Old Pass Manager and when the New PM is expected to become the default. (Bardia) - Use llvm-dev mailing list and [LOOP] prefix for discussions about loop optimization. (everyone) - Include the webex link in the meeting minutes and agenda sent to llvm-dev. (Bardia) -------------------------------------- Tentative Agenda (July 3rd): -------------------------------------- - Status Updates - Directed Graph (Bardia) - Loop Cache Cost Analysis (https://reviews.llvm.org/D63459) (Ettore) - Survey of Loop Canonical Form expected by various passes (Min-Yih Hsu) - Survey of Loop related bugs in Bugzilla (Vivek) - Others? - Data Dependence Graph Presentation (Bardia) - Delinearization (Gary Elsesser) -------------------------------------- Tentative Agenda (July 17th): -------------------------------------- - Status Updates - ... - Loop vs Function pass (Jamie Schmeiser) - ... 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/20190619/ee955bbe/attachment-0001.html>