This patch is for the google/gcc-4_6 branch.
commit330c6995159c3e080980bdb59c238e739e9cc2e8
authorccoutant <ccoutant@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Jun 2012 20:17:12 +0000 (4 20:17 +0000)
committerccoutant <ccoutant@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Jun 2012 20:17:12 +0000 (4 20:17 +0000)
tree8176d104969b8b6087acdd50faeb8146ab3be1ad
parent142b22b7bfdba4c00a6c872bdcc7574816651362
This patch is for the google/gcc-4_6 branch.

Import pending patch from upstream to generate DW_AT_high_pc as a constant
offset relative to DW_AT_low_pc.  When splitting DWARF info, generate new
format for location list entries using a start symbol and a length.
Together, these changes reduce the size of the .debug_addr section by half.

Tested with GCC test suite and validate_failures.py.

include/

2012-06-04  Cary Coutant  <ccoutant@google.com>

* dwarf2.h (enum dwarf_location_list_entry_type): New enum.

gcc/

2012-06-04  Mark Wielaard  <mjw@redhat.com>
    Cary Coutant  <ccoutant@google.com>

* dwarf2out.c (enum dw_val_class): Add dw_val_class_high_pc.
(struct dw_loc_list_struct): Remove end_index.
(add_AT_low_high_pc): New function.
(AT_lbl): Handle dw_val_class_high_pc.
(print_die): Likewise.
(attr_checksum): Likewise.
(attr_checksum_ordered): Likewise.
(same_dw_val_p): Likewise.
(size_of_die): Likewise.
(value_format): Likewise.
(new_loc_list): Remove end_index.
(output_loc_list): Use new DW_LLE_start_length_entry format.
(output_die): Handle dw_val_class_high_pc.
(gen_subprogram_die): Use add_AT_low_high_pc.
(add_high_low_attributes): Likewise.
(compare_loc_operands): Relax irrelevant assertion when splitting
DWARF.
(index_location_lists): Remove end_index.
(dwarf2out_finish): Use add_AT_low_high_pc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/google@188206 138bc75d-0d04-0410-961f-82ee72b054a4
gcc-4_6/gcc/ChangeLog.google-4_6
gcc-4_6/gcc/dwarf2out.c
gcc-4_6/include/ChangeLog.google-4_6
gcc-4_6/include/dwarf2.h