Jakub Jelinek [Sun, 2 Jan 2011 17:09:08 +0000 (18:09 +0100)]
re PR tree-optimization/47140 (error: conversion of register to a different size)
PR tree-optimization/47140
* tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
to bit_value_binop.
Jakub Jelinek [Sun, 2 Jan 2011 17:07:15 +0000 (18:07 +0100)]
re PR rtl-optimization/47028 (gcc.dg/tree-ssa/tailrecursion-[57].c FAIL with -foptimize-sibling-calls -fno-forward-propagate -fno-tree-copy-prop -fno-tree-dominator-opts)
PR rtl-optimization/47028
* cfgexpand.c (gimple_expand_cfg): Insert entry edge
insertions after parm_birth_insn instead of at the beginning
of first bb.
Eric Botcazou [Fri, 31 Dec 2010 18:19:33 +0000 (18:19 +0000)]
decl.c (substitute_in_type): Do not deal with LANG_TYPE, METHOD_TYPE or OFFSET_TYPE.
* gcc-interface/decl.c (substitute_in_type): Do not deal with
LANG_TYPE, METHOD_TYPE or OFFSET_TYPE.
* gcc-interface/utils.c (handle_vector_size_attribute): Do not deal
with METHOD_TYPE or OFFSET_TYPE.
Ken Werner [Fri, 31 Dec 2010 13:25:33 +0000 (13:25 +0000)]
sync.md (sync_clobber, [...]): New code attribute.
gcc/
2010-12-15 Ken Werner <ken.werner@de.ibm.com>
* config/arm/sync.md (sync_clobber, sync_t2_reqd): New code attribute.
(arm_sync_old_<sync_optab>si, arm_sync_old_<sync_optab><mode>): Use
the sync_clobber and sync_t2_reqd code attributes.
* config/arm/arm.c (arm_output_sync_loop): Reverse the operation if
the t2 argument is NULL.
Thomas Koenig [Fri, 31 Dec 2010 11:32:16 +0000 (11:32 +0000)]
re PR fortran/47065 (Replace trim(a) by a(1:len_trim(a)))
2010-12-31 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/47065
* frontend-passes.c (count_arglist): Static variable to
count the nesting of argument lists.
(optimize_code): Set count_arglist to 1 if within a call
statement, to 0 otherwise.
(optimize_trim): New function.
(optimize_expr): Adjust count_arglist. Call optimize_trim.
2010-12-31 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/47065
* gfortran.dg/trim_optimize_3.f90: New test.
* gfortran.dg/trim_optimize_4.f90: New test.
Janus Weil [Fri, 31 Dec 2010 10:08:17 +0000 (11:08 +0100)]
re PR fortran/46971 ([OOP] ICE on long class names)
2010-12-31 Janus Weil <janus@gcc.gnu.org>
PR fortran/46971
* gfortran.h (gfc_hash_value): Add prototype.
* class.c (get_unique_type_string): Check if proc_name is present and
make sure string contains an underscore.
(get_unique_hashed_string): New function which creates a hashed string
if the given unique string is too long.
(gfc_hash_value): Moved here from decl.c, renamed and simplified.
(gfc_build_class_symbol, gfc_find_derived_vtab): Use hashed strings.
* decl.c (hash_value): Moved to class.c.
(gfc_match_derived_decl): Renamed 'hash_value'.
Nicola Pero [Thu, 30 Dec 2010 22:02:09 +0000 (22:02 +0000)]
In gcc/objc/: 2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
lists. Check them two-ways to fix comparisons when one protocol
implements the other one, or when one list contains duplicated
protocols.
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Thu, 30 Dec 2010 18:26:56 +0000 (18:26 +0000)]
In gcc/objc/: 2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_method): When emitting an error because a
method with the same name but conflicting types is found in the
same class or category interface, print a note with the location
of the original method. Also, improved the error message to
clearly state that the conflict is due to conflicting types, and
produce it for protocols as well. Emit an error if two identical
methods are declared in a protocol, but one is @required and the
other one is @optional. When
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
Ulrich Weigand [Thu, 30 Dec 2010 13:28:05 +0000 (13:28 +0000)]
emit-rtl.c (set_mem_attributes_minus_bitpos): Explicitly derive default values from MEM mode if no memory attributes are present.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Explicitly derive
default values from MEM mode if no memory attributes are present.
Do not use mode alignment, even on STRICT_ALIGNMENT targets, when
called with an expression (not a type).
H.J. Lu [Thu, 30 Dec 2010 13:13:13 +0000 (13:13 +0000)]
Short circuit if upper 128bits are unchanged in the block.
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (upper_128bits_state): Remove comments.
(block_info_def): Add unchanged.
(move_or_delete_vzeroupper_2): Short circuit if upper 128bits
are unchanged in the block.
H.J. Lu [Thu, 30 Dec 2010 13:12:02 +0000 (13:12 +0000)]
Repeat processing all basic blocks for vzeroupper optimization.
gcc/
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519
* config/i386/i386.c (block_info_def): Remove referenced, count
and rescanned.
(move_or_delete_vzeroupper_2): Updated.
(move_or_delete_vzeroupper_1): Rewritten to avoid recursive call.
(rescan_move_or_delete_vzeroupper): Removed.
(move_or_delete_vzeroupper): Repeat processing all basic blocks
until no basic block state is changed to used at exit.
Nicola Pero [Thu, 30 Dec 2010 08:59:29 +0000 (08:59 +0000)]
In gcc/objc/: 2010-12-30 Nicola Pero <nicola@nicola.brainstorm.co.uk>
In gcc/objc/:
2010-12-30 Nicola Pero <nicola@nicola.brainstorm.co.uk>
* objc-act.c (start_class): Warn when a class attribute is
ignored.
(objc_declare_protocols): Warn when a protocol attribute in a
protocol forward-declaration is ignored.
(start_protocol): Warn when a protocol attribute is ignored.
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Wed, 29 Dec 2010 22:59:46 +0000 (22:59 +0000)]
In gcc/objc/: 2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_set_method_opt): Tidy up error messages. In
particular, explicitly mention whether the error is due to the
@optional or @required keyword instead of mentioning
"@optional/@required".
In gcc/testsuite/:
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Wed, 29 Dec 2010 21:52:00 +0000 (21:52 +0000)]
In gcc/objc/: 2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47118
* objc-act.c (objc_build_synchronized): Check the argument of
@synchronized and emit an appropriate error if it is not a valid
Objective-C object. Deal gracefully with that case. Updated
comments and variable names.
In gcc/testsuite/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
Thomas Koenig [Wed, 29 Dec 2010 14:51:44 +0000 (14:51 +0000)]
frontend-passes.c (gfc_code_walker): Handle expressions in EXEC_CALL, EXEC_ASSIGN_CALL and EXEC_CALL_PPC.
2010-12-29 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes.c (gfc_code_walker): Handle expressions
in EXEC_CALL, EXEC_ASSIGN_CALL and EXEC_CALL_PPC.
Separate cases in switch statements by blank lines.
2010-12-29 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfortran.dg/character_comparison_7.f90: New test.
Nicola Pero [Wed, 29 Dec 2010 12:22:09 +0000 (12:22 +0000)]
In gcc/c-family/: 2010-12-29 Nicola Pero <nicola@nicola.brainstorm.co.uk>
In gcc/c-family/:
2010-12-29 Nicola Pero <nicola@nicola.brainstorm.co.uk>
PR objc/47075
* c-objc.h (objc_finish_message_expr): Added argument to
prototype.
In gcc/objc/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47075
* objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
* objc-tree.def (PROPERTY_REF): Increased the number of operands
from 3 to 4.
* objc-act.c (objc_finish_message_expr): Added optional argument
allowing to return the deprecated method prototype for deprecated
methods, instead of immediately emitting the deprecation warning.
(objc_maybe_build_component_ref): Do not warn for a deprecated
property. When building the getter call, get the deprecated
method prototype from objc_finish_message_expr() and put it into
the PROPERTY_REF.
(objc_build_class_component_ref): Same change.
(finish_class): Mark the getter and setter as deprecated if they
are generated from a deprecated property.
(objc_gimplify_property_ref): If the getter is deprecated, emit a
deprecation warning.
(objc_build_setter_call, objc_build_message_expr,
objc_finish_foreach_loop): Updated call to
objc_finish_message_expr.
In gcc/objcp/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objcp-lang.c (objcp_tsubst_copy_and_build): Update call to
objc_finish_message_expr.
In gcc/testsuite/:
2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Wed, 29 Dec 2010 01:16:55 +0000 (01:16 +0000)]
In gcc/objc/: 2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47076
* objc-act.c (lookup_protocol): Added 'definition_required'
argument. If 'definition_required', and the protocol is not
defined, emit a warning.
(objc_declare_protocols): Updated call to lookup_protocol.
(start_protocol): Same change.
(check_protocol_recursively): Same change.
(objc_build_protocol_expr): Same change.
(lookup_and_install_protocols): Added definition_required argument.
Pass it to lookup_protocol.
(objc_get_protocol_qualified_type): Updated call to
lookup_and_install_protocols.
(start_class): Updated calls to lookup_and_install_protocols; pass
true to 'definition_required' to get the warnings.
(start_protocol): Updated calls to lookup_and_install_protocols.
In gcc/testsuite/:
2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Sun, 26 Dec 2010 18:05:00 +0000 (18:05 +0000)]
In gcc/testsuite/: 2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/testsuite/:
2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/gnu-api-2-class.m: Updated the test to work with the
Apple runtime as well.
* obj-c++.dg/gnu-api-2-class.mm: Same change.
* objc.dg/gnu-api-2-ivar.m: Same change.
* obj-c++.dg/gnu-api-2-ivar.mm: Same change.
* objc.dg/gnu-api-2-method.m: Same change.
* obj-c++.dg/gnu-api-2-method.mm: Same change.
* objc.dg/gnu-api-2-objc.m: Same change.
* obj-c++.dg/gnu-api-2-objc.mm: Same change.
* objc.dg/gnu-api-2-object.m: Same change.
* obj-c++.dg/gnu-api-2-object.mm: Same change.
* objc.dg/gnu-api-2-property.m: Same change.
* obj-c++.dg/gnu-api-2-property.mm: Same change.
* objc.dg/gnu-api-2-protocol.m: Same change.
* obj-c++.dg/gnu-api-2-protocol.mm: Same change.
* objc.dg/gnu-api-2-objc.m: Also, fixed test for
objc_disposeClassPair not to create a new class pair with the same
name as an existing class, and to test that the class pair is
created correctly.
* obj-c++.dg/gnu-api-2-objc.mm: Same change.
Nicola Pero [Sun, 26 Dec 2010 16:56:01 +0000 (16:56 +0000)]
In libobjc/: 2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (create_tree_of_subclasses_inherited_from): Use
class_superclass_of_class instead of assuming a class is
unresolved when it could be resolved. Tidied up code.
(__objc_tree_insert_class): Enhanced DEBUG_PRINTF.
(objc_tree_insert_class): Tidied up loop; return immediately upon
inserting a class.
(__objc_exec_class): Do not set __objc_class_tree_list.
In gcc/testsuite/:
2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>