小编Rah*_*waj的帖子

LLVM OPT 不提供优化文件作为输出。

手册页opt说:“它将 LLVM 源文件作为输入,运行指定的优化或分析,然后输出优化的文件或分析结果”。

我的目标:要使用内置的优化过程-dce中可用opt。这个通行证Dead Code Elimination

我的源文件foo.c

int foo(void)
 {
   int a = 24;
   int b = 25; /* Assignment to dead variable -- dead code */
   int c;
   c = a * 4;
   return c;
}
Run Code Online (Sandbox Code Playgroud)

这是我所做的:
1. clang-7.0 -S -emit-llvm foo.c -o foo.ll
2.opt -dce -S foo.ll -o fooOpt.ll

我期望的是:一个 .ll 文件,其中消除了死代码(在带有注释的源代码中)部分。

我得到的是:fooOpt.ll 与非优化代码 foo.ll 相同

我已经看过这个SO 答案,但我没有得到优化的代码。
我在这里错过了什么吗?有人可以指导我走正确的道路。
谢谢你。

llvm llvm-clang llvm-ir llvm-c++-api

3
推荐指数
1
解决办法
996
查看次数

何时在Rust中发生类型绑定?

据我所知:在C语言中,变量的"类型"在编译期间被绑定,并且该变量的值在运行时被绑定.

例如,在编译期间int a = 10;,类型int绑定到变量,并且在运行时a将实际值10绑定(或分配)给它.

但在Rust,我们有let a = 2;.这里,什么时候类型(比如i32Rust中的任何整数类型)被绑定a

我正在构建一个前端Rust编译器,目前正在编写解析器阶段.此时,我应该为这些变量分配什么类型?

computer-science programming-languages rust

1
推荐指数
1
解决办法
146
查看次数

virt-manager - 导入错误:没有名为 orders_dict 的模块

我有 KVM 服务器,它有 python2.7 版本。现在随着python2.7,python3已经安装了。现在,如果我尝试这样做,virt-manager我会收到以下错误:

from .packages.urllib3.packages.ordered_dict import ordered_dict
ImportError: No module named ordered_dict
Run Code Online (Sandbox Code Playgroud)

如果我删除 python3,它会影响任何其他 2.7 包/库吗?.

ikvm kvm python-2.7 python-3.x

1
推荐指数
2
解决办法
5362
查看次数