It is with great pleasure that we welcome you to the 33rd ACM SIGPLAN International Conference on Compiler Construction (CC 2024), held in Edinburgh, Scotland, UK over March 2-3, 2024. As has been the case for the last 9 years, CC is part of a co-located cluster together with IEEE HPCA, IEEE/ACM CGO, and ACM PPoPP. The co-location brings together researchers with complementary expertises in compilation, architecture, and parallel programming, creating a thriving and unique ecosystem for scientific discovery and advancement.
Proceeding Downloads
Fast Template-Based Code Generation for MLIR
Fast compilation is essential for JIT-compilation use cases like dynamic languages or databases as well as development productivity when compiling static languages. Template-based compilation allows fast compilation times, but in existing approaches, ...
A Unified Memory Dependency Framework for Speculative High-Level Synthesis
Heterogeneous hardware platforms that leverage application-specific hardware accelerators are becoming increasingly popular as the demand for high-performance compute intensive applications rises. The design of such high-performance hardware accelerators ...
If-Convert as Early as You Must
Optimizing compilers employ a rich set of transformations that generate highly efficient code for a variety of source languages and target architectures. These transformations typically operate on general control flow constructs which trigger a range of ...
Paguroidea: Fused Parser Generator with Transparent Semantic Actions
Parser generators have long been a savior for programmers, liberating them from the daunting task of crafting correct and maintainable parsers. Yet, this much-needed simplicity often comes at the expense of efficiency.
We present, Paguroidea, a parser ...
Region-Based Data Layout via Data Reuse Analysis
Data-structure splicing techniques, such as structure splitting, field reordering, and pointer inlining reorganize data structures to improve cache and translation look-aside buffer (TLB) utilization. Structure types are typically transformed globally in ...
A Context-Sensitive Pointer Analysis Framework for Rust and Its Application to Call Graph Construction
Existing program analysis tools for Rust lack the ability to effectively detect security vulnerabilities due to the absence of an accurate call graph and precise points-to information. We present Rupta, the first context-sensitive pointer analysis ...
CoSense: Compiler Optimizations using Sensor Technical Specifications
- Pei Mu,
- Nikolaos Mavrogeorgis,
- Christos Vasiladiotis,
- Vasileios Tsoutsouras,
- Orestis Kaparounakis,
- Phillip Stanley-Marbell,
- Antonio Barbalace
Embedded systems are ubiquitous, but in order to maximize their lifetime on batteries there is a need for faster code execution – i.e., higher energy efficiency, and for reduced memory usage. The large number of sensors integrated into embedded systems ...
UNIFICO: Thread Migration in Heterogeneous-ISA CPUs without State Transformation
Heterogeneous-ISA processor designs have attracted considerable research interest. However, unlike their homogeneous-ISA counterparts, explicit software support for bridging ISA heterogeneity is required. The lack of a compilation toolchain ready to ...
BLQ: Light-Weight Locality-Aware Runtime for Blocking-Less Queuing
Message queues are used widely in parallel processing systems for worker thread synchronization. When there is a throughput mismatch between the upstream and downstream tasks, the message queue buffer will often exist as either empty or full. Polling on ...
APPy: Annotated Parallelism for Python on GPUs
GPUs are increasingly being used used to speed up Python applications in the scientific computing and machine learning domains. Currently, the two common approaches to leveraging GPU acceleration in Python are 1) create a custom native GPU kernel, and ...
Accurate Coverage Metrics for Compiler-Generated Debugging Information
Many debugging tools rely on compiler-produced metadata to present a source-language view of program states, such as variable values and source line numbers. While this tends to work for unoptimised programs, current compilers often generate only partial ...
FlowProf: Profiling Multi-threaded Programs using Information-Flow
Amdahl's law implies that even small sequential bottlenecks can seriously limit the scalability of multi-threaded programs. To achieve scalability, developers must painstakingly identify sequential bottlenecks in their program and eliminate these ...
Reducing the Overhead of Exact Profiling by Reusing Affine Variables
An exact profiler inserts counters in a program to record how many times each edge of that program's control-flow graph has been traversed during an execution of it. It is common practice to instrument only edges in the complement of a minimum spanning ...
Stale Profile Matching
Profile-guided optimizations rely on profile data for directing compilers to generate optimized code. To achieve the maximum performance boost, profile data needs to be collected on the same version of the binary that is being optimized. In practice ...
From Low-Level Fault Modeling (of a Pipeline Attack) to a Proven Hardening Scheme
Fault attacks present unique safety and security challenges that require dedicated countermeasures, even for bug-free programs. Models of these complex attacks are made workable by approximating their effects to a suitable level of abstraction. The ...
Clog: A Declarative Language for C Static Code Checkers
We present Clog, a declarative language for describing static code checkers for C. Unlike other extensible state-of-the-art checker frameworks, Clog enables powerful interprocedural checkers without exposing the underlying program representation: Clog ...
Compiler-Based Memory Encryption for Machine Learning on Commodity Low-Power Devices
Running machine learning (ML) on low-power IoT devices exposes unique security concerns. Attackers can easily steal or manipulate sensitive user data or proprietary ML models from the devices’ off-chip memory by leveraging their simple hardware structure ...
YFlows: Systematic Dataflow Exploration and Code Generation for Efficient Neural Network Inference using SIMD Architectures on CPUs
We address the challenges associated with deploying neural networks on CPUs, with a particular focus on minimizing inference time while maintaining accuracy. Our novel approach is to use the dataflow (i.e., computation order) of a neural network to ...
Fast and Accurate Context-Aware Basic Block Timing Prediction using Transformers
This paper introduces ORXESTRA, a context-aware execution time prediction model based on Transformers XL, specifically designed to accurately estimate performance in embedded system applications. Unlike traditional machine learning models that often ...
The Next 700 ML-Enabled Compiler Optimizations
- S. VenkataKeerthy,
- Siddharth Jain,
- Umesh Kalvakuntla,
- Pranav Sai Gorantla,
- Rajiv Shailesh Chitale,
- Eugene Brevdo,
- Albert Cohen,
- Mircea Trofin,
- Ramakrishna Upadrasta
There is a growing interest in enhancing compiler optimizations with ML models, yet interactions between compilers and ML frameworks remain challenging. Some optimizations require tightly coupled models and compiler internals, raising issues with ...
Exponentially Expanding the Phase-Ordering Search Space via Dormant Information
Applying compilation transformations in optimal sequences can significantly improve program speed and reduce code size. However, finding these optimal sequences—a problem known as the phase-ordering problem—remains a long-standing challenge. Specifically,...
Index Terms
- Proceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction