# MyMLIRProject **Repository Path**: alanturin/my-mlirproject ## Basic Information - **Project Name**: MyMLIRProject - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-05-17 - **Last Updated**: 2024-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Standalone myLang MLIR Project ## 1.项目结构 ```tree rootDir/ | |--include/ | |--build/ 构建目录 | |--myDialect/ 存放td文件,myLang的相关Pass/OpInterface头文件 | |--parser/ lexer/parser/mlirgen *.h files | |--lib/ | |--parser/ lexer/paser/mlirgen *.cpp files | |--Transform/ Lowering/Optimize/Interface Passes of mylang | |--CMakeLists.txt bulid | |--MyLangDialect.cpp myLang Ops 的补充函数实现 | |--rewriter.cpp 定义myLang Op的Canonicalization要经过的Pass,补充这些优化pass的实现 | |--tools/ | |--myDialect_opt/ main.cpp 生成可执行文件 | |--CMakeLists.txt 总cmake文件 |--test.toy 测试文件 ``` ## 2.构建方法 执行 build_project.sh ## 3.测试方法 ```shell cd ${project_path} ./build/tools/myDialect_opt/MyLang_opt ./test.toy --emit=mlir ``` 不同的emit选项: --emit=mlir 显示mlir级别的code --emit=mlir-affine 显示affine级别的code --emit=llvm 显示llvm级别的code --emit=jit 实时编译toy文件并运行