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 · 10617 阅读 · 0 评论 -
一起学习LLVM(二)
一、llvm opt优化介绍: 在学习LLVM的过程中可以看出: 最重要的是优化这一块,包括平台无关的优化和平台相关的优化。 平台相关的优化是涉及到后端中具体指令的生成,在这一块只是简单的来说明平台无关的优化:如下图所示为关于O1、O2、O3的优化选项: 比如以下这个例子: 不优化的时候直接生成对应的字节码: 进行优化: 1.寄存器优化 ./o...原创 2019-03-17 18:42:45 · 1512 阅读 · 0 评论 -
一起学习LLVM(三)
学习LLVM常用的API操作 常用的结构: ---关于函数和指令以及block和指令的操作; 引用的各自类型: ---Dynamic casts ---Instanceof-of casts 修改CFG的几种方式 ---修改基本块或者指令 一、Runtime type inference(RTTI)...原创 2019-03-25 20:11:58 · 1341 阅读 · 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 · 15793 阅读 · 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 · 1663 阅读 · 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 · 2431 阅读 · 0 评论
分享