vec: use inexact growth where possible.
authorMartin Liska <mliska@suse.cz>
Mon, 10 Aug 2020 10:09:19 +0000 (12:09 +0200)
committerMartin Liska <mliska@suse.cz>
Tue, 1 Sep 2020 12:25:52 +0000 (14:25 +0200)
gcc/ChangeLog:

* cfgrtl.c (rtl_create_basic_block): Use default value for
growth vector function.
* gimple.c (gimple_set_bb): Likewise.
* symbol-summary.h: Likewise.
* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
(build_gimple_cfg): Likewise.
(create_bb): Likewise.
(move_block_to_fn): Likewise.

gcc/cfgrtl.c
gcc/gimple.c
gcc/symbol-summary.h
gcc/tree-cfg.c

index eb5ccd42ed7f1c3d5797a7e2a949c53494c5f673..45d84d39b2255fb3f44f7d29cabde99282e731a1 100644 (file)
@@ -376,12 +376,8 @@ rtl_create_basic_block (void *headp, void *endp, basic_block after)
   /* Grow the basic block array if needed.  */
   if ((size_t) last_basic_block_for_fn (cfun)
       >= basic_block_info_for_fn (cfun)->length ())
-    {
-      size_t new_size =
-       (last_basic_block_for_fn (cfun)
-        + (last_basic_block_for_fn (cfun) + 3) / 4);
-      vec_safe_grow_cleared (basic_block_info_for_fn (cfun), new_size, true);
-    }
+    vec_safe_grow_cleared (basic_block_info_for_fn (cfun),
+                          last_basic_block_for_fn (cfun) + 1);
 
   n_basic_blocks_for_fn (cfun)++;
 
index 70aa3bc4233afaef2132467cfd003ab4ae2c267e..fd4e0fac0d4a8da90e52ea7d6caff93b8570e222 100644 (file)
@@ -1689,12 +1689,7 @@ gimple_set_bb (gimple *stmt, basic_block bb)
            vec_safe_length (label_to_block_map_for_fn (cfun));
          LABEL_DECL_UID (t) = uid = cfun->cfg->last_label_uid++;
          if (old_len <= (unsigned) uid)
-           {
-             unsigned new_len = 3 * uid / 2 + 1;
-
-             vec_safe_grow_cleared (label_to_block_map_for_fn (cfun),
-                                    new_len, true);
-           }
+           vec_safe_grow_cleared (label_to_block_map_for_fn (cfun), uid + 1);
        }
 
       (*label_to_block_map_for_fn (cfun))[uid] = bb;
index fa1df5c8015698787c9593d263d1cae1bd53e2ba..a38eb1db7787e62e888be8921af9309d85ba5d4f 100644 (file)
@@ -354,11 +354,8 @@ public:
       id = this->m_symtab->assign_summary_id (node);
 
     if ((unsigned int)id >= m_vector->length ())
-      {
-       int newlen = this->m_symtab->cgraph_max_summary_id;
-       vec_safe_reserve (m_vector, newlen - m_vector->length ());
-       m_vector->quick_grow_cleared (newlen);
-      }
+      vec_safe_grow_cleared (m_vector,
+                            this->m_symtab->cgraph_max_summary_id);
 
     if ((*m_vector)[id] == NULL)
       (*m_vector)[id] = this->allocate_new ();
@@ -815,11 +812,7 @@ public:
       id = this->m_symtab->assign_summary_id (edge);
 
     if ((unsigned)id >= m_vector->length ())
-      {
-       int newlen = this->m_symtab->edges_max_summary_id;
-       m_vector->reserve (newlen - m_vector->length ());
-       m_vector->quick_grow_cleared (newlen);
-      }
+      vec_safe_grow_cleared (m_vector, this->m_symtab->edges_max_summary_id);
 
     if ((*m_vector)[id] == NULL)
       (*m_vector)[id] = this->allocate_new ();
