【发布时间】:2012-10-23 14:28:25
【问题描述】:
我正在将另一个 IR 转换为 llvm IR。
我的 IR 是这样的:
a = 1;
b = a;
a = a + 1;
现在,我正在使用 alloca 在我的 IR 中创建变量(这里是“a”和“b”)。
但是,alloca 可能太重了,它会引入大量的加载存储指令。如果功能很大,这将是一个问题。实际上,就我而言,大多数变量都是寄存器宽度。所以我只想让它们成为一个有名字的虚拟寄存器。
有人知道如何创建虚拟寄存器(变量)而不是内存变量吗?
我的意思是如何避免使用“alloca”?
【问题讨论】:
-
AFAIK,你不应该关心这个。只需使用 allocas 和 codegen/optimizer 即可为您完成工作。
标签: llvm