Compiler Testing with Relaxed Memory Models

被引:0
|
作者
Geeson, Luke [1 ]
Smith, Lee [2 ]
机构
[1] UCL, London, England
[2] Arm Ltd, Cambridge, England
基金
英国工程与自然科学研究理事会;
关键词
D.1.3 Concurrent Programming; B.1.2.b Formal models; B.1.4.b Languages and compilers; D.2.5.r Testing tools; OPTIMIZATIONS; CONSISTENCY; C-11;
D O I
10.1109/CGO57630.2024.10444836
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Finding bugs is key to the correctness of compilers in wide use today. If the behaviour of a compiled program, as allowed by its architecture memory model, is not a behaviour of the source program under its source model, then there is a bug. This holds for all programs, but we focus on concurrency bugs that occur only with two or more threads of execution. We focus on testing techniques that detect such bugs in C/C++ compilers. We seek a testing technique that automatically covers concurrency bugs up to fixed bounds on program sizes and that scales to find bugs in compiled programs with many lines of code. Otherwise, a testing technique can miss bugs. Unfortunately, the state-of-the-art techniques are yet to satisfy all of these properties. We present the Telechat compiler testing tool for concurrent programs. Telechat compiles a concurrent C/C++ program and compares source and compiled program behaviours using source and architecture memory models. We make three claims: Tel echat improves the state-of-the-art at finding bugs in code generation for multi-threaded execution, it is the first public description of a compiler testing tool for concurrency that is deployed in industry, and it is the first tool that takes a significant step towards the desired properties. We provide experimental evidence suggesting Telechat finds bugs missed by other state-of-the-art techniques, case studies indicating that Telechat satisfies the properties, and reports of our experience deploying Telechat in industry regression testing.
引用
收藏
页码:334 / 348
页数:15
相关论文
共 50 条
  • [31] CheckFence: Checking Consistency of Concurrent Data Types on Relaxed Memory Models
    Burckhardt, Sebastian
    Alur, Rajeev
    Martin, Milo M. K.
    PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, : 12 - 21
  • [32] Boosting Compiler Testing via Compiler Optimization Exploration
    Chen, Junjie
    Suo, Chenyao
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2022, 31 (04)
  • [33] Reflective memory system based on a grid of buses that selectively uses relaxed memory consistency models
    Protic, J
    Milutinovic, V
    1997 21ST INTERNATIONAL CONFERENCE ON MICROELECTRONICS - PROCEEDINGS, VOLS 1 AND 2, 1997, : 837 - 840
  • [34] A Calculus for Relaxed Memory
    Crary, Karl
    Sullivan, Michael J.
    ACM SIGPLAN NOTICES, 2015, 50 (01) : 623 - 636
  • [35] PIMFlow: Compiler and Runtime Support for CNN Models on Processing-in-Memory DRAM
    Shin, Yongwon
    Park, Juseong
    Cho, Sungjun
    Sung, Hyojin
    PROCEEDINGS OF THE 21ST ACM/IEEE INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, CGO 2023, 2023, : 249 - 262
  • [36] Relaxed Peephole Optimization: A Novel Compiler Optimization for Quantum Circuits
    Liu, Ji
    Bello, Luciano
    Zhou, Huiyang
    CGO '21: PROCEEDINGS OF THE 2021 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2021, : 301 - 314
  • [37] AMC: An Asynchronous Memory Compiler
    Ataei, Samira
    Manohar, Rajit
    2019 25TH IEEE INTERNATIONAL SYMPOSIUM ON ASYNCHRONOUS CIRCUITS AND SYSTEMS (ASYNC 2019), 2019, : 1 - 8
  • [38] Compiler-controlled memory
    Cooper, KD
    Harvey, TJ
    ACM SIGPLAN NOTICES, 1998, 33 (11) : 2 - 11
  • [39] Relational Thread-Modular Abstract Interpretation Under Relaxed Memory Models
    Suzanne, Thibault
    Mine, Antoine
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2018, 2018, 11275 : 108 - 127
  • [40] Quarantining Weakness Compositional Reasoning under Relaxed Memory Models (Extended Abstract)
    Jagadeesan, Radha
    Petri, Gustavo
    Pitcher, Corin
    Riely, James
    PROGRAMMING LANGUAGES AND SYSTEMS, 2013, 7792 : 492 - 511