re PR tree-optimization/81374 (ICE in bb_top_order_cmp, at tree-loop-distribution...
authorBin Cheng <bin.cheng@arm.com>
Mon, 17 Jul 2017 11:34:30 +0000 (11:34 +0000)
committerBin Cheng <amker@gcc.gnu.org>
Mon, 17 Jul 2017 11:34:30 +0000 (11:34 +0000)
PR tree-optimization/81374
* tree-loop-distribution.c (pass_loop_distribution::execute): Record
the max index of basic blocks, rather than number of basic blocks.

From-SVN: r250268

gcc/ChangeLog
gcc/tree-loop-distribution.c

index 95c64c6..841f226 100644 (file)
@@ -1,3 +1,9 @@
+2017-07-17  Bin Cheng  <bin.cheng@arm.com>
+
+       PR tree-optimization/81374
+       * tree-loop-distribution.c (pass_loop_distribution::execute): Record
+       the max index of basic blocks, rather than number of basic blocks.
+
 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
index be0a660..5c8f29d 100644 (file)
@@ -2614,12 +2614,13 @@ pass_loop_distribution::execute (function *fun)
      lexicographical order.  */
   if (bb_top_order_index == NULL)
     {
+      int rpo_num;
       int *rpo = XNEWVEC (int, last_basic_block_for_fn (cfun));
 
       bb_top_order_index = XNEWVEC (int, last_basic_block_for_fn (cfun));
-      bb_top_order_index_size
-       = pre_and_rev_post_order_compute_fn (cfun, NULL, rpo, true);
-      for (int i = 0; i < bb_top_order_index_size; i++)
+      bb_top_order_index_size = last_basic_block_for_fn (cfun);
+      rpo_num = pre_and_rev_post_order_compute_fn (cfun, NULL, rpo, true);
+      for (int i = 0; i < rpo_num; i++)
        bb_top_order_index[rpo[i]] = i;
 
       free (rpo);