一句话:提出基于哈希的两级方案 RACE,在循环嵌套中层次化检测并消除数组计算冗余。
冗余消除是现代编译器的关键优化方向,循环嵌套是主要优化目标。已有数组计算冗余消除工作要么只针对特定计算模式,要么无法识别结构复杂的冗余。本文提出 RACE(Redundant Array Computation Elimination),一种基于哈希的技术,采用新颖的两级方案识别数组引用之间的数据复用与表达式之间的计算冗余,从而超越模式特定方法实现层次化冗余检测。RACE 以线性时间遍历循环嵌套中的表达式树,层次化地发现冗余,并生成使用优化辅助数组存储冗余计算结果的代码。此外,RACE 支持多种激进的表达式重结合策略以增加冗余机会。实验结果表明 RACE 是有效的。
Redundancy elimination is a key optimization direction, and loop nests are the main optimization target in modern compilers. Previous work on redundancy elimination of array computations in loop nests either targets specific computation patterns or fails to recognize redundancies with complex structures. This paper proposes RACE (Redundant Array Computation Elimination), a hash-based technique that utilizes a novel two-level scheme to identify the data reuse between array references and the computation redundancies between expressions, enabling hierarchical redundancy detection beyond pattern-specific methods. It traverses the expression trees in loop nests to detect redundancies hierarchically in linear time and generates efficient code with optimized auxiliary arrays that store redundant computation results. Furthermore, RACE supports the expression reassociation with various aggressive strategies to improve the redundancy opportunities. Experimental results demonstrate the effectiveness of RACE.
@article{paperbot3773,
title = {Redundant Array Computation Elimination},
author = {Zixuan Wang and Liang Yuan and Xianmeng Jiang and Kun Li and Junmin Xiao and Yunquan Zhang},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {PLDI},
year = {2026},
doi = {10.1145/3808327}
}