Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
gold/
PR gold/18959
* stringpool.cc (Stringpool_template::new_key_offset): Align all
strings, even zero-length.
(Stringpool_template::set_string_offsets):
|
|
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).
|
|
|
|
|
|
HAVE_UNORDERED_MAP case.
* stringpool.cc (Stringpool_template::print_stats): Likewise.
|
|
* stringpool.cc (Stringpool_template::new_key_offset): Fix
uninitialized warning.
|
|
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.
|
|
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.
|
|
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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
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.
|
|
|
|
|
|
handling rewrite.
|
|
|
|
|
|
pointers first when looking up Stringpool entries.
|
|
lot of instances of off_t.
|
|
|
|
string.
|
|
|
|
|
|
|
|
|
|
exception frame information.
|
|
|
|
|
|
|
|
|
|
argument.
|
|
|
|
|
|
|
|
output regardless of randomize_va_space.
|
|
runs.
|
|
|
|
|
|
point of symbol resolution and can now issue a multiple definition
error. Also added target selection infrastructure.
|