Skip to content

tschuett/mlir-rustc

Repository files navigation

mlir-rustc

> export LLVM_BUILD_DIR=

> export LLVM=$LLVM_BUILD_DIR/lib/cmake/llvm
> export MLIR=$LLVM_BUILD_DIR/lib/cmake/mlir
> cmake -DCMAKE_BUILD_TYPE=Debug -DLLVM_DIR=$LLVM -DMLIR_DIR=$MLIR .
> make
> ctest

Requirements

  • trunk LLVM/MLIR
  • cmake
  • Google Test
  • icu
  • doxygen

TODO

  • keywords
  • Rewriter for borrow ops
  • UTF-8
  • Remarks
  • Mir to LLVM
  • async and await
  • Closures (nested regions)
  • visibility
  • visibility checks in inliner
  • location in Lexer
  • unsafe checker
  • cover all tokens
  • types
  • patterns
  • error progation
  • type uniquing or equivalence?
  • iterators
  • .pcm
  • outer attributes on expressions
  • outer attributes on item
  • macros
  • precedence
  • rustc prefers One-symbol tokens. Solution for Axum?
  • drops
  • copy

References

Async

Rust

MIR

@inproceedings{lattner2021mlir,
  title={Mlir: Scaling compiler infrastructure for domain specific computation},
  author={Lattner, Chris and Amini, Mehdi and Bondhugula, Uday and Cohen, Albert and Davis, Andy and Pienaar, Jacques and Riddle, River and Shpeisman, Tatiana and Vasilache, Nicolas and Zinenko, Oleksandr},
  booktitle={2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)},
  pages={2--14},
  year={2021},
  organization={IEEE}
}

Ideas

> tokei

Dialects

  • Mir
  • arith
  • func
  • async
  • memref
  • controlflow

https://reviews.llvm.org/D142244

https://reviews.llvm.org/D141820

https://reviews.llvm.org/D142897

[GlobalISel] Introduce global variant of regbankselect