Vector instruction selection for digital signal processors using program synthesis
Maaz Bin Safeer Ahmad, Alexander J. Root, Andrew Adams, Shoaib Kamil, Alvin Cheung
Abstract
Instruction selection, whereby input code represented in an intermediate representation is translated into executable instructions from the target platform, is often the most target-dependent component in optimizing compilers. Current approaches include pattern matching, which is brittle and tedious to design, or search-based methods, which are limited by scalability of the search algorithm. In this paper, we propose a new algorithm that first abstracts the target platform instructions into high-level uber-instructions, with each uber-instruction unifying multiple concrete instructions from the target platform. Program synthesis is used to lift input code sequences into semantically equivalent sequences of uber-instructions and then to lower from uber-instructions to machine code. Using 21 real-world benchmarks, we show that our synthesis-based instruction selection algorithm can generate instruction sequences for a hardware target, with the synthesized code performing up to 2.1x faster as compared to code generated by a professionally-developed optimizing compiler for the same platform.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext d9641fd7-a8ef-4377-956b-da0f0cbe6444Cited by top-tier papers10
- Automatic Generation of Vectorizing Compilers for Customizable Digital Signal ProcessorsSamuel Thomas, James BornholtASPLOS 2024 · 16 citations
- Minotaur: A SIMD-Oriented Synthesizing SuperoptimizerZhengyang Liu, Stefan Mada, John RegehrOOPSLA 2024 · 9 citations
- Hydride: A Retargetable and Extensible Synthesis-based Compiler for Modern Hardware ArchitecturesAkash Kothari, Abdul Rafae Noor, Muchen Xu, Hassam Uddin et al.ASPLOS 2024 · 8 citations
- Lightweight, Modular Verification for WebAssembly-to-Native Instruction SelectionAlexa VanHattum, Monica Pardeshi, Chris Fallin, Adrian Sampson et al.ASPLOS 2024 · 7 citations
- Exo 2: Growing a Scheduling LanguageYuka Ikarashi, Kevin Qian, Samir Droubi, Alex Reinking et al.ASPLOS 2025 · 7 citations
Builds on2
- Vectorization for digital signal processors via equality saturationAlexa VanHattum, Rachit Nigam, Vincent T. Lee, James Bornholt et al.ASPLOS 2021 · 57 citations
- VeGen: a vectorizer generator for SIMD and beyondYishen Chen, Charith Mendis, Michael Carbin, Saman P. AmarasingheASPLOS 2021 · 43 citations
Related papers
- MISAAL: Synthesis-Based Automatic Generation of Efficient and Retargetable Semantics-Driven OptimizationsAbdul Rafae Noor, Dhruv Baronia, Akash Kothari, Muchen Xu et al.PLDI 2025 · 2 citations
- SuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT TechniquesElvira Albert, Maria Garcia de la Banda, Alejandro Hernández-Cerezo, Alexey Ignatiev et al.PLDI 2024 · 9 citations
- SEER: Super-Optimization Explorer for High-Level Synthesis using E-graph RewritingJianyi Cheng, Samuel Coward, Lorenzo Chelini, Rafael Barbalho et al.ASPLOS 2024 · 18 citations
- HeteroGen: transpiling C to heterogeneous HLS code with automated test generation and program repairQian Zhang, Jiyuan Wang, Guoqing Harry Xu, Miryung KimASPLOS 2022 · 14 citations
- Finding Reusable Instructions via E-Graph Anti-UnificationYouwei Xiao, Chenyun Yin, Yitian Sun, Yuyang Zou et al.ASPLOS 2026
