[PATCH] reduce sparseset memory requirement
Richard Biener
richard.guenther@gmail.com
Thu Feb 11 11:46:14 GMT 2021
On Tue, Feb 9, 2021 at 12:38 PM Richard Biener <rguenther@suse.de> wrote:
>
> Currently we use HOST_WIDEST_FAST_INT for the sparseset element
> type which maps to a 64bit type on 64bit hosts. That's excessive
> for the only current sparseset users which are LRA and IRA and
> which store register numbers in it which are unsigned int. The
> following changes the sparseset element type to unsigned int.
>
> This was changed (in accident?) in 0263463dd114 and the following
> just reverts that bit.
>
> Bootstrap / regtest pending on x86_64-unknown-linux-gnu, OK?
I've now verified that all callers of sparseset_alloc call it with
an int or unsigned int argument and thus I've pushed the change.
Richard.
> Thanks,
> Richard.
>
> 2021-02-09 Richard Biener <rguenther@suse.de>
>
> * sparseset.h (SPARSESET_ELT_BITS): Remove.
> (SPARSESET_ELT_TYPE): Use unsigned int.
> * fwprop.c: Do not include sparseset.h.
> ---
> gcc/fwprop.c | 1 -
> gcc/sparseset.h | 3 +--
> 2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/gcc/fwprop.c b/gcc/fwprop.c
> index 123cc228630..4b8a554e823 100644
> --- a/gcc/fwprop.c
> +++ b/gcc/fwprop.c
> @@ -28,7 +28,6 @@ along with GCC; see the file COPYING3. If not see
> #include "df.h"
> #include "rtl-ssa.h"
>
> -#include "sparseset.h"
> #include "predict.h"
> #include "cfgrtl.h"
> #include "cfgcleanup.h"
> diff --git a/gcc/sparseset.h b/gcc/sparseset.h
> index c72b4fe8aed..536d35c51af 100644
> --- a/gcc/sparseset.h
> +++ b/gcc/sparseset.h
> @@ -83,8 +83,7 @@ along with GCC; see the file COPYING3. If not see
>
> /* Data Structure used for the SparseSet representation. */
>
> -#define SPARSESET_ELT_BITS ((unsigned) HOST_BITS_PER_WIDEST_FAST_INT)
> -#define SPARSESET_ELT_TYPE unsigned HOST_WIDEST_FAST_INT
> +#define SPARSESET_ELT_TYPE unsigned int
>
> typedef struct sparseset_def
> {
> --
> 2.26.2
More information about the Gcc-patches
mailing list