察说花园

不浮躁、不轻浮。

LLVM 学习记录:编译器最佳实践 - 构建,Cmake 和 test

学习内容来自网络课程,这个基本上是针对有点经验的 llvm 开发者,前面的就是过一遍。 https://github.com/PacktPublishing/LLVM-Techniques-Tips-and-Best-Practices-Clang-and-Middle-End-Libraries https://books.google.com.tw/books?id=g...

LLVM 学习记录:调试技巧

调试的时候有几个技巧,分享和记录下,方便自己后面可以熟练的用到。 看所有的编译命令,但是不执行 -###,这个就是 clang 的第一个参数。 https://clang.llvm.org/docs/CommandGuide/clang.html 用 clang 编译的时候,会从打印(但不运行)为此编译运行的命令。 然后打印出出错的命令,然后一步一步的执行,就知道是哪里的问...

LLVM 学习记录:调试技巧 2

这里直接推荐一个 https://blog.csdn.net/zhongyunde/article/details/109013865 工具的选项 传递编译选项给 clang -cc1:-Xclang -cc1 选项:实际的编译命令 传递编译选项给 llvm 编译:-mllvm 打印 token:-Xclang -dump-tokens 打印 AST: -Xclang -ast-...

LLVM 学习记录:如何添加一个 builtin 函数 - 2

需要主要有一个地方。 如果是 intrinsic*.td 里面使用了,ClangBuiltin<>, 那么就不需要再 CGBuiltin.cpp 里面添加枚举了。 先来看一组定义的差别 定义 1 def int_stackrestore : DefaultAttrsIntrinsic<[], [llvm_anyptr_ty]>, ...

LLVM 学习记录:编译器之美 - 后端基础:20~22

学习内容来自极客时间的付费课程,我是针对性的学习,直接进入后端的学习,从 20 讲开始,前端的词法解析,直接跳过。 https://time.geekbang.org/column/intro/100034101 ```graph TD A[前端] –> B{词法分析} B –> C{语法分析} C –> D{语义分析} D –> E{生成中间代码} E...

LLVM 学习记录:TD 里面的 def、defm、defvar 有什么区别

前面学习了如何添加一个 intrinsic 函数的过程,发现有涉及到 td table gen 语言的格式,这个需要注意。 有几个关键字,def,defm,defvar 的区别? 这个内容非常的简单,使用的时候注意下即可。官方文档把这个称为 record,翻译过来是记录?anyway,随便是什么,记住就是一个标识符吧。 首先了解下什么 single class,和 multiclass...

LLVM 学习记录:如何添加一个 builtin 函数

学习过程,求勘误,多谢指出~ 今天学习如何在后端添加一个 builtin 和对应的指令 mapping 起来? 整个过程预览: 源代码调用:在高级语言的源代码中使用特定于 AMDGPU 的内置函数,例如就这么写 __builtin_amdgcn_sin(x)。 LLVM IR 生成:Clang 编译器在编译过程中将这些内置函数调用转换为 LL...

如何编译 SHOC(可扩展的异构计算基准套件)

什么是 SHOC 可扩展异源计算基准套件(SHOC)是一组基准程序,用于测试系统的性能和稳定性。其最初的重点是其最初的重点是包含图形处理器(GPU)和多核和多核处理器的系统,以及 OpenCL(openclspec)编程标准。 它既可用于集群,也可用于单个主机。 OpenCL 是一个开放标准,用于对各种类型的计算设备进行编程。 设备编程的开放标准。OpenCL 规范描述了一种编程语言...

98 - 云南游记

记录下这次的旅游线路和见闻,路线为:成都 - 大理 - 丽江 - 云南 - 成都,时间总共 9 天。 第一天:大部分时间实在高铁上,终点是大理才村。8 点成都南站出发,达到广通北,转车到大理,花费时间为 8 个小时左右。 在广通北,中转的时候,这个站点很小,如果有中转的话,建议在多带一点水和实物,站里面没有卖的。 经过 1 个小时达到大理,然后打车达到洱海才村名宿,60 左右的打车费,...

97 - 做确定的事情,长期有益

朋友,您好 ~ 赚几千万,赚一个亿是不确定的,但是爱护好自己的身体,保持健康,这是一个确定的。 我们生活在一个看重金钱和地位的社会。许多人为了事业奋斗,经常过度工作而忽视了身体健康。我深深理解大家追求成功的渴望,但是我们千万不能忘记生活的本质。 赚钱只是手段,绝不能成为我们生活的全部。我们要时刻记住,锻炼身体,丰富心智,与家人朋友团聚,这些才是生活和人生的真正意义所在。如果为了...