我希望写一个自定义SOC的llvm后端。问题是它对dma数据、高速缓存操作等有一些非标准指令。
除了使用内部函数之外,是否还有其他方法可以为自定义SOC开发工具链后端。一般来说,我对其他方法持开放态度,这些方法可以为我提供程序的高级表示,并可以将其转换为SOC指令。
发布于 2019-09-01 23:31:36
如果它只是一些已经支持的ISA之上的一些额外的指令,那么按照设计,你应该使用内部函数。或者,如果汇编程序支持所需的指令,则也可以使用内联程序集。
如果整个ISA是新的,构建新的LLVM后端最常见的方法仍然是从一个与您足够接近的现有后端开始,然后逐渐修改它。在开始执行第一条指令之前,从头开始编写一个新的指令需要生成大量的样板文件。
https://stackoverflow.com/questions/57744283
复制相似问题