分类:新闻中心 时间:关注:(1)
无锡先进技术研究院姜军团队在《计算机科学》发表论文《基于循环代价分析的循环不变量外提算法》。该论文针对LLVM编译器中传统循环不变量外提算法的缺陷,提出了引入循环代价分析的优化方案,通过评估循环不变量外提的收益与溢出代价,选择性外提有效不变量,既减少重复计算,又规避额外访存开销,在多类测试中实现性能提升。
循环不变量外提(LICM)是程序编译的关键优化技术,通过将循环体内不变计算移至外部,减少重复运算以提升效率。但传统LLVM编译器的LICM算法会无差别外提所有不变量,当不变量数量较多时易引发寄存器溢出,导致循环内出现高延迟访存操作,反而产生负优化。

姜军团队提出的新算法,核心在于加入循环代价分析机制。算法设计了两类阈值,分别适配含函数调用和普通循环场景,通过统计待外提指令数量、计算指令运行代价与溢出代价,仅对能产生正收益的不变量执行外提操作。同时,算法在LLVM中端和后端均进行优化:中端引入代价分析实现选择性外提,后端动态调整阈值并精确计算指令延迟,弥补架构差异与指令执行代价差异带来的不足。
该算法在国产申威831处理器平台经多轮测试验证:千万级循环的典型用例中,性能较传统算法提升17%以上;在SPECCPU2017、Perl解释器DKbench、Python解释器pyperformance三大基准测试集中,分别实现0.4%、0.63%和1%的性能提升,且无负优化情况,展现出良好的普适性。
这项研究有效解决了传统算法在复杂循环场景下的优化瓶颈,为编译器循环优化提供了新的思路,对提升大数据、云计算等领域高复杂度程序的运行效率具有重要意义。下一步,团队将聚焦阈值自动计算技术,进一步增强算法对复杂代码场景的自适应能力。