Simone Campanoni

Associate professor
Department of Computer Science at Northwestern University

Simone Campanoni

Computer Science
Northwestern University

Books 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 (3304/3308)
When: every Tuesday from 1pm to 2:30pm 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

11/14/2023 Draft of one of our unpublished paper
10/31/2023 Enrico Deiana's Ph.D. thesis
10/24/2023 Impact of Economics on Compiler Optimization
10/10/2023 Data Representation Synthesis
10/03/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/06/2022 Accelerator-Level Parallelism
11/15/2022 Draft of one of our unpublished paper
11/01/2022 Draft of one of our unpublished paper
10/11/2022 The program dependence graph and its use in optimization
08/30/2022 Unified Analysis of Array and Object References
07/19/2022 Array SSA form and its use in parallelization
07/05/2022 An Efficient Profile-Analysis Framework for Data-Layout Optimizations
06/28/2022 Draft of one of our unpublished paper
06/21/2022 A Unifying Abstraction for Data Structure Splicing
06/14/2022 Dynamic dependency analysis of ordinary programs
06/07/2022 Memory SSA - A Unified Approach for Sparsely Representing Memory Operations
05/24/2022 Speculative Separation for Privatization and Reductions
05/10/2022 Unleashing the Hidden Power of Compiler Optimization on Binary Code Difference: An Empirical Study
03/29/2022 Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines
02/22/2022 VeGen: a vectorizer generator for SIMD and beyond
01/25/2022 Region-Based Shape Analysis with Tracked Locations
01/18/2022 Progressive Raising in Multi-level IR
01/11/2022 OpenARC: open accelerator research compiler for directive-based, efficient heterogeneous computing
10/19/2021 Optimizing Indirect Memory References with milk
10/05/2021 Shape Analysis
09/28/2021 AddressSanitizer: a fast address sanity checker

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: