Compiler construction 用于定制SOC的Llvm

Compiler construction 用于定制SOC的Llvm,compiler-construction,llvm,soc,Compiler Construction,Llvm,Soc,我正在寻找编写一个自定义SOC的llvm后端。问题是它有一些非标准的dma数据指令、缓存操作等 除了使用intrinsic之外,是否还有其他方法可以为定制soc开发工具链后端。一般来说,我对其他方法持开放态度,这些方法可以为我提供程序的高级表示,并可以将其转换为SOC指令。如果它只是一些已经支持的ISA上的额外指令,那么根据设计,您应该使用内部指令。或者,如果您的汇编器支持所需的指令,则可以使用内联程序集 如果整个ISA都是新的,构建新LLVM后端的最常见方法仍然是启动一个与您的后端足够接近的现

我正在寻找编写一个自定义SOC的llvm后端。问题是它有一些非标准的dma数据指令、缓存操作等


除了使用intrinsic之外,是否还有其他方法可以为定制soc开发工具链后端。一般来说,我对其他方法持开放态度,这些方法可以为我提供程序的高级表示,并可以将其转换为SOC指令。

如果它只是一些已经支持的ISA上的额外指令,那么根据设计,您应该使用内部指令。或者,如果您的汇编器支持所需的指令,则可以使用内联程序集


如果整个ISA都是新的,构建新LLVM后端的最常见方法仍然是启动一个与您的后端足够接近的现有后端,然后逐步修改它。从头开始编写一个新的指令需要在您开始执行第一条指令之前制作大量的样板文件。

遗憾的是,没有。它是全新的,因为在操作码中,寄存器是全新的。除此之外,还有一些在其他ISA上没有对应的特殊指令。@abjoshi,那么您最好从克隆一些类似或通用ISA开始。通常人们以MIPS为基础,除非你有非常不寻常的东西(例如VLIW),否则其他东西可能是一个好的开始。您还可以遵循RISC-V目标的一系列提交,以了解如何从头开始开发新的后端。