从这个简单的 C 程序开始:
void nothing(void) {}
int main() {
int i;
for (i = 0; i < 10; ++i) {
nothing();
}
return 0;
}
我的通行证输出如下:
注意:IR 语句为绿色。
; Function Attrs: nounwind readnone ssp uwtable
define void @nothing() #0 {
entry:
ret void
}
; Function Attrs: nounwind readnone ssp uwtable
define i32 @main() #0 {
entry:
ret i32 0
}
问题:使用O3
最高级别的优化,为什么函数没有nothing
作为死代码被淘汰?