LLVM每日谈之十三 使用LLVM自带的PASS

简介: 作者:snsn1984 PS:最近一段时间,投入在LLVM上的时间有些减少。差点把对它的研究断掉,今天开始继续。对LLVM的研究需要很长一段时间的坚持不懈才可以彻底搞明白。

作者:snsn1984

PS:最近一段时间,投入在LLVM上的时间有些减少。差点把对它的研究断掉,今天开始继续。对LLVM的研究需要很长一段时间的坚持不懈才可以彻底搞明白。

前面已经介绍过如何写自己的PASS,并且也针对一个简单的PASS进行了分析和介绍。相信大家也可以从LLVM源码中找到很多的PASS,这些PASS太多,他们每个到底是做什么用?如何去调用这些系统已经有的PASS?这就是这次每日谈要关注的问题。

在文档 http://llvm.org/docs/Passes.html 中,列出了所有的PASS的命令行参数以及这个PASS主要是做什么用的。下面来实际进行测试下。
在编译好的bin/目录下,使用clang生成一个.bc文件作为例子。然后使用opt工具:
./opt -print-module <test.bc > /dev/null
这里选择的是-print-module,对于它的介绍如下:
This pass simply prints out the entire module when it is executed.

这个文档中的其他Pass也是类似的。自己不但可以在这个列表里找到自己需要的Pass,也可以通过这个列表来熟悉这些Pass。另外这个列表中的Pass的源码主要在llvm源码/lib/Analysis和llvm源码/lib/Transforms两个目录下,大家可以根据pass的名字自己去找。
目录
相关文章
LLVM每日谈之十二 LLVM的源码分析之Pass相关
作者:snsn1984 题记:在学习LLVM的过程中,要想学的更加深入,掌握更多的技能,LLVM的源码是必须要读的,但是在这么多的源码中,从哪里下手?很容易让人找不到头脑,本文这里就先拿出几个Pass相关的源码文件进行分析。
2058 0
|
前端开发 编译器 存储
LLVM每日谈之二 LLVM IR
作者:snsn1984 在介绍LLVM IR之前,我们需要先了解下LLVM的结构。传统的静态编译器分为三个阶段:前端、优化和后端。 LLVM的三阶段设计是这样的: 这样做的优点是如果需要支持一种新的编程语言,那么我们只需要实现一种新的前端。
1799 0
|
编译器
LLVM每日谈之十五 LLVM自带的examples
 作者:snsn1984            在LLVM源码的目录下,有一个目录叫做examples,这个目录下边有几个LLVM的例子,初学者一般不会太关注这些例子,但是这些例子确实是精华中的精华,在LLVM的学习过程中不可避免的要对这些例子所涉及内容要精通。
1118 0
|
测试技术 Shell
LLVM每日谈之十 LLVM Test简介
作者:snsn1984 就像很多优秀的软件都有自己的测试框架一样,LLVM也有自己的测试框架。LLVM的测试主要分为两 部分:regression tests 和 whole programs。
1746 0
|
C语言 API
LLVM每日谈之四 Pass初探
作者:snsn1984 LLVM 的Pass框架是LLVM系统的一个很重要的部分。每个Pass都是做优化或者转变的工作,LLVM的优化和转换工作就是由很多个Pass来一起完成的。
1109 0
|
编译器
LLVM每日谈之十九 LLVM的第一本系统的书&lt;Getting Started with LLVM Core Libraries&gt;
作者:史宁宁(snsn1984) LLVM终于有了一本系统的书了——《Getting Started with LLVM Core Libraries》。这本书号称是LLVM的第一本书,但是据说日本早就有两本日文的关于LLVM的书,这个了解的不多。
1041 0
LLVM每日谈之十七 LLVM/Clang的学习的思考
        之前一直关注LLVM和基于LLVM的工程(工具)多一些,对Clang和基于Clang的工具关注不是很多。这就导致了一个很严重的问题,觉的如果要深入理解Clang就必须要去读Clang的源码,这个想法不是不对,但是这不是唯一的路,而且Clang的源码太多,容易让人无法坚持下去,也容易让人无从下手。
1103 0
|
前端开发 API C语言
“Clang” CFE Internals Manual---中文版---"Clang"C语言前端内部手册
原文地址:http://clang.llvm.org/docs/InternalsManual.html 译者:史宁宁(snsn1984)                                                                                           "Clang"C语言前端内部手册 简介 这个文档描述了比较重要的API中的一部分API,还表述了Clang C语言前端中的一些内部设计想法。
1959 0
LLVM每日谈之十四 如何给Clang添加一个属性
每次内容主要出自文档: “Clang” CFE Internals Manual地址: http://clang.llvm.org/docs/InternalsManual.html 在这个文档中,以简明的的一个例子说明了如何按照这个方式在Clang中添加一个属性。
1248 0
|
测试技术 编译器
LLVM每日谈之六 LLVM的源码结构
 作者:snsn1984 这里简单介绍下LLVM的源码结构,让大家知道LLVM的每个文件夹都放的是什么内容。 参考文档: http://llvm.org/docs/GettingStarted.html#getting-started llvm/examples 这个目录主要是一些简单例子,演示如何使用LLVM IR 和 JIT。
1166 0

热门文章

最新文章