Joern Rennecke [Wed, 10 Nov 2010 09:16:19 +0000 (09:16 +0000)]
re PR target/44760 (iq2000.md warnings)
PR target/44760
* config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
(REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
GP_REG_OR_PSEUDO_STRICT_P.
* config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
unexpected alternative.
(*movsf_internal): Likewise.
(indirect_jump): Replace call to non-existant function with call to
internal_error.
(tablejump): Likewise.
* config/iq2000/iq2000.c: Include df.h .
(iq2000_function_arg_advance): Use CONST_CAST2.
(compute_frame_size, iq2000_expand_prologue): Remove unused variables.
(iq2000_can_eliminate): Call leaf_function_p instead of testing for
a non-zero function address.
(iq2000_initial_elimination_offset): Add gcc_unreachable for
unexpected value of FROM.
(symbolic_expression_p): Delete.
(iq2000_function_value): Constify func.
(expand_one_builtin): Use expand_normal.
(iq2000_print_operand): Don't print VALUE if calculating it failed.
Jerry DeLisle [Wed, 10 Nov 2010 04:58:16 +0000 (04:58 +0000)]
re PR fortran/46331 (Compilation time long with simple function in array constructor)
2010-11-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Mikael Morin <mikael@gcc.gnu.org>
PR fortran/46331
* intrinsic.c: Correctly set the pure attributes for intrinsic
functions.
* expr.c (check_specification_function): Remove this function and move
its code into gfc_is_constant_expr. (gfc_is_constant_expr): Change the
order of checks by checking for non-constant arguments first. Then,
check for initialization functions, followed by intrinsics.
Co-Authored-By: Mikael Morin <mikael@gcc.gnu.org>
From-SVN: r166520
PR/46268
* doc/gty.texi (GTY Options): Clarify that variable_size produces
allocators taking size in bytes, compare with length option. Add
size calculation example.
(Invoking the garbage collector): Ensure that sentences are
followed by two spaces. Describe that pointer fields must be
initialized at ggc_collect call.
(Troubleshooting): New section.
Jan Hubicka [Wed, 10 Nov 2010 02:35:19 +0000 (03:35 +0100)]
re PR tree-optimization/40436 (0.5% code size regression caused by r147852)
PR tree-optimization/40436
* ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
* tree-inline.c (estimate_num_insns): Inexpensive builtins are like
normal instructions; be sure bultin is not implemented in this file;
compute non-zero return cost.
(init_inline_once): Reduce builtin_call_cost to 1; set return cost.
* tree-inline.h (eni_weights_d): Add return cost.
Joern Rennecke [Tue, 9 Nov 2010 17:23:05 +0000 (17:23 +0000)]
re PR target/44759 (mn10300.md signed/unsigned comparisons)
PR target/44759
* config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
conditional to type of S.
(mn10300_function_arg): Remove unused variable align.
(mn10300_arg_partial_bytes): Likewise.
* config/mn10300/mn10300.md (attribute cpu): Cast value to
enum attr_cpu.
re PR tree-optimization/46177 (ICE: in prop_phis, at tree-loop-distribution.c:327 with -fno-tree-copy-prop -ftree-loop-distribution)
2010-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46177
* tree-loop-distribution.c (prop_phis): Remove.
(generate_builtin): Re-use the old loop exit edge to avoid
needing to update PHI nodes.
Eric Botcazou [Tue, 9 Nov 2010 11:59:55 +0000 (11:59 +0000)]
tree.h (contains_placeholder_p): Fix comment.
* tree.h (contains_placeholder_p): Fix comment.
(type_contains_placeholder_p): Adjust comment.
* tree.c (contains_placeholder_p): Fix comment.
(type_contains_placeholder_1): Do not recurse on pointed-to types and
adjust comment.
(type_contains_placeholder_p): Add comment.
ada/
* gcc-interface/decl.c (finish_fat_pointer_type): New function.
(gnat_to_gnu_entity) <E_Array_Type>: Use it to build the fat pointer
type.
<E_Access_Type>: Likewise.
re PR middle-end/46221 (huge number of c++ testsuite failures, libstdc++.so alias missing)
2010-11-09 Richard Guenther <rguenther@suse.de>
PR middle-end/46221
* varasm.c (compute_visible_aliases): New function.
(remove_unreachable_alias_pairs): Aliases make a target available
even though we reclaimed the cgraph node.
(finish_aliases_1): Likewise.
* Makefile.in (varasm.o): Add pointer-set.h dependency.
* gengtype.c (get_output_file_name): Declaration moved to
gengtype.h.
(plugin_files, get_file_basename, get_file_realbasename)
(get_file_langdir, error_at_line, gt_files, this_file)
(system_h_file, read_input_list, create_field_all)
(get_file_srcdir_relative_path, get_file_basename)
(get_file_langdir, get_file_gtfilename)
(get_output_file_with_visibility, get_output_file_name)
(struct flist, put_mangled_filename, walk_type)
(put_mangled_filename, finish_root_table, write_roots): Use
input_file-s.
(lang_dir_names, num_lang_dirs): Remove static.
(get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
(main): Use input_file-s.
* gengtype.h:
(struct input_file_st, input_file): New type.
(struct fileloc): Use it.
(gt_files, num_gt_files, this_file, system_h_file)
(input_file_by_name, get_file_srcdir_relative_path): Use
input_file.
(get_input_file_name): New function.
(get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
use input_file.
(lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
(get_output_file_name): Ditto.
Nicola Pero [Mon, 8 Nov 2010 22:38:04 +0000 (22:38 +0000)]
In gcc/objc/: 2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_dynamic_declaration_for_property): Do not
search for the @property declation only in the current context,
but also in inherited properties. Do not mark the original
PROPERTY_DECL in the @interface or @protocol with
PROPERTY_DYNAMIC.
(check_methods): To check if a method is associated with a
@dynamic property, search for the property in IMPL_PROPERTY_DECL.
(check_accessible_methods): Same change.
* objc-act.h: Updated comment.
In gcc/testsuite/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Mon, 8 Nov 2010 22:04:03 +0000 (22:04 +0000)]
In gcc/objc/: 2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_add_synthesize_declaration_for_property):
Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
checking for an existing @synthesize or @dynamic declaration.
Search for an inherited @property declaration if none is found in
the local interface. If the required instance variable does not
exist, return instead of trying to continue to prevent a compiler
crash later. Check that the instance variable is not already
being used by another @synthesize.
(objc_add_dynamic_declaration_for_property): Iterate over
IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
existing @synthesize or @dynamic declaration.
(objc_synthesize_getter): Search for the getter declaration in
protocols and superclasses as well.
(objc_synthesize_setter): Search for the setter declaration in
protocols and superclasses as well.
In gcc/testsuite/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Mon, 8 Nov 2010 21:47:59 +0000 (21:47 +0000)]
In gcc/objc/: 2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (lookup_property): When checking categories, also
check the protocols attached to each.
(objc_add_property_declaration): Determine the
PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up
error message. Search for an existing property declaration with
the same name which would be inherited from the class hiearchy,
and produce an error if it has incompatible attributes.
(check_methods): Changed second parameter. If the method is a
getter or setter for a property, do not warn if it is inherited as
opposed to implemented directly in the class.
(check_protocol): Updated calls to check_methods.
(finish_class): Do not determine the PROPERTY_SETTER_NAME and
PROPERTY_GETTER_NAME here; this is now done earlier, in
objc_add_property_declaration.
* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
In gcc/testsuite/:
2010-11-08 Nicola Pero <nicola.pero@meta-innovation.com>
Jason Merrill [Mon, 8 Nov 2010 20:17:42 +0000 (15:17 -0500)]
Correct conversion/overflow behavior.
* cvt.c (ignore_overflows): Move here from typeck.c.
(ocp_convert): Use it.
(cp_fold_convert): Use it. Don't call rvalue.
* typeck.c (build_static_cast_1): Don't use it. Do call rvalue.
* error.c (location_of): Handle expressions, too.
* class.c (check_bitfield_decl): Set input_location around call to
cxx_constant_value.
* semantics.c (cxx_eval_outermost_constant_expr): Don't
print the expression if it already had TREE_OVERFLOW set.
(reduced_constant_expression_p): Check TREE_OVERFLOW_P for C++98, too.
(verify_constant): Allow overflow with a permerror if we're
enforcing.
(cxx_eval_outermost_constant_expr): Use verify_constant.
(adjust_temp_type): Use cp_fold_convert.
* decl.c (build_enumerator): Don't call constant_expression_warning.
* decl2.c (grokbitfield): Likewise.
Joern Rennecke [Mon, 8 Nov 2010 19:44:42 +0000 (19:44 +0000)]
re PR target/44757 (lm32.md: In function ‘gen_ashlsi3’:unused variable ‘one’)
2010-11-08 Joern Rennecke <amylaar@spamcop.net>
Richard Henderson <rth@redhat.com>
PR target/44757
* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
lm32_legitimate_constant_p.
* config/lm32/lm32.md (ashlsi3): Remove unused variable.
* config/lm32/lm32.c (gen_int_relational): Make new block for
LE / LT / LEU / LTU case. Declare variables at start of block.
(lm32_block_move_inline): Use XALLOCAVEC.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r166451
Joern Rennecke [Mon, 8 Nov 2010 18:52:51 +0000 (18:52 +0000)]
re PR target/44758 (frv.md: incompatible enum comparisons / return)
2010-11-08 Joern Rennecke <amylaar@spamcop.net>
Richard Henderson <rth@redhat.com>
PR target/44758
* config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
(attribute acc_group): Cast value to enum attr_acc_group.
(*movdi_nodouble+6): Use gen_int_mode.
* config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
if RTX_CODE is defined or not.
* config/frv/frv.c (enum frv_io_type): New enum, broken out of
struct frv_io.
(frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
(frv_frame_access, frv_expand_prologue): Remove unused variables.
(frv_expand_block_clear): Likewise.
(frv_trampoline_init): Use LCT_NORMAL.
(struct frv_packet_group): New struct, broken out of type of
frv_packet.
(frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
use cast in loop counter increment.
(frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
assigning to io->type.
(bdesc_set): Use rtx_code UNKNOWN in initializer.
(bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
(bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
(bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
(frv_read_argument): Use expand_normal.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r166447
Andreas Krebbel [Mon, 8 Nov 2010 15:42:25 +0000 (15:42 +0000)]
s390.c (s390_handle_arch_option): Set type and flags to defined values in case of an error.
2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.c (s390_handle_arch_option): Set type and flags
to defined values in case of an error.
(s390_option_override): Skip further processing if the -march
parameter wasn't recognized.
re PR rtl-optimization/45352 (ICE: in reset_sched_cycles_in_current_ebb, at sel-sched.c:7058)
PR rtl-optimization/45352
* sel-sched.c (find_best_expr): Do not set pneed_stall when
the variable_issue hook is not implemented.
(fill_insns): Remove dead variable stall_iterations.
(init_seqno_1): Force EBB start for resetting sched cycles on any
successor blocks of the rescheduled region.
(sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
(reset_sched_cycles_in_current_ebb): Add debug printing.
New variable issued_insns. Advance state when we have issued
issue_rate insns.
gcc.dg/pr45352.c, gcc.dg/pr45352-1.c, gcc.dg/pr45352-2.c: New tests.
gcc.target/i386/pr45352.c, gcc.target/i386/pr45352-1.c,
gcc.target/i386/pr45352-2.c: New tests.
Jason Merrill [Sun, 7 Nov 2010 00:46:45 +0000 (20:46 -0400)]
init.c (perform_member_init): Use build_vec_init_expr for value-init of arrays, too.
* init.c (perform_member_init): Use build_vec_init_expr for
value-init of arrays, too.
* cp-gimplify.c (cp_gimplify_expr): Use VEC_INIT_EXPR_VALUE_INIT.
* cp-tree.h (VEC_INIT_EXPR_IS_CONSTEXPR): New macro.
(VEC_INIT_EXPR_VALUE_INIT): New macro.
* semantics.c (potential_constant_expression): No longer static.
Check VEC_INIT_EXPR_IS_CONSTEXPR.
* tree.c (build_vec_init_expr): Handle value-init. Set
VEC_INIT_EXPR_IS_CONSTEXPR and VEC_INIT_EXPR_VALUE_INIT.
Nathan Froyd [Sat, 6 Nov 2010 18:41:57 +0000 (18:41 +0000)]
re PR c++/45332 (Generate clear diagnostics when a terminating semicolon is missing from a class member declaration.)
gcc/cp/
PR c++/45332
* parser.c (cp_lexer_previous_token): New function.
(cp_parser_member_declaration): Use previous token for error
messages. Assume semicolon presence rather than grovelling for
the next one.
Nicola Pero [Sat, 6 Nov 2010 13:14:55 +0000 (13:14 +0000)]
In gcc/objc/: 2010-11-05 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-11-05 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 syntax with self and super.
* objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
(maybe_make_artificial_property_decl): Added 'implementation'
argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
looking up getters or setters for a class. If an implementation
is specified, search it as well for a getter or setter.
(objc_maybe_build_component_ref): Updated calls to
maybe_make_artificial_property_decl; added code to deal with
'self' and 'super' and with methods declared locally in the
implementation. Store the getter call expression in the
PROPERTY_REF instead of throwing it away.
(objc_build_class_component_ref): Updated calls to
maybe_make_artificial_property_decl, and store the getter call
expression in PROPERTY_REF instead of throwing it away.
(lookup_method_static): Implemented
OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
(objc_gimplify_property_ref): Do not build the getter method call
here; instead use the one stored in the PROPERTY_REF. If it's not
there, produce helpful error messages.
* objc-tree.def (PROPERTY_REF): Increased the number of operands
from 2 to 3. Updated comments.
* objc-act.h (PROPERTY_REF_GETTER_CALL): New.
In gcc/testsuite/:
2010-11-05 Nicola Pero <nicola.pero@meta-innovation.com>