目录

Cminusf 编译器原型

这个项目是一个基于 MLIR 的 Cminusf 编译器原型,用来学习编译基础和MLIR框架

主要流程

Cminusf 编译器的主要流程如下:

Cminusf 源码
    -> 解析器 / AST
    -> 自定义 Cminusf Dialect MLIR
    -> 标准 MLIR Dialects (func / arith / memref / scf / cf)
    -> LLVM Dialect
    -> LLVM IR
    -> 使用 Clang 生成 x86 可执行文件

构建和运行

# 构建项目
mkdir build && cd build
cmake ..
make -j

# 编译并运行示例程序
./build/cminusfc --emit-exe ./tests/<program_name>.cminus
./tests/<program_name>

Cminusf 源自 USTC 编译器课程实验,本项目复用了该实验的词法分析、语法分析和 AST 部分。

依赖

  • LLVM (commit: 21f4b84c456b471cc52016cf360e14d45f7f2960)

TODO

  • 在多个层级添加优化 Pass
关于

一个编译技术与MLIR的练手项目

3.4 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号