diff options
author | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-07 21:37:43 +0000 |
---|---|---|
committer | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-07 21:37:43 +0000 |
commit | 23433d7293fea64ed743db3193d07473f2ac789f (patch) | |
tree | b036b0c810fc469ae0e5ec3f6d1436e32e0ef493 /gcc/target-def.h | |
parent | dd821e087f62d2d60874f931b166b4f14bf2b99e (diff) | |
download | gcc-23433d7293fea64ed743db3193d07473f2ac789f.tar.gz |
ChangeLog:
* configure.ac (--enable-lto): Add x86_64-apple-darwin* as
a platform that supports LTO.
* configure: Regenerate.
gcc/ChangeLog:
* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
lto-macho as lto_binary_reader.
* target.h (struct gcc_target): New hooks lto_start and lto_end.
* target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
* cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
in lto_start and lto_end calls.
(is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
magic numbers.
(scan_prog_file): Update is_elf_or_coff call.
* doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
* collect2.c (main): Fix enum comparison.
* config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
Add prototypes.
* darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
* darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
and TARGET_ASM_LTO_END.
* darwin.c: Include obstack.h and lto-streamer.h.
(lto_section_names_offset, lto_section_names_obstack,
lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
global variables.
(LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
(darwin_asm_lto_start): New function. Redirect output to asm_out_file
to a temporary file.
(darwin_asm_lto_end): New function. Restore asm_out_file.
(darwin_asm_named_section): For LTO sections, replace the name with
the offset of the section name in a string table, and build this
table.
(darwin_file_start): Initialize global vars for LTO support.
(darwin_file_end): If output to asm_out_file was redirected, append it
to the proper asm_out_file here. Add the section names section.
lto/ChangeLog:
* lto.h (struct lto_file_struct): Document offset member.
* lto-endian.h: New file.
* lto-macho.h: New file.
* lto-macho.c: New file.
* Make-lang.in: Add rule for lto-macho.o.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159173 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target-def.h')
-rw-r--r-- | gcc/target-def.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/target-def.h b/gcc/target-def.h index 1f60e52f30d..72cf9307679 100644 --- a/gcc/target-def.h +++ b/gcc/target-def.h @@ -204,6 +204,14 @@ #define TARGET_ASM_FILE_END hook_void_void #endif +#ifndef TARGET_ASM_LTO_START +#define TARGET_ASM_LTO_START hook_void_void +#endif + +#ifndef TARGET_ASM_LTO_END +#define TARGET_ASM_LTO_END hook_void_void +#endif + #ifndef TARGET_ASM_CODE_END #define TARGET_ASM_CODE_END hook_void_void #endif @@ -296,6 +304,8 @@ TARGET_ASM_CAN_OUTPUT_MI_THUNK, \ TARGET_ASM_FILE_START, \ TARGET_ASM_FILE_END, \ + TARGET_ASM_LTO_START, \ + TARGET_ASM_LTO_END, \ TARGET_ASM_CODE_END, \ TARGET_ASM_EXTERNAL_LIBCALL, \ TARGET_ASM_MARK_DECL_PRESERVED, \ |