diff options
author | Richard Biener <rguenther@suse.de> | 2024-04-17 13:20:40 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2024-05-07 15:28:55 +0200 |
commit | cb4e2685a3e73474246adda356595f72fcd43827 (patch) | |
tree | 751b77369b1ea8e094dd4d10de252d5dbaf897ae /gcc | |
parent | b72e7addf855aed66c0922f17efc85f26193f801 (diff) | |
download | gcc-cb4e2685a3e73474246adda356595f72fcd43827.zip gcc-cb4e2685a3e73474246adda356595f72fcd43827.tar.gz gcc-cb4e2685a3e73474246adda356595f72fcd43827.tar.bz2 |
Avoid re-allocating vector
The following avoids re-allocating the var map BB vector by
pre-allocating it to the exact size needed when operating on the
whole function.
* tree-ssa-live.cc (init_var_map): Pre-allocate vec_bbs vector
to the correct size and use quick_push.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree-ssa-live.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa-live.cc b/gcc/tree-ssa-live.cc index fa6be2f..e6ae551 100644 --- a/gcc/tree-ssa-live.cc +++ b/gcc/tree-ssa-live.cc @@ -113,8 +113,10 @@ init_var_map (int size, class loop *loop, bitmap bitint) map->outofssa_p = bitint == NULL; map->bitint = bitint; basic_block bb; + map->vec_bbs.reserve_exact (n_basic_blocks_for_fn (cfun) + - NUM_FIXED_BLOCKS); FOR_EACH_BB_FN (bb, cfun) - map->vec_bbs.safe_push (bb); + map->vec_bbs.quick_push (bb); } return map; } |