首页> 外文会议>24th ACM international conference on supercomputing 2010 >How to Unleash Array Optimizations on Code Using Recursive Data Structures
【24h】

How to Unleash Array Optimizations on Code Using Recursive Data Structures

机译:如何使用递归数据结构在代码上释放数组优化

获取原文
获取原文并翻译 | 示例

摘要

Loop optimization and parallelization have been most successful on code using arrays exclusively. Preferably, such code does not contain indirect access and has only simple, counted loops. The use of recursive data structures makes matters even worse, and optimization of such code has been less successful. Traversal of such data structures is often done using loops with data-dependent loop conditions. In this paper, we present a compiler transformation chain that transforms pointer traversal loops into counted loops operating on arrays that are indirectly accessed. We also show that this indirect access can in some cases be eliminated if the traversed data structure is reordered in memory. This results in a representation on which many existing techniques can be applied. Our system requires monitoring of actual arguments and heap data on which loop conditions depend so that preconditions for the optimized functions can be checked. Our experiments show that this overhead is small, considering the optimization opportunities the representation of the transformed code provides, and well worth the price.
机译:循环优化和并行化在仅使用数组的代码上最为成功。优选地,这样的代码不包含间接访问,并且仅具有简单的计数循环。递归数据结构的使用使情况变得更糟,并且此类代码的优化不太成功。通常使用具有数据相关循环条件的循环来遍历此类数据结构。在本文中,我们提供了一个编译器转换链,该转换链将指针遍历循环转换为对间接访问的数组进行操作的计数循环。我们还表明,如果在内存中对遍历的数据结构进行重新排序,则在某些情况下可以消除这种间接访问。这导致可以在其上应用许多现有技术的表示。我们的系统需要监视循环条件所依赖的实际参数和堆数据,以便可以检查优化函数的前提条件。我们的实验表明,考虑到转换后代码的表示所提供的优化机会,这种开销很小,并且值得付出代价。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号