Publication | Open Access
Vector instruction selection for digital signal processors using program synthesis
12
Citations
22
References
2022
Year
Unknown Venue
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringVector ProcessingProcessor ArchitectureSoftware AnalysisSearch AlgorithmParallel ComputingCompilersVector Instruction SelectionInstruction SelectionCompiler SupportComputer EngineeringComputer ScienceOptimizing CompilerNew AlgorithmSignal ProcessingSoftware DesignProgram AnalysisFormal MethodsProgram SynthesisParallel ProgrammingIntermediate RepresentationVectorization
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1