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 条
  • [21] Uniqueness Inference for Compile-Time Object Deallocation
    Cherem, Sigmund
    Rugina, Radu
    [J]. ISMM'07: PROCEEDINGS OF THE 2007 INTERNATIONAL SYMPOSIUM ON MEMORY MANAGEMENT, 2007, : 117 - 127
  • [22] COMPILE-TIME ESTIMATION OF COMMUNICATION COSTS OF PROGRAMS
    GUPTA, M
    BANERJEE, P
    [J]. JOURNAL OF PROGRAMMING LANGUAGES, 1994, 2 (03): : 191 - 225
  • [23] COMPILE-TIME PARTITIONING AND SCHEDULING OF PARALLEL PROGRAMS
    SARKAR, V
    HENNESSY, J
    [J]. SIGPLAN NOTICES, 1986, 21 (07): : 17 - 26
  • [24] Reflekt: a Library for Compile-Time Reflection in Kotlin
    Birillo, Anastasiia
    Lyulina, Elena
    Malysheva, Maria
    Tankov, Vladislav
    Bryksin, Timofey
    [J]. 2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE (ICSE-SEIP 2022), 2022, : 231 - 240
  • [25] LaminarIR: Compile-Time Queues for Structured Streams
    Ko, Yousun
    Burgstaller, Bernd
    Scholz, Bernhard
    [J]. ACM SIGPLAN NOTICES, 2015, 50 (06) : 121 - 130
  • [26] Compile-time synchronization optimizations for software DSMs
    Han, HS
    Tseng, CW
    [J]. FIRST MERGED INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM & SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING, 1998, : 662 - 669
  • [27] Spoon: Compile-time annotation processing for middleware
    275 Windsor St., Hartford, CT 06120
    不详
    [J]. IEEE Distrib. Syst. Online, 2006, 11
  • [28] OpenAda: Compile-time reflection for Ada 95
    Rogers, P
    Wellings, AJ
    [J]. RELIABLE SOFTWARE TECHNOLOGIES- ADA-EUROPE 2004, 2004, 3063 : 166 - 177
  • [29] Compile-time code virtualization for android applications
    Zhao, Yujie
    Tang, Zhanyong
    Ye, Guixin
    Peng, Dongxu
    Fang, Dingyi
    Chen, Xiaojiang
    Wang, Zheng
    [J]. COMPUTERS & SECURITY, 2020, 94
  • [30] Compile-time inter-query dependence analysis
    Parthasarathy, S
    Li, W
    Cierniak, M
    Zaki, MJ
    [J]. EIGHTH IEEE SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING, PROCEEDINGS, 1996, : 522 - 529