diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b162c9b8019243e1b2922cd7453e21d0240e6378..59750285b58e3f75ae4538162450680494a1949a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,15 @@ 2004-11-25 Nathan Sidwell <nathan@codesourcery.com> + * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust. + (FREE_REG_SET): Adjust. + * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap. + * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ... + (BITMAP_ALLOC): ... here. + (BITMAP_OBSTACK_FREE): Rename to ... + (BITMAP_FREE): Don't check for NULL bitmap here. + * tree-ssa-pre.c (value_insert_into_set_bitmap, + bitmap_set_new): Use new names. + * bt-load.c (migrate_btr_defs): Remove unneeded NULL check. * df.c (df_free): Likewise. * ra-build.c (ra_build_free, ra_build_free_all): Likewise. diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 277888b13e231e4c0182ed65e53257cc9a9cd166..0a3f2e08105b4474a96a9be5e8b197f4eb525795 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -38,10 +38,10 @@ typedef bitmap_head regset_head; typedef bitmap regset; /* Allocate a register set with oballoc. */ -#define ALLOC_REG_SET(OBSTACK) BITMAP_OBSTACK_ALLOC (OBSTACK) +#define ALLOC_REG_SET(OBSTACK) BITMAP_ALLOC (OBSTACK) /* Do any cleanup needed on a regset when it is no longer used. */ -#define FREE_REG_SET(REGSET) BITMAP_OBSTACK_FREE (REGSET) +#define FREE_REG_SET(REGSET) BITMAP_FREE (REGSET) /* Initialize a new regset. */ #define INIT_REG_SET(HEAD) bitmap_initialize (HEAD, ®_obstack) diff --git a/gcc/bitmap.c b/gcc/bitmap.c index cbedf2c7b1adf688daa580207d0b94e7a59de75b..275e440d6c3220c05f7ef479396162ed81ea6782 100644 --- a/gcc/bitmap.c +++ b/gcc/bitmap.c @@ -241,9 +241,12 @@ bitmap_malloc_alloc (void) void bitmap_obstack_free (bitmap map) { - bitmap_clear (map); - map->first = (void *)map->obstack->heads; - map->obstack->heads = map; + if (map) + { + bitmap_clear (map); + map->first = (void *)map->obstack->heads; + map->obstack->heads = map; + } } /* Release a malloc allocated bitmap. */ diff --git a/gcc/bitmap.h b/gcc/bitmap.h index d6e316a3e89ce0de752bb8870b4661a02d5cf5e1..fb599cb275991d73a1ae5a6ba72b847edca3eb91 100644 --- a/gcc/bitmap.h +++ b/gcc/bitmap.h @@ -156,7 +156,7 @@ extern void bitmap_malloc_free (bitmap); extern unsigned bitmap_first_set_bit (bitmap); /* Allocate a bitmap from a bit obstack. */ -#define BITMAP_OBSTACK_ALLOC(OBSTACK) bitmap_obstack_alloc (OBSTACK) +#define BITMAP_ALLOC(OBSTACK) bitmap_obstack_alloc (OBSTACK) /* Allocate a gc'd bitmap. */ #define BITMAP_GGC_ALLOC() bitmap_gc_alloc () @@ -165,14 +165,8 @@ extern unsigned bitmap_first_set_bit (bitmap); #define BITMAP_XMALLOC() bitmap_malloc_alloc () /* Do any cleanup needed on a bitmap when it is no longer used. */ -#define BITMAP_OBSTACK_FREE(BITMAP) \ -do { \ - if (BITMAP) \ - { \ - bitmap_obstack_free (BITMAP); \ - (BITMAP) = 0; \ - } \ -} while (0) +#define BITMAP_FREE(BITMAP) \ + ((void)(bitmap_obstack_free (BITMAP), (BITMAP) = NULL)) /* Do any cleanup needed on an xmalloced bitmap when it is no longer used. */ #define BITMAP_XFREE(BITMAP) \ diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 5bb552f6f81045456c9dfbcf5ad359e7eb7cdd0a..cbf43c42a70c5f88b21a22c3defdfb25cd008bac 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -462,7 +462,7 @@ value_insert_into_set_bitmap (value_set_t set, tree v) gcc_assert (set->indexed); if (set->values == NULL) - set->values = BITMAP_OBSTACK_ALLOC (&grand_bitmap_obstack); + set->values = BITMAP_ALLOC (&grand_bitmap_obstack); bitmap_set_bit (set->values, VALUE_HANDLE_ID (v)); } @@ -474,8 +474,8 @@ static bitmap_set_t bitmap_set_new (void) { bitmap_set_t ret = pool_alloc (bitmap_set_pool); - ret->expressions = BITMAP_OBSTACK_ALLOC (&grand_bitmap_obstack); - ret->values = BITMAP_OBSTACK_ALLOC (&grand_bitmap_obstack); + ret->expressions = BITMAP_ALLOC (&grand_bitmap_obstack); + ret->values = BITMAP_ALLOC (&grand_bitmap_obstack); return ret; }