From: Jan Hubicka Date: Wed, 17 Mar 2004 11:42:10 +0000 (+0100) Subject: cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info array. X-Git-Tag: releases/gcc-4.0.0~9345 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7eca07679863f0385a4b125517a302cb489e4148;p=thirdparty%2Fgcc.git cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info array. * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info array. From-SVN: r79585 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2cfe0c100fa7..ea5a37daabe7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-03-17 Jan Hubicka + + * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info + array. + 2004-03-17 James E Wilson * config/mips/mips.md (zero_extendsidi2): Add length attribute. diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 3363a2d97204..f38c53c5eda6 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -338,8 +338,12 @@ rtl_create_basic_block (void *headp, void *endp, basic_block after) rtx head = headp, end = endp; basic_block bb; - /* Place the new block just after the end. */ - VARRAY_GROW (basic_block_info, last_basic_block + 1); + /* Grow the basic block array if needed. */ + if ((size_t) last_basic_block >= VARRAY_SIZE (basic_block_info)) + { + size_t new_size = last_basic_block + (last_basic_block + 3) / 4; + VARRAY_GROW (basic_block_info, new_size); + } n_basic_blocks++;