
Open access
Date
2022-06Type
- Conference Paper
ETH Bibliography
yes
Altmetrics
Abstract
Designing compiler intermediate representations (IRs) is often a manual process that makes exploration and innovation in this space costly. Developers typically use general-purpose programming languages to design IRs. As a result, IR implementations are verbose, manual modifications are expensive, and designing tooling for the inspection or generation of IRs is impractical. While compilers relied historically on a few slowly evolving IRs, domain-specific optimizations and specialized hardware motivate compilers to use and evolve many IRs. We facilitate the implementation of SSA-based IRs by introducing IRDL, a domain-specific language to define IRs. We analyze all 28 domain-specific IRs developed as part of LLVM's MLIR project over the last two years and demonstrate how to express these IRs exclusively in IRDL while only rarely falling back to IRDL's support for generic C++ extensions. By enabling the concise and explicit specification of IRs, we provide foundations for developing effective tooling to automate the compiler construction process. Show more
Permanent link
https://doi.org/10.3929/ethz-b-000557152Publication status
publishedExternal links
Book title
Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI ’22)Pages / Article No.
Publisher
Association for Computing MachineryEvent
Subject
Compilers; intermediate representations; MLIROrganisational unit
09628 - Su, Zhendong / Su, Zhendong
09628 - Su, Zhendong / Su, Zhendong
More
Show all metadata
ETH Bibliography
yes
Altmetrics