摘要: https://zhuanlan.zhihu.com/p/101923309 阅读全文
posted @ 2022-04-20 13:27 zzas12345 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 参考资料 https://zhuanlan.zhihu.com/p/395552440 阅读全文
posted @ 2022-04-18 16:57 zzas12345 阅读(10) 评论(0) 推荐(0) 编辑
摘要: SIMPLIFY CFG 源码分析 9.0 Some useful command to show Result Opt 工具显示优化先后的IR opt -O2 -print-before-all -print-after-all is_sorted2.ll Opt 运行单独的优化pass opt 阅读全文
posted @ 2022-04-15 17:08 zzas12345 阅读(724) 评论(0) 推荐(0) 编辑
摘要: opt -dot-cfg a.ll 生成dot 文件。 dot mian.dot -Tpng -o a.png xdg-open a.png opt -dot-callgraph a.ll 阅读全文
posted @ 2022-04-13 14:19 zzas12345 阅读(439) 评论(0) 推荐(0) 编辑
摘要: llvm-share-dominatortree Dominator Tree https://blog.csdn.net/dashuniuniu/article/details/52224882 Def 支配了所有的user 如果每一条从流图的入口结点到结点 n 的路径都经过结点 d, 我们就说 阅读全文
posted @ 2022-04-13 14:13 zzas12345 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 1,D{n} 的求解 求一个一个流图的所有节点的支配节点的算法 输入:一个流图G,G的节点集合是{N},边的集合是{E} 输出:对于N中的每个节点n,给出D{n},即所有支配节点n的节点集合D{n} 方法: 对于N中所有节点 D{n} = OUT[n] 图1 算法运行过程 D{1} = {1} D{ 阅读全文
posted @ 2022-04-13 14:11 zzas12345 阅读(21) 评论(0) 推荐(0) 编辑
摘要: LLVM优化一个简单函数 一个优化的、领先的编译器通常被组织为: 一个将源代码翻译为一个中间表示(IR)的前端。 一个目标无关的优化流水线:一系列,它们持续重写IR,以消除低效性以及不能容易翻译为机器码的形式。有时称之为“中端(middle end)”。 一个目标相关的后端,生成汇编代码或机器码。 阅读全文
posted @ 2022-04-13 14:01 zzas12345 阅读(444) 评论(0) 推荐(0) 编辑
摘要: bt 打印堆栈 f n 进入第n个栈帧n focus 打开Gdb代码行数 fs next 在command 和 代码界面切换 disable n 禁用某个断点 undisplay 不显示某个变量 display/p/watch {a,b} 显示多个变量 调用外部命令 shell COMMAND 配置 阅读全文
posted @ 2021-02-26 12:12 zzas12345 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 原生Gdb不支持对std容器的元素的显示,可以加载外界脚本实现对Std进行显示 转载http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt # # STL GDB evaluators/views/utilities - 1.03 阅读全文
posted @ 2021-02-26 11:29 zzas12345 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1.overide 强制重写基类的虚函数。返回类型必须一致,或者兼容(子类)。 2,纯虚函数可以有定义,但是纯虚函数没有被重新实现是不能被实例化的。 3,如果一个类继承了抽象类,如果没有实现全部纯虚函数,那么他也是一个抽象类。 阅读全文
posted @ 2021-02-26 11:26 zzas12345 阅读(38) 评论(0) 推荐(0) 编辑