index 2964209ccff629fff767297807a6e58c73e21f5b..406441751a9686b5979beded227e75d666203846 100644 (file)
@@ -181,12 +181,10 @@ init_empty_tree_cfg_for_function (struct function *fn)
   profile_status_for_fn (fn) = PROFILE_ABSENT;
   n_basic_blocks_for_fn (fn) = NUM_FIXED_BLOCKS;
   last_basic_block_for_fn (fn) = NUM_FIXED_BLOCKS;
-  vec_alloc (basic_block_info_for_fn (fn), initial_cfg_capacity);
   vec_safe_grow_cleared (basic_block_info_for_fn (fn),
                         initial_cfg_capacity, true);
 
   /* Build a mapping of labels to their associated blocks.  */
-  vec_alloc (label_to_block_map_for_fn (fn), initial_cfg_capacity);
   vec_safe_grow_cleared (label_to_block_map_for_fn (fn),
                         initial_cfg_capacity, true);
 
@@ -232,7 +230,7 @@ build_gimple_cfg (gimple_seq seq)
   if (basic_block_info_for_fn (cfun)->length ()
       < (size_t) n_basic_blocks_for_fn (cfun))
     vec_safe_grow_cleared (basic_block_info_for_fn (cfun),
-                          n_basic_blocks_for_fn (cfun), true);
+                          n_basic_blocks_for_fn (cfun));
 
   /* To speed up statement iterator walks, we first purge dead labels.  */
   cleanup_dead_labels ();
@@ -681,12 +679,8 @@ create_bb (void *h, void *e, basic_block after)
   /* Grow the basic block array if needed.  */
   if ((size_t) last_basic_block_for_fn (cfun)
       == basic_block_info_for_fn (cfun)->length ())
-    {
-      size_t new_size =
-       (last_basic_block_for_fn (cfun)
-        + (last_basic_block_for_fn (cfun) + 3) / 4);
-      vec_safe_grow_cleared (basic_block_info_for_fn (cfun), new_size, true);
-    }
+    vec_safe_grow_cleared (basic_block_info_for_fn (cfun),
+                          last_basic_block_for_fn (cfun) + 1);
 
   /* Add the newly created block to the array.  */
   SET_BASIC_BLOCK_FOR_FN (cfun, last_basic_block_for_fn (cfun), bb);
@@ -7094,7 +7088,7 @@ move_block_to_fn (struct function *dest_cfun, basic_block bb,
   edge_iterator ei;
   edge e;
   gimple_stmt_iterator si;
-  unsigned old_len, new_len;
+  unsigned old_len;
 
   /* Remove BB from dominance structures.  */
   delete_from_dominance_info (CDI_DOMINATORS, bb);
@@ -7130,10 +7124,8 @@ move_block_to_fn (struct function *dest_cfun, basic_block bb,
 
   old_len = vec_safe_length (cfg->x_basic_block_info);
   if ((unsigned) cfg->x_last_basic_block >= old_len)
-    {
-      new_len = cfg->x_last_basic_block + (cfg->x_last_basic_block + 3) / 4;
-      vec_safe_grow_cleared (cfg->x_basic_block_info, new_len, true);
-    }
+    vec_safe_grow_cleared (cfg->x_basic_block_info,
+                          cfg->x_last_basic_block + 1);
 
   (*cfg->x_basic_block_info)[bb->index] = bb;
 
@@ -7206,10 +7198,7 @@ move_block_to_fn (struct function *dest_cfun, basic_block bb,
 
          old_len = vec_safe_length (cfg->x_label_to_block_map);
          if (old_len <= (unsigned) uid)
-           {
-             new_len = 3 * uid / 2 + 1;
-             vec_safe_grow_cleared (cfg->x_label_to_block_map, new_len, true);
-           }
+           vec_safe_grow_cleared (cfg->x_label_to_block_map, uid + 1);
 
          (*cfg->x_label_to_block_map)[uid] = bb;
          (*cfun->cfg->x_label_to_block_map)[uid] = NULL;