![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
llvm
Mrpre
??
展开
-
LLVM - 生成局部变量
接上面一篇:https://wonderful.blog.csdn.net/article/details/106902005上面一篇实现了如下函数,但是 都是对入参a的操作 double myfor(double a) { for(i = 0; i < a; i++) { a = a + 1 } return a }本例中,我们希望实现是局部变量的加减,然后return,如下 double myvar(double a) { do原创 2020-06-22 15:18:28 · 1176 阅读 · 0 评论 -
LLVM - 生成for循环
1、生成函数2、使用Phi表达式实现for循环3、本例中,KaleidoscopeJIT源码位于./llvm-8.0.1.src/examples/Kaleidoscope/include/KaleidoscopeJIT.hPhi的概念可参考https://stackoverflow.com/questions/11485531/what-exactly-phi-instruction-does-and-how-to-use-it-in-llvm本例中,生成的llvm ir如下:define do原创 2020-06-22 15:08:04 · 999 阅读 · 0 评论 -
LLVM - 生成 if-else 以及 PH
1、生成函数2、函数有4个basic block,一个entry,一个 if-then 另一个 if-else,最后一个是因为需要使用ph,所以创建一个merge。3、创建ph来处理if-else,相关概念 http://en.wikipedia.org/wiki/Static_single_assignment_form4、使用jit运行5、本例中KaleidoscopeJIT源码在./llvm-8.0.1.src/examples/Kaleidoscope/include/Kaleidoscop原创 2020-06-22 14:55:44 · 576 阅读 · 0 评论 -
LLVM - 生成加法
本例中KaleidoscopeJIT在 ./llvm-8.0.1.src/examples/Kaleidoscope/include/KaleidoscopeJIT.中1、LLVM生成函数2、LVVM生成加法3、LLVM jit运行#include <sys/time.h>#include "./llvm-8.0.1.src/examples/Kaleidoscope/include/KaleidoscopeJIT.h"#include "llvm/ADT/APFloat.h"#i原创 2020-06-22 13:57:04 · 515 阅读 · 0 评论