A compiler framework for recovery code generation in general speculative optimizations

被引:0
|
作者
Lin, J [1 ]
Hsu, WC [1 ]
Yew, PC [1 ]
Ju, RDC [1 ]
Ngai, TF [1 ]
机构
[1] Univ Minnesota, Dept Comp Sci & Engn, Minneapolis, MN 55455 USA
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
A general framework that integrates both control and data speculation using alias profiling and/or compiler heuristic rules has shown to improve SPEC2000 performance on Itanium systems. However, speculative optimizations require check instructions and recovery code to ensure correct execution when speculation fails at runtime. How to generate check instructions and their associated recovery code efficiently and effectively is an issue yet to be well studied. Also, it is very important that the recovery code generated in the earlier phases integrate gracefully in the later optimization phases. At the very least, it should not hinder later optimizations, thus, ensuring overall performance improvement. This paper proposes a framework that uses an if-block structure to facilitate check instructions and recovery code generation for general speculative optimizations. It allows speculative instructions and their recovery code generated in the early compiler optimization phases to be integrated effectively with the subsequent optimization phases. It also allows multi-level speculation for multi-level pointers and multi-level expression trees to be handled with no additional complexity. The proposed recovery code generation framework has been implemented in the Open Research Compiler (ORC).
引用
收藏
页码:17 / 28
页数:12
相关论文
共 50 条
  • [41] Not So Fast: Understanding and Mitigating Negative Impacts of Compiler Optimizations on Code Reuse Gadget Sets
    Brown, Michael D.
    Pruett, Matthew
    Bigelow, Robert
    Mururu, Girish
    Pande, Santosh
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5 (OOPSLA):
  • [42] Code Bones: Fast and Flexible Code Generation for Dynamic and Speculative Polyhedral Optimization
    Caamano, Juan Manuel Martinez
    Wolff, Willy
    Clauss, Philippe
    [J]. EURO-PAR 2016: PARALLEL PROCESSING, 2016, 9833 : 225 - 237
  • [43] Communication Optimizations for Multithreaded Code Generation from Simulink Models
    Huang, Kai
    Yu, Min
    Yan, Rongjie
    Zhang, Xiaomeng
    Yan, Xiaolang
    Brisolara, Lisane
    Jerraya, Ahmed Amine
    Feng, Jiong
    [J]. ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2015, 14 (03)
  • [44] A Design of General Compiler for NC Code in Embedded NC System
    Lai, Xiaoyan
    [J]. PROCEEDINGS OF THE 2014 9TH IEEE CONFERENCE ON INDUSTRIAL ELECTRONICS AND APPLICATIONS (ICIEA), 2014, : 1515 - 1519
  • [45] PROGRAM ANALYSIS AND CODE GENERATION IN AN APL/370 COMPILER.
    Ching, Wai-Mee
    [J]. IBM Journal of Research and Development, 1986, 30 (06): : 594 - 602
  • [46] Threaded Code Generation with a Meta-Tracing JIT Compiler
    Izawa, Yusuke
    Masuhara, Hidehiko
    Bolz-Tereick, Carl Friedrich
    Cong, Youyou
    [J]. JOURNAL OF OBJECT TECHNOLOGY, 2022, 21 (02):
  • [47] A Code Generation Approach for Auto-Vectorization in the SPADE Compiler
    Wang, Huayong
    Andrade, Henrique
    Gedik, Bugra
    Wu, Kun-Lung
    [J]. LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2010, 5898 : 383 - 390
  • [48] MICROPROCESSOR ARCHITECTURES: A COMPARISON BASED ON CODE GENERATION BY COMPILER.
    Wirth, Niklaus
    [J]. 1600, (29):
  • [49] Tasking framework for adaptive speculative parallel mesh generation
    Christos Tsolakis
    Polykarpos Thomadakis
    Nikos Chrisochoides
    [J]. The Journal of Supercomputing, 2022, 78 : 1 - 32
  • [50] Tasking framework for adaptive speculative parallel mesh generation
    Tsolakis, Christos
    Thomadakis, Polykarpos
    Chrisochoides, Nikos
    [J]. JOURNAL OF SUPERCOMPUTING, 2022, 78 (05): : 7378 - 7409