我在阅读:https://llvm.org/docs/LangRef.html#getelementptr-instruction
据我所知,LLVM有无限的寄存器,这就提出了一个问题,为什么我们需要store
和load
命令,以及我们应该在什么时候使用它们。
为什么我们不能把所有的东西都记在收银机里?
为了使事情变得清楚,你可以友好地参考每行中使用的命令:
void example_func(int x) {
int y;
int z = 3;
int a = x;
a = 3;
x = 2;
}
字符串
1条答案
按热度按时间6ju8rftf1#
你问为什么我们需要货物和储备,我会给予你一个理由。假设你的目标是编译一个有32个寄存器的程序,但你希望一次有超过32个变量。现在您可以看到需要用内存加载和存储。
考虑以下场景:
字符串
如果考虑调用树,您将意识到每个对
f
的调用都有一个a
,并且有超过32个对f
的调用,因此需要加载和存储。