kirancodes.me
To Proof Maintenance & Beyond!

Tapir: Embedding Fork-Join Parallelism into LLVM's Intermediate Representation

Tao B. Schardl, William S. Moses, Charles E. Leiserson

Abstract

This paper explores how fork-join parallelism, as supported by concurrency platforms such as Cilk and OpenMP, can be embedded into a compiler's intermediate representation (IR). Mainstream compilers typically treat parallel linguistic constructs as syntactic sugar for function calls into a parallel runtime. These calls prevent the compiler from performing optimizations across parallel control constructs. Remedying this situation is generally thought to require an extensive reworking of compiler analyses and code transformations to handle parallel semantics.

Related papers