摘要:
这一部分想给出一个完整的例子,来利用IRBuilder建立func_sum,并完成对齐的调用。(网上应该有完整的说明,忘记是哪里来的,留在这里方便记录,找到来源后附链接)来实现类似的功能: int sum(int n){ int i = 1; int sum = 0; while(i<=n){ su 阅读全文
摘要:
经过多年的发展,LLVM事实上已经对大部分语言进行了支持,其完备的功能和好的模块化和轻耦合的特性得到了很多人的认可,但是在很多传统领域,实际上的编译器还是gcc(基础设施),大部分人如果想使用LLVM对gcc进行替换时,会遇到一些麻烦。Clang的官网上对这个地方有个说明:The 'clang' d 阅读全文
摘要:
本节将介绍一种特殊的IR指令——PHINode。 关于PHI,首先需要介绍SSA静态单赋值https://en.wikipedia.org/wiki/Static_single_assignment_form 为了实现SSA,需要将类似的branch语句: int max(int a, int b) 阅读全文