首页 > 解决方案 > 用于自定义 SOC 的 Llvm

问题描述

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

除了使用内在函数之外,还有其他方法可以为自定义 SOC 开发工具链后端。一般来说,我愿意接受其他可以为我提供程序的高级表示并将其转换为 SOC 指令的方法。

标签: compiler-constructionllvmsoc

解决方案


如果它只是一些已经支持的 ISA 之上的一些额外指令,那么根据设计,您应该使用内在函数。或者,如果您的汇编程序支持您想要的指令,则可以使用内联汇编。

如果整个 ISA 都是新的,那么构建新的 LLVM 后端的最常见方法仍然是启动一个与您的足够接近的现有后端,并逐步对其进行修改。从头开始编写一个新指令将需要制作大量样板文件,然后才能开始实施您的第一条指令。


推荐阅读