Discover the SciOpen Platform and Achieve Your Research Goals with Ease.
Search articles, authors, keywords, DOl and etc.
Agile hardware design is gaining increasing momentum and bringing new chips in larger quantities to the market faster. However, it also takes new challenges for compiler developers to retarget existing compilers to these new chips in shorter time than ever before. Currently, retargeting a compiler backend, e.g., an LLVM backend to a new target, requires compiler developers to write manually a set of target description files (totalling 10300+ lines of code (LOC) for RISC-V in LLVM), which is error-prone and time-consuming. In this paper, we introduce a new approach, Automatic Target Description File Generation (ATG), which accelerates the generation of a compiler backend for a new target by generating its target description files automatically. Given a new target, ATG proceeds in two stages. First, ATG synthesizes a small list of target-specific properties and a list of code-layout templates from the target description files of a set of existing targets with similar instruction set architectures (ISAs). Second, ATG requests compiler developers to fill in the information for each instruction in the new target in tabular form according to the list of target-specific properties synthesized and then generates its target description files automatically according to the list of code-layout templates synthesized. The first stage can often be reused by different new targets sharing similar ISAs. We evaluate ATG using nine RISC-V instruction sets drawn from a total of 1029 instructions in LLVM 12.0. ATG enables compiler developers to generate compiler backends for these ISAs that emit the same assembly code as the existing compiler backends for RISC-V but with significantly less development effort (by specifying each instruction in terms of up to 61 target-specific properties only).
Bao Y G, Carlson T E. Agile and open-source hardware. IEEE Micro , 2020, 40(4): 6–9. DOI: 10.1109/MM.2020.3002 606.
Collberg C S. Automatic derivation of compiler machine descriptions. ACM Trans. Programming Languages and Systems , 2002, 24(4): 369–408. DOI: 10.1145/567097.5671 00.
Simos T E, Famelis I T. A neural network training algorithm for singular perturbation boundary value problems. Neural Computing and Applications , 2022, 34(1): 607–615. DOI: 10.1007/s00521-021-06364-1.
Vural N M, Ergüt S, Kozat S S. An efficient and effective second-order training algorithm for LSTM-based adaptive learning. IEEE Trans. Signal Processing , 2021, 69: 2541–2554. DOI: 10.1109/TSP.2021.3071566.
Davidson J W, Fraser C W. The design and application of a retargetable peephole optimizer. ACM Trans. Programming Languages and Systems , 1980, 2(2): 191–202. DOI: 10.1145/357094.357098.
Sullivan K J, Griswold W G, Cai Y F, Hallen B. The structure and value of modularity in software design. ACM SIGSOFT Software Engineering Notes , 2001, 26(5): 99–108. DOI: 10.1145/503271.503224.
Tsantalis N, Mazinanian D, Krishnan G P. Assessing the refactorability of software clones. IEEE Trans. Software Engineering , 2015, 41(11): 1055–1090. DOI: 10.1109/TSE.2015.2448531.
Ganzinger H. Increasing modularity and language-independency in automatically generated compilers. Science of Computer Programming , 1983, 3(3): 223–278. DOI: 10.1016/0167-6423(83)90021-7.
Kastens U, Waite W M. Modularity and reusability in attribute grammars. Acta Informatica , 1994, 31(7): 601–627. DOI: 10.1007/BF01177548.
Whatmough P N, Donato M, Ko G G, Lee S K, Brooks D, Wei G Y. CHIPKIT: An agile, reusable open-source framework for rapid test chip development. IEEE Micro , 2020, 40(4): 32–40. DOI: 10.1109/MM.2020.2995809.
Tang X F, Giacomin E, Chauviere B, Alacchi A, Gaillardon P E. OpenFPGA: An open-source framework for agile prototyping customizable FPGAs. IEEE Micro , 2020, 40(4): 41–48. DOI: 10.1109/MM.2020.2995854.
Liu D F, Chen T S, Liu S L, Zhou J H, Zhou S Y, Teman O, Feng X B, Zhou X H, Chen Y J. PuDianNao: A polyvalent machine learning accelerator. ACM SIGPLAN Notices , 2015, 50(4): 369–381. DOI: 10.1145/2775054.2694 358.
Ragan-Kelley J, Barnes C, Adams A, Paris S, Durand F, Amarasinghe S. Halide: A language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. ACM SIGPLAN Notices , 2013, 48(6): 519–530. DOI: 10.1145/2499370.2462176.