自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

windiwen的专栏

随便写写

  • 博客(7)
  • 收藏
  • 关注

原创 ARMCC编译器优化分析(一)

最近分析了一下ARMCC编译器对于builtin函数的一些优化手段,与GCC不同,值得学习。在这里写出来与大家分享1.Printf1.1前言GCC前端调用fold_builtin_printf函数进行printf函数的fold优化。单个字符打印优化成putchar。在string中不包含%的情况下,printf("string\n");优化成puts。但是在参数1包含%的情

2014-03-20 16:36:27 3753 1

原创 LLVM(四):指令描述td部分

重要的指令属性include/llvm/Target/Target.td中的instruction类是所有指令的父类。//===----------------------------------------------------------------------===//// Instruction set description - These classes correspon

2014-03-04 15:18:15 4174

原创 LLVM(三):Tablegen简介

上一篇介绍实现llvm后端需要做的一些工作,有很大一部分工作是描述目标体系结构的特征,包括指令集,寄存器等信息。Tablegen就是用于记录这些信息的描述性语言。目标体系结构目录下的*.td文件都是用tablegen语言来描述的。经过tablegen工具批量生成C++源文件,它的好处就是我们描述的是大量信息的共同点,然后由工具批量生成,减少我们描述的工作量,使用tablegen语言也十分简单灵活。

2014-03-04 10:03:17 4408

原创 LLVM(二):后端结构

LLVM后端的功能就是处理LLVM IR(中间表达式)并生成目标机器指令。要实现一个LLVM编译器的后端需要以下步骤:1.     描述目标机器的特性2.     描述目标机器的寄存器3.     描述目标机器的指令集4.     描述指令选择器(也就是如何将IR转换成Target指令)5.     描述MC层(Machine code) 可选的步骤有:1.

2014-02-20 16:12:15 2332

原创 ARM内容简介

准备翻译下arm的指令集手册,自己也能做一个比较全面的学习,对于IOS的反汇编帮助还是比较大的。另:由于ARMCC工具链不开源,而其中又有很多值得学习的东西,准备把分析的ARMCC的一些东西也写到这里,有兴趣的也可以看看。

2014-02-20 14:06:02 668

原创 LLVM(一):简单介绍

本人对LLVM的学习主要在2013年,到现在已经有很长的时间没有接触了。俗话说的好:温故而知新,可以为师矣。llvm有很多值得学习的地方。LLVM和GCC的主要架构区别在于它采用了自己的中间代码形式,也就是llvm bitcode。前后端分离,启到的跨平台的作用,比如在android中的RSscript就是通过llvm前端clang类似的slang转换为llvm bitcode,存在于apk文

2014-02-20 13:43:27 2041

原创 简单写一个计划

今天是2014年2月19日,我决定从今天起开始更新博客。写博客主要目的就是为了记录工作和学习遇到的问题,再写一些心得和总结,留着自己以后回头看。今年准备写三方面的东西:1.LLVM2.GCC3.IOS时间有限,暂定一周至少写一篇吧,有时间再多写。就这样吧,身体第一,学习第二,早睡早起身体好

2014-02-19 22:55:32 619

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除