![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LLVM
不知世事
日拱一卒,功不唐捐。
展开
-
一起学习LLVM(一)
学习LLVM的源码目录:一、LLVM的周边项目:1.clang、llvm、clang-tools-extra、compiler-rt:clang+LLVM:clang是LLVM的前端,把各种源码编译处理;clang-tools-extra:clang默认以外的认为不是很重要的工具;Compiler-RT 项⽬为硬件不⽀持的低级功能提供特定的⽀持。例如,32位⽬标通常缺少...原创 2019-03-02 11:29:12 · 10140 阅读 · 0 评论 -
一起学习LLVM(二)
一、llvm opt优化介绍:在学习LLVM的过程中可以看出:最重要的是优化这一块,包括平台无关的优化和平台相关的优化。平台相关的优化是涉及到后端中具体指令的生成,在这一块只是简单的来说明平台无关的优化:如下图所示为关于O1、O2、O3的优化选项:比如以下这个例子:不优化的时候直接生成对应的字节码:进行优化:1.寄存器优化./o...原创 2019-03-17 18:42:45 · 1302 阅读 · 0 评论 -
一起学习LLVM(三)
学习LLVM常用的API操作常用的结构:---关于函数和指令以及block和指令的操作;引用的各自类型:---Dynamic casts---Instanceof-of casts修改CFG的几种方式---修改基本块或者指令一、Runtime type inference(RTTI)...原创 2019-03-25 20:11:58 · 1104 阅读 · 0 评论 -
arm64位编译出错:aarch64-linux-android/bin\ld: unrecognized option '--fix-cortex-a53-843419' 的解决方法
一、问题出现:在NDK R10C上利用一个改造过的安全编译器clang编译一个arm64位so:报错:无法识别GCC链接器中的unrecognized option '--fix-cortex-a53-843419',导致编译出错,但是在ndkR10e上没问题,同时用之前的NDK R10C本身自带的clang去编译也没有问题。二、解决问题:Google了好久,最后实在找不...原创 2019-03-27 21:19:49 · 14805 阅读 · 0 评论 -
一起学习LLVM(四):学习llvm-cbe
近来学习一下LLVM-cbe这个后端对于ir解析成c的一个框架,很有意思。github源码:https://github.com/buzhishishi/llvm-cbe一、安装注意事项:由于要编译C到ir的过程,所以要安装clang,这里注意由于后面要执行make llvm-cbe,要在llvm 下面的CmakeList.txt中添加这个任务: option (...原创 2019-05-15 12:21:04 · 1386 阅读 · 2 评论 -
一起学些LLVM(五): 学习lli/vmir
一、GIthub链接:https://github.com/andoma/vmir二、原理:Optionally it can generate machine code (JIT) to speed up execution significantly. JIT is currently only supported on 32 bit ARM.相对于官网的LLI源码相比...原创 2019-08-02 18:58:08 · 2137 阅读 · 0 评论