Simone Campanoni

Associate professor
Department of Computer Science at Northwestern University

Simone Campanoni

Computer Science
Northwestern University


Compiler Reading Club


The ARCANA group organizes a weekly reading club where we discuss research papers.
Who: the compiler reading club is open to everyone
Where: the reading club is done in person and in the ARCANA lab (Mudd 3304/3308)
When: every Tuesday from 12:30pm to 2:00pm CST
What: we discuss
  • Compiler research papers
  • System research papers that do (or could) have a strong influence to compiler research

Protocol to choose the paper to review for a given week

You can propose a paper to review only the week before.
Deadline = Thursday 5pm (it's in the ARCANA calendar)
To propose a paper: send the link of the pdf of the paper to the #reading_club channel of the ARCANA slack group
You can vote to all papers you would like to review the week paper.
Deadline = Friday 5pm (it's in the ARCANA calendar)
To vote a paper: click Thumb up on the slack message with the pdf link.
Friday at 5pm the paper with the highest votes will be read/discussed the week after.

Papers read

5/14/2024 Finch: Sparse and Structured Array Programming with Control Flow
3/26/2024 Future Directions for Optimizing Compilers
2/20/2024 Latent Idiom Recognition for a Minimalist Functional Array Language using Equality Saturation
2/13/2024 egg: Fast and extensible equality saturation
1/30/2024 Sympiler: Transforming Sparse Matrix Codes by Decoupling Symbolic Analysis
1/16/2024 Propeller: A Profile Guided, Relinking Optimizer for Warehouse-Scale Applications
11/14/2023 Draft of one of our unpublished paper
10/31/2023 Generating Thread-Level Parallelism in Nondeterministic Programs
10/24/2023 Impact of Economics on Compiler Optimization
10/10/2023 Data Representation Synthesis
10/3/2023 Reducers and other Cilk++ hyperobjects
9/26/2023 A Transformation Framework for Optimizing Task-Parallel Programs
8/22/2023 Draft of one of our unpublished paper
8/15/2023 Draft of one of our unpublished paper
8/8/2023 Draft of one of our unpublished paper
8/1/2023 The tensor algebra compiler
7/18/2023 Indexed Streams: A formal intermediate representation for fused contraction programs
7/11/2023 Context Sensitivity without Contexts: A Cut-Shortcut Approach to Fast and Precise Pointer Analysis
6/27/2023 Mosaic: An Interoperable Compiler for Tensor Algebra
4/18/2023 HPVM: Heterogeneous Parallel Virtual Machine
3/21/2023 Looplets: A Language for Structured Coiteration
3/14/2023 Legion: Expressing Locality and Independence with Logical Regions
3/7/2023 Bridging Control-Centric and Data-Centric Optimization
2/21/2023 MPI-aware compiler optimizations for improving communication-computation overlap
2/14/2023 Scalable Automatic Differentiation of Multiple Parallel Paradigms through Compiler Augmentation
2/7/2023 HALO: Post-Link Heap-Layout Optimisation
1/24/2023 Automatic pool allocation: improving performance by controlling data structure layout in the heap
1/10/2023 Phloem: Automatic Acceleration of Irregular Applications with Fine-Grain Pipeline Parallelism
1/3/2023 Mesh: compacting memory management for C/C++ applications
12/13/2022 Beyond Induction Variables
12/6/2022 Accelerator-Level Parallelism
11/15/2022 Draft of one of our unpublished paper
11/1/2022 Draft of one of our unpublished paper
10/11/2022 The program dependence graph and its use in optimization
8/30/2022 Unified Analysis of Array and Object References
7/19/2022 Array SSA form and its use in parallelization
7/5/2022 An Efficient Profile-Analysis Framework for Data-Layout Optimizations
6/28/2022 Draft of one of our unpublished paper
6/21/2022 A Unifying Abstraction for Data Structure Splicing
6/14/2022 Dynamic dependency analysis of ordinary programs
6/7/2022 Memory SSA - A Unified Approach for Sparsely Representing Memory Operations
5/24/2022 Speculative Separation for Privatization and Reductions
5/10/2022 Unleashing the Hidden Power of Compiler Optimization on Binary Code Difference: An Empirical Study
3/29/2022 Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines
2/22/2022 VeGen: a vectorizer generator for SIMD and beyond
1/25/2022 Region-Based Shape Analysis with Tracked Locations
1/18/2022 Progressive Raising in Multi-level IR
1/11/2022 OpenARC: open accelerator research compiler for directive-based, efficient heterogeneous computing
10/19/2021 Optimizing Indirect Memory References with milk
10/5/2021 Shape Analysis
9/28/2021 AddressSanitizer: a fast address sanity checker


So far we have discussed 51 papers in the compiler reading club. Each paper is discussed for up to two hours.

Next is the number of papers discussed in the compiler reading club per year.
Year Number of papers
2024 6
2023 23
2022 19
2021 3

Next is the number of papers discussed in the compiler reading club per month (accumulated over all years). This data is sorted to show the months that we read more (the months listed first on the table).
Year Number of papers
January 8 (15.69%)
October 7 (13.73%)
February 6 (11.76%)
March 5 (9.80%)
June 5 (9.80%)
August 5 (9.80%)
July 4 (7.84%)
May 3 (5.88%)
November 3 (5.88%)
September 2 (3.92%)
December 2 (3.92%)
April 1 (1.96%)

Great research papers about compilers

This is my greatest hits of research papers about compilers in no particular order.
Continuation-passing, closure-passing style
SSA is functional programming
Iterated register coalescing
Simple generational garbage collection and fast allocation
Variations on the common subexpression problem
Code generation for expressions with common subexpressions
The Transitive Reduction of a Directed Graph
Flow graph reducibility
The Generation of Optimal Code for Arithmetic Expressions
Global Data Flow Analysis and Iterative Algorithms
The cache performance and optimizations of blocked algorithms
A loop transformation theory and an algorithm to maximize parallelism
Efficient context-sensitive pointer analysis for C programs
Control flow analysis
Lazy code motion
ABCD: eliminating array bounds checks on demand
Partitioning and scheduling parallel programs for execution on multiprocessors
Linear scan register allocation
Efficiently computing static single assignment form and the control dependence graph
Software pipelining: an effective scheduling technique for VLIW machines
Register allocation via coloring
Register allocation & spilling via graph coloring
The tao of parallelism in algorithms
Optimistic parallelism requires abstractions
Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines
A program data flow analysis procedure
Manufacturing cheap, resilient, and stealthy opaque constructs
Points-to analysis in almost linear time
The undecidability of aliasing
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
Interprocedural may-alias analysis for pointers: beyond k-limiting
Pointer analysis: haven't we solved this problem yet?
Automatic thread extraction with decoupled software pipelining
Register allocation by puzzle solving
Efficiently computing static single assignment form and the control dependence graph
Maximizing multiprocessor performance with the SUIF compiler
PetaBricks: a language and compiler for algorithmic choice
A fast Fourier transform compiler
Effective compiler support for predicated execution using the hyperblock
The JalapeƱo dynamic optimizing compiler for Java
Compiler transformations for high-performance computing
LLVM: a compilation framework for lifelong program analysis & transformation
The program dependence graph and its use in optimization
Finding and understanding bugs in C compilers
Selective specialization for object-oriented languages
Optimal code motion: theory and practice
The superblock: An effective technique for VLIW and superscalar compilation
Design and evaluation of a compiler algorithm for prefetching
MLIR: Scaling Compiler Infrastructure for Domain Specific Computation
A data locality optimizing algorithm
External links:
LinkedIn profile LinkedIn Follow SimoneCampanoni on Twitter Twitter GitHub profile GitHub

Share this page with: