This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][GOLD] Use a single definition of Section_id and replace Input_section_specifier with Section_id


Hi,

     This patch remove the defintions of Section_id and
Section_is_hash in gc.h and icf.h and put a single definition of these
in object.h.  I also remove the Input_section_specifier class, which
is similar to Section_id but has a slower hash function.   Some users
of Input_section_specifier require const object pointers.  So I also
define Const_section_id and Const_section_id_hash.  Previously we used
Input_section_specifier in maps for look-up only.  So it is safe to
replace those uses with no problem in repeatability.

-Doug

2010-01-19  Doug Kwan  <dougkwan@google.com>

        * arm.cc (Target_arm::Arm_input_section_map): Change key type from
        Input_section_specifier to Section_id.
        (Target_arm::new_arm_input_section: Adjust code for change of key
        type.
        (Target_arm::find_arm_input_section): Ditto.
        * gc.h (object.h): Include for Section_id nand Section_id_hash.
        (Section_id): Remove.
        (Garbage_collection::Section_id_hash): Remove.
        * icf.h (object.h): Include for Section_id nand Section_id_hash.
        (Section_id): Remove.
        (Icf::Section_id_hash): Remove.
        * object.h (Section_id, Const_section_id, Section_id_hash,
        Const_section_id_hash): New type definitions.
        * output.cc (Output_section::add_relaxed_input_section): Change to
        use Const_section_id instead of Input_section_specifier as key type.
        (Output_section::add_merge_input_section): Ditto.
        (Output_section::build_relaxation_map): Change to use Section_id
        instead of Input_section_specifier as key type.
        (Output_section::convert_input_sections_in_list_to_relaxed_sections):
        Ditto.
        (Output_section::convert_input_sections_to_relaxed_sections): Change
        to use Const_section_id instead of Input_section_specifier as key type.
        (Output_section::find_merge_section): Ditto.
        (Output_section::find_relaxed_input_section): Ditto.
        * output.h (Input_section_specifier): Remove class.
        (Output_section::Output_section_data_by_input_section_map): Change
        key type to Const_section_id.
        (Output_section::Output_relaxed_input_section_by_input_section_map):
        Ditto.
        (Output_section::Relaxation_map): Change key type to Section_id.

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]