文档章节

七天LLVM零基础入门(Linux版本)------第五天

snsn1984
 snsn1984
发布于 2013/02/28 11:14
字数 324
阅读 977
收藏 2

作者:snsn1984

第一步:复习文档 Write an LLVM pass

http://llvm.org/docs/WritingAnLLVMPass.html
第二步:阅读LLVM编程规范
http://llvm.org/docs/CodingStandards.html
编程规范是编程中需要注意的基础点,代码风格符合不符合规范,将会直接影响整个代码的可读性和代码质量。
所以一定要认真阅读,并且在自己编写代码的过程中要遵守规范。最容易犯错误的两点就是缩进和空格。不同
的编程规范的缩进是不同的,但是对TAB的限制是大多数规范都有的。任何不是必须的空格,都是不应该出现
的。
第三步:参照LLVM编程规范写Pass例子
编写一个Pass,删除掉程序中所有的没有使用的指令。比如:
%2 = add i32 %1, 1;
%3 = add i32 %2, 1;
ret;
那么因为%3并没有被使用,所以指令%3 = add i32 %2, 1; 就可以被删除了,删除之后,如果%2没有别的地方使用,
那么这条语句也可以删除掉了。依次循环下去,最后得到的是一个没有无用的代码的程序。
延伸阅读:

http://en.wikipedia.org/wiki/Dead_code_elimination


-------------------------------------------转载请注明出处-------------------------------------------------------

© 著作权归作者所有

snsn1984
粉丝 94
博文 32
码字总数 45245
作品 0
长春
项目经理
私信 提问
七天LLVM零基础入门(Linux版本)------总结

七天LLVM零基础入门这系列文章,为了让刚接触LLVM的人在最短的时间内快速的熟悉LLVM。这系列文章,现在经过将近一年的时间的使用,有了不少反馈的意见,现在将这些情况总结一下。 1. 在按照这...

snsn1984
2014/02/10
404
0
七天LLVM零基础入门(Linux版本)------第六天

作者:snsn1984 第一步:对优化代码的pass继续进行深入的分析 首先检查一下第五天中的Pass练习,什么情况下可以进行优化,什么情况下不可以进行优化。 可以参照系统自带的Pass: http://llvm...

snsn1984
2013/02/28
812
0
七天LLVM零基础入门(Linux版本)------第七天

作者:snsn1984 这是这一次零基础入门的最后一天,这次的主要任务是实战一个Pass。 任务描述: 实现一个Pass,该Pass可以读取一个程序中所有的for循环的循环头的名字并输出。...

snsn1984
2013/02/28
1K
6
七天LLVM零基础入门(Linux版本)------第四天

作者:snsn1984 第一步:复习 http://llvm.org/docs/LangRef.html) 编程指引文档 (http://llvm.org/docs/ProgrammersManual.html) 这两篇文档是LLVM的重中之重,希望学习的时候认真一点,...

snsn1984
2013/02/27
1K
0
七天LLVM零基础入门(Linux版本)------第二天

作者:snsn1984 在第一天的时候,我们简单了解了llvm和clang。今天我们继续对LLVM进行学习。 第一步:学会如何查找LLVM的文档

snsn1984
2013/02/22
2.2K
5

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
8
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
9
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
7
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部