%0 Journal Article %T Loop Invariant Code Motion in Code Generator
代码生成阶段的循环不变量外提 %A 杨书鑫 %A 薛丽萍 %A 张兆庆 %J 计算机科学 %D 2004 %I %X 循环不变量外提是一种传统的优化算法。在现代编译嚣中。循环不变量通常在编译器的中端中被删除或外提。中端的中间表示是目标处理机无关的,而编译器的后端的中间表示是目标处理机相关的。尽管中端的优化十分有效,但是从中端的中间表示向后端的中间表示转化的过程中会引入许多循环不变量。因此,有必要在后端再进行循环不变量外提。由于在指令调度的过程能够比较容易地决定一个循环不变量是否需要外提,我们将这一个阶段集成到指令调度中。为了降低指令调度的复杂性,我们把循环不变量的识别和外提区分开来。“识别”独立进行,而决定是否“外提”并实施“外提”则集成到指令调度阶段中。我们在开放源码编译器ORC的代码生成模块中具体实现了本文所介绍的算法。实验结果显示,在代码生成阶段的循环不变量外提能够提高目标代码1%的性能。我们的代价模型避免了78%的循环不变量不必要地外提到循环之外。 %K 指令调度 %K 代码生成 %K 编译器 %K 中间表示 %K 目标代码 %K 代价模型 %K 处理机 %K 不变量 %K 循环 %K 优化算法 %U http://www.alljournals.cn/get_abstract_url.aspx?pcid=5B3AB970F71A803DEACDC0559115BFCF0A068CD97DD29835&cid=8240383F08CE46C8B05036380D75B607&jid=64A12D73428C8B8DBFB978D04DFEB3C1&aid=30BF7A932F7A1811&yid=D0E58B75BFD8E51C&vid=4AD960B5AD2D111A&iid=708DD6B15D2464E8&sid=4C100B7696CE9E24&eid=8575BEDA702C4B7C&journal_id=1002-137X&journal_name=计算机科学&referenced_num=0&reference_num=11