NOELLE Offers Empowering LLVM Extensions [abstract] (arXiv, PDF)
Angelo Matni, Enrico Armenio Deiana, Yian Su, Lukas Gross, Souradip Ghosh, Sotiris Apostolakis, Ziyang Xu, Zujun Tan, Ishita Chaturvedi, David I. August, and Simone Campanoni
arXiv:2102.05081 [cs.PL], February 2021.
Modern and emerging architectures demand increasingly complex compiler analyses
and transformations. As the emphasis on compiler infrastructure moves beyond
support for peephole optimizations and the extraction of instruction-level
parallelism, they should support custom tools designed to meet these demands
with higher-level analysis-powered abstractions of wider program scope. This
paper introduces NOELLE, a robust open-source domain-independent compilation
layer built upon LLVM providing this support. NOELLE is modular and
demand-driven, making it easy-to-extend and adaptable to custom-tool-specific
needs without unduly wasting compile time and memory. This paper shows the
power of NOELLE by presenting a diverse set of ten custom tools built upon it,
with a 33.2% to 99.2% reduction in code size (LoC) compared to their
counterparts without NOELLE.