Skip to content

An out-of-tree pass to allow lowering to llvm

License

Notifications You must be signed in to change notification settings

gmh5225/mlir-cf-pass

 
 

Repository files navigation

MLIR CF Pass

This project implements an out-of-tree optimization tool with a pass resolving llvm/llvm-project#55301.

The pass converts index types in the CF operations to I64 by inserting index casts.
Currently only cf.br is supported.
The output type can be changed in lib/CFIndexToInt.cpp:46 (will be added as a command flag)

Building

This setup assumes that you have built LLVM and MLIR in $BUILD_DIR and installed them to $PREFIX. To build and launch the tests, run

mkdir build && cd build
cmake -G Ninja .. -DMLIR_DIR=$PREFIX/lib/cmake/mlir -DLLVM_EXTERNAL_LIT=$BUILD_DIR/bin/llvm-lit
cmake --build . --target check-sdfg-opt

To build the documentation from the TableGen description of the dialect operations, run

cmake --build . --target mlir-doc

Note: Make sure to pass -DLLVM_INSTALL_UTILS=ON when building LLVM with CMake in order to install FileCheck to the chosen installation prefix.

Usage

cf-opt --cf-index-to-int <file>

About

An out-of-tree pass to allow lowering to llvm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 52.8%
  • CMake 16.9%
  • MLIR 16.8%
  • Python 13.5%