1. 25 Jun, 2010 21 commits
    • Add a debug counter for the tree-ssa level if-conversion. · 53aa40a8
      2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
      	* dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
      	* tree-if-conv.c: Include dbgcnt.h.
      	(tree_if_conversion): Use if_conversion_tree to count the number of
      	if-convertible loops.
      
      From-SVN: r161395
      Sebastian Pop committed
    • re PR fortran/44448 (32-bit gfortran.dg/atan2_1.f90 fails on Solaris 1[01]/x86 at -O0) · ba8607be
      2010-06-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/44448
      	* gfortran.dg/atan2_1.f90: Add -ffloat-store.
      
      From-SVN: r161392
      Jerry DeLisle committed
    • Enable prefetching at -O3 for AMD cpus. · 1fbb509a
      2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
      
      	* common.opt (fprefetch-loop-arrays): Re-define
      	-fprefetch-loop-arrays as a tri-state option with the initial
      	value of -1.
      	* tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
      	pass only when flag_prefetch_loop_arrays > 0.
      	* toplev.c (process_options): Note that, with tri-states,
      	flag_prefetch_loop_arrays>0 means prefetching is enabled.
      	* config/i386/i386.c (override_options): Enable prefetching at -O3
      	for a set of CPUs that sw prefetching is helpful.
      	(software_prefetching_beneficial_p): New.  Return TRUE if software
      	prefetching is beneficial for the given CPU.
      
      From-SVN: r161391
      Changpeng Fang committed
    • profiler_list_to_slist.h: Remove spurious semicolon; prefer pre-increment. · c14420e1
      2010-06-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/profile/impl/profiler_list_to_slist.h: Remove spurious
      	semicolon; prefer pre-increment.
      	* include/profile/impl/profiler_container_size.h: Use everywhere
      	qualified std::size_t.
      	* include/profile/impl/profiler_trace.h (__trace_base<>::
      	__collect_warnings): Tidy loop.
      	* include/profile/impl/profiler_vector_to_list.h: Minor formatting
      	changes.
      
      From-SVN: r161390
      Paolo Carlini committed
    • Don't search DEBUG_INSNs for removable zero extends. · 97f43086
      2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR rtl-optimization/44326
      	* implicit-zee.c (find_removable_zero_extends): Replace
      	INSN_P with NONDEBUG_INSN_P.
      
      From-SVN: r161389
      H.J. Lu committed
    • ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag. · 062c604f
      2010-06-25  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
      	(struct ipa_node_params): Removed the modification_analysis_done flag.
      	(ipa_is_param_modified): Removed.
      	(ipa_analyze_node): Declare.
      	(ipa_compute_jump_functions): Remove declaration.
      	(ipa_count_arguments): Likewise.
      	(ipa_detect_param_modifications): Likewise.
      	(ipa_analyze_params_uses): Likewise.
      	* ipa-prop.c (struct param_analysis_info): New type.
      	(visit_store_addr_for_mod_analysis): Removed.
      	(visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
      	moved down in the file.
      	(ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
      	(ipa_count_arguments): Made static.
      	(mark_modified): New function.
      	(is_parm_modified_before_call): New function.
      	(compute_pass_through_member_ptrs): New parameter parms_info, call
      	is_parm_modified_before_call instead of ipa_is_param_modified.
      	(ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
      	it to compute_pass_through_member_ptrs.
      	(ipa_compute_jump_functions): New parameter parms_info, pass it to
      	ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
      	on the callee if it is analyzed.  Made static.
      	(ipa_analyze_indirect_call_uses): New parameter parms_info, call
      	is_parm_modified_before_call instead of ipa_is_param_modified.
      	(ipa_analyze_call_uses): New parameter parms_info, pass it to
      	ipa_analyze_indirect_call_uses.
      	(ipa_analyze_stmt_uses): New parameter parms_info, pass it to
      	ipa_analyze_call_uses.
      	(ipa_analyze_params_uses): New parameter parms_info, pass it to
      	ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
      	(ipa_analyze_node): New function.
      	(ipa_print_node_params): Do not dump the modified flag.
      	(ipa_write_node_info): Assert uses_analysis_done rather than streaming
      	it.  Do not stream the modified parameter flag.
      	(ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
      	it.  Do not stream the modified parameter flag.
      	* ipa-cp.c (ipcp_analyze_node): Removed.
      	(ipcp_init_stage): Iterate only once over the nodes, analyze each one
      	with only a call to ipa_analyze_node.
      	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
      	node with only a call to ipa_analyze_node.
      	
      	* testsuite/g++.dg/ipa/iinline-3.C: New test.
      	* testsuite/gcc.dg/ipa/modif-1.c: Removed.
      
      From-SVN: r161384
      Martin Jambor committed
    • invoke.texi (-Wsuggest-attribute): Add item for noreturn. · 212580ff
      2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
      
      From-SVN: r161383
      Manuel López-Ibáñez committed
    • tree-pass.h (pass_split_functions): Declare. · 3e485f62
      
      	* tree-pass.h (pass_split_functions): Declare.
      	* opts.c (decode_options): Enable function splitting at -O2
      	* timevar.def (TV_IPA_FNSPLIT): New macro.
      	* ipa-split.c: New file.
      	* common.opt (-fpartial-inlining): New flag.
      	* Makefile.in (ipa-split.o): New object file.
      	* passes.c (init_optimization_passes): Add ipa-split.
      	* params.def (max-inline-insns-auto): Reduce max-inline-insns-auto to 40.
      	(partial-inlining-entry-probability): New parameters.
      	* doc/invoke.texi (-fpartial-inlining): New.
      	
      	* testsuite/gcc.dg/tree-ssa/ipa-split.c
      
      From-SVN: r161382
      Jan Hubicka committed
    • re PR middle-end/44665 (typo in comment, incorrect/out-of-date comment) · 12947319
      2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
             PR 44665
             * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
             * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
             (gimplify_expr): Likewise.
      
      From-SVN: r161380
      Manuel López-Ibáñez committed
    • ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering statements instead… · 8aa29647
      ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering statements instead of bailing out on them.
      
      2010-06-25  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
      	statements instead of bailing out on them.
      	(ipa_analyze_indirect_call_uses): Do not require that loads from the
      	parameter are in the same BB as the condition.  Update comments.
      
      	* testsuite/g++.dg/ipa/iinline-2.C: New test.
      
      From-SVN: r161377
      Martin Jambor committed
    • re PR middle-end/43866 (wrong code with -fbounds-check -funswitch-loops) · 7a2eceff
      	PR middle-end/43866
      	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
      	true or always false, return NULL_TREE.
      	(tree_unswitch_single_loop): Optimize conditions even when reaching
      	max-unswitch-level parameter.  If num > 0, optimize first all conditions
      	using entry checks, then do still reachable block discovery and consider
      	only conditions in still reachable basic blocks in the loop.
      
      	* gfortran.dg/pr43866.f90: New test.
      
      From-SVN: r161375
      Jakub Jelinek committed
    • re PR tree-optimization/44539 (ICE: verify_ssa failed: type mismatch between an… · 8ba0479e
      re PR tree-optimization/44539 (ICE: verify_ssa failed: type mismatch between an SSA_NAME and its symbol)
      
      	PR tree-optimization/44539
      	* tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
      	the call doesn't have LHS, but has VDEF.
      
      	* gcc.dg/pr44539.c: New test.
      
      From-SVN: r161374
      Jakub Jelinek committed
    • profiler_list_to_slist.h: Remove spurious semicolon; prefer pre-increment. · 47d660fb
      2010-06-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/profile/impl/profiler_list_to_slist.h: Remove spurious
      	semicolon; prefer pre-increment.
      	* include/profile/impl/profiler_container_size.h: Use everywhere
      	qualified std::size_t.
      	* include/profile/impl/profiler_trace.h (__trace_base<>::
      	__collect_warnings): Tidy loop.
      	* include/profile/impl/profiler_vector_to_list.h: Minor formatting
      	changes.
      
      From-SVN: r161373
      Paolo Carlini committed
    • pa.h (MODIFY_TARGET_NAME): Remove. · d6841109
      	* config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
      	* doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
      	* gcc.c (enum add_del, struct modify_target, modify_target):
      	Remove.
      	(process_command): Remove code conditional on MODIFY_TARGET_NAME.
      	* system.h (MODIFY_TARGET_NAME): Poison.
      
      From-SVN: r161372
      Joseph Myers committed
    • invoke.texi: Delete mcmodel=medium from powerpc options. · 4c9d416e
      	* doc/invoke.texi: Delete mcmodel=medium from powerpc options.
      	* config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
      	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
      	CMODEL_LARGE as default.
      	* config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
      	(offsettable_ok_by_alignment): Delete.
      	(rs6000_emit_move): Remove mcmodel=medium optimization.
      
      From-SVN: r161371
      Alan Modra committed
    • profiler_trace.h: Uglify it to __it, use everywhere std::size_t instead of size_t. · 0b032f38
      2010-06-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/profile/impl/profiler_trace.h: Uglify it to __it, use
      	everywhere std::size_t instead of size_t.
      
      From-SVN: r161368
      Paolo Carlini committed
    • With large parts from Jim Wilson: · 0354c0c7
      	PR target/43902
      	* tree-pretty-print.c (dump_generic_node, op_code_prio): Add
      	WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
      	* optabs.c (optab_for_tree_code): Likewise.
      	(expand_widen_pattern_expr): Likewise.
      	* tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
      	out of execute_optimize_widening_mul.
      	(convert_plusminus_to_widen): New function.
      	(execute_optimize_widening_mul): Use the two new functions.
      	* expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
      	Remove code to generate widening multiply-accumulate.  Add support
      	for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
      	* gimple-pretty-print.c (dump_ternary_rhs): New function.
      	(dump_gimple_assign): Call it when appropriate.
      	* tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
      	* cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
      	(expand_gimple_stmt_1): Likewise.
      	(expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
      	WIDEN_MULT_MINUS_EXPR.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* gimple.c (extract_ops_from_tree_1): Renamed from
      	extract_ops_from_tree.  Add new arg for a third operand; fill it.
      	(gimple_build_assign_stat): Support operations with three operands.
      	(gimple_build_assign_with_ops_stat): Likewise.
      	(gimple_assign_set_rhs_from_tree): Likewise.
      	(gimple_assign_set_rhs_with_ops_1): Renamed from
      	gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
      	(get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
      	(get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
      	WIDEN_MULT_MINUS_EXPR.
      	* gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
      	(extract_ops_from_tree_1): Adjust declaration.
      	(gimple_assign_set_rhs_with_ops_1): Likewise.
      	(gimple_build_assign_with_ops): Pass NULL for last operand.
      	(gimple_build_assign_with_ops3): New macro.
      	(gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
      	gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
      	functions.
      	* tree-cfg.c (verify_gimple_assign_ternary): New static function.
      	(verify_gimple_assign): Call it.
      	* doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
      	(Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
      	functions for dealing with three-operand statements.
      	* tree.c (commutative_ternary_tree_code): New function.
      	* tree.h (commutative_ternary_tree_code): Declare it.
      	* tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
      	statements.
      	(gimple_assign_nonzero_warnv_p): Likewise.
      	* tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
      	* tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
      	(ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
      	* tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
      	(struct hashtable_expr): New member ternary in the union.
      	(initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
      	(hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
      	(iterative_hash_hashable_expr): Likewise.
      	(print_expr_hash_elt): Handle EXPR_TERNARY.
      	* gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
      	* tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
      	statements.  Handle GIMPLE_TERNARY_RHS.
      
      testsuite/
      	PR target/43902
      	* gcc.target/mips/madd-9.c: New test.
      
      From-SVN: r161366
      Bernd Schmidt committed
    • * doc/invoke.texi (-Wsuggest-attribute): Add noreturn. · 38f78b0c
      From-SVN: r161364
      Jan Hubicka committed
    • re PR c/44517 (improve diagnostic for mispelled typename in function declaration) · 09a1e889
      gcc/
      2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
      
              PR c/44517
              * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
              parameters are not good.
              (c_parser_parameter_declaration): Error unknown type name if the type
              name can't start declaration specifiers.
      
      gcc/testsuite/
      2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
      
              PR c/44517
              * gcc.dg/noncompile/pr44517.c: New.
              * gcc.dg/noncompile/990416-1.c: Adjust expected error.
      
      From-SVN: r161363
      Shujing Zhao committed
    • gcc.c (translate_options): Don't mention +e in comment. · 418f840c
      	* gcc.c (translate_options): Don't mention +e in comment.
      	(process_command): Don't handle +e specially.
      
      cp:
      	* lang-specs.h: Remove +e handling.
      
      objcp:
      	* lang-specs.h: Remove +e handling.
      
      From-SVN: r161355
      Joseph Myers committed
    • Daily bump. · c504fdd6
      From-SVN: r161354
      GCC Administrator committed
  2. 24 Jun, 2010 19 commits