[4.5.1,PR42776] Backport LTO-COFF implementation.
Richard Guenther
richard.guenther@gmail.com
Sat Jun 12 11:57:00 GMT 2010
On Sat, Jun 12, 2010 at 10:17 AM, Richard Guenther
<richard.guenther@gmail.com> wrote:
> On Sat, Jun 12, 2010 at 5:05 AM, Dave Korn <dave.korn.cygwin@gmail.com> wrote:
>>
>> Hi list,
>>
>> The attached patch backports the LTO-COFF implementation from mainline to
>> 4.5 branch, as we discussed at the time it was committed to trunk.
>>
>> ChangeLog:
>>
>> Backport from mainline:
>> 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
>>
>> PR lto/42776
>> * configure.ac (--enable-lto): Refactor handling so libelf tests
>> are only performed inside then-clause of ACX_ELF_TARGET_IFELSE,
>> and allow LTO to be explicitly enabled on non-ELF platforms that
>> are known to support it inside else-clause.
>> * configure: Regenerate.
>>
>> gcc/ChangeLog:
>>
>> Backport from mainline:
>> 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
>>
>> PR lto/42776
>> * configure.ac (gcc_cv_as_section_has_align): Set if installed
>> binutils supports extended .section directive needed by LTO, or
>> warn if older binutils found.
>> (LTO_BINARY_READER): New AC_SUBST'd variable.
>> (LTO_USE_LIBELF): Likewise.
>> * config.gcc (lto_binary_reader): New target-specific configure
>> variable.
>> * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
>> (LTO_USE_LIBELF): Likewise.
>> * configure: Regenerate.
>> * collect2.c (is_elf): Rename from this ...
>> (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
>> object files in addition to ELF-formatted ones.
>> (scan_prog_file): Caller updated. Also allow for LTO info marker
>> symbol to be prefixed or not by an extra underscore.
>> * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
>> * config/i386/winnt.c: Also #include lto-streamer.h
>> (i386_pe_asm_named_section): Specify 1-byte section alignment for
>> LTO named sections.
>> (i386_pe_asm_output_aligned_decl_common): Add comment.
>> (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
>>
>> gcc/lto/ChangeLog:
>>
>> Backport from mainline:
>> 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
>>
>> PR lto/42776
>> * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
>> hardcoding 'lto-elf.o'.
>> ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
>> * lto-coff.h: New file.
>> * lto-coff.c: Likewise.
>>
>> 2010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
>>
>> * lto.h (lto_elf_file_open): Rename prototype from this ...
>> (lto_obj_file_open): ... to this.
>> (lto_elf_file_close): Likewise ...
>> (lto_obj_file_close): ... and likewise.
>> (lto_elf_build_section_table): Likewise ...
>> (lto_obj_build_section_table): ... and likewise.
>> (lto_elf_begin_section): Likewise ...
>> (lto_obj_begin_section): ... and likewise.
>> (lto_elf_append_data): Likewise ...
>> (lto_obj_append_data): ... and likewise.
>> (lto_elf_end_section): Likewise ...
>> (lto_obj_end_section): ... and likewise.
>> * lto.c (lto_file_read): Update references to the above.
>> (lto_wpa_write_files): Likewise.
>> (lto_read_all_file_options): Likewise.
>> (read_cgraph_and_symbols): Likewise.
>> * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
>> (LANG_HOOKS_APPEND_DATA): Likewise.
>> (LANG_HOOKS_END_SECTION): Likewise.
>> * lto-elf.c (lto_elf_file_open): Rename from this ...
>> (lto_obj_file_open): ... to this, updating any references.
>> (lto_elf_file_close): Likewise ...
>> (lto_obj_file_close): ... and likewise.
>> (lto_elf_build_section_table): Likewise ...
>> (lto_obj_build_section_table): ... and likewise.
>> (lto_elf_begin_section): Likewise ...
>> (lto_obj_begin_section): ... and likewise.
>> (lto_elf_append_data): Likewise ...
>> (lto_obj_append_data): ... and likewise.
>> (lto_elf_end_section): Likewise ...
>> (lto_obj_end_section): ... and likewise.
>>
>>
>> Bootstrapped and tests running on i686-pc-cygwin; ok for branch if (when) no
>> regressions?
>
> Ok. If you did the backport by applying the respective trunk revisions can
> you after the commit diff the 4.5 variants of the new files to the trunk
> variant to see if there are other fixes worth backporting?
>
> Can you also post your testresults to gcc-testresults?
Oh, and add an entry to gcc-4.5/changes.html to the section for 4.5.1.
> Thanks,
> Richard.
>
>> cheers,
>> DaveK
>>
>>
>>
>
More information about the Gcc-patches
mailing list