综合技术 2017-05-05

LLVM学习笔记(11)

3.3.4. CodeGenRegBank CodeGenTarget::getRegBank方法为CodeGenTarget实例返回一个CodeGenRegBank对象。213行的llvm::make_unique等同……
手机数码 2017-04-20

Clang/C2遇坑记

年初在整理KlayGE的工程系统,其中一个事情就是尝试用clang/c2进行编译。在这个过程中遇到了好多坑,这里总结一下。也算带带坑了。 ……
综合技术 2017-04-20

LLVM学习笔记(9)

3. TableGen生成的代码 3.1. 概述 在编译LLVM时,首先会调用TableGen解析TD文件,产生C++源代码,然后这些C++源代码与LL……
综合技术 2017-04-07

LLVM学习笔记(7)

2.2.6. 调度信息 在Instruction定义430行的Itinerary以及433行的SchedRW用于描述指令调度的信息。 其中Itinerary是从指令执行步骤方面来……
综合技术 2017-03-31

[译]LLVM的源代码调试

原文地址: http://llvm.org/docs/SourceLevelDebugging.html#llvm-dbg-declare 引子 本文是与LLVM调试信息相关的所有信息的集大……
综合技术 2017-03-31

LLVM学习笔记(6)

2.2.4.2. 可复用的结构 2.2.4.2.1. PatFrag 高级语言的特征之一是数据与结构的复用,TD语言也吸取了这些长处,尝试为复杂而基本的……
综合技术 2017-03-24

llvm学习笔记(5)

2.2.4. 匹配模板 在Instruction定义的333行,成员Pattern描述了该指令匹配怎么样的SelectionDAG结构。这是一个list类型,因此存在一条指……
综合技术 2017-03-17

llvm学习笔记(3)

2.2.2. 参数描述 Instruction定义中的OutOperandList与InOperandList分别是这样的dag:(outs op1, op2, …),(ins op1, op2, …)。Op可以……
综合技术 2017-03-15

llvm学习笔记(2)

2. LLVM的后端描述 2.1. 类型描述 为了更好地描述寄存器所能支持的值类型(大小),以及操作数的类型(大小),Tablegen……
综合技术 2017-03-10

llvm学习笔记(1)

1. 概述 指令选择(instruction selection,也称为代码选择,有时甚至称为代码生成)是编译器代码生成器后端所涉及的重要问题之一。……
综合技术 2017-03-10

LLVM学习笔记——目录

前言 2011年前后,GCC后端代码的阅读陷入了举步维艰的境地。GGC-3.4.6后端代码的可读性不友好(当前版本没看过,不予评价。不过据说4.0进……
综合编程 2017-02-24

Clang Plugin–Sherlock

最近项目正在完善一套代码规范,相比于用管理人的方式去规定必须要怎么做,不如直接用工程化的思想,让编译器帮我们检查, 更多关于Clea……