LLVM_clang
文章平均质量分 92
llvm常见pass
clang解析ast, ir
利用python解析asr, ir
落子无悔!
念念不忘,必有回响.不积小流,无以成江海.
展开
-
LLVM_Ubuntu安装
a、直接下载编译好的这里使用llvm官网编译好的包, 直接解压即可用LLVM下载官网点击这里下载llvm-6.0.1下载完成后解压tar -vxf clang+llvm*b、下载源代码自己编译安装免费下载官网下载直接下载链接wget https://releases.llvm.org/5.0.0/llvm-5.0.0.src.tar.xzwget https://releases.llvm.org/5.0.0/cfe-5.0.0.src.tar.xzwget https://re原创 2020-09-07 15:41:44 · 20296 阅读 · 7 评论 -
llvm-IR基础知识
文章目录一. 说明二. 重要命令2.1 C语言llvm clang命令三.生成利用LLVM-IR转CFG图可视化四. LLVM-IR语言的标识符和解释一. 说明二. 重要命令2.1 C语言llvm clang命令llvm基本命令c到IRclang -emit-llvm -S multiply.c -o multiply.llclang -cc1 -emit-llvm testfile.c -o testfile.llIR到bitcodellvm-as test.ll –o test.bc原创 2020-12-26 16:13:27 · 3217 阅读 · 0 评论 -
LLVM_pass应用3 获取对应操作符上下文即CFG和DFG
文章目录1. 跳转指令br的cfg和dfg2 . 加法add和比较cmp指令的cfg和dfg3. 框架依然按照应用1中的使用,见下面链接4. FirstPass.cpp主代码5. 测试代码跟前两应用一样实验结果总结:本文介绍通过llvm的pass分析源码对应IR指令集中的操作符的上下文流程这样就方便我们通过遍历得到整个代码的cfg和dfg, 对于NLP转图处理有很大的帮助1. 跳转指令br的cfg和dfg2 . 加法add和比较cmp指令的cfg和dfg3. 框架依然按照应用1中的使用,见下面原创 2020-07-10 22:55:29 · 3337 阅读 · 0 评论 -
LLVM_pass应用2 计算全部操作符
文章目录1. 框架和操作2. 效果3. 主要代码FirstPass.cpp1. 框架和操作基础知识和框架请看框架依然使用同样的, 具体文件内容见下文├── CMakeLists.txt├── FirstPass.cpp├── hello.bc├── hello.c└── hello.llmkdir build && cd buildcmake ../ && make && cd ..opt -load build/libFirstPas原创 2020-07-09 19:54:27 · 2233 阅读 · 0 评论 -
LLVM_pass应用1 读取输入文件的函数
文章目录1、pass2、具体操作1.工程目录2.测试文件hello.c3.CMake说明文件CMakeList.txt4.主要代码 FirstPass.cpp5.编译生成动态链接so文件6.测试使用动态链接总结:平台: Ubuntu18.04版本 llvm+clang 5.0.0 编译安装见链接六-241、pass官方介绍与例子LLVM pass是编译器对代码进行转化和优化。所有pass都是Pass类的子类,通过覆盖Pass类的虚函数来实现功能,可继承的类有ModulePass , CallG原创 2020-07-09 18:11:40 · 2881 阅读 · 0 评论 -
LLVM IR转CFG
文章目录概述一、llvm二、clang1、clang与LLVM的关系:2、LLVM编译工具链编译流程3、使用clang编译c代码生成字节码bc4、使用clang编译c生成可执行二进制文件5、clang生成代码的中间文件IR6、IR和bc相互转换三、llvm+clang5.0.0安装四、控制流图(Control Flow Graph, CFG)原理if else分析whilefordo-whileswitchbreak-continue五、IR指令分析1、C代码2、对应的IR文件内容3、IR指令 分析六、IR原创 2020-07-02 17:49:54 · 3363 阅读 · 1 评论 -
Python接口clang解析C语言AST抽象语法树
# 1 python上使用clang,进行程序解析成AST,抽象语法树原创 2019-10-23 20:53:42 · 8490 阅读 · 2 评论