Optimization Rust编译器对'loop'和'while true'进行了哪些优化?

Optimization Rust编译器对'loop'和'while true'进行了哪些优化?,optimization,rust,infinite-loop,Optimization,Rust,Infinite Loop,除了它可以对循环正文中设置的未初始化值进行推理之外,循环是否存在其他令人信服的原因?除了您陈述您的意图之外,没有区别。一旦在编译器中发生规范化,所有循环都是相同的 看一个和。生成的程序集完全相同。编译器为提供警告,而为true-示例使用循环。相关问题:谢谢。但是,我认为我的陈述:它可以对循环体中未初始化的值进行推理这一事实已经暗示了我有兴趣知道循环还有哪些方法可以为编译器优化提供更多途径。当然,我不会称之为重复。但它确实包含重要的信息,包括外部资源。你能用任何方式证明这一点吗?@Shepmast

除了它可以对
循环
正文中设置的未初始化值进行推理之外,
循环
是否存在其他令人信服的原因?

除了您陈述您的意图之外,没有区别。一旦在编译器中发生规范化,所有循环都是相同的


看一个和。生成的程序集完全相同。编译器为
提供警告,而为true
-示例使用
循环

相关问题:谢谢。但是,我认为我的陈述:
它可以对循环体中未初始化的值进行推理这一事实已经暗示了我有兴趣知道
循环
还有哪些方法可以为编译器优化提供更多途径。当然,我不会称之为重复。但它确实包含重要的信息,包括外部资源。你能用任何方式证明这一点吗?@Shepmaster如果证明正确,你可以比较MIR或ASM输出required@the8472这只证明了组装(以及可能相关的优化)对于单个情况是相同的,这是一个相当低的标准。我可以想象编译到同一个程序集的不同代码示例,即使到达该程序集的路径完全不同(因此具有不同的可用优化)。问题的标题是
与while true相比,Rust编译器使用循环进行了哪些优化?
@Shepmaster我认为
while(正确){}
循环{}
相比,差异非常小,并且差异的本地化程度足以使非常不同的相邻代码无法混淆优化器。此外,MIR发生在优化AIUI之前