LLVM IR 优化

Rou*_*beh 2 register-allocation llvm compiler-optimization llvm-ir

我正在尝试按照链接生成c代码的 IR 表示。c我使用的代码如下

void main() {
 int c1 = 17;
 int c2 = 25;
 int c3 = c1 + c2;
 printf("Value = %d\n", c3);
}
Run Code Online (Sandbox Code Playgroud)

我将其另存为const.c. 保存后,我使用以下命令生成.bc文件。

clang -c -emit-llvm const.c -o const.bc
Run Code Online (Sandbox Code Playgroud)


一旦生成.BC文件,我想以此来生成的优化版本使用下面的命令const.bc被命名文件const.reg.bc

opt -mem2reg const.bc > const.reg.bc
Run Code Online (Sandbox Code Playgroud)

我在生成这些文件时没有任何问题,但由于某种原因,它们完全相同,并且没有发生任何优化。结果应该不同,我的意思是const.reg.bc应该是const.bc文件的优化版本。但由于某种原因,它不会发生。有人可以告诉我我做错了什么吗?

DTh*_*run 6

此选项可与 clang-Xclang -disable-O0-optnone一起使用以防止生成optnone属性。