Bardia Mahjour via llvm-dev
2019-Jun-05 19:43 UTC
[llvm-dev] Loop Opt WG Meeting Minutes for June 5th, 2019
Wed, Jun 5th, 2019: -------------------------- Meeting Minutes: - The meeting started with an introduction round table where everyone briefly shared their experience in LLVM and expressed their interests in loop optimizations. - Decisions Made: - Run the meetings on a bi-weekly bases. - Participants working on specific loop optimization related work to give a quick update in each meeting about their work, in order to create awareness and avoid duplication of effort. - Meeting Minutes and Agenda to be sent to the llvm-dev mailing list. - The following topics where discussed as potential items in the agenda for future meetings. Michael and Bardia to chose topics for the first few meeting based on this list: 1) Missing utilities and infrastructure. WG to think about infrastructure (small or large) that can facilitate multiple loop transformations, for example to avoid doing tedious and repetitive work over and over again: - Loop Utilities - DDG - Loop Distribution Interference Graph to allow the transformation to be invoked with different policies (eg. perfect loop nest creation, improving locality of reference, etc) - Concept of a Loop Nest and a Perfect Loop Nest - Ideas that help with (or minimize/avoid) the tedious mechanics of updating loops, or keeping results of analysis up-to-date as various transformations are performed. 2) Abstracting away loop structures to do transformations at a higher level representation. 3) Refactoring opportunities for existing transformations where there is duplication and no reuse - eg. Loop Unroll, Unroll-and-jam and Peeling can be refactored. 4) Rewriting existing transformations that have severe limitations in terms of functionality, performance, maintainability, etc. - Acceptable only if there is commitment to replace the old implementation within a reasonable timeline. 5) Reviewing open bugs and see which ones are critical to solve. 6) Sharing results across common set of bmks, instead of each party having their own. - Involves a lot of work, so need to be mindful of time commitment and resources available. - Improving coverage in the test suite by migrating benchmark codes into it. IR level benchmarking still fragile. - Coming up with synthetic benchmarks to test that the right set of transformations are done in the right order to produce significantly more simplified/performant code. 7) Polyhedral Optimizations in LLVM. - Collaboration with the MLIR team in ANL. - Possibility of exposing polyhedral analysis to other non-poly transformations. 8) Cost-Models - High quality models necessary to achieve good performance out of existing and new loop transformations. 9) Canonicity - What is canonical form for loops, loop nests, etc. - Currently some (many?) loop transformation can only handle canonical loops, failing if input is not in an expected form. - Phase ordering and the loop optimization pipeline. 10) Establishing goals for LLVM dev conference in fall. Collectively come up with material for a BoF or a talk to present the types of work that WG is involved in. 11) Giving educational talks at the bi-weekly meetings and sharing educational material and presentations with the community. 12) Looking into why we have so many loop passes that are disabled by default. Investigate if it's due to lack of cost-modeling, functional correctness, etc? Bardia Mahjour Compiler Optimizations Hydra Squad Lead 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/20190605/ed97ba6f/attachment.html>