[llvm-dev] Loop Opt WG Meeting Minutes for June 5th, 2019

Bardia Mahjour via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 5 12:43:52 PDT 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

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

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>

More information about the llvm-dev mailing list