OSDN Git Service

make ObjC do LTO.
authoriains <iains@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Jul 2010 00:22:35 +0000 (00:22 +0000)
committeriains <iains@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Jul 2010 00:22:35 +0000 (00:22 +0000)
commitc4796e8b8649d96c83c98806f9e39dd729b23df1
tree4629b5a86dbf043bfa8fdd1c7e561c7fc9ec54be
parent9c6bb1413068a52f7d8fe3f89bbd1d758f09fd39
make ObjC do LTO.

gcc/
PR objc/44140
* config/darwin.c (output_objc_section_asm_op): Save and restore
section when outputting ObjC section list.

testsuite/

PR objc/44140
* objc.dg/lto/trivial-1_0.m: New.
* objc.dg/lto/lto.exp: New.
* obj-c++.dg/lto/trivial-1_0.mm: New.
* obj-c++.dg/lto/lto.exp: New.
* objc.dg/symtab-1.m: Adjust sizes.
* objc.dg/image-info.m: Do not run for gnu-runtime.

gcc/objc/

PR objc/44140
* objc-act.c: build_objc_string_decl() remove declaration.
(finish_var_decl): Remove forcing of var output and marking
as "Used".
(init_def_list): Use integer_zero_node.
(init_objc_symtab): Use integer_zero_node, make the short
integer type specific on relevant nodes.
(generate_objc_symtab_decl): Remove call to
forward_declare_categories().  Use null_pointer_node where
appropriate.
(build_module_descriptor): Comment and mark this item as
DECL_PRESERVE_P.
(generate_static_references): Use gcc_unreachable instead of
abort ().
(diagnose_missing_method): New.
(build_next_selector_translation_table): New.
(build_gnu_selector_translation_table): New.
(add_objc_string): Merge code from build_objc_string_decl...
... and delete build_objc_string_decl().
(generate_dispatch_table): Make integer types explicit.
(generate_category): Pass implent and arrange for the data
to be extracted within the routine.  Do not start new vars,
but finish the ones collcted during parsing.
(generate_shared_structures): Likewise.
(finish_objc):  Reorder code so that we finish variables before
referencing them.  Save the global data before calling meta-data
creation routines, and pass the current reference to the two
main routines.  Only call generate_objc_image_info () for the
NeXT runtime.
(generate_classref_translation_entry): Comment on and make this
item DECL_PRESERVE_P.
(handle_class_ref): Use varpool interfaces, comment on and make
this item DECL_PRESERVE_P.
(handle_impent): Likewise.
(generate_objc_image_info): Only generate when the content is
non-zero.  Make integer types explict.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162030 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/darwin.c
gcc/objc/ChangeLog
gcc/objc/objc-act.c
gcc/testsuite/ChangeLog
gcc/testsuite/obj-c++.dg/lto/lto.exp [new file with mode: 0644]
gcc/testsuite/obj-c++.dg/lto/trivial-1_0.mm [new file with mode: 0644]
gcc/testsuite/objc.dg/image-info.m
gcc/testsuite/objc.dg/lto/lto.exp [new file with mode: 0644]
gcc/testsuite/objc.dg/lto/trivial-1_0.m [new file with mode: 0644]
gcc/testsuite/objc.dg/symtab-1.m