LLVM IR支持(字节= 16位)吗?

问题描述 投票:0回答:1

想知道LLVM是否支持大小为16bit的字节等(不仅仅是8bit)?是否有可能制作一种针对LLVM的语言并支持自定义16位FPGA-CPU的这一概念?

根据我的理解,Clang不支持这个,而GCC可以BUT做LLVM IR吗?

llvm llvm-ir
1个回答
1
投票

在LLVM中,没有特定的字节,int等概念。它支持的是具有任意位宽(iN)的整数。

1 <= N <= (2^23)-1

https://llvm.org/docs/LangRef.html#integer-type

假设,在某种语言中,字节= 16位,语言前端应确保它生成i16而不是i8。 LLVM IR旨在容纳许多不同的语言,这就是这个任意整数位宽的原因。

是否有可能制作一种针对LLVM的语言并支持自定义16位FPGA-CPU的这一概念?

是的,我将术语“16位FPGA-CPU”理解为16位软处理器。 LLVM本身支持具有各种位宽的处理器。根据我的理解,它是否是软处理器并不重要。

在顶部的LLVM IR中,我们发现了一种称为数据布局的东西。下面是X86_64数据布局。 n8:16:32:64表示处理器本身支持处理64,32,16和8位,这意味着它是一个具有向后兼容性的64位处理器。

target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"

有关其他领域的信息可以在这里找到。 https://llvm.org/docs/LangRef.html#langref-datalayout

© www.soinside.com 2019 - 2024. All rights reserved.