-
-
Notifications
You must be signed in to change notification settings - Fork 12
Description
Description
Multi-Level Intermediate Representation (MLIR) was recently announced as higher level IR for semantic aware transformation for optimisations.
It is expected to be integrated into the LLVM project in the near future.
MLIR represents an opportunity to leverage advanced optimisations at a higher level than that available in LLVM and target other systems such as .
What are rough milestones of this project?
Become familiar with the LDC & MLIR codebases.
Compile D through the LLVM dialect of MLIR.
Port some basic LDC specific optimisations (e.g. GC2Stack) as a D Dialect of MLIR to verify the functioning of optimisation with MLIR.
Expose the ability to utilise other MLIR dialects such as Affine (for polyhedral optimisations) and Vector
Investigate the ability to generate XLA with MLIR for use with Tensorflow.
How does this project help the D community?
Allow the utilisation of advanced optimisations for D code and potentially generate XLA for use with Tensorflow.
Recommended skills
- C++ (insofar as the style that is used by LLVM, nothing too arcane needed)
- Some Experience with compilers (ASTs, SSA-IRs, IR transformations)
- Experience with LLVM is an added bonus.
- Experience with D nice, but not necessary.
What can students expect to get out of doing this project?
Get experience with cutting edge high level compiler optimisation techniques and apply them to a production compiler.
An opportunity to present the work done at EuroLLVM (May 2020 Europe) (or LLVM Developers Meeting October 2020 San Jose) and possibly other conferences (e.g. Tensorflow Dev Summit).
Point of Contact
@thewilsonator (Nicholas Wilson)