1. 18 May, 2010 11 commits
  2. 17 May, 2010 29 commits
    • cgraph.c (cgraph_create_virtual_clone): Only check versionable_function_p when… · 36576655
      cgraph.c (cgraph_create_virtual_clone): Only check versionable_function_p when not in wpa and checking is enabled.
      
      
      	* cgraph.c (cgraph_create_virtual_clone): Only check
      	versionable_function_p when not in wpa and checking is enabled.
      	* cgrpahunit.c (cgraph_materialize_all_clones): Stabilize after
      	there are no more functions to materialize.
      	
      	* lto/lto.c (lto_1_to_1_map): Partition non-inline clones.
      	(lto_promote_cross_file_statics): Deal with non-inline clones.
      
      From-SVN: r159518
      Jan Hubicka committed
    • cgraph.h (struct ipa_replace_map): Add parm_num parameter. · 922f15c2
      
      	* cgraph.h (struct ipa_replace_map): Add parm_num parameter.
      	* lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
      	New functions.
      	(output_cgraph): Call output_cgraph_opt_summary.
      	(input_cgrpah): Call input_cgraph_opt_summary.
      	(output_cgraph_opt_summary_p, output_node_opt_summary,
      	input_node_opt_summary, input_cgraph_opt_section): New functions.
      	* lto-section-in.c (lto_section_name): Add cgraphopt.
      	* tree-inline.c (tree_function_versioning): Handle parm_num.
      	* lto-streamer.c (lto_get_section_name): Handle cgraphopt.
      	* lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
      
      From-SVN: r159517
      Jan Hubicka committed
    • lto.c (lto_materialize_function): Announce function when reading body... · 28632d63
      	* lto.c (lto_materialize_function): Announce function when
      	reading body; allocate_struct_function only when reading body;
      	do not finalize local statics; ggc_collect after reading;
      	do not mark reachable node.
      	(materialize_cgraph): Do not announce function.
      
      From-SVN: r159516
      Jan Hubicka committed
    • Also apply the insn to prefetch ratio heuristic to loops with known trip count. · d3a9b459
      2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
      
      	* doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
      	* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
      	the insn to prefetch ratio heuristic to loops with known trip count.
      
      From-SVN: r159515
      Changpeng Fang committed
    • Define PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO heuristic. · 8532678c
      2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
      
      	* tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
      	(schedule_prefetches): Do not generate a prefetch if the unroll factor
      	is far from what is required by the prefetch.
      
      From-SVN: r159514
      Changpeng Fang committed
    • ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used. · 339f49ec
      
      	* ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
      	(ipcp_estimate_growth): Likewise.
      	(ipcp_const_param_count): Likewise.
      	(ipcp_insert_stage): Likewise.
      	* ipa-prop.c (visit_load_for_mod_analysis): New function.
      	(visit_store_addr_for_mod_analysis): Set used flag.
      	(ipa_detect_param_modifications): Set used flag for SSE params;
      	update use of walk_stmt_load_store_addr_ops.
      	(ipa_print_node_params): Print used flag.
      	(ipa_write_node_info): Stream used flag.
      	(ipa_read_node_info): Likewise.
      	* ipa-prop.h (struct ipa_param_descriptor): Add used field.
      	(ipa_is_param_used): New function.
      	(lto_ipa_fixup_call_notes): Remove unused declaration.
      
      From-SVN: r159513
      Jan Hubicka committed
    • re PR target/44074 (Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line) · 2433310d
      	PR target/44074
      	* configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* config/i386/i386.c (print_operand) <case ;>: Also print ; if
      	!HAVE_AS_IX86_REP_LOCK_PREFIX.
      	Don't emit whitespace.
      	* config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
      	(*rep_movsi): Likewise.
      	(*rep_movsi_rex64): Likewise.
      	(*rep_movqi): Likewise.
      	(*rep_movqi_rex64): Likewise.
      	(*rep_stosdi_rex64): Likewise.
      	(*rep_stossi): Likewise.
      	(*rep_stossi_rex64): Likewise.
      	(*rep_stosqi): Likewise.
      	(*rep_stosqi_rex64): Likewise.
      	(*cmpstrnqi_nz_1): Use {%;} after repz.
      	(*cmpstrnqi_nz_rex_1): Likewise.
      	(*cmpstrnqi_1): Likewise.
      	(*cmpstrnqi_rex_1): Likewise.
      	(*strlenqi_1): Use {%;} after repnz.
      	(*strlenqi_rex_1): Likewise.
      	* config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
      	(*sync_compare_and_swap<mode>): Likewise.
      	(sync_double_compare_and_swap<mode>): Likewise.
      	(*sync_double_compare_and_swapdi_pic): Likewise.
      	(sync_old_add<mode>): Likewise.
      	(sync_add<mode>): Likewise.
      	(sync_sub<mode>): Likewise.
      	(sync_<code><mode>): Likewise.
      
      From-SVN: r159512
      Rainer Orth committed
    • re PR fortran/43990 ([OOP] ICE in output_constructor_regular_field, at varasm.c:4995) · 94ea6939
      2010-05-17  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/43990
      	* trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
      	This is now handled via 'gfc_class_null_initializer'.
      
      
      2010-05-17  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/43990
      	* gfortran.dg/class_21.f03: New.
      
      From-SVN: r159511
      Janus Weil committed
    • call.c (struct z_candidate): Add explicit_targs field. · f18ea1bf
      	* call.c (struct z_candidate): Add explicit_targs field.
      	(add_template_candidate_real): Set it.
      	(build_over_call): Use it to control init-list warning.
      
      From-SVN: r159510
      Jason Merrill committed
    • re PR c++/44157 ([C++0x] GCC wrongly takes a std::initializer_list argument as non-deduced context) · 9d2b7551
      	PR c++/44157
      	* call.c (build_over_call): Limit init-list deduction warning to
      	cases where the argument is actually an init-list.
      
      From-SVN: r159509
      Jason Merrill committed
    • re PR c++/44158 ([C++0x] wrong overload resolution for copy-initialization from an rvalue) · c8361db1
      	PR c++/44158
      	* call.c (build_over_call): Don't do bitwise copy for move ctor.
      
      From-SVN: r159508
      Jason Merrill committed
    • cgraph.h (cgraph_indirect_call_info): New fields anc_offset, otr_token and polymorphic. · b258210c
      2010-05-17  Martin Jambor  <mjambor@suse.cz>
      
      	* cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
      	otr_token and polymorphic.
      	* cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
      	(cgraph_clone_edge): Copy the above fields.
      	* tree.c (get_binfo_at_offset): New function.
      	* tree.h (get_binfo_at_offset): Declare.
      	* ipa-prop.h (enum jump_func_type): Added known_type jump function
      	type, reordered items, updated comments.
      	(union jump_func_value): Added base_type field, reordered fields.
      	(enum ipa_lattice_type): Moved down in the file.
      	(struct ipa_param_descriptor): New field polymorphic.
      	(ipa_is_param_polymorphic): New function.
      	* ipa-prop.c: Include gimple.h and gimple-fold.h.
      	(ipa_print_node_jump_functions): Print known type jump functions.
      	(compute_complex_pass_through): Renamed to...
      	(compute_complex_assign_jump_func): this.
      	(compute_complex_ancestor_jump_func): New function.
      	(compute_known_type_jump_func): Likewise.
      	(compute_scalar_jump_functions): Create known type and complex ancestor
      	jump functions.
      	(ipa_note_param_call): New parameter polymorphic, set the corresponding
      	flag in the call note accordingly.
      	(ipa_analyze_call_uses): Renamed to...
      	(ipa_analyze_indirect_call_uses): this.  New parameter target, define
      	variable var only in the block where it is used.
      	(ipa_analyze_virtual_call_uses): New function.
      	(ipa_analyze_call_uses): Likewise.
      	(combine_known_type_and_ancestor_jfs): Likewise.
      	(update_jump_functions_after_inlining): Implemented handling of a
      	number of new jump function types combination.
      	(print_edge_addition_message): Removed.
      	(make_edge_direct_to_target): New function.
      	(try_make_edge_direct_simple_call): Likewise.
      	(try_make_edge_direct_virtual_call): Likewise.
      	(update_call_notes_after_inlining): Renamed to...
      	(update_indirect_edges_after_inlining): this.  Moved edge creation for
      	indirect calls to try_make_edge_direct_simple_call, also calls
      	try_make_edge_direct_virtual_call for virtual calls.
      	(ipa_print_node_params): Changed the header message.
      	(ipa_write_jump_function): Stream also known type jump functions.
      	(ipa_read_jump_function): Likewise.
      	(ipa_write_indirect_edge_info): Stream new fields in
      	cgraph_indirect_call_info.
      	(ipa_read_indirect_edge_info): Likewise.
      	* Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
      	GIMPLE_FOLD_H.
      
      	* testsuite/g++.dg/ipa/ivinline-1.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-2.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-3.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-4.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-5.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-6.C: New test.
      
      From-SVN: r159507
      Martin Jambor committed
    • class.c (gfc_add_component_ref,gfc_class_null_initializer, [...]): Moved here from other places. · d15bac21
      2010-05-17  Janus Weil  <janus@gcc.gnu.org>
      
      	* class.c (gfc_add_component_ref,gfc_class_null_initializer,
      	gfc_build_class_symbol,add_proc_component,add_proc_comps, 
      	add_procs_to_declared_vtab1,copy_vtab_proc_comps,
      	add_procs_to_declared_vtab,add_generic_specifics, 
      	add_generics_to_declared_vtab,gfc_find_derived_vtab,
      	find_typebound_proc_uop,gfc_find_typebound_proc,
      	gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
      	gfc_get_tbp_symtree): Moved here from other places.
      	* expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
      	class.c.
      	* gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
      	gfc_find_typebound_proc,gfc_find_typebound_user_op,
      	gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
      	gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
      	* Make-lang.in: Add class.o.
      	* symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
      	add_procs_to_declared_vtab1,copy_vtab_proc_comps,
      	add_procs_to_declared_vtab,add_generic_specifics,
      	add_generics_to_declared_vtab,gfc_find_derived_vtab,
      	find_typebound_proc_uop,gfc_find_typebound_proc,
      	gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
      	gfc_get_tbp_symtree): Move to class.c.
      
      From-SVN: r159506
      Janus Weil committed
    • Forgot ChangeLog entry for last commit. · d5d74497
      From-SVN: r159504
      Rainer Orth committed
    • tree.h (CALL_EXPR_ARGS): Delete. · 58a11859
      	* tree.h (CALL_EXPR_ARGS): Delete.
      	(call_expr_arglist): Delete.
      	* tree.c (call_expr_arglist): Delete.
      	* builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
      	targetm.fold_builtin.
      	* config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
      	Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
      	* config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
      	arglist parameter.  Use CALL_EXPR_ARG.
      	(picochip_expand_builtin_3op): Likewise.
      	(picochip_expand_builtin_2opvoid): Likewise.
      	(picochip_expand_array_get): Likewise.
      	(picochip_expand_array_put): Likewise.
      	(picochip_expand_array_testport): Likewise.
      	(picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
      	rather than arglist.
      	* config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
      	CALL_EXPR_ARGS.
      	* config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
      	than TREE_VALUE and TREE_CHAIN.
      	* config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
      	* doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
      	the arglist.
      
      From-SVN: r159502
      Nathan Froyd committed
    • re PR c++/44108 (-Wunused-but-set-variable does not consider array sizing use of a const variable) · ad13f229
      	PR c++/44108
      	* decl.c (compute_array_index_type): Call mark_rvalue_use.
      
      	* c-c++-common/Wunused-var-8.c: New test.
      
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r159497
      Dodji Seketeli committed
    • re PR bootstrap/42347 (sched-deps.c:3840:1: internal compiler error: in… · f145213f
      re PR bootstrap/42347 (sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796)
      
      	PR bootstrap/42347
      	* cfglayout.c (fixup_reorder_chain): Allow returnjump_p
      	to have no fallthru edge.
      
      	* gcc.c-torture/compile/pr42347.c: New test.
      
      From-SVN: r159496
      Jakub Jelinek committed
    • re PR middle-end/44102 (ICE with asm goto + __builtin_unreachable () in C++) · f1de5107
      	PR middle-end/44102
      	* cfgcleanup.c (try_optimize_cfg): When removing trivially empty
      	bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
      	mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
      	add BARRIER after previous bb if needed.
      
      	* g++.dg/ext/asmgoto1.C: New test.
      
      From-SVN: r159495
      Jakub Jelinek committed
    • fix ChangeLog entries for previous commits · 1eabc6be
      From-SVN: r159494
      Nathan Froyd committed
    • fix bogus email for myself · 8341deb5
      From-SVN: r159492
      Nathan Froyd committed
    • tree.c (build_function_type_list_1): Remove bogus assert condition. · b64fca63
      gcc/
      	* tree.c (build_function_type_list_1): Remove bogus assert condition.
      
      gcc/fortran/
      	* trans-types.c (gfc_init_types): Use build_function_type_list.
      	(gfc_get_ppc_type): Likewise.
      	* trans-decl.c (gfc_generate_constructors): Likewise.
      	* f95-lang.c (build_builtin_fntypes): Likewise.
      	(gfc_init_builtin_functions): Likewise.
      	(DEF_FUNCTION_TYPE_0): Likewise.
      	(DEF_FUNCTION_TYPE_1): Likewise.
      	(DEF_FUNCTION_TYPE_2): Likewise.
      	(DEF_FUNCTION_TYPE_3): Likewise.
      	(DEF_FUNCTION_TYPE_4): Likewise.
      	(DEF_FUNCTION_TYPE_5): Likewise.
      	(DEF_FUNCTION_TYPE_6): Likewise.
      	(DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
      	(DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
      
      From-SVN: r159491
      Nathan Froyd committed
    • trans-array.c (gfc_trans_array_constructor_value): Use build_constructor instead… · 8748ad99
      trans-array.c (gfc_trans_array_constructor_value): Use build_constructor instead of build_constructor_from_list.
      
      	* trans-array.c (gfc_trans_array_constructor_value): Use
      	build_constructor instead of build_constructor_from_list.
      	(gfc_build_constant_array_constructor): Likewise.
      	* trans-decl.c (create_main_function): Likewise.
      	* trans-stmt.c (gfc_trans_character_select): Likewise.
      
      From-SVN: r159490
      Nathan Froyd committed
    • rs6000.c (rs6000_emit_allocate_stack): Delete unnecessary prototype. · 2882bfcc
      	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
      	unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
      	with copy_reg rtx param.
      	(rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
      	Correct cases where code for ABI_V4 did not initialise the reg
      	used to access frame.  Also leave frame_reg_rtx as sp for large
      	frames that save no regs.
      
      From-SVN: r159483
      Alan Modra committed
    • re PR middle-end/44133 (Uninit warning regression with new SRA) · 5feb49f0
      2010-05-17  Martin Jambor  <mjambor@suse.cz>
      
      	PR middle-end/44133
      	* tree-sra.c (create_access_replacement): New parameter rename, mark
      	the replaement for renaming only when it is true.
      	(get_access_replacement): Pass true in the rename parameter of
      	create_access_replacement.
      	(get_unrenamed_access_replacement): New function.
      	(replace_uses_with_default_def_ssa_name): New parameter racc, get the
      	replacement declaration from it.
      
      	* testsuite/gcc.dg/tree-ssa/pr44133.c: New test.
      	* testsuite/gcc.dg/tree-ssa/sra-9.c: Make the scan regular
      	expression more precise.
      
      From-SVN: r159482
      Martin Jambor committed
    • function.c (try_fit_stack_local, [...]): New static functions. · 56731d64
      	* function.c (try_fit_stack_local, add_frame_space): New static
      	functions.
      	(assign_stack_local_1): Use them.  Look for opportunities to use
      	space previously wasted on alignment.
      	* function.h (struct frame_space): New.
      	(struct rtl_data): Add FRAME_SPACE_LIST member.
      	* reload1.c (something_was_spilled): New static variable.
      	(alter_reg): Set it.
      	(reload): Test it in addition to testing if the frame size changed.
      
      From-SVN: r159480
      Bernd Schmidt committed
    • functional (result_of): Move... · 1041daba
      2010-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/std/functional (result_of): Move...
      	* include/std/type_traits: ... here.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
      	line number.
      
      From-SVN: r159478
      Paolo Carlini committed
    • re PR fortran/44044 ([OOP] SELECT TYPE with class-valued function) · 233961db
      2010-05-17  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/44044
      	* resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
      	(resolve_fl_variable_derived): ... this place.
      	(resolve_symbol): Make sure function symbols (and their result
      	variables) are not resolved twice.
      
      
      2010-05-17  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/44044
      	* gfortran.dg/class_20.f03: New.
      
      From-SVN: r159476
      Janus Weil committed
    • re PR middle-end/44078 (FAIL: gcc.dg/tree-ssa/prefetch-7.c) · ff71b48d
      2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
      
              PR 44078
              * gcc.dg/tree-ssa/prefetch-7.c: Change pattern to match only the old
              debug messages but not the newly introduced one.
      
      From-SVN: r159475
      Christian Borntraeger committed