1 代码生成概述 #
mindmap
id1[代码生成概述]
id1-1[代码生成的定义与作用]
id1-1-1[代码生成在编译过程中的位置]
id1-1-2[代码生成的主要任务]
id1-1-3[代码生成的目标与要求]
id1-2[代码生成的发展历程]
id1-2-1[早期代码生成技术]
id1-2-2[现代代码生成方法]
id1-2-3[代码生成技术发展趋势]
代码生成的定义与作用
代码生成在编译过程中的位置
代码生成的主要任务
代码生成的目标与要求
代码生成的发展历程
早期代码生成技术
现代代码生成方法
代码生成技术发展趋势
2 目标代码形式 #
绝对机器代码
绝对地址代码特点
绝对代码生成方法
绝对代码的优缺点
可重定位机器代码
重定位概念与原理
重定位信息记录
链接器与加载器的作用
汇编代码
汇编代码作为目标代码
汇编代码生成策略
汇编器的作用与功能
mindmap
id2[目标代码形式]
id2-1[绝对机器代码]
id2-1-1[绝对地址代码特点]
id2-1-2[绝对代码生成方法]
id2-1-3[绝对代码的优缺点]
id2-2[可重定位机器代码]
id2-2-1[重定位概念与原理]
id2-2-2[重定位信息记录]
id2-2-3[链接器与加载器的作用]
id2-3[汇编代码]
id2-3-1[汇编代码作为目标代码]
id2-3-2[汇编代码生成策略]
id2-3-3[汇编器的作用与功能]
3 指令选择 #
mindmap
id3[指令选择]
id3-1[指令选择基础]
id3-1-1[指令选择问题定义]
id3-1-2[指令选择的重要性]
id3-1-3[指令选择的质量标准]
id3-2[树模式匹配方法]
id3-2-1[树模式匹配原理]
id3-2-2[树重写规则]
id3-2-3[动态规划在树匹配中的应用]
id3-3[基于DAG的指令选择]
id3-3-1[DAG表示方法]
id3-3-2[DAG模式匹配算法]
id3-3-3[DAG到指令序列的转换]
id3-4[基于语法制导的指令选择]
id3-4-1[语法制导翻译方案]
id3-4-2[属性文法在指令选择中的应用]
id3-4-3[语义动作设计]
指令选择基础
指令选择问题定义
指令选择的重要性
指令选择的质量标准
树模式匹配方法
树模式匹配原理
树重写规则
动态规划在树匹配中的应用
基于DAG的指令选择
DAG表示方法
DAG模式匹配算法
DAG到指令序列的转换
基于语法制导的指令选择
语法制导翻译方案
属性文法在指令选择中的应用
语义动作设计
4 寄存器分配 #
寄存器分配问题
寄存器分配的目标
寄存器分配约束条件
寄存器分配复杂度分析
图着色寄存器分配
图着色原理
冲突图构建
图着色算法实现
线性扫描寄存器分配
线性扫描算法原理
活跃区间分析
线性扫描算法优化
其他寄存器分配方法
基于优先级的分配
基于划分的分配
启发式分配算法
mindmap
id4[寄存器分配]
id4-1[寄存器分配问题]
id4-1-1[寄存器分配的目标]
id4-1-2[寄存器分配约束条件]
id4-1-3[寄存器分配复杂度分析]
id4-2[图着色寄存器分配]
id4-2-1[图着色原理]
id4-2-2[冲突图构建]
id4-2-3[图着色算法实现]
id4-3[线性扫描寄存器分配]
id4-3-1[线性扫描算法原理]
id4-3-2[活跃区间分析]
id4-3-3[线性扫描算法优化]
id4-4[其他寄存器分配方法]
id4-4-1[基于优先级的分配]
id4-4-2[基于划分的分配]
id4-4-3[启发式分配算法]
5 指令调度 #
mindmap
id5[指令调度]
id5-1[指令调度基础]
id5-1-1[指令级并行性]
id5-1-2[流水线技术]
id5-1-3[数据相关与控制相关]
id5-2[基本块调度]
id5-2-1[基本块内调度算法]
id5-2-2[表调度方法]
id5-2-3[关键路径调度]
id5-3[全局调度]
id5-3-1[轨迹调度]
id5-3-2[软件流水线]
id5-3-3[循环调度技术]
id5-4[动态调度与静态调度]
id5-4-1[动态调度机制]
id5-4-2[静态调度策略]
id5-4-3[调度方法比较]
指令调度基础
指令级并行性
流水线技术
数据相关与控制相关
基本块调度
基本块内调度算法
表调度方法
关键路径调度
全局调度
轨迹调度
软件流水线
循环调度技术
动态调度与静态调度
动态调度机制
静态调度策略
调度方法比较
6 代码优化与生成 #
窥孔优化
窥孔优化原理
常见优化模式
窥孔优化实现技术
代码生成中的优化
常量传播与折叠
死代码消除
强度削弱
目标机器描述
机器描述语言
指令集描述
机器相关优化
mindmap
id6[代码优化与生成]
id6-1[窥孔优化]
id6-1-1[窥孔优化原理]
id6-1-2[常见优化模式]
id6-1-3[窥孔优化实现技术]
id6-2[代码生成中的优化]
id6-2-1[常量传播与折叠]
id6-2-2[死代码消除]
id6-2-3[强度削弱]
id6-3[目标机器描述]
id6-3-1[机器描述语言]
id6-3-2[指令集描述]
id6-3-3[机器相关优化]
7 特殊代码生成技术 #
mindmap
id7[特殊代码生成技术]
id7-1[函数调用代码生成]
id7-1-1[调用约定]
id7-1-2[栈帧管理]
id7-1-3[参数传递机制]
id7-2[控制流代码生成]
id7-2-1[条件语句代码生成]
id7-2-2[循环语句代码生成]
id7-2-3[跳转指令生成]
id7-3[数组与结构体代码生成]
id7-3-1[数组访问代码生成]
id7-3-2[结构体访问代码生成]
id7-3-3[复杂数据类型处理]
函数调用代码生成
调用约定
栈帧管理
参数传递机制
控制流代码生成
条件语句代码生成
循环语句代码生成
跳转指令生成
数组与结构体代码生成
数组访问代码生成
结构体访问代码生成
复杂数据类型处理
8 代码生成器设计与实现 #
代码生成器架构
模块化设计
接口设计
数据流设计
代码生成器实现技术
自动生成技术
手工编码技术
混合实现方法
测试与验证
代码生成正确性测试
性能测试方法
调试技术
mindmap
id8[代码生成器设计与实现]
id8-1[代码生成器架构]
id8-1-1[模块化设计]
id8-1-2[接口设计]
id8-1-3[数据流设计]
id8-2[代码生成器实现技术]
id8-2-1[自动生成技术]
id8-2-2[手工编码技术]
id8-2-3[混合实现方法]
id8-3[测试与验证]
id8-3-1[代码生成正确性测试]
id8-3-2[性能测试方法]
id8-3-3[调试技术]
9 现代代码生成技术 #
mindmap
id9[现代代码生成技术]
id9-1[JIT编译技术]
id9-1-1[JIT编译原理]
id9-1-2[动态代码生成]
id9-1-3[热点代码优化]
id9-2[多目标代码生成]
id9-2-1[交叉编译]
id9-2-2[多平台支持]
id9-2-3[目标无关代码生成]
id9-3[高级代码生成技术]
id9-3-1[基于LLVM的代码生成]
id9-3-2[向量化代码生成]
id9-3-3[并行代码生成]