
High demand for computational power over the last decades has led to the widespread presence of processors in our everyday lives. Simultaneous growth in the number of application areas requires specialized hardware, tailored for specific tasks. These application-specific processors are of key importance, since their limitation to a few possible operations offers distinct advantages. Such hardware-accelerators are generally able to outperform any common processor with regard to some metrics. The most frequent ones being computational speed or power consumption. With availability of the RISC-V open-standard processor architecture, development of customized processors becomes even more interesting. It allows the creation and implementation of instructions tailored to one's own prerequisites, generally without requiring licensing fees. Once these instructions are defined and an actual processor implementation is available, developers are faced with the lack of proper support by compilers. This in turn complicates the instructions' utilization considerably, requiring distinct knowledge of their actual binary representation or manual implementation of support. Both options are time consuming and demanding with regard to the assumed proficiency. Therefore, we want to suggest an automated approach to the implementation of compiler support for these Instruction Set Architecture (ISA) eXtensions (ISAXs). Our presented infrastructure will be utilizing and operating on LLVM, an open-source compiler framework and automatically add support for certain instruction types. In this work, we will provide an introduction to automated source code customization with regard to the LLVM sub-project LibTooling and present the performed modifications in detail. Furthermore, we will introduce an input format based on LLVM's Intermediate Representation (IR) and show how certain instruction properties may be automatically determined. The last step of our approach will present the application of this information in order to ultimately enable compiler support. Afterwards, we will evaluate our approach with regard to reduced development effort and requirements. Lastly, we will summarize our work and conclude with the presentation of possible next steps with regard to the extension of our presented infrastructure.
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
