aboutsummaryrefslogtreecommitdiff
path: root/gold/stringpool.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-01-01Copyright update for binutilsAlan Modra1-1/+1
2015-10-28Fix empty string alignment in .rodata.str*Marcin Koƛcielnicki1-3/+4
gold/ PR gold/18959 * stringpool.cc (Stringpool_template::new_key_offset): Align all strings, even zero-length. (Stringpool_template::set_string_offsets):
2015-03-21Fix bug when optimizing string pools of aligned strings.Cary Coutant1-1/+3
Tail optimization of string pools (enabled when linker is run with -O2 or greater) should not be done when the section alignment is greater than the size of the characters in the strings; otherwise, unaligned strings may result. gold/ PR gold/18010 * stringpool.cc (Stringpool_template): Don't optimize if section alignment is greater than sizeof(char).
2015-01-02ChangeLog rotatation and copyright year updateAlan Modra1-1/+1
2014-03-05Update copyright yearsAlan Modra1-1/+1
2013-12-19 * stringpool.cc (Stringpool_template::reserve): AddIan Lance Taylor1-2/+5
HAVE_UNORDERED_MAP case. * stringpool.cc (Stringpool_template::print_stats): Likewise.
2013-05-01gold/Cary Coutant1-1/+2
* stringpool.cc (Stringpool_template::new_key_offset): Fix uninitialized warning.
2013-04-292013-04-29 Alexander Ivchenko <alexander.ivchenko@intel.com>Cary Coutant1-6/+9
gold/ * output.cc (Output_section::add_merge_input_section): Allow to merge sections if the alignment is more than character size. * merge.h (Output_merge_string::Output_merge_string): Remove assert. * merge.cc (Output_merge_string<Char_type>::do_add_input_section): Count only not-null strings. Check the alignment of strings. * stringpool.h (Stringpool_template<Stringpool_char>::Stringpool_template): Add alignment as the argument. (Stringpool_template<Stringpool_char>::addralign_): New class member. * stringpool.cc (Stringpool_template<Stringpool_char>::new_key_offset): Align non-zero length strings according to the addralign_. (Stringpool_template<Stringpool_char>::set_string_offsets): Updating offsets according to the given alignment. * testsuite/Makefile.am (text_section_grouping): Test if string literals are getting merged. * testsuite/Makefile.in: Regenerate. * testsuite/merge_string_literals_1.c: New file. * testsuite/merge_string_literals_2.c: Ditto. * testsuite/merge_string_literals.sh: Ditto.
2010-08-25 * archive.cc: Formatting fixes: Remove whitespace betweenNick Clifton1-2/+2
typename and following asterisk. Remove whitespace between function name and opening parenthesis. * archive.h: Likewise. * arm.cc: Likewise. * attributes.cc: Likewise. * attributes.h: Likewise. * common.cc: Likewise. * copy-relocs.cc: Likewise. * dirsearch.h: Likewise. * dynobj.cc: Likewise. * ehframe.cc: Likewise. * ehframe.h: Likewise. * expression.cc: Likewise. * fileread.cc: Likewise. * fileread.h: Likewise. * gc.h: Likewise. * gold-threads.cc: Likewise. * gold.cc: Likewise. * i386.cc: Likewise. * icf.h: Likewise. * incremental-dump.cc: Likewise. * incremental.cc: Likewise. * layout.cc: Likewise. * layout.h: Likewise. * main.cc: Likewise. * merge.cc: Likewise. * merge.h: Likewise. * object.cc: Likewise. * object.h: Likewise. * options.cc: Likewise. * options.h: Likewise. * output.cc: Likewise. * output.h: Likewise. * plugin.cc: Likewise. * plugin.h: Likewise. * powerpc.cc: Likewise. * reloc.cc: Likewise. * script-c.h: Likewise. * script-sections.cc: Likewise. * script.cc: Likewise. * stringpool.cc: Likewise. * symtab.cc: Likewise. * symtab.h: Likewise. * target.cc: Likewise. * timer.cc: Likewise. * timer.h: Likewise. * version.cc: Likewise. * x86_64.cc: Likewise.
2010-08-03 * merge.cc (Output_merge_string::do_add_input_section): Count stringsCary Coutant1-22/+0
to reserve space in merged_strings vector. Keep total input size for stats. (Output_merge_string::do_print_merge_stats): Print total input size. * merge.h (Output_merge_string): Add input_size_ field. * stringpool.cc (Stringpool_template::string_length): Move implementations out of Stringpool_template class and place in stringpool.h. * stringpool.h (string_length): Move out of Stringpool_template.
2010-03-192010-03-19 Doug Kwan <dougkwan@google.com>Doug Kwan1-4/+1
* arm.cc (Stub_table::Stub_table): Initialize new data members Stub_table::reloc_stubs_size_ and Stub_table::reloc_stubs_addralign_. (Stub_table::add_reloc_stub): Assign stub offset and update Stub_table::reloc_stubs_size_ and Stub_table::reloc_stubs_addralign_. (Stub_table::reloc_stubs_size_, Stub_table::reloc_stubs_addralign_): New data members. (Stub_table::update_data_size_and_addralign): Use Stub_table::reloc_stubs_size_ and Stub_table::reloc_stubs_addralign_ instead of going over all reloc stubs. (Stub_table::finalize_stubs): Do not assign reloc stub offsets. * stringpool.cc (Stringpool_template::Stringpool_template): Initialize Stringpool_template::offset_ to size of Stringpool_char. (Stringpool_template::new_key_offset): Remove code to initialize Stringpool_template::offset_. * stringpool.h (Stringpool_template::set_no_zero_null): Set Stringpool_template::offset_ to zero.
2010-03-162010-03-15 Doug Kwan <dougkwan@google.com>Doug Kwan1-16/+25
* stringpool.cc (Stringpool_template::Stringpool_template): Initialize offset_. (Stringpool_template::new_key_offset): New method. (Stringpool_template::add_string): Assign offsets when adding new strings. (Stringpool_template::set_string_offsets): Do not set string offsets when not optimizing. * stringpool.h (Chunked_vector::Chunked_vector): Initialize data member size_. (Chunked_vector::clear): Clear size_. (Chunked_vector::reserve): Call reserve method of all Element_vectors. (Chunked_vector::size): Return size_. (Chunked_vector::push_back): Use size_ to find insert position. (Chunked_vector::size_): New data member. (Stringpool_template::set_no_zero_null): Assert string set is empty. (Stringpool_template::new_key_offset): New method declaration. (Stringpool_template::offset_): New data member.
2009-10-212009-10-21 Doug Kwan <dougkwan@google.com>Doug Kwan1-10/+1
* arm.cc: Update copyright comments. (Target_arm): New forward class template declaration. (Arm_address): New type. (ARM_MAX_FWD_BRANCH_OFFSET, ARM_MAX_BWD_BRANCH_OFFSET, THM_MAX_FWD_BRANCH_OFFSET, THM_MAX_BWD_BRANCH_OFFSET, THM2_MAX_FWD_BRANCH_OFFSET, THM2_MAX_BWD_BRANCH_OFFSET): New constants. (Insn_template): Same. (DEF_STUBS): New macro. (Stub_type): New enum type. (Stub_template): New class definition. (Stub): Same. (Reloc_stub): Same. (Stub_factory): Same. (Target_arm::Target_arm): Initialize may_use_blx_ and should_force_pic_veneer_. (Target_arm::may_use_blx, Target_arm::set_may_use_blx, Target_arm::should_force_pic_veneer, Target_arm::set_should_force_pic_veneer, Target_arm::using_thumb2, Target_arm::using_thumb_only, Target_arm:;default_target): New method defintions. (Target_arm::may_use_blx_, Target_arm::should_force_pic_veneer_): New data member declarations. (Insn_template::size, Insn_template::alignment): New method defintions. (Stub_template::Stub_template): New method definition. (Reloc_stub::Key::name, Reloc_stub::stub_type_for_reloc, Reloc_stub::do_fixed_endian_write, Reloc_stub::do_write): Same. (Stub_factory::Stub_factory): New method definition. * gold.h (string_hash): New template. * output.h (Input_section_specifier::hash_value): Use gold::string_hash. (Input_section_specifier::string_hash): Remove. * stringpool.cc (Stringpool_template::string_hash): Use gold::string_hash.
2009-06-23 PR 10133Ian Lance Taylor1-2/+4
* stringpool.h (class Stringpool_template): Add optimize_ field. (Stringpool_template::set_optimize): New function. * stringpool.cc (Stringpool_template::Stringpool_template): Initialize optimize_ field. (Stringpool_template::set_string_offsets): Test local optimize fild rather than parameter. * layout.cc (Layout::Layout): Call set_optimize on the section name stringpool.
2008-07-24 * stringpool.cc (Stringpool_template::add_with_length): Set key toIan Lance Taylor1-5/+6
array size plus one. (Stringpool_template::set_string_offsets): Subtract one from key before using it as an array index. (Stringpool_template::get_offset_with_length): Likewise. (Stringpool_template::write_to_buffer): Likewise. * stringpool.h (Stringpool_template::get_offset_from_key): Likewise.
2008-03-13Update copyright years. Update language files.Ian Lance Taylor1-1/+1
2008-02-28From Craig Silverstein: Have Parameters point to General_options.Ian Lance Taylor1-1/+1
2008-02-26From Craig Silverstein: rename option functions for future optionIan Lance Taylor1-1/+1
handling rewrite.
2007-12-22Use a simpler hash function.Ian Lance Taylor1-21/+9
2007-12-19Move Stringpool offsets into a chunked_vector indexed by keys.Ian Lance Taylor1-40/+34
2007-12-19Use string length when available when calling Stringpool. CompareIan Lance Taylor1-21/+29
pointers first when looking up Stringpool entries.
2007-12-18Add section_size_type and section_offset_type, use them to replace aIan Lance Taylor1-10/+10
lot of instances of off_t.
2007-12-14From Craig Silverstein: size hash tables to avoid resizing.Ian Lance Taylor1-1/+29
2007-12-05Rework Stringpool to not compute the hash code twice when adding a newIan Lance Taylor1-87/+127
string.
2007-12-05Stringpool stats. Also make Symbol_table support functions inline.Ian Lance Taylor1-0/+18
2007-12-01Add casts to avoid warnings.Ian Lance Taylor1-2/+3
2007-12-01Compress all debug sections.Ian Lance Taylor1-2/+2
2007-11-30From Craig Silverstein: Add support for compressing .debug_str section.Ian Lance Taylor1-9/+33
2007-11-09Generate a complete exception frame header. Discard duplicateIan Lance Taylor1-1/+1
exception frame information.
2007-10-12Add an option for Stringpools to not copy strings.Ian Lance Taylor1-6/+16
2007-10-05From Andrew Chatham: fix bug in 64-bit hash.Ian Lance Taylor1-1/+1
2007-09-22Add licensing text to every source file.Ian Lance Taylor1-0/+20
2007-09-21From Craig Silverstein: Only sort for suffixes with -O2.Ian Lance Taylor1-30/+54
2007-09-21Set Stringpool zero_null option via a call, not a default constructorIan Lance Taylor1-2/+2
argument.
2007-09-18Compute string lengths before sorting. From Craig Silverstein.Ian Lance Taylor1-22/+28
2007-05-16Add support for SHF_MERGE sections.Ian Lance Taylor1-65/+157
2006-11-29Hash tables, dynamic section, i386 PLT, gold_assert.Ian Lance Taylor1-4/+14
2006-11-07Rework stringpool and hash tables so that we always generate the sameIan Lance Taylor1-18/+51
output regardless of randomize_va_space.
2006-09-29Snapshot. Now able to produce a minimal executable which actuallyIan Lance Taylor1-11/+132
runs.
2006-09-26gcc 4.1.0 portability fixes.Ian Lance Taylor1-1/+1
2006-09-21New drop, with first cut of section layout code.Ian Lance Taylor1-1/+1
2006-08-18Another snapshot of the current state of the sources. Gets to theIan Lance Taylor1-0/+130
point of symbol resolution and can now issue a multiple definition error. Also added target selection infrastructure.