From: Aldy Hernandez Date: Thu, 23 Sep 2021 07:37:00 +0000 (+0200) Subject: Hoist edge calculations in precompute_relations. X-Git-Tag: basepoints/gcc-13~4472 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3d357bab357abcbe4d8fc82898c68fd3a4c3471;p=thirdparty%2Fgcc.git Hoist edge calculations in precompute_relations. Tested on x86-64 Linux. gcc/ChangeLog: * gimple-range-path.cc (path_range_query::precompute_relations): Hoist edge calculations before using EDGE_SUCC. --- diff --git a/gcc/gimple-range-path.cc b/gcc/gimple-range-path.cc index d052ebd81fcd..d9704c8f86b7 100644 --- a/gcc/gimple-range-path.cc +++ b/gcc/gimple-range-path.cc @@ -643,16 +643,16 @@ path_range_query::precompute_relations (const vec &path) basic_block next = path[i - 2]; int_range<2> r; gcond *cond = as_a (stmt); + edge e0 = EDGE_SUCC (bb, 0); + edge e1 = EDGE_SUCC (bb, 1); - if (EDGE_SUCC (bb, 0)->dest == next) - gcond_edge_range (r, EDGE_SUCC (bb, 0)); - else if (EDGE_SUCC (bb, 1)->dest == next) - gcond_edge_range (r, EDGE_SUCC (bb, 1)); + if (e0->dest == next) + gcond_edge_range (r, e0); + else if (e1->dest == next) + gcond_edge_range (r, e1); else gcc_unreachable (); - edge e0 = EDGE_SUCC (bb, 0); - edge e1 = EDGE_SUCC (bb, 1); src.register_outgoing_edges (cond, r, e0, e1); } prev = bb;