7

[2201.03611] RISE & Shine: Language-Oriented Compiler Design

 2 years ago
source link: https://arxiv.org/abs/2201.03611
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Computer Science > Programming Languages

[Submitted on 10 Jan 2022]

RISE & Shine: Language-Oriented Compiler Design

Download PDF

The trend towards specialization of software and hardware - fuelled by the end of Moore's law and the still accelerating interest in domain-specific computing, such as machine learning - forces us to radically rethink our compiler designs. The era of a universal compiler framework built around a single one-size-fits-all intermediate representation (IR) is over. This realization has sparked the creation of the MLIR compiler framework that empowers compiler engineers to design and integrate IRs capturing specific abstractions. MLIR provides a generic framework for SSA-based IRs, but it doesn't help us to decide how we should design IRs that are easy to develop, to work with and to combine into working compilers.
To address the challenge of IR design, we advocate for a language-oriented compiler design that understands IRs as formal programming languages and enforces their correct use via an accompanying type system. We argue that programming language techniques directly guide extensible IR designs and provide a formal framework to reason about transforming between multiple IRs. In this paper, we discuss the design of the Shine compiler that compiles the high-level functional pattern-based data-parallel language RISE via a hybrid functional-imperative intermediate language to C, OpenCL, and OpenMP.
We compare our work directly with the closely related pattern-based Lift IR and compiler. We demonstrate that our language-oriented compiler design results in a more robust and predictable compiler that is extensible at various abstraction levels. Our experimental evaluation shows that this compiler design is able to generate high-performance GPU code.

Subjects: Programming Languages (cs.PL) Cite as: arXiv:2201.03611 [cs.PL]   (or arXiv:2201.03611v1 [cs.PL] for this version)

Submission history

From: Michel Steuwer [view email]
[v1] Mon, 10 Jan 2022 19:33:53 UTC (389 KB)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK