这是我用于参加今年 bsb 写的编译器,受到了不少 llvm 和 mlir 的启发,以及今年 Yue huang 的工作,真是受到吗。我不是很想评价今年这个比赛的形式,已经没有什么能够形容这个比赛的词汇了。甚至都没有什么参加的欲望,只能寄希望于决赛能改善一下环境。Anyway,既然我做了这个东西,我觉得还是想找个地方分享一下。
ir 设计了 region,从高到低 lowering 到 codegen。用了很多 c++ 模板技巧,在写代码过程中想的东西大部分都写到 docs 里面了(应该有些地方和代码不一致的地方我没有更新)。
以 Apache2.0 协议开源。