diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-09-23 09:37:00 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-09-23 13:08:27 +0200 |
commit | f3d357bab357abcbe4d8fc82898c68fd3a4c3471 (patch) | |
tree | 8bca91b741c7fc654d84bcf328fc469a29eb19ae /gcc | |
parent | d917742fe27ad9cc28db777c11059b6c1c1ac816 (diff) | |
download | gcc-f3d357bab357abcbe4d8fc82898c68fd3a4c3471.zip gcc-f3d357bab357abcbe4d8fc82898c68fd3a4c3471.tar.gz gcc-f3d357bab357abcbe4d8fc82898c68fd3a4c3471.tar.bz2 |
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gimple-range-path.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/gimple-range-path.cc b/gcc/gimple-range-path.cc index d052ebd..d9704c8 100644 --- a/gcc/gimple-range-path.cc +++ b/gcc/gimple-range-path.cc @@ -643,16 +643,16 @@ path_range_query::precompute_relations (const vec<basic_block> &path) basic_block next = path[i - 2]; int_range<2> r; gcond *cond = as_a<gcond *> (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; |