图书介绍

深入分析GCCPDF|Epub|txt|kindle电子书版本下载

深入分析GCC
  • 王亚刚编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111556329
  • 出版时间:2017
  • 标注页数:537页
  • 文件大小:72MB
  • 文件页数:548页
  • 主题词:应用软件

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入分析GCCPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 GCC概述1

1.1 GCC的产生与发展1

1.2 GCC的特点2

1.3 GCC代码分析3

第2章 GCC源代码分析工具4

2.1 vim+ctags代码阅读工具4

2.2 GNUgdb调试工具6

2.3 GNUbinutils工具8

2.4 shell工具及graphviz绘图工具11

2.5 GCC调试选项13

第3章 GCC总体结构16

3.1 GCC的目录结构16

3.2 GCC的逻辑结构18

3.3 GCC源代码编译20

3.3.1 配置21

3.3.2 编译23

3.3.3 安装25

第4章 从源代码到AST/GENERIC26

4.1 抽象语法树26

4.2 树节点的声明28

4.3 树节点结构33

4.3.1 struct tree_base35

4.3.2 struct tree_common36

4.3.3 常量节点38

4.3.4 标识符节点42

4.3.5 声明节点44

4.3.6 struct tree_decl_minimal46

4.3.7 struct tree_decl_common46

4.3.8 structtree_field_decl49

4.3.9 struct tree_decl_with_rtl55

4.3.10 struct tree_label_decl55

4.3.11 structtree_result_decl56

4.3.12 struct tree_const_decl57

4.3.13 structtree_parm_decl57

4.3.14 struct tree_decl_with_vis59

4.3.15 struct tree_var_decl59

4.3.16 structtree_decl_non_common62

4.3.17 struct tree_function_decl62

4.3.18 struct tree_type_decl64

4.3.19 类型节点67

4.3.20 tree list节点68

4.3.21 表达式节点71

4.3.22 语句节点73

4.3.23 其他树节点75

4.4 AST输出及图示76

4.5 AST的生成83

4.5.1 词法分析84

4.5.2 词法分析过程90

4.5.3 语法分析98

4.5.4 语法分析过程99

4.5.5 c_parse_file103

4.5.6 c_parser_translation_unit105

4.5.7 c_parserexternal_declaration105

4.5.8 c_parser_declaration_or_fndef107

4.5.9 c_parser_declspecs112

4.6 小结114

第5章 从AST/GENERIC到GIMPLE115

5.1 GIMPLE115

5.2 GIMPLE语句119

5.3 GIMPLE的表示与存储122

5.4 GIMPLE语句的操作数128

5.5 GIMPLE语句序列的基本操作132

5.6 GIMPLE的生成135

5.6.1 gimplify_function_tree136

5.6.2 gimplify_body138

5.6.3 gimlify_parameters139

5.6.4 gimplify_stmt144

5.6.5 gimplify_expr144

5.7 GIMPLE转换实例157

5.7.1 BIND EXPR节点的GIMPLE生成158

5.7.2 STATEMENT_LIST_EXPR节点的GIMPLE生成159

5.7.3 MODIFY EXPR节点的GIMPLE生成160

5.7.4 POSTINCREMENT_EXPR节点的GIMPLE生成162

5.8 实例分析172

5.9 小结176

第6章 GIMPLE处理及其优化177

6.1 GCC Pass177

6.1.1 核心数据结构177

6.1.2 Pass的类型179

6.1.3 Pass链的初始化182

6.1.4 Pass的执行184

6.2 Pass列表187

6.3 GIMPLE Pass实例193

6.3.1 pass_remove_useless_stmts193

6.3.2 pass_lower_cf195

6.3.3 pass_build_cfg197

6.3.4 pass_build_cgraph_edges203

6.3.5 pass_build_ssa205

6.3.6 pass_all_optimizations206

6.3.7 pass_expand207

6.4 小结207

第7章 RTL208

7.1 RTL中的对象类型209

7.2 RTX CODE210

7.3 RTX类型210

7.4 RTX输出格式212

7.5 RTX操作数213

7.6 RTX的机器模式216

7.7 RTX的存储219

7.8 RTX表达式222

7.8.1 常量225

7.8.2 寄存器和内存227

7.8.3 算术运算228

7.8.4 比较运算230

7.8.5 副作用230

7.9 IR-RTL232

7.9.1 INSN233

7.9.2 JUMP_INSN234

7.9.3 CALL_INSN235

7.9.4 BARRIER235

7.9.5 CODE_LABEL236

7.9.6 NOTE237

7.10 小结238

第8章 机器描述文件${target}.md239

8.1 机器描述文件240

8.2 指令模板241

8.2.1 模板名称242

8.2.2 RTL模板246

8.2.3 条件256

8.2.4 输出模板256

8.2.5 属性256

8.3 定义RTL序列257

8.4 指令拆分263

8.5 枚举器266

8.5.1 mode枚举器266

8.5.2 code枚举器268

8.6 窥孔优化269

8.6.1 define_peephole269

8.6.2 define_peephole2270

8.7 小结271

第9章 机器描述文件${target}.[ch]272

9.1 targetm272

9.1.1 struct gcc_target的定义273

9.1.2 targetm的初始化277

9.2 编译驱动及选项279

9.2.1 编译选项280

9.2.2 SPEC语言及SPEC文件281

9.2.3 机器相关的编译选项285

9.3 存储布局286

9.3.1 位顺序和字节顺序286

9.3.2 类型宽度287

9.3.3 机器模式提升287

9.3.4 存储对齐288

9.3.5 编程语言中数据类型的存储布局289

9.4 寄存器使用290

9.4.1 寄存器的基本描述290

9.4.2 寄存器分配顺序297

9.4.3 机器模式298

9.4.4 寄存器类型300

9.5 堆栈及函数调用规范描述307

9.5.1 堆栈的基本特性309

9.5.2 寄存器消除313

9.5.3 函数栈帧的管理315

9.5.4 参数传递316

9.5.5 函数返回值318

9.5.6 i386机器栈帧318

9.6 寻址方式325

9.7 汇编代码分区326

9.8 定义输出的汇编语言333

9.8.1 汇编代码文件的框架333

9.8.2 数据输出336

9.8.3 未初始化数据输出336

9.8.4 标签输出338

9.8.5 指令输出342

9.9 机器描述信息的提取343

9.9.1 gencode.c347

9.9.2 genattr.c348

9.9.3 genattrtab.c348

9.9.4 genrecog.c349

9.9.5 genflag.c352

9.9.6 genemit.c353

9.9.7 genextract.c354

9.9.8 genopinit.c356

9.9.9 genoutput.c360

9.9.10 genpreds.c362

9.9.11 其他363

9.10 小结364

第10章 从GIMPLE到RTL365

10.1 GIMPLE序列365

10.2 典型数据结构366

10.3 RTL生成的基本过程367

10.3.1 变量展开370

10.3.2 参数及返回值处理380

10.3.3 初始块的处理395

10.3.4 基本块的RTL生成398

10.3.5 退出块的处理410

10.3.6 其他处理411

10.4 GIMPLE语句转换成RTL411

10.4.1 GIMPLE语句转换的一般过程412

10.4.2 GIMPLE GOTO语句的RTL生成415

10.4.3 GIMPLE ASSIGN语句的RTL生成417

10.5 小结432

第11章 RTL处理及优化433

11.1 RTL处理过程433

11.2 特殊虚拟寄存器的实例化435

11.3 指令调度437

11.3.1 指令调度算法439

11.3.2 GCC指令调度的实现440

11.3.3 指令调度实例1442

11.3.4 指令调度实例2459

11.4 统一寄存器分配460

11.4.1 基本术语461

11.4.2 寄存器分配的主要流程463

11.4.3 代码分析466

11.4.4 寄存器分配实例1468

11.4.5 寄存器分配实例2483

11.5 汇编代码生成494

11.5.1 汇编代码文件的结构495

11.5.2 从RTL到汇编代码499

11.6 小结502

第12章 支持新的目标处理器503

12.1 GCC移植503

12.2 PAAG处理器504

12.2.1 PAAG处理器指令集505

12.2.2 应用二进制接口505

12.3 GCC移植的基本步骤506

12.4 PAAG机器描述文件(paag.md)507

12.5 paag.[ch]文件512

12.5.1 存储布局512

12.5.2 寄存器使用规范513

12.5.3 堆栈布局及堆栈指针514

12.5.4 函数调用规范515

12.5.5 寻址方式519

12.5.6 汇编代码输出521

12.5.7 杂项523

12.6 PAAG后端注册523

12.7 GCC移植测试524

12.8 小结526

参考文献527

索引529

热门推荐