综合技术 2017-06-16

0x01 Xcode调试一个LLVM Pass

之前写过一篇《关于LLVM,这些东西你必须知道!》,先已收录在《iOS成长之路》。 其中讲解了编译器的编译过程,以及通过LLVM可以做哪些……
综合技术 2017-06-02

Haskell for Numerics?

Introduction Summary Back in January, a colleague pointed out to me that GHC did not produce very efficient code for performin……
综合技术 2017-05-27

Gollvm from Google

LLVM IR generation “middle end” for LLVM-based go compiler. This is currently very much in a prototype phase, with a fairly bri……
综合技术 2017-05-27

LLVM学习笔记(13)

3.3.6. 输出代码 3.3.6.1. 枚举常量回到RegisterInfoEmitter::run,现在可以调用RegisterInfoEmitter::runEnums来向输出文件导……
综合技术 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-12

LLVM学习笔记(8)

2.3. 汇编处理描述 至于关于读写汇编格式指令信息的封装,TableGen提供了类Target(target.td)作为各目标机器的基类。 1059……
综合技术 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,也称为代码选择,有时甚至称为代码生成)是编译器代码生成器后端所涉及的重要问题之一。……