Tapir
Abstract
Tapir (pronounced TAY-per) is a compiler intermediate representation (IR) that embeds recursive fork-join parallelism, as supported by task-parallel programming platforms such as Cilk and OpenMP, into a mainstream compiler’s 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 on and across parallel control constructs. Remedying this situation has generally been thought to require an extensive reworking of compiler analyses and code transformations to handle parallel semantics. Tapir leverages the “serial-projection property,” which is commonly satisfied by task-parallel programs, to handle the semantics of these programs without an extensive rework of the compiler.
Document Details
- Document Type
- Pub Defense Publication
- Publication Date
- Dec 17, 2019
- Source ID
- 10.1145/3365655
Entities
People
- Charles E. Leiserson
- Tao B. Schardl
- William S. Moses
Organizations
- Intelligence Advanced Research Projects Activity
- Massachusetts Institute of Technology
- National Science Foundation