代码生成阶段的循环不变量外提 |
| |
引用本文: | 杨书鑫 薛丽萍 张兆庆. 代码生成阶段的循环不变量外提[J]. 计算机科学, 2004, 31(11): 158-161 |
| |
作者姓名: | 杨书鑫 薛丽萍 张兆庆 |
| |
作者单位: | 中科院计算技术研究所先进编译组,北京,100080;中科院计算技术研究所先进编译组,北京,100080;中科院计算技术研究所先进编译组,北京,100080 |
| |
摘 要: | 循环不变量外提是一种传统的优化算法。在现代编译嚣中。循环不变量通常在编译器的中端中被删除或外提。中端的中间表示是目标处理机无关的,而编译器的后端的中间表示是目标处理机相关的。尽管中端的优化十分有效,但是从中端的中间表示向后端的中间表示转化的过程中会引入许多循环不变量。因此,有必要在后端再进行循环不变量外提。由于在指令调度的过程能够比较容易地决定一个循环不变量是否需要外提,我们将这一个阶段集成到指令调度中。为了降低指令调度的复杂性,我们把循环不变量的识别和外提区分开来。“识别”独立进行,而决定是否“外提”并实施“外提”则集成到指令调度阶段中。我们在开放源码编译器ORC的代码生成模块中具体实现了本文所介绍的算法。实验结果显示,在代码生成阶段的循环不变量外提能够提高目标代码1%的性能。我们的代价模型避免了78%的循环不变量不必要地外提到循环之外。
|
关 键 词: | 循环不变量 代码生成 部分冗余删除 指令调度 |
Loop Invariant Code Motion in Code Generator |
| |
Abstract: | |
| |
Keywords: | |
本文献已被 维普 万方数据 等数据库收录! |
| 点击此处可从《计算机科学》浏览原始摘要信息 |
|
点击此处可从《计算机科学》下载全文 |
|