我从事的是用C语言编写的软件,这些软件可以在各种不同架构的ARM处理器(主要是ARMv5、ARMv6 )上运行。我们目前使用一些不同版本的RVDS编译我们的代码,但我们正在考虑使用LLVM编译一些代码,以便添加一些自定义指令插入。
我知道LLVM有ARM和Thumb目标,但它具体支持什么架构?LLVM生成的代码可以在ARMv5上运行吗?我应该注意哪些限制?
发布于 2010-12-09 04:35:24
他们的source code列出了以下archs:
// ARM architectures.
def ArchV4T : SubtargetFeature<"v4t", "ARMArchVersion", "V4T", "ARM v4T">;
def ArchV5T : SubtargetFeature<"v5t", "ARMArchVersion", "V5T", "ARM v5T">;
def ArchV5TE : SubtargetFeature<"v5te", "ARMArchVersion", "V5TE", "ARM v5TE, v5TEj, v5TExp">;
def ArchV6 : SubtargetFeature<"v6", "ARMArchVersion", "V6", "ARM v6">;
def ArchV6M : SubtargetFeature<"v6m", "ARMArchVersion", "V6M", "ARM v6m", [FeatureNoARM, FeatureDB]>;
def ArchV6T2 : SubtargetFeature<"v6t2", "ARMArchVersion", "V6T2", "ARM v6t2", [FeatureThumb2]>;
def ArchV7A : SubtargetFeature<"v7a", "ARMArchVersion", "V7A", "ARM v7A", [FeatureThumb2, FeatureNEON, FeatureDB]>;
def ArchV7M : SubtargetFeature<"v7m", "ARMArchVersion", "V7M", "ARM v7M", [FeatureThumb2, FeatureNoARM, FeatureDB, FeatureHWDiv]>;发布于 2010-12-09 04:24:52
我已经在ARMv4和ARMv6上运行了llvm生成的代码。我有一些ARMv5平台,但我不记得我是否在那里尝试过。我假设泛型-march=arm的输出会给出最小公分母(ARMv4)代码,这意味着它将在ARMv5上运行。这都是嵌入式的,没有操作系统类型的工作,请注意,我没有使用llvm来创建arm linux二进制文件或任何类似的东西。
https://stackoverflow.com/questions/4390752
复制相似问题