COMPILE-TIME COPY ELIMINATION

被引:5
|
作者
SCHNORF, P [1 ]
GANAPATHI, M [1 ]
HENNESSY, JL [1 ]
机构
[1] STANFORD UNIV,COMP SYST LAB,STANFORD,CA 94305
来源
SOFTWARE-PRACTICE & EXPERIENCE | 1993年 / 23卷 / 11期
关键词
COPY; ELIMINATION AGGREGATE; UPDATE; PROBLEM; SINGLE-ASSIGNMENT; LANGUAGE; FUNCTIONAL LANGUAGE; OPTIMIZING COMPILER;
D O I
10.1002/spe.4380231102
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Single-assignment and functional languages have value semantics that do not permit side-effects. This lack of side-effects makes automatic detection of parallelism and optimization for data locality in programs much easier. However, the same property poses a challenge in implementing these languages efficiently. This paper describes an optimizing compiler system that solves the key problem of aggregate copy elimination. The methods developed rely exclusively on compile-time algorithms, including interprocedural analysis, that are applied to an intermediate data flow representation. By dividing the problem into update-in-place and build-in-place analysis, a small set of relatively simple techniques edge substitution, graph pattern matching, substructure sharing and substructure targeting-was found to be very powerful. If combined properly and implemented carefully, the algorithms eliminate unnecessary copy operations to a very high degree. No run-time overhead is imposed on the compiled programs.
引用
收藏
页码:1175 / 1200
页数:26
相关论文
共 50 条
  • [1] Compile-Time Function Memoization
    Suresh, Arjun
    Rohou, Erven
    Seznec, Andre
    [J]. CC'17: PROCEEDINGS OF THE 26TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, 2017, : 45 - 54
  • [2] Compile-time Automatic Synchronization Insertion and Redundant Synchronization Elimination for GPU Kernels
    Liu, Lifeng
    Liu, Meilin
    Wang, Chongjun
    Wang, Jun
    [J]. 2016 IEEE 22ND INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS (ICPADS), 2016, : 826 - 834
  • [3] Compile-Time Extensions to Hybrid ODEs
    Zeng, Yingfu
    Bartha, Ferenc
    Taha, Walid
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2017, (247): : 52 - 70
  • [4] Compile-time computation of polytime functions
    Covino, Emanuele
    Pani, Giovanni
    Scrimieri, Daniele
    [J]. JOURNAL OF UNIVERSAL COMPUTER SCIENCE, 2007, 13 (04) : 468 - 478
  • [5] A COMPILE-TIME DEADLOCK DETECTION PATTERN
    Korzycki, Michal
    [J]. COMPUTER SCIENCE-AGH, 2007, 8 : 85 - 92
  • [6] COMPILE-TIME TYPE-MATCHING
    HEXT, JB
    [J]. COMPUTER JOURNAL, 1967, 9 (04): : 365 - &
  • [7] Compile-time optimization of dynamic hardware reconfigurations
    Teich, J
    Fekete, SP
    Schepers, J
    [J]. INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, VOLS I-V, PROCEEDINGS, 1999, : 1097 - 1103
  • [8] Compile-time enforcement of dynamic security policies
    Eyers, David M.
    Srinivasan, Sriram
    Moody, Ken
    Bacon, Jean
    [J]. 2008 IEEE WORKSHOP ON POLICIES FOR DISTRIBUTED SYSTEMS AND NETWORKS, PROCEEDINGS, 2008, : 119 - 126
  • [9] Compile-time Reflection and Metaprogramming for Java']Java
    Miao, Weiyu
    Siek, Jeremy
    [J]. PEPM '14: PROCEEDINGS OF THE ACM SIGPLAN WORKSHOP ON PARTIAL EVALUATION AND PROGRAM MANIPULATION, 2014, : 27 - 37
  • [10] Compile-time and runtime analysis of active behaviors
    Baralis, E
    Ceri, S
    Paraboschi, S
    [J]. IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, 1998, 10 (03) : 353 - 370