David Edelsohn via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
>     -fdata-sections places data symbols into their own, unique, named 
> sections.
>     -fsection-anchors create an anchor to access neighboring symbols
>     within a section.
>
>     When both are enabled, a separate section anchor is created for each
>     symbol, which provides no benefit.
>
>     This patch updates the common gating function use_blocks_for_decl_p() to
>     return false if -fdata-sections is enabled.  Constants still can
> be placed into
>     object blocks because constants use a separate, different gating function.
>
> Bootstrapped on powerpc-ibm-aix7.2.3.0
>
> Okay?

Yes, thanks.

Richard

> Thanks, David
>
>     gcc/ChangeLog:
>
>             * varasm.c (use_blocks_for_decl_p): Don't use section anchors
>             for VAR_DECLs if -fdata-sections enabled.
>
> diff --git a/gcc/varasm.c b/gcc/varasm.c
> index 3ecf9e039bb..ac256ef65e5 100644
> --- a/gcc/varasm.c
> +++ b/gcc/varasm.c
> @@ -1340,6 +1340,12 @@ use_blocks_for_decl_p (tree decl)
>  {
>    struct symtab_node *snode;
>
> +  /* Don't create object blocks if each DECL is placed into a separate
> +     section because that will uselessly create a section anchor for
> +     each DECL.  */
> +  if (flag_data_sections)
> +    return false;
> +
>    /* Only data DECLs can be placed into object blocks.  */
>    if (!VAR_P (decl) && TREE_CODE (decl) != CONST_DECL)
>      return false;

Reply via email to