【发布时间】:2019-01-22 03:29:17
【问题描述】:
我是 clang 和 llvm 的新手。我正在尝试从 c 源代码生成未优化的位代码版本。我发现生成的位代码具有我不想要的常量折叠优化。 我正在使用这个命令:clang -O0 -Xclang -disable-O0-optnone test1.c -S -emit-llvm -o test1.ll
test1.c 文件代码如下:
int test() {
int y;
y = 2 * 4;
return y;
}
它不是生成将 2 和 4 相乘的指令,而是通过执行常量折叠操作直接存储值 8: 存储 i32 8, i32* %1, 对齐 4
如果有人好心让我知道我缺少什么以及我应该如何关闭不断折叠优化,那就太好了。我使用的 llvm 版本是 6.0.0。
谢谢。
【问题讨论】:
-
不要发布代码截图,而是粘贴代码。
标签: llvm llvm-clang llvm-ir