From f3d357bab357abcbe4d8fc82898c68fd3a4c3471 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Thu, 23 Sep 2021 09:37:00 +0200 Subject: [PATCH] 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. --- gcc/gimple-range-path.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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; -- 2.47.2