]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Hoist edge calculations in precompute_relations.
authorAldy Hernandez <aldyh@redhat.com>
Thu, 23 Sep 2021 07:37:00 +0000 (09:37 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Thu, 23 Sep 2021 11:08:27 +0000 (13:08 +0200)
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

index d052ebd81fcd3f58946f8da2f93134384f0e9415..d9704c8f86b79e1138f5f7fa16aacd47f5bed1f8 100644 (file)
@@ -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;