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

About

Experimental MLIR Rust compiler

Topics

Resources

License

Stars

Watchers

Forks