paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Redundant Array Computation Elimination

冗余数组计算消除
PLDI 10(PLDI)2026匹配度 3/10 · 该论文属于编译器优化中的数组冗余消除,与用户关注的 PL 与 AI/LLM/Agent、浮点程序分析、贝叶斯程序分析等核心交叉方向无直接关联;仅在数组计算与静态优化层面有间接联系。引用 0 inbox
Zixuan Wang, Liang Yuan, Xianmeng Jiang, Kun Li, Junmin Xiao, Yunquan Zhang
crossref: 2026-09-10

AI 速览

一句话:提出基于哈希的两级方案 RACE,在循环嵌套中层次化检测并消除数组计算冗余。

冗余消除是现代编译器的关键优化方向,循环嵌套是主要优化目标。已有数组计算冗余消除工作要么只针对特定计算模式,要么无法识别结构复杂的冗余。本文提出 RACE(Redundant Array Computation Elimination),一种基于哈希的技术,采用新颖的两级方案识别数组引用之间的数据复用与表达式之间的计算冗余,从而超越模式特定方法实现层次化冗余检测。RACE 以线性时间遍历循环嵌套中的表达式树,层次化地发现冗余,并生成使用优化辅助数组存储冗余计算结果的代码。此外,RACE 支持多种激进的表达式重结合策略以增加冗余机会。实验结果表明 RACE 是有效的。

问题
循环嵌套中数组计算的冗余消除对性能至关重要,但现有方法或仅针对特定计算模式,或无法识别具有复杂结构的冗余。
方法
提出基于哈希的两级方案 RACE,在线性时间内层次化检测数组引用间的数据复用与表达式间的计算冗余,生成带优化辅助数组的代码,并支持多种表达式重结合策略以增加冗余机会。
评估
作者通过实验评估 RACE 的有效性,实验结果证明了该技术的有效性。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@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}
}