[google gcc-4_8] Remove DW_AT_GNU_addr_base from skeleton type unit DIEs

Doug Evans dje@google.com
Tue Feb 11 23:58:00 GMT 2014


On Tue, Feb 11, 2014 at 3:55 PM, Cary Coutant <ccoutant@google.com> wrote:
> Remove DW_AT_GNU_addr_base from skeleton type unit DIEs.
>
> GCC currently adds a DW_AT_GNU_addr_base attribute to skeleton type unit
> DIEs, even though it's not needed there. By removing it, we can save
> the 8 bytes that a DW_FORM_addr takes up, plus the 24 bytes that the
> corresponding relocation takes.
>
> This patch is for the google/gcc-4_8 branch. I will submit it
> for trunk when stage 1 is open.
>
> Tested with crosstool_validate.py.
>
>
> 2014-02-11  Cary Coutant  <ccoutant@google.com>
>
>         * dwarf2out.c (add_top_level_skeleton_die_attrs): Don't add
>         DW_AT_GNU_addr_base to all skeleton DIEs.
>         (dwarf2out_finish): Add it only to the skeleton comp_unit DIE.
>
>
> Index: dwarf2out.c
> ===================================================================
> --- dwarf2out.c (revision 207671)
> +++ dwarf2out.c (working copy)
> @@ -8918,7 +8918,6 @@ add_top_level_skeleton_die_attrs (dw_die
>    if (comp_dir != NULL)
>      add_skeleton_AT_string (die, DW_AT_comp_dir, comp_dir);
>    add_AT_pubnames (die);
> -  add_AT_lineptr (die, DW_AT_GNU_addr_base, debug_addr_section_label);
>  }
>
>  /* Return the single type-unit die for skeleton type units.  */
> @@ -23929,6 +23928,8 @@ dwarf2out_finish (const char *filename)
>           skeleton die attrs are added when the skeleton type unit is
>           created, so ensure it is created by this point.  */
>        add_top_level_skeleton_die_attrs (main_comp_unit_die);
> +      add_AT_lineptr (main_comp_unit_die, DW_AT_GNU_addr_base,
> +                      debug_addr_section_label);
>        (void) get_skeleton_type_unit ();
>        htab_traverse_noresize (debug_str_hash, index_string, &index);
>      }

LGTM



More information about the Gcc-patches mailing list