about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-05-03 12:16:00 +0000
committerbors <bors@rust-lang.org>2022-05-03 12:16:00 +0000
commite1df625306f4136949e02612406f0c60df6008f3 (patch)
tree87ec291f893e9391fc83141bbe850789380d09eb
parentea5fa17998d7768664129294277986f7bad27923 (diff)
parentfa41852c7aa1fd7d85c48fe94fb9055d862e2960 (diff)
downloadrust-e1df625306f4136949e02612406f0c60df6008f3.tar.gz
rust-e1df625306f4136949e02612406f0c60df6008f3.zip
Auto merge of #96601 - tmiasko:ssa-rpo, r=davidtwco
Use reverse postorder in `non_ssa_locals`

The reverse postorder, unlike preorder, is now cached inside the MIR
body. Code generation uses reverse postorder anyway, so it might be
a small perf improvement to use it here as well.
-rw-r--r--compiler/rustc_codegen_ssa/src/mir/analyze.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/analyze.rs b/compiler/rustc_codegen_ssa/src/mir/analyze.rs
index efb424af3ed..fa39e8dd247 100644
--- a/compiler/rustc_codegen_ssa/src/mir/analyze.rs
+++ b/compiler/rustc_codegen_ssa/src/mir/analyze.rs
@@ -40,9 +40,9 @@ pub fn non_ssa_locals<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>>(
     }
 
     // If there exists a local definition that dominates all uses of that local,
-    // the definition should be visited first. Traverse blocks in preorder which
+    // the definition should be visited first. Traverse blocks in an order that
     // is a topological sort of dominance partial order.
-    for (bb, data) in traversal::preorder(&mir) {
+    for (bb, data) in traversal::reverse_postorder(&mir) {
         analyzer.visit_basic_block_data(bb, data);
     }