Sidekick compilation with xDSL
Mathieu Fehr, Michel Weber, Christian Ulmann, Alexandre Lopoukhine,, Martin L\"ucke, Th\'eo Degioanni, Michel Steuwer, Tobias Grosser

TL;DR
This paper introduces sidekick compiler frameworks, exemplified by xDSL, which facilitate easier prototyping and transition to production by interoperating with existing compilers through shared IRs and declarative abstractions.
Contribution
The paper presents the concept of sidekick compiler frameworks and demonstrates xDSL as a practical implementation for MLIR, enhancing prototyping, teaching, and transition to production.
Findings
xDSL improves development speed for prototyping and teaching.
Sidekick frameworks ease the transition from prototype to production.
IRDL dialect simplifies framework interoperability.
Abstract
Traditionally, compiler researchers either conduct experiments within an existing production compiler or develop their own prototype compiler; both options come with trade-offs. On one hand, prototyping in a production compiler can be cumbersome, as they are often optimized for program compilation speed at the expense of software simplicity and development speed. On the other hand, the transition from a prototype compiler to production requires significant engineering work. To bridge this gap, we introduce the concept of sidekick compiler frameworks, an approach that uses multiple frameworks that interoperate with each other by leveraging textual interchange formats and declarative descriptions of abstractions. Each such compiler framework is specialized for specific use cases, such as performance or prototyping. Abstractions are by design shared across frameworks, simplifying the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Logic, programming, and type systems · Advanced Software Engineering Methodologies
