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] | |
Hi,
I committed the Identical Code Folding (ICF) patch to gold.
Thanks,
-Sriraman.
2009-08-05 Sriraman Tallam <tmsriram@google.com>
* icf.cc: New file.
* icf.h: New file.
* Makefile.am (CCFILES): Add icf.cc.
(HFILES): Add icf.h
* Makefile.in: Regenerate.
* dynobj.h (Sized_dynobj::do_section_entsize): New function.
* gc.h (gc_process_relocs): Populate lists used by icf to contain
section, symbol and addend information for the relocs.
* gold.cc (queue_middle_tasks): Call identical code folding.
* gold.h: Add defines for multimap.
* layout.cc (Layout::create_symtab_sections): Add symtab as parameter
to the call of finalize_local_symbols.
* main.cc (main): Create object of class Icf.
* object.cc (Sized_relobj::do_layout): Allow this function to be
called twice during icf.
(Sized_relobj::do_finalize_local_symbols): Fold symbols corresponding
to sections marked as identical by icf.
(Sized_relobj::do_section_flags): Get section_flags from Symbols_data
when available.
(Sized_relobj::do_section_entsize): New function.
* object.h (Object::section_entsize): New function.
(Object::do_section_entsize): New pure virtual function.
(Relobj::finalize_local_symbols): Add new parameter.
(Relobj::do_section_entsize): New function.
* options.h (General_options::icf): New option.
(General_options::icf_iterations): New option.
(General_options::print_icf_sections): New option.
* plugin.cc (Sized_pluginobj::do_section_entsize): New function.
* plugin.h (Sized_pluginobj::do_section_entsize): New function.
* reloc.cc (Read_relocs::run): Delay scanning relocs when doing
icf.
* symtab.cc (Symbol_table::is_section_folded): New function.
(Symbol_table::sized_finalize_symbol): Fold symbols corresponding
to sections marked as identical by icf.
* symtab.h (Symbol_table::set_icf): New function.
(Symbol_table::icf): New function.
(Symbol_table::is_section_folded): New function.
(Symbol_table::icf_): New data member.
* target-reloc.h (relocate_section): Ignore sections folded by icf.
* testsuite/Makefile.am: Add commands to build icf_test.
* testsuite/Makefile.in: Regenerate.
* testsuite/icf_test.sh: New file.
* testsuite/icf_test.cc: New file.
Attachment:
icf_patch
Description: Binary data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |