首页> 外文会议>ACM SIGPLAN-SIGACT symposium on Principles of programming languages >Array-data flow analysis and its use in array privatization
【24h】

Array-data flow analysis and its use in array privatization

机译:阵列数据流分析及其在阵列私有化中的应用

获取原文

摘要

Data-flow analysis of scalar variables and data dependence analysis on array elements are two important program analyses used in optimizing and parallelizing compilers. Traditional data-flow analysis models accesses of array elements simply as accesses to the entire array, and is inadequate for parallelizing loops in array-based programs. On the other hand, data dependence analysis differentiates between different array elements but is flow-insensitive.

This paper studies the combination of these two analyses---data-flow analyses---data-flow analysis of accesses to individual array elements. The problem of finding precise array dataflow information in the domain of loop nests where the loop bounds and array indices are affine functions of loop indices was first formulated by Feautrier. Feautrier's algorithm, based on parametric integer programming techniques, is general but inefficient. This paper presents an efficient algorithm that can find the same precise information for many of the programs found in practice. In this paper, we argue that data-flow analysis of individual array elements is necessary for effective automatic parallelization. In particular, we demonstrate the use of array data-flow analysis in an important optimization known as array privatization.

By demonstrating that array data-flow analysis can be computed efficiently and by showing the importance of the optimizations enabled by the analysis, this paper suggests that array data-flow analysis may become just as important in future optimizing and parallelizing compilers as data-flow and data dependence analysis are in today's compilers.

机译:标量变量的数据流分析和对数组元素的数据依赖性分析是用于优化和并行化编译器的两个重要程序分析。传统的数据流分析仅将对数组元素的访问建模为对整个数组的访问,并且不足以并行化基于数组的程序中的循环。另一方面,数据依赖分析可以区分不同的数组元素,但对流量不敏感。

本文研究了这两种分析方法的组合-数据流分析-单个数组元素访问的数据流分析。 Feautrier首先提出了在循环嵌套的域中查找精确的数组数据流信息的问题,其中循环边界和数组索引是循环索引的仿射函数。 Feautrier的算法基于参数整数编程技术,虽然通用但效率低下。本文提出了一种有效的算法,可以为实践中发现的许多程序找到相同的精确信息。在本文中,我们认为单个数组元素的数据流分析对于有效的自动并行化是必要的。特别是,我们展示了阵列数据流分析在称为阵列私有化的重要优化中的用途。

通过证明可以有效地计算数组数据流分析并通过显示分析支持的优化的重要性,本文表明,数组数据流分析在将来优化和并行化编译器方面可能与数据同等重要。当今的编译器中都具有流和数据依赖性分析的功能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号