gpt4 book ai didi

c - LLVM IR 是一种机器无关语言吗?

转载 作者:行者123 更新时间:2023-12-05 01:25:40 26 4
gpt4 key购买 nike

我在看LLVM IR代码(C转)的时候,看到这样一条指令:

%div = sdiv i32 %add, %32

这条指令的C代码可能是这样的:

a = c / b;

我们可以看到这条指令中有一个类型i32。这是因为变量a, b, c 的类型都是int。我的电脑是 x86。

现在,如果我有一台整数大约为 8 位的机器,并且我编写了与上面相同的 C 代码,并在这台机器上将 C 转换为 LLVM IR,则 LLVM IR 指令可能是 %div = sdiv i8 %add, %32.

这样对吗?如果是,我们怎么能说 LLVM IR 是一种机器无关语言

我想,如果一段代码是机器无关语言,那么这段代码可以在这个世界上任何一台机器上运行,而当代码运行时,虚拟机或其他东西会处理架构之间的差异。

最佳答案

是的,LLVM IR 是一种与机器无关的语言。

但是IR代码不能直接在真实硬件上运行。为了运行 IR 代码,需要一个重定向过程。在“重定向”期间,机器无关的 IR 代码被转换为目标(x86、MIPS、aarch、8 位芯片等)的机器相关代码。

关于c - LLVM IR 是一种机器无关语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70738522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com