In libobjc/:
2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
* ivars.c (class_addIvar): Use the 'size' argument instead of
trying to calculate it using objc_sizeof_type().
* objc/runtime.h (class_addIvar): Updated comments.
From-SVN: r167837
2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
* sendmsg.c: Reindented some code and tidied up comments. No
actual code changes.
From-SVN: r167835
2010-12-14 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/Object.h: Moved all the methods, with the exception of
-class and -isEqual:, into ...
* objc/deprecated/Object.h: here.
* Object.m: Moved all the methods, with the exception of -class
and -isEqual: into the 'Deprecated' category.
From-SVN: r167825
PR lto/46940
PR lto/44463
* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
for aliases when they are used.
* gcc.dg/lto/pr46940_0.c: New testcase.
* gcc.dg/lto/pr46940_1.c: New testcase.
From-SVN: r167822
2010-12-14 Nicola Pero <nicola.pero@meta-innovation.com>
* objects.c (object_copy): Do not #undef as we are no longer
including objc/objc-api.h.
* selector.c: Include objc/runtime.h and
objc-private/module-abi-8.h. Do not include objc/objc-api.h and
objc/encoding.h. Updated
(__objc_register_selectors_from_class): Use struct
objc_method_list * instead of MethodList_t.
(__objc_register_selectors_from_list): Use Method instead of
Method_t.
(struct objc_method_description_list): Do not define here.
(__objc_register_instance_methods_to_class): Use struct
objc_method_list * instead of MethodList_t and Method instead of
Method_t.
From-SVN: r167818
2010-12-14 Nicola Pero <nicola.pero@meta-innovation.com>
* selector.c: Reindented some code and tidied up comments. No
actual code changes.
From-SVN: r167815
PR debug/46885
* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
instead of gsi_last_nondebug_bb if bump_in_latch.
* gcc.dg/autopar/pr46885.c: New test.
From-SVN: r167801
PR tree-optimization/46909
* gimple-fold.c (and_var_with_comparison_1): Save partial
result even in the is_and case, if both partial results
are the same, return it.
(or_var_with_comparison_1): Use is_or predicate instead of
innercode == TRUTH_OR_EXPR test. Save partial result
even in the is_or case, if both partial results are the
same, return it. In the !is_or case when both partial
results are the same, return the partial result instead
of boolean_true_node.
* gcc.c-torture/execute/pr46909-1.c: New test.
* gcc.c-torture/execute/pr46909-2.c: New test.
* gcc.dg/pr46909.c: New test.
From-SVN: r167800
This time really commit
PR middle-end/45388
* decl2.c (start_objects): Do not generate collect2 recognicable name
for static ctor.
* ipa.c (cgraph_build_static_cdtor_1): Break out from ... ; add FINAL parameter.
(cgraph_build_static_cdtor): ... here.
(build_cdtor): Use cgraph_build_static_cdtor_1.
From-SVN: r167781
gcc/
PR rtl-optimization/44374
Reapply patch with fixes.
* basic-block.h (enum bb_flags): Add BB_MODIFIED.
* df-core.c (df_set_bb_dirty): Set it.
* ifcvt.c (find_memory): Remove function.
(dead_or_predicable): Use can_move_insns_across.
* df.h (can_move_insns_across): Declare function.
* cfgcleanup.c (block_was_dirty): New static variable.
(flow_find_head_matching_sequence): Test for epilogue notes.
(try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
than df_get_bb_dirty.
(try_head_merge_bb): New static function.
(try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
is set.
* df-problems.c: Include "target.h"
(df_simulate_find_uses): New static function.
(MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
(find_memory, find_memory_store): New static functions.
(can_move_insns_across): New function.
* Makefile.in (df-problems.o): Update dependencies.
gcc/testsuite/
PR rtl-optimization/44374
Reapply patch with fixes.
* gcc.target/arm/headmerge-1.c: New test.
* gcc.target/arm/headmerge-2.c: New test.
* gcc.target/i386/headmerge-1.c: New test.
* gcc.target/i386/headmerge-2.c: New test.
From-SVN: r167779