diff --git a/CMakeLists.txt b/CMakeLists.txt index c8821fd77..2ea519d30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -171,6 +171,7 @@ include_directories(${PROJECT_BINARY_DIR}/include) # Tablegen'd files add_subdirectory(include) add_subdirectory(lib) +add_subdirectory(bin) add_library(triton SHARED ${PYTHON_SRC}) diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt new file mode 100644 index 000000000..0d7fd269a --- /dev/null +++ b/bin/CMakeLists.txt @@ -0,0 +1,20 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) + +add_llvm_executable(triton-opt triton-opt.cpp) + +# TODO: what's this? +llvm_update_compile_flags(triton-opt) +target_link_libraries(triton-opt PRIVATE + ${dialect_libs} + ${conversion_libs} + MLIROptLib + + TritonIR + TritonTransforms + + TritonGPUIR + TritonGPUTransforms +) + +mlir_check_all_link_libraries(triton-opt) diff --git a/bin/triton-opt.cpp b/bin/triton-opt.cpp new file mode 100644 index 000000000..1331badae --- /dev/null +++ b/bin/triton-opt.cpp @@ -0,0 +1,19 @@ +#include "triton/Dialect/Triton/IR/Dialect.h" +#include "triton/Dialect/TritonGPU/IR/Dialect.h" + +#include "mlir/IR/Dialect.h" +#include "mlir/InitAllPasses.h" +#include "mlir/Support/MlirOptMain.h" + + +int main(int argc, char **argv) { + mlir::registerAllPasses(); + + mlir::DialectRegistry registry; + registry.insert(); + + return mlir::asMainReturnCode( + mlir::MlirOptMain(argc, argv, "Triton (GPU) optimizer driver\n", registry) + ); +}