1. 26 Jul, 2007 1 commit
  2. 27 May, 2007 1 commit
    • tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL. · d51157de
      	* tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
      	* tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
      	* ifcvt.c (if_convert): Ditto.
      	* tree-ssa-threadupdate.c (thread_block): Ditto.
      	(thread_through_all_blocks): Ditto.  Assert that loops were analysed.
      	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
      	verify_loop_closed_ssa): Check number_of_loops instead of current_loops.
      	* predict.c (tree_estimate_probability): Ditto.
      	* tree-if-conv.c (main_tree_if_conversion): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
      	* tree-scalar-evolution.c (scev_const_prop): Ditto.
      	(scev_finalize): Do not do anything if scev analysis was not
      	initialized.
      	* cfgloopanal.c (mark_irreducible_loops): Do not check whether
      	current_loops == NULL.
      	(mark_loop_exit_edges): Check number_of_loops instead of current_loops.
      	* loop-init.c (loop_optimizer_init): Do not free current_loops when
      	there are no loops.
      	(loop_optimizer_finalize): Assert that loops were analyzed.
      	(rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
      	rtl_doloop): Check number_of_loops instead of current_loops.
      	* tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
      	current_loops == NULL.
      	(tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
      	gate_tree_vectorize tree_linear_transform, check_data_deps,
      	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
      	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
      	Check number_of_loops instead of current_loops.
      	(tree_ssa_loop_done): Do not check whether current_loops == NULL.
      	* tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
      	free loops if available.
      	(execute_pre): Do not pass do_fre to fini_pre.
      
      From-SVN: r125114
      Zdenek Dvorak committed
  3. 01 May, 2007 1 commit
    • tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use bsi_after_labels. · 8b11009b
      	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
      	bsi_after_labels.  Always insert statements before bsi.
      	* tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
      	* predict.c (apply_return_prediction): Check for empty blocks.
      	* cfgexpand.c (lab_rtx_for_bb): New variable.
      	(label_rtx_for_bb): Do not create new tree labels.
      	(expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
      	(tree_expand_cfg): Initialize lab_rtx_for_bb.
      	* tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
      	creating edges.
      	(label_for_bb): Add field used.
      	(update_eh_label, main_block_label): Mark the label used.
      	(cleanup_dead_labels): Remove unused labels.
      
      From-SVN: r124322
      Zdenek Dvorak committed
  4. 22 Apr, 2007 1 commit
    • predict.c: Include pointer-set.h. · f06b0a10
      	* predict.c: Include pointer-set.h.
      	(bb_predictions): New variable.
      	(tree_predicted_by_p, tree_predict_edge,
      	remove_predictions_associated_with_edge): Use bb_predictions map
      	instead of bb->predictions.
      	(clear_bb_predictions, assert_is_empty): New functions.
      	(combine_predictions_for_bb): Use bb_predictions map.  Call
      	clear_bb_predictions.
      	(tree_estimate_probability): Create and free bb_predictions map.
      	* Makefile.in (predict.o): Add pointer-set.h dependency.
      	* basic-block.h (struct basic_block_def): Remove predictions
      	field.
      	* cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
      
      From-SVN: r124032
      Zdenek Dvorak committed
  5. 09 Apr, 2007 1 commit
    • cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge. · c7b852c8
      	* cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
      	(create_preheaders): Check that loops are available.
      	(fix_loop_structure): Clean up, improve comments.
      	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
      	Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
      	state flags.
      	* tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
      	* predict.c (tree_estimate_probability): Do not call
      	calculate_dominance_info.  Call create_preheaders.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
      	rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
      	flags.
      	* cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
      	* cfgloop.h (LOOP_CLOSED_SSA): New constant.
      	* tree-cfg.c (tree_split_edge): Make an assert more precise.
      	* tree-ssa-threadedge.c (thread_across_edge): Comment the function
      	arguments.
      
      From-SVN: r123670
      Zdenek Dvorak committed
  6. 17 Mar, 2007 1 commit
    • arm.c, [...]: Fix comment typos. · 44c7bd63
      	* config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
      	config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
      	typos.
      	* doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
      	Follow spelling conventions.
      
      From-SVN: r123025
      Kazu Hirata committed
  7. 06 Mar, 2007 1 commit
    • errors.h (warning, [...]): Mark as cold. · 52bf96d2
      	* errors.h (warning, error, fatal, internal_error): Mark as cold.
      	* predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
      	are hot.
      	(probably_cold_bb_p): Cold functions are cold.
      	(probably_never_executed_bb_p): Cold functions are cold.
      	(tree_bb_level_predictions): Predict calls to cold functions as not
      	taken.
      	(compute_function_frequency): Check hot/cold attributes.
      	* function.h (function_frequency): Update comments.
      	* predict.def (PRED_COLD_FUNCTION): Predict cold function.
      	* c-common.c (handle_hot_attribute, handle_cold_attribute): New.
      	(c_common_att): Add cold and hot.
      
      	* doc/extend.texi (hot,cold attributes): Document.
      	
      	* ansidecl.h (ATTRIBUTE_COLD, ATTRIBUTE_HOT): New.
      
      From-SVN: r122632
      Jan Hubicka committed
  8. 27 Feb, 2007 2 commits
  9. 25 Feb, 2007 1 commit
    • tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix off-by-one error. · 4839cb59
      	* tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
      	off-by-one error.
      	(array_at_struct_end_p): New function.
      	(idx_infer_loop_bounds): Use it.
      	(estimate_numbers_of_iterations_loop): Export.
      	* predict.c (predict_loops): Use estimated_loop_iterations_int.
      	Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
      	(tree_estimate_probability): Call record_loop_exits.
      	* tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
      	(estimated_loop_iterations, estimated_loop_iterations_int,
      	estimated_loop_iterations_tree): New functions.
      	(analyze_siv_subscript_cst_affine,
      	compute_overlap_steps_for_affine_1_2,
      	analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
      	(analyze_miv_subscript): Use estimated_loop_iterations_tree.
      	* predict.def (PRED_LOOP_ITERATIONS): Update comment.
      	(PRED_LOOP_ITERATIONS_GUESSED): New.
      	* cfgloop.c (record_loop_exits): Do nothing if there are no loops.
      	* cfgloop.h (estimate_numbers_of_iterations_loop,
      	estimated_loop_iterations_int): Declare.
      
      From-SVN: r122316
      Zdenek Dvorak committed
  10. 15 Feb, 2007 1 commit
    • tree.h (enum tree_code_class): Add tcc_vl_exp. · 5039610b
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* tree.h (enum tree_code_class): Add tcc_vl_exp.
      	(VL_EXP_CLASS_P): New.
      	(TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(TREE_OPERAND_CHECK_CODE): Likewise.
      	(GIMPLE_STMT_OPERAND_CHECK): Likewise.
      	(TREE_RTL_OPERAND_CHECK): Likewise.
      	(tree_operand_check_failed): Make second parameter the whole tree
      	instead of its code.  Fixed callers.
      	(VL_EXP_CHECK): New.
      	(TREE_OPERAND_LENGTH): New.
      	(VL_EXP_OPERAND_LENGTH): New.
      	(CALL_EXPR_FN): New.
      	(CALL_EXPR_STATIC_CHAIN): New.
      	(CALL_EXPR_ARGS): New.
      	(CALL_EXPR_ARG): New.
      	(call_expr_nargs): New.
      	(CALL_EXPR_ARGP): New.
      	(build_nt_call_list): Declare.
      	(build_vl_exp_stat): Declare.
      	(build_vl_exp): New.
      	(build_call_list): Declare.
      	(build_call_nary): Declare.
      	(build_call_valist): Declare.
      	(build_call_array): Declare.
      	(call_expr_arg): Declare.
      	(call_expr_argp): Declare.
      	(call_expr_arglist): Declare.
      	(fold_build_call_list): Declare.
      	(fold_build_call_list_initializer): Declare.
      	(fold_call_expr): Declare to replace fold_builtin.
      	(fold_builtin_fputs): Update to agree with modified definition.
      	(fold_builtin_strcpy): Likewise.
      	(fold_builtin_strncpy): Likewise.
      	(fold_builtin_memory_chk): Likewise.
      	(fold_builtin_stxcpy_chk): Likewise.
      	(fold_builtin_strncpy_chk): Likewise.
      	(fold_builtin_next_arg): Likewise.
      	(fold_build_call_expr): Declare.
      	(fold_builtin_call_list): Declare.
      	(fold_builtin_call_valist): Declare.
      	(build_call_expr): Declare.
      	(validate_arglist): Update to agree with modified definition.
      	(tree_operand_length): New.
      	(call_expr_arg_iterator): New.
      	(init_call_expr_arg_iterator): New.
      	(next_call_expr_arg): New.
      	(first_call_expr_arg): New.
      	(more_call_expr_args_p): New.
      	(FOR_EACH_CALL_EXPR_ARG): New.
      
      	* tree.c (tree_code_class_string): Add entries for tcc_vl_exp
      	and tcc_gimple_stmt.
      	(tree_code_size): Update documentation.  Use sizeof (tree) rather
      	than sizeof (char *).
      	(tree_size): Likewise.  Add case for tcc_vl_exp.
      	(tree_node_structure): Add case for tcc_vl_exp.
      	(contains_placeholder_p): Likewise.
      	(substitute_in_expr): Likewise.
      	(substitute_placeholder_in_expr): Likewise.
      	(stabilize_reference_1): Likewise.
      	(build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
      	to diagnose breakage of this interface for constructing CALL_EXPRs.
      	(build_nt): Add similar assertion here.
      	(build_nt_call_list): New.
      	(simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
      	(iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(get_callee_fndecl): Use new CALL_EXPR accessors.
      	(tree_operand_check_failed): Change parameters to pass entire node
      	instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
      	(process_call_operands): New.
      	(build_vl_exp_stat): New.
      	(build_call_list): New.
      	(build_call_nary): New.
      	(build_call_valist): New.
      	(build_call_array): New.
      	(walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(call_expr_arglist): New.
      
      	* tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
      	tcc_vl_exp instead of a fixed-size tcc_expression.
      
      	* doc/c-tree.texi (CALL_EXPR): Document new representation and
      	accessors for CALL_EXPRs.
      	(AGGR_INIT_EXPR): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* builtins.c (c_strlen): Return NULL_TREE instead of 0.
      	(expand_builtin_nonlocal_goto): Change parameter to be entire
      	CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
      	(expand_builtin_prefetch): Likewise.
      	(expand_builtin_classify_type): Likewise.
      	(mathfn_built_in): Return NULL_TREE instead of 0.
      	(expand_errno_check): Use new CALL_EXPR accessors.
      	(expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
      	Return NULL_RTX instead of 0.
      	(expand_builtin_mathfn_2): Likewise.
      	(expand_builtin_mathfn_3): Likewise.
      	(expand_builtin_interclass_mathfn): Likewise.
      	(expand_builtin_sincos): Likewise.
      	(expand_builtin_cexpi): Likewise.
      	(expand_builtin_int_roundingfn): Likewise.
      	(expand_builtin_int_roundingfn_2): Likewise.
      	(expand_builtin_pow): Likewise.
      	(expand_builtin_powi): Likewise.
      	(expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
      	of arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_RTX instead of 0.
      	(expand_builtin_strstr): Likewise.
      	(expand_builtin_strchr): Likewise.
      	(expand_builtin_strrchr): Likewise.
      	(expand_builtin_strpbrk): Likewise.
      	(expand_builtin_memcpy): Likewise.
      	(expand_builtin_mempcpy): Likewise.
      	(expand_builtin_mempcpy_args): New.
      	(expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
      	(expand_builtin_memmove_args): New.
      	(expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
      	(expand_movstr): Likewise.
      	(expand_builtin_strcpy): Likewise.
      	(expand_builtin_strcpy_args): New.
      	(expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
      	(expand_builtin_strncpy): Likewise.
      	(expand_builtin_memset): Likewise.
      	(expand_builtin_memset_args): New.
      	(expand_builtin_bzero): Similarly to expand_builtin_memset.
      	(expand_builtin_memcmp): Likewise.
      	(expand_builtin_strcmp): Likewise.
      	(expand_builtin_strncmp): Likewise.
      	(expand_builtin_strcat): Likewise.
      	(expand_builtin_strncat): Likewise.
      	(expand_builtin_strspn): Likewise.
      	(expand_builtin_strcspn): Likewise.
      	(expand_builtin_args_info): Likewise.
      	(expand_builtin_va_start): Likewise.
      	(gimplify_va_arg_expr): Likewise.
      	(expand_builtin_va_end): Likewise.
      	(expand_builtin_va_copy): Likewise.
      	(expand_builtin_frame_address): Likewise.
      	(expand_builtin_alloca): Likewise.
      	(expand_builtin_bswap): Likewise.
      	(expand_builtin_unop): Likewise.
      	(expand_builtin_fputs): Likewise.
      	(expand_builtin_expect): Likewise.
      	(expand_builtin_fabs): Likewise.
      	(expand_builtin_copysign): Likewise.
      	(expand_builtin_printf): Likewise.
      	(expand_builtin_fprintf): Likewise.
      	(expand_builtin_sprintf): Likewise.
      	(expand_builtin_init_trampoline): Likewise.
      	(expand_builtin_signbit): Likewise.
      	(expand_builtin_fork_or_exec): Likewise.
      	(expand_builtin_sync_operation): Likewise.
      	(expand_builtin_compare_and_swap): Likewise.
      	(expand_builtin_lock_test_and_set): Likewise.
      	(expand_builtin_lock_release): Likewise.
      	(expand_builtin): Likewise.
      	(builtin_mathfn_code): Likewise.
      
      	(fold_builtin_constant_p): Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_expect): Likewise.
      	(fold_builtin_classify_type): Likewise.
      	(fold_builtin_strlen): Likewise.
      	(fold_builtin_nan): Likewise.
      	(integer_valued_real_p): Likewise.
      	(fold_trunc_transparent_mathfn): Likewise.
      	(fold_fixed_mathfn): Likewise.
      	(fold_builtin_cabs): Likewise.
      	(fold_builtin_sqrt): Likewise.
      	(fold_builtin_cbrt): Likewise.
      	(fold_builtin_cos): Likewise.
      	(fold_builtin_cosh): Likewise.
      	(fold_builtin_tan): Likewise.
      	(fold_builtin_sincos): Likewise.
      	(fold_builtin_cexp): Likewise.
      	(fold_builtin_trunc): Likewise.
      	(fold_builtin_floor): Likewise.
      	(fold_builtin_ceil): Likewise.
      	(fold_builtin_round): Likewise.
      	(fold_builtin_int_roundingfn): Likewise.
      	(fold_builtin_bitop): Likewise.
      	(fold_builtin_bswap): Likewise.
      	(fold_builtin_logarithm): Likewise.
      	(fold_builtin_hypot): Likewise.
      	(fold_builtin_pow): Likewise.
      	(fold_builtin_powi): Likewise.
      	(fold_builtin_exponent): Likewise.
      	(fold_builtin_memset): Likewise.
      	(fold_builtin_bzero): Likewise.
      	(fold_builtin_memory_op): Likewise.
      	(fold_builtin_bcopy): Deleted; call site changed to invoke
      	fold_builtin_memory_op directly.
      	(fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
      	(fold_builtin_strncpy): Likewise.
      	(fold_builtin_memcmp): Likewise.
      	(fold_builtin_strcmp): Likewise.
      	(fold_builtin_strncmp): Likewise.
      	(fold_builtin_signbit): Likewise.
      	(fold_builtin_copysign): Likewise.
      	(fold_builtin_isascii): Likewise.
      	(fold_builtin_toascii): Likewise.
      	(fold_builtin_isdigit): Likewise.
      	(fold_builtin_fabs): Likewise.
      	(fold_builtin_abs): Likewise.
      	(fold_builtin_fmin_fmax): Likewise.
      	(fold_builtin_carg): Likewise.
      	(fold_builtin_classify): Likewise.
      	(fold_builtin_unordered_cmp): Likewise.
      
      	(fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
      	New functions split out from fold_builtin_1.
      	(fold_builtin_n): New.
      	(fold_builtin_varargs): New.
      	(fold_builtin): Deleted.  Most callers changed to use fold_call_expr
      	instead.
      	(fold_call_expr): New.
      	(build_function_call_expr): Rewrite to use new helper function.
      	(fold_builtin_call_list): New.
      	(build_call_expr): New.
      	(fold_builtin_call_valist): New.
      	(rewrite_call_expr): New.
      	(validate_arg): New.
      	(validate_arglist): Change parameter to be entire CALL_EXPR instead
      	of an arglist.  Change return type to bool.  Use new CALL_EXPR
      	accessors.
      
      	(fold_builtin_strstr):  Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_strchr): Likewise.
      	(fold_builtin_strrchr): Likewise.
      	(fold_builtin_strpbrk): Likewise.
      	(fold_builtin_strcat): Likewise.
      	(fold_builtin_strncat): Likewise.
      	(fold_builtin_strspn): Likewise.
      	(fold_builtin_strcspn): Likewise.
      	(fold_builtin_fputs): Likewise.
      	(fold_builtin_next_arg): Likewise.
      	(fold_builtin_sprintf): Likewise.
      
      	(expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
      	NULL_RTX instead of 0.
      	(expand_builtin_memory_chk): Likewise.
      	(maybe_emit_chk_warning): Likewise.
      	(maybe_emit_sprintf_chk_warning): Likewise.
      
      	(fold_builtin_object_size): Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_memory_chk): Likewise.
      	(fold_builtin_stxcpy_chk): Likewise.
      	(fold_builtin_strncpy_chk): Likewise.
      	(fold_builtin_strcat_chk): Likewise.
      	(fold_builtin_strcat_chk): Likewise.
      	(fold_builtin_strncat_chk): Likewise.
      	(fold_builtin_sprintf_chk): Likewise.
      	(fold_builtin_snprintf_chk): Likewise.
      	(fold_builtin_printf): Likewise.
      	(fold_builtin_vprintf): Likewise.
      
      	* fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
      	constructors.
      	(operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
      	(make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(extract_muldiv_1): Add VL_EXP_CLASS_P case.
      	(fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
      	(fold_unary): Likewise.
      	(fold_binary): Likewise.
      	(fold_ternary): Remove CALL_EXPR case, since they are no longer
      	ternary expressions.
      	(fold): Add logic for tcc_vl_exp.
      	(fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(fold_build3_stat): Add assertion to flag broken interface for
      	constructing CALL_EXPRs.
      	(fold_build_call_list): New.
      	(fold_build_call_list_initializer): New.
      	(tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
      	constructors.
      	(fold_strip_sign_ops): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
      	accessors and dump arguments explicitly.
      
      	* tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(dump_generic_node): Use new CALL_EXPR accessors and walk arguments
      	explicitly.
      	(print_call_name): Use new CALL_EXPR accessors.
      
      	* print-tree.c (print_node): Add case tcc_vl_exp.  Print
      	CALL_EXPR arguments explicitly instead of as a list.  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
      	(vrp_visit_stmt): Likewise.
      
      	* tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
      	know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(force_move_till_expr): Likewise.
      
      	* targhooks.c (default_external_stack_protect_fail): Use
      	build_call_expr instead of build_function_call_expr.
      	(default_hidden_stack_protect_fail): Likewise.
      
      	* tree-complex.c (expand_complex_libcall): Use build_call_expr to
      	build the call.
      
      	* cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
      	and walk arguments explicitly.
      
      	* tree-ssa-loop-niter.c (simplify_replace_tree): Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(expand_simple_operations): Likewise.
      	(infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
      
      	* gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      	(walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
      
      	* optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* value_prof.c (tree_ic): Use new CALL_EXPR accessors.
      	(tree_ic_transform): Likewise.
      	(interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
      	parameter instead of arglist.  Fix callers.
      	(tree_stringop_fixed_value): Use new CALL_EXPR accessors.
      	(tree_stringops_transform): Likewise.
      	(tree_indirect_call_to_profile): Likewise.
      	(tree_stringops_values_to_profile): Likewise.
      
      	* tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
      	(eliminate_tail_call): Likewise.
      
      	* ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
      
      	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
      	Use TREE_OPERAND_LENGTH and generalize to handle any number of
      	operands.
      	(instantiate_parameters_1): Can't handle tcc_vl_exp here.
      
      	* omp-low.c (build_omp_barrier): Use build_call_expr.
      	(lower_rec_input_clauses): Likewise.
      	(lower_reduction_clauses): Likewise.
      	(expand_parallel_call): Likewise.
      	(maybe_catch_exception): Likewise.
      	(expand_omp_for_generic): Likewise.
      	(expand_omp_for_static_nochunk): Likewise.
      	(expand_omp_sections): Likewise.
      	(lower_omp_single_simple): Likewise.
      	(lower_omp_single_copy): Likewise.
      	(lower_omp_master): Likewise.
      	(lower_omp_ordered): Likewise.
      	(lower_omp_critical): Likewise.
      
      	* ipa-reference.c (check-call): Use new CALL_EXPR iterator.
      	(scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
      
      	* tree-gimple.c (is_gimple_call_addr): Fix doc.
      	(recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.  Add tcc_vl_exp case.
      
      	* tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
      	and generalize to handle any number of operands.
      	(chrec_contains_undetermined): Likewise.
      	(tree_contains_chrecs): Likewise.
      	(evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
      
      	* cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
      
      	* tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
      	fold_call_expr instead of fold_builtin.
      	(ccp_fold_builtin): Likewise.  Update calls into builtins.c to
      	match declarations there.
      	(fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
      	updates.
      
      	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
      	(scan_function): Add case tcc_vl_exp for CALL_EXPR.
      
      	* tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
      	accessors.
      
      	* tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
      	(execute_cse_sincos): Use new CALL_EXPR accessors.
      
      	* tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
      
      	* gimple-low.c (lower_function_body): Use build_call_expr.
      	(lower_builtin_setjmp): Likewise.
      
      	* expr.c (emit_block_move_via_libcall): Use build_call_expr.
      	(set_storage_via_libcall): Likewise.
      	(safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      	(expand_expr_real_1): Use new CALL_EXPR accessors.
      
      	* tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
      	generalize to handle any number of operands.
      	(TB_parent_eq): Likewise.
      
      	* predict.c (expr_expected_value): Use new CALL_EXPR accessors.
      	(strip_builtin_expect): Likewise.
      
      	* function.c (gimplify_parameters): Use build_call_expr.
      
      	* tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
      	(scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
      
      	* tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
      	iterators.
      
      	* gimplify.c (build_stack_save_restore): Use build_call_expr.
      	(gimplify_decl_expr): Likewise.
      	(gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
      	Use new CALL_EXPR iterators.
      	(gimplify_modify_expr_to_memcpy): Use build_call_expr.
      	(gimplify_modify_expr_to_memset): Likewise.
      	(gimplify_variable_sized_compare): Likewise.
      	(gimplify_omp_atomic_fetch_op): Likewise.
      	(gimplify_omp_atomic_pipeline): Likewise.
      	(gimplify_omp_atomic_mutex): Likewise.
      	(gimplify_function_tree): Likewise.
      
      	* calls.c (alloca_call_p): Use new CALL_EXPR accessors.
      	(call_expr_flags): Likewise.
      	(expand_call): Likewise.
      
      	* except.c (expand_builtin_eh_return_data_regno): Pass entire
      	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR 
              accessors.
      
      	* coverage.c (create_coverage): Use build_call_expr.
      
      	* tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
      	(temp_call_expr_obstack): New.
      	(pool_copy_list): Delete.
      	(temp_copy_call_expr): New.
      	(phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
      	CALL_EXPR accessors.  Get rid of special goo for copying argument
      	lists and use temp_copy_call_expr instead.
      	(valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
      	CALL_EXPR accessors.
      	(create_expression_by_pieces): Likewise.  Use build_call_array
      	to construct the result instead of fold_build3.
      	(create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
      	dealing with argument lists.
      	(init_pre): Remove references to expression_node_pool and
      	list_node_pool.  Init temp_call_expr_obstack instead.
      	(fini_pre): Remove references to expression_node_pool and
      	list_node_pool.
      
      	* tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
      	and walk arguments explicitly instead of as a list.
      
      	* tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
      	(mx_register_decls): Likewise.
      	(mudflap_register_call): Likewise.
      	(mudflap_finish_file): Likewise.
      
      	* ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
      	(ipa_callsite_compute_param): Likewise.
      
      	* tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
      	accessors and constructor.
      
      	* tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
      	accessors and constructor.
      	(convert_tramp_reference): Likewise. 
      	(convert_call_expr): Likewise.
      	(finalize_nesting_tree_1): Likewise.
      
      	* tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
      	accessors.
      
      	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
      
      	* tree-inline.c (initialize_inlined_parameters): Pass entire
      	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
      	accessors.
      	(estimate_num_insns_1): Use new CALL_EXPR accessors.
      	(expand_call_inline): Tidy up call to initialize_inlined_parameters.
      
      	* tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(vectorizable_reduction): Likewise.
      	(vectorizable_call): Use new CALL_EXPR iterators.
      	(vectorizable_conversion): Use build_call_expr.
      	(vectorizable_operation): Use TREE_OPERAND_LENGTH.
      	(vect_gen_widened_results_half): Use build_call_expr.
      	(vect_setup_realignment): Likewise.
      	(vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
      
      	* tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
      	(pass_through_call): Likewise.
      	(compute_object_sizes): Likewise.  Use fold_call_expr instead of
      	fold_builtin.
      
      	* tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
      	(tree_gen_pow2_profiler): Likewise.
      	(tree_gen_one_value_profiler): Likewise.
      	(tree_gen_ic_func_profiler): Likewise.
      	(tree_gen_average_profiler): Likewise.
      	(tree_gen_ior_profiler): Likewise.
      
      	* tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
      	(find_func_aliases): Use new CALL_EXPR accessors.  Add case
      	tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      
      	* stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      
      	* convert.c (convert_to_real): Use new CALL_EXPR accessors and
      	constructor.
      	(convert_to_integer): Likewise.
      
      	* tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
      	accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
      	accessors.
      	* config/frv/frv.c (frv_expand_builtin): Likewise.
      	* config/s390/s390.c (s390_expand_builtin): Likewise.
      
      	* config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
      	(sparc_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
      	(ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
      	instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
      	(ix86_expand_store_builtin): Likewise.
      	(ix86_expand_unop_builtin): Likewise.
      	(ix86_expand_unop1_builtin): Likewise.
      	(ix86_expand_sse_compare): Likewise.
      	(ix86_expand_sse_comi): Likewise.
      	(ix86_expand_vec_init_builtin): Likewise.
      	(ix86_expand_vec_ext_builtin): Likewise.
      	(ix86_expand_vec_set_builtin): Likewise.
      	(ix86_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
      	* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
      
      	* config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(iq2000_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
      	build_call_expr.
      	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
      	(rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(altivec_expand_abs_builtin): Likewise.
      	(rs6000_expand_binop_builtin): Likewise.
      	(altivec_expand_predicate_builtin): Likewise.
      	(altivec_expand_lv_builtin): Likewise.
      	(spe_expand_stv_builtin): Likewise.
      	(altivec_expand_stv_builtin): Likewise.
      	(rs6000_expand_ternop_builtin): Likewise.
      	(altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
      	(altivec_expand_st_builtin): Likewise.
      	(altivec_expand_dst_builtin): Likewise.
      	(altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(altivec_expand_vec_set_builtin): Likewise.
      	(altivec_expand_vec_ext_builtin): Likewise.
      	(altivec_expand_builtin): Use new CALL_EXPR accessors.
      	(spe_expand_builtin): Likewise.
      	(spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(spe_expand_evsel_builtin): Likewise.
      	(rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
      	FCFSX cases must construct whole new CALL_EXPR, not just arglist.
      
      	* config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(arm_expand_unop_builtin): Likewise.
      	(arm_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
      	accessors.
      
      	* config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(bfin_expand_unop_builtin): Likewise.
      	(bfin_expand_builtin): Use new CALL_EXPR accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* c-semantics.c (build_stmt): Add internal diagnostic check.
      
      	* c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
      	accessors.  Print arguments explicitly instead of as a list.
      
      	* c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
      
      	* c-omp.c (c_finish_omp_barrier): Use build_call_expr.
      	(c_finish_omp_flish): Likewise.
      
      	* c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
      	arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      	(check_function_arguments_recurse): Use new CALL_EXPR accessors.
      	(c_warn_unused_result): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
      	Change class to tcc_vl_exp.
      
      	* call.c (build_call): Use build_call_list instead 
      	of build3. 
      	(build_over_call): Likewise.
      	(build_new_method_call): Use build_min_non_dep_call_list 
      	instead of build_min_non_dep.
      
      	* error.c (dump_call_expr_args): New function.
      	(dump_aggr_init_expr_args): New function.
      	(dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them. 
      	Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
      
      	* cvt.c (convert_to_void): Use build_call_array instead
      	of build3; use new AGGR_INIT_EXPR accessor macros.
      
      	* mangle.c (write_expression): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
      	AGGR_INIT_EXPR accessor macros.
      
      	* cp-gimplify.c (cp_gimplify_init_expr): Use 
      	AGGR_INIT_EXPR_SLOT to set the slot operand.
      
      	* cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
      	(AGGR_INIT_EXPR_SLOT): New macro.
      	(AGGR_INIT_EXPR_ARG): New macro.
      	(aggr_init_expr_nargs): New macro.
      	(AGGR_INIT_EXPR_ARGP): New macro.
      	(aggr_init_expr_arg_iterator): New.
      	(init_aggr_init_expr_arg_iterator): New.
      	(next_aggr_init_expr_arg): New.
      	(first_aggr_init_expr_arg): New.
      	(more_aggr_init_expr_args_p): New.
      	(FOR_EACH_AGGR_INIT_EXPR_ARG): New.
      	(stabilize_aggr_init): New declaration.
      	(build_min_non_dep_call_list): Likewise.
      
      	* tree.c (process_aggr_init_operands): New function.
      	(build_aggr_init_array) New function.
      	(build_cplus_new): Update to use new CALL_EXPR and
      	AGGR_INIT_EXPR accessor macros. Replace use of build3 with
      	build_aggr_init_array.
      	(build_min_non_dep_call_list) New function.
      	(build_min_nt): Assert input code parameter is not a variable
      	length expression class.
      	(build_min, build_min_non_dep): Likewise.
      	(cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
      	to check for equality instead of recursing. Handle tcc_vl_exp
      	tree code classes.
      	(stabilize_call): Update to only handle CALL_EXPRs, not 
      	AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
      	(stabilize_aggr_init): New function.
      	(stabilize_init): Use it.
      
      	* cxx-pretty-print.c (pp_cxx_postfix_expression)
      	<AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
      	AGGR_INIT_EXPR accessor macros and argument iterators.
      	
      	* pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
      	build_vl_exp. Iterate through the operands, recursively 
      	processing each one.
      	(tsubst_copy_and_build) <CALL_EXPR>: Update to use new
      	CALL_EXPR accessor macros.
      	(value_dependent_expression_p) <default>: Handle tcc_vl_exp
      	tree code classes. Use TREE_OPERAND_LENGTH instead of 
      	TREE_CODE_LENGTH.
      
      	* semantics.c (finish_call_expr): Use build_nt_call_list
      	instead of build_nt.
      	(simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR 
      	accessor macros. Use build_call_array to construct the 
      	CALL_EXPR node instead of build3
      	
      	* decl2.c (build_offset_ref_call_from_tree): Use 
      	build_nt_call_list and build_min_non_dep_call_list instead
      	of build_min_nt and build_min_non_dep.
      
      	* parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
      	Use build_nt_call_list instead of build_min_nt.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
      	of build3.
      	(BUILD_MONITOR_EXIT): Likewise.
      
      	* java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
      	(java_gimplify_modify_expr): Likewise.
      
      	* class.c (cache_this_class_ref): Use build_call_expr.
      	(build_static_field_ref): Likewise.
      	(emit_indirect_register_classes): Likewise.
      	(emit_register_classes): Likewise.
      
      	* resource.c (write_resource_constructor): Use build_call_expr.
      
      	* builtins.c (builtin_creator_function): Change interpretation of
      	the second parameter to be the whole CALL_EXPR instead of the arglist.
      	(max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
      	(min_builtin): Likewise.
      	(abs_builtin): Likewise.
      	(java_build_function_call_expr): Likewise.
      	(convert_real): Likewise.
      	(UNMARSHAL3): Likewise.
      	(UNMARSHAL4): Likewise.
      	(UNMARSHAL5): Likewise.
      	(build_arglist_for_builtin): Delete.  Fix callers to use
      	build_call_expr instead.
      	(putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
      	accessors.
      	(compareAndSwapInt_builtin): Likewise.
      	(compareAndSwapLong_builtin): Likewise.
      	(compareAndSwapObject_builtin): Likewise.
      	(putVolatile_builtin): Likewise.
      	(getVolatile_builtin): Likewise.
      	(VMSupportsCS8_builtin): Likewise.
      	(check_for_builtin): Pass entire CALL_EXPR to builtin expander
      	instead of arglist.
      
      	* expr.c (build_java_athrow): Use build_call_nary instead of build3.
      	(build_java_throw_out_of_bounds_exception): Likewise.
      	(java_check_reference): Likewise.
      	(build_java_arraystore_check): Likewise.
      	(build_newarray): Likewise.
      	(build_anewarray): Likewise.
      	(expand_java_multinewarray): Use build_call_list instead of build3.
      	(build_java_monitor): Use build_call_nary instead of build3.
      	(java_create_object): Likewise.
      	(expand_java_NEW): Likewise.
      	(build_instanceof): Likewise.
      	(expand_java_CHECKCAST): Likewise.
      	(build_java_soft_divmod): Likewise.
      	(build_java_binop): Likewise.
      	(build_field_ref): Likewise.
      	(build_class_init): Likewise.
      	(rewrite_arglist_getcaller): Use build_call_expr.
      	(build_invokeinterface):  Use build_call_nary instead of build3.
      	(expand_invoke): Use build_call_list instead of build3.
      	(build_jni_stub): Use build_call_nary, build_call_list, or
      	build_call_expr instead	of build3.
      	(expand_java_field_op): Use build_call_expr instead of build3.
      	(force_evaluation_order): Use new CALL_EXPR accessors.
      
      	* lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
      	(objc_get_callee_fndecl): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* trans-expr.c (gfc_conv_power_op): Use build_call_expr.
      	(gfc_conv_string_tmp): Likewise.
      	(gfc_conv_concat_op): Likewise.
      	(gfc_build_compare_string): Likewise.
      	(gfc_conv_function_call): Use build_call_list instead of build3.
      
      	* trans-array.c (gfc_trans_allocate_array_storage): Use
      	build_call_expr.
      	(gfc_grow_array): Likewise.
      	(gfc_trans_array_ctor_element): Likewise.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_array_allocate): Likewise.
      	(gfc_array_deallocate): Likewise.
      	(gfc_trans_auto_array_allocation): Likewise.
      	(gfc_trans_dummy_array_bias): Likewise.
      	(gfc_conv_array_parameter): Likewise.
      	(gfc_trans_dealloc_allocated): Likewise.
      	(gfc_duplicate_allocatable): Likewise.
      
      	* trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
      	(gfc_trans_omp_flush): Likewise.
      
      	* trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
      	(gfc_trans_pause): Likewise.
      	(gfc_trans_stop): Likewise.
      	(gfc_trans_character_select): Likewise.
      	(gfc_do_allocate): Likewise.
      	(gfc_trans_assign_need_temp): Likewise.
      	(gfc_trans_pointer_assign_need_temp): Likewise.
      	(gfc_trans_forall_1): Likewise.
      	(gfc_trans_where_2): Likewise.
      	(gfc_trans_allocate): Likewise.
      	(gfc_trans_deallocate): Likewise.
      
      	* trans.c (gfc_trans_runtime_check): Use build_call_expr.
      
      	* trans-io.c (gfc_trans_open): Use build_call_expr.
      	(gfc_trans_close): Likewise.
      	(build_filepos): Likewise.
      	(gfc_trans_inquire): Likewise.
      	(NML_FIRST_ARG): Delete.
      	(NML_ADD_ARG): Delete.
      	(transfer_namelist_element): Use build_call_expr.
      	(build_dt): Likewise.
      	(gfc_trans_dt_end): Likewise.
      	(transfer_expr): Likewise.
      	(transfer_array-desc): Likewise.
      
      	* trans-decl.c (gfc_generate_function_code): Use build_call_expr.
      	(gfc_generate_constructors): Likewise.
      
      	* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
      	(gfc_conv_intrinsic_fdate): Likewise.
      	(gfc_conv_intrinsic_ttynam): Likewise.
      	(gfc_conv_intrinsic_array_transfer): Likewise.
      	(gfc_conv_associated): Likewise.
      	(gfc_conv_intrinsic_si_kind): Likewise.
      	(gfc_conv_intrinsic_trim): Likewise.
      	(gfc_conv_intrinsic_repeat: Likewise.
      	(gfc_conv_intrinsic_iargc): Likewise.
      
      Co-Authored-By: Brooks Moses <brooks.moses@codesourcery.com>
      Co-Authored-By: Lee Millward <lee.millward@codesourcery.com>
      
      From-SVN: r122018
      Sandra Loosemore committed
  11. 09 Feb, 2007 1 commit
    • Makefile.in (passes.o, [...]): Add dependencies. · 45a80bb9
      	* Makefile.in (passes.o, ipa-inline.o): Add dependencies.
      	* cgraphbuild.c (build_cgraph_edges): Compute frequencies.
      	(rebuild_cgraph_edges): Likewise.
      	* cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
      	(dump_cgraph_node): Dump frequencies.
      	(cgraph_clone_edge): Add frequency scales.
      	(cgraph_clone_node): Add freuqnecy.
      	* cgraph.h (cgraph_edge): Add freuqnecy argument.
      	(CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
      	(cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
      	* tree-pass.h (TODO_rebuild_frequencies): New constant.
      	* cgraphunit.c (verify_cgraph_node): Verify frequencies.
      	(cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
      	(save_inline_function_body): Likewise.
      	* ipa-inline.c: inluce rtl.h
      	(cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
      	(cgraph_edge_badness): Use frequencies.
      	(cgraph_decide_recursive_inlining): Update clonning.
      	(cgraph_decide_inlining_of_small_function): Dump frequency.
      	* predict.c (estimate_bb_frequencies): Export.
      	* predict.h (estimate_bb_frequencies): Declare.
      	* tree-inline.c (copy_bb): Watch overflows.
      	(expand_call_inline): Update call of cgraph_create_edge.
      	(optimize_inline_calls): Use TODO flags to update frequnecies.
      	* passes.h: Include predict.h
      	(init_optimization_passes): Move profile ahead.
      	(execute_function_todo): Handle TODO_rebuild_frequencies.
      
      From-SVN: r121780
      Jan Hubicka committed
  12. 19 Jan, 2007 1 commit
    • Patch by Tomas Bily <tbily@suse.cz> · 6bad2617
      Patch by Tomas Bily  <tbily@suse.cz>
              * cgraphunit.c (cgraph_finalize_function): Updating of pid
              * tree-profile.c:
              (tree_init_ic_make_global_vars): New function
              (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
              (tree_gen_ic_profiler): New function
              (tree_gen_ic_func_profiler): New function
              (tree_profiling): Added calling of tree_gen_ic_func_profiler
              (tree_profile_hooks): Added hook for indirec/virtual calls
              * value-prof.c (tree_find_values_to_profile): New case for
              indirect calls
              (tree_values_to_profile): Call for determining indirect/virtual
              counters
              (tree_indirect_call_to_profile): New function
              (tree_ic_transform): New function
              (tree_ic): New function
              (find_func_by_pid): New function
              (init_pid_map): New function
              (tree_value_profile_transformations): Added check for
              indirect/virtual call transformation
              * value-prof.h (enum hist_type): New counter type for
              indirect/virtual calls
              (profile_hooks): Added new hook for profiling indirect/virtual
              calls
              * profile.c (instrument_values): New case for indirect/virtual
              call added
              * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
              (GCOV_COUNTER_V_INDIR): New counter type
              (GCOV_COUNTER_NAMES): New name of counter "indirect" added
              (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
              call added
              * cgraph.c: Definition of cgraph_max_pid
              (cgraph_create_node): Default init of pid attribute
              * cgraph.h: Declaration of cgraph_max_pid
              (struct cgraph_node): Added pid attribute
              * libgcov.c (__gcov_indirect_call_profiler): New function
      	(__gcov_one_value_profiler_body): New function
      	(__gcov_one_value_profiler): Body was moved to
      	__gcov_one_value_profiler_body and calls it
      
      	gcc.dg/tree-prof/indir-call-prof.c: New.
      	g++.dg/dg.exp: Add tree-prof subdirectory.
      	g++.dg/tree-prof/indir-call-prof.C: New.
      	g++.dg/tree-prof/tree-prof.exp: New.
      
      From-SVN: r120975
      Tomas Bily committed
  13. 08 Jan, 2007 1 commit
    • tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type of offset to build the index. · 7fb41a42
      2007-01-08  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
      	of offset to build the index.
      	* tree-pretty-print.c (dump_generic_node): Don't build negated
      	const just for printing.
      	* c-pretty-print.c (pp_c_integer_constant): Likewise.
      	* builtins.c (fold_builtin_int_roundingfn): Check if result
      	fits the type by using force_fit_type and comparing the result.
      	* predict.c (predict_loops): Use compare_tree_int for comparison.
      	* tree.c (build_int_cst): Fall back to integer_type_node for
      	NULL_TREE type.
      	(build_int_cst_wide): Assert type is non-null.
      
      	fortran/
      	* trans-io.c (transfer_array_desc): Use build_int_cst instead
      	of build_int_cstu.
      
      From-SVN: r120586
      Richard Guenther committed
  14. 10 Dec, 2006 1 commit
    • tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop. · 42fd6772
      	* tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop.
      	* loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP.
      	* tree-loop-linear.c (linear_transform_loops): Ditto.
      	* tree-ssa-loop-im.c (determine_lsm): Ditto.
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
      	free_numbers_of_iterations_estimates): Ditto.
      	* tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
      	* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables,
      	tree_unroll_loops_completely): Ditto.
      	* predict.c (predict_loops): Ditto.
      	* tree-if-conv.c (main_tree_if_conversion): Ditto.
      	* loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
      	decide_unrolling_and_peeling): Ditto.
      	* cfgloopmanip.c (unloop): Use delete_loop.
      	(place_new_loop): Access larray vector instead of parray.
      	(create_preheaders, force_single_succ_latches,
      	fix_loop_structure): Use FOR_EACH_LOOP and delete_loop..
      	* loop-doloop.c (doloop_optimize_loops): Ditto.
      	* loop-invariant.c (move_loop_invariants): Ditto.
      	* tree-cfg.c (replace_uses_by): Ditto.
      	* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto.
      	* tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
      	Moved to ...
      	* tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
      	... here.
      	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
      	compute_overall_effect_of_inner_loop, chrec_is_positive): Use
      	get_loop and get_chrec_loop.
      	(number_of_iterations_for_all_loops): Use number_of_loops.
      	(scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP.
      	* tree-scalar-evolution.h (get_chrec_loop): New inline function.
      	* cfgloopanal.c (mark_irreducible_loops): Use number_of_loops,
      	and FOR_EACH_LOOP.
      	* tree-chrec.c (evolution_function_is_invariant_rec_p,
      	chrec_convert_1): Use get_loop and get_chrec_loop.
      	* loop-init.c (loop_optimizer_init): Use number_of_loops.
      	(loop_optimizer_init): Use FOR_EACH_LOOP.
      	* tree-vectorizer.c (vect_loops_num): Removed.
      	(vectorize_loops): Store number of loops locally.  Use
      	FOR_EACH_LOOP and get_loop.
      	* tree-vectorizer.h (vect_loops_num): Removed.
      	* tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop.
      	(find_data_references_in_loop): Do not set parallel_p.
      	* tree-data-ref.h: Do not declare VEC(loop_p).
      	* cfgloop.c (flow_loops_dump, mark_single_exit_loops,
      	verify_loop_structure): Use FOR_EACH_LOOP.
      	(flow_loops_free): Use FOR_EACH_LOOP, free larray vector.
      	(initialize_loops_parallel_p): Removed.
      	(flow_loops_find): Push the loops into a vector.
      	(delete_loop): New function.
      	(cancel_loop): Use delete_loop.
      	* cfgloop.h: Declare VEC(loop_p).
      	(struct loop): Remove parallel_p field.
      	(struct loops): Replace num and parray field by larray vector.
      	Remove shared_headers field.
      	(delete_loop): Declare.
      	(get_loop, get_loops, number_of_loops, fel_next, fel_init,
      	FOR_EACH_LOOP): New.
      	* doc/loop.tex: Document new accessor functions.
      
      From-SVN: r119713
      Zdenek Dvorak committed
  15. 05 Dec, 2006 1 commit
  16. 02 Dec, 2006 1 commit
    • builtins.c, [...]: Fix comment typos. · 2f8e468b
      	* builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
      	config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
      	config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
      	config/sh/sh4-300.md, config/spu/spu-builtins.def,
      	config/spu/spu-c.c, config/spu/spu-modes.def,
      	config/spu/spu.c, config/spu/spu.md,
      	config/spu/spu_internals.h, config/spu/vmx2spu.h,
      	fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
      	tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
      	tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
      	tree-vectorizer.c, tree-vrp.c: Fix comment typos.  Follow
      	spelling conventions.
      
      From-SVN: r119442
      Kazu Hirata committed
  17. 25 Nov, 2006 1 commit
    • tree-vrp.c (execute_vrp): Do not pass loops structure through arguments. · d73be268
      	* tree-vrp.c (execute_vrp): Do not pass loops structure through
      	arguments.
      	* loop-unswitch.c (unswitch_loops, unswitch_single_loop,
      	unswitch_loop): Ditto.
      	* tree-loop-linear.c (linear_transform_loops): Ditto.
      	* tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
      	tree_ssa_lim): Ditto.
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
      	free_numbers_of_iterations_estimates): Ditto.
      	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
      	tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
      	* cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
      	remove_path, add_loop, loopify, unloop, fix_loop_placements,
      	place_new_loop, duplicate_loop, duplicate_subloops,
      	update_single_exit_for_duplicated_loops, copy_loops_to,
      	duplicate_loop_to_header_edge, create_preheaders,
      	force_single_succ_latches, loop_version, fix_loop_structure):
      	Ditto.
      	* tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
      	tree_unroll_loop): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* tree-scalar-evolution.c (select_loops_exit_conditions,
      	scev_initialize, scev_analysis): Ditto.
      	* tree-scalar-evolution.h (scev_initialize): Ditto.
      	* cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
      	* cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
      	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
      	* loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
      	rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
      	* ifcvt.c (if_convert): Ditto.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
      	canonicalize_loop_induction_variables,
      	canonicalize_induction_variables,
      	tree_unroll_loops_completely, remove_empty_loops): Ditto.
      	* tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
      	tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
      	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
      	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
      	tree_ssa_loop_done): Ditto.
      	* predict.c (predict_loops, tree_estimate_probability, estimate_loops,
      	estimate_bb_frequencies): Ditto.
      	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
      	slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
      	* loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
      	decide_unrolling_and_peeling, peel_loop_completely,
      	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
      	peel_loop_simple, unroll_loop_stupid): Ditto.
      	* loop-doloop.c (doloop_optimize_loops): Ditto.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
      	* loop-invariant.c (move_loop_invariants): Ditto.
      	* tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
      	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
      	tree_ssa_prefetch_arrays): Ditto.
      	* lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
      	Ditto.
      	* tree-vect-transform.c (vect_do_peeling_for_loop_bound,
      	vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
      	* cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
      	mark_single_exit_loops, cancel_loop, cancel_loop_tree,
      	verify_loop_structure): Ditto.
      	* tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
      	canonicalize_induction_variables, tree_unroll_loops_completely,
      	tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
      	estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
      	tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
      	tree_unroll_loop, linear_transform_loops): Declaration changed.
      	* basic-block.h: Remove declaration of struct loops.
      	* cfghooks.h (struct cfg_hooks): Change type of
      	cfg_hook_duplicate_loop_to_header_edge.
      	(cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
      	* tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
      	vect_transform_loop): Declaration changed.
      	* lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
      	* cfgloop.h (flow_loops_dump, fix_loop_structure,
      	mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
      	cancel_loop_tree, create_preheaders, force_single_succ_latches,
      	verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
      	loopify, loop_version, remove_path, unswitch_loops,
      	unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
      	Declaration changed.
      
      From-SVN: r119189
      Zdenek Dvorak committed
  18. 23 Nov, 2006 1 commit
  19. 21 Nov, 2006 1 commit
    • tree-ssa-loop-im.c (schedule_sm, [...]): Use vector of edges instead of array. · ca83d385
      	* tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
      	hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
      	Use vector of edges instead of array.
      	* tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
      	estimate_numbers_of_iterations_loop): Ditto.
      	* predict.c (predict_loops): Ditto.
      	* loop-unroll.c (analyze_insns_in_loop): Ditto.
      	* tree-ssa-threadupdate.c: Remove declaration of heap allocation for
      	edge vectors.
      	* basic-block.h: Declare heap allocation for edge vectors.
      	* tree-outof-ssa.c: Ditto.
      	* cfgloop.c (get_loop_exit_edges): Return vector of edges.
      	* cfgloop.h (get_loop_exit_edges): Declaration changed.
      
      From-SVN: r119039
      Zdenek Dvorak committed
  20. 17 Nov, 2006 1 commit
    • tree-vrp.c (execute_vrp): Do not update current_loops. · 598ec7bd
      	* tree-vrp.c (execute_vrp): Do not update current_loops.
      	* loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
      	* doc/loop.texi: Remove documentation for cancelled functions.
      	* tree-ssa-loop-im.c (loop_commit_inserts): Removed.
      	(move_computations, determine_lsm): Use bsi_commit_edge_inserts
      	instead.
      	* cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
      	(remove_path): Ensure that in delete_basic_blocks, the loops
      	are still allocated.
      	(add_loop): Work on valid loop structures.
      	(loopify): Modify call of add_loop.
      	(mfb_update_loops): Removed.
      	(create_preheader): Do not update loops explicitly.
      	(force_single_succ_latches, loop_version): Do not use
      	loop_split_edge_with.
      	(loop_split_edge_with): Removed.
      	* tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
      	Do not use bsi_insert_on_edge_immediate_loop.
      	(split_loop_exit_edge, tree_unroll_loop): Do not use
      	loop_split_edge_with.
      	(bsi_insert_on_edge_immediate_loop): Removed.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops.  Do not
      	use loop_split_edge_with.
      	* cfghooks.c: Include cfgloop.h.
      	(verify_flow_info): Verify that loop_father is filled iff current_loops
      	are available.
      	(redirect_edge_and_branch_force, split_block, delete_basic_block,
      	split_edge, merge_blocks, make_forwarder_block, duplicate_block):
      	Update cfg.
      	* cfgloopanal.c (mark_irreducible_loops): Work if the function contains
      	no loops.
      	* modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
      	loop_split_edge_with.
      	(sms_schedule): Use current_loops.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
      	* loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
      	current_loops.
      	(rtl_loop_init, rtl_loop_done): Do not set current_loops.
      	* tree-ssa-sink.c (execute_sink_code): Use current_loops.
      	* ifcvt.c (if_convert): Ditto.
      	* predict.c (predict_loops): Do not clear current_loops.
      	(tree_estimate_probability): Use current_loops.
      	(propagate_freq): Receive head of the region to propagate instead of
      	loop.
      	(estimate_loops_at_level): Do not use shared to_visit bitmap.
      	(estimate_loops): New function.  Handle case current_loops == NULL.
      	(estimate_bb_frequencies): Do not allocate tovisit.  Use
      	estimate_loops.
      	* tree-ssa-loop.c (current_loops): Removed.
      	(tree_loop_optimizer_init): Do not return loops.
      	(tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
      	* tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
      	slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
      	Do not update loops explicitly.
      	* function.h (struct function): Add x_current_loops field.
      	(current_loops): New macro.
      	* tree-if-conv.c (combine_blocks): Do not update loops explicitly.
      	* loop-unroll.c (split_edge_and_insert): New function.
      	(unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
      	use loop_split_edge_with.
      	* loop-doloop.c (add_test, doloop_modify): Ditto.
      	* tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
      	* cfglayout.c (copy_bbs): Do not update loops explicitly.
      	* lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
      	* tree-vect-transform.c (vect_transform_loop): Do not update loops
      	explicitly.
      	* cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
      	(flow_loops_free): Do not free dfs_order and rc_order.
      	(flow_loops_find): Do not set dfs_order and rc_order in loops
      	structure.  Do not call loops and flow info verification.
      	(add_bb_to_loop, remove_bb_from_loops): Check whether the block
      	already belongs to some loop.
      	* cfgloop.h (struct loops): Remove struct cfg.
      	(current_loops, loop_split_edge_with): Declaration removed.
      	(loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
      	* tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
      	Declaration removed.
      	* Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
      	* basic-block.h (split_edge_and_insert): Declare.
      	* tree-cfg.c (remove_bb): Do not update loops explicitly.
      
      From-SVN: r118931
      Zdenek Dvorak committed
  21. 16 Nov, 2006 1 commit
    • tree-vrp.c (get_value_range): Use XCNEW instead of XNEW and memset. · b9eae1a9
      2006-11-16  Dirk Mueller  <dmueller@suse.de>
      
             * tree-vrp.c (get_value_range): Use XCNEW instead
             of XNEW and memset.
             (insert_range_assertions): Use XCNEWVEC instead
             of XNEWVEC and memset.
             (vrp_initialize): Same.
             (vrp_finalize): Same.
             * tree-ssa-ccp.c (ccp_initialize): Same.
             * predict.c (tree_bb_level_predictions): Same.
             * calls.c (expand_call): Same.
             * tree-ssa-copy.c (init_copy_prop): Same.
             (fini_copy_prop): Same.
             * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
             of GGC_NEW and memset.
      
             * name-lookup.c (begin_scope): Use GGC_CNEW instead of
             GGC_NEW and memset.
      
      From-SVN: r118903
      Dirk Mueller committed
  22. 11 Nov, 2006 2 commits
    • extended.texi (__builtin_expect): We no longer require second argument to be constant. · ef950eba
      	* extended.texi (__builtin_expect): We no longer require second argument
      	to be constant.
      	* gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
      	* builtins.c (expand_builtin_expect): Simplify.
      	(expand_builtin_expect_jump): Kill.
      	* final.c (final_scan_insn): Do not skip the removed notes.
      	* insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
      	EXPECTED_VALUE): Remove.
      	* dojump.c (do_jump): Do not care about __builtin_expect.
      	* predict.c (expected_value_to_br_prob): Kill.
      	* function.c (expand_function_end): Do not expand
      	NOTE_INSN_REPEATED_LINE_NUMBER.
      	* print-rtl.c (print_rtx): Do not pretty print the removed notes.
      	* expect.c (sjlj_emit_function_enter): Emit directly branch probability.
      	* cfgexpand.c (add_reg_br_prob_note): Export.
      	* cfgcleanup.c (rest_of_handle_jump2): Do not call
      	expected_value_to_br_prob.
      	* cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
      	* rtl.h (add_reg_br_prob_note): Declare.
      
      From-SVN: r118696
      Jan Hubicka committed
    • * predict.c (predict_loops): Kill RTL variant. · 992c31e6
      From-SVN: r118694
      Jan Hubicka committed
  23. 25 Aug, 2006 1 commit
  24. 23 Aug, 2006 1 commit
    • predict.c (probability_reliable_p): New predicate. · 2c9e13f3
      	* predict.c (probability_reliable_p): New predicate.
      	(edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
      	(predict_loops): Do not predict loop exit with less than 2%
      	probability.
      	* basic-block.h (edge_probability_reliable_p,
      	br_prob_note_reliable_p): Declare.
      	* ia64.h (ia64_print_operand): Do not disable on-chip branch
      	prediction when static predictor is not reliable.
      	* rs6000.c (output_cbranch): Likewise.
      
      From-SVN: r116358
      Jan Hubicka committed
  25. 28 May, 2006 1 commit
    • cfgcleanup.c, [...]: Fix comment typos. · 6fc0bb99
      	* cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
      	config/fr30/fr30.md, config/i386/i386-interix.h,
      	config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
      	config/sh/superh64.h, config/v850/v850.c, df-core.c,
      	df-problems.c, df.h, except.c, final.c, haifa-sched.c,
      	lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
      	reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
      	tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
      	Follow spelling conventions.
      	* doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
      	Follow spelling conventions.
      
      From-SVN: r114168
      Kazu Hirata committed
  26. 12 Mar, 2006 1 commit
    • predict.c (estimate_probability): Remove. · 3d47ea88
              * predict.c (estimate_probability): Remove.
              * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
              * basic-block.h (estimate_probability): Remove prototype.
              * passes.c (finish_optimization_passes): Dump branch prediction or
              profiling heuristics to the .profile tree dump.
              (init_optimization_passes): Unqueue pass_branch_prob.
      
              * doc/invoke.texi (-fdump-rtl-bp): Remove.
      
      From-SVN: r111980
      Steven Bosscher committed
  27. 02 Mar, 2006 1 commit
    • tree-vrp.c (execute_vrp): Return value. · c2924966
      2006-03-02  Daniel Berlin <dberlin@dberlin.org>
      
      	* gcc/tree-vrp.c (execute_vrp): Return value.
      	* gcc/regrename.c (rest_of_handle_regrename): Ditto.
      	* gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
      	* gcc/tree-complex.c (tree_lower_complex): Ditto.
      	(tree_lower_complex_O0): Ditto.
      	* gcc/tracer.c (rest_of_handle_tracer): Ditto.
      	* gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
      	* gcc/postreload.c (rest_of_handle_postreload): Ditto.
      	* gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
      	(execute_tail_calls): Ditto.
      	* gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* gcc/tree.h (init_function_for_compilation): Ditto.
      	* gcc/ipa-cp.c (ipcp_driver): Ditto.
      	* gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
      	* gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
      	* gcc/final.c (compute_alignments): Ditto.
      	(rest_of_handle_final): Ditto.
      	(rest_of_handle_shorten_branches): Ditto.
      	(rest_of_clean_state): Ditto.
      	* gcc/omp-low.c (execute_expand_omp): Ditto.
      	(execute_lower_omp): Ditto.
      	* gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
      	* gcc/ipa-reference.c (static_execute): Ditto.
      	* gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
      	* gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
      	(rest_of_handle_machine_reorg): Ditto.
      	* gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
      	* gcc/flow.c (recompute_reg_usage): Ditto.
      	(rest_of_handle_remove_death_notes): Ditto.
      	(rest_of_handle_life): Ditto.
      	(rest_of_handle_flow2): Ditto.
      	* gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
      	* gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
      	(do_ssa_store_ccp): Ditto.
      	(execute_fold_all_builtins): Ditto.
      	* gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
      	* gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
      	* gcc/ipa-pure-const.c (static_execute): Ditto.
      	* gcc/cse.c (rest_of_handle_cse): Ditto.
      	(rest_of_handle_cse2): Ditto.
      	* gcc/web.c (rest_of_handle_web): Ditto.
      	* gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
      	* gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
      	* gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
      	* gcc/tree-nrv.c (tree_nrv): Ditto.
      	(execute_return_slot_opt): Ditto.
      	* gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
      	(create_structure_vars): Ditto.
      	* gcc/loop-init.c (rtl_loop_init): Ditto.
      	(rtl_loop_done): Ditto.
      	(rtl_move_loop_invariants): Ditto.
      	(rtl_unswitch): Ditto.
      	(rtl_unroll_and_peel_loops): Ditto.
      	(rtl_doloop): Ditto.
      	* gcc/gimple-low.c (lower_function_body): Ditto.
      	(mark_used_blocks): Ditto.
      	* gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
      	* gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
      	(cgraph_early_inlining): Ditto.
      	* gcc/global.c (rest_of_handle_global_alloc): Ditto.
      	* gcc/jump.c (cleanup_barriers): Ditto.
      	(purge_line_number_notes): Ditto.
      	* gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
      	(rest_of_handle_if_after_reload): Ditto.
      	* gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
      	(tree_ssa_loop_im): Ditto.
      	(tree_ssa_loop_unswitch): Ditto.
      	(tree_vectorize): Ditto.
      	(tree_linear_transform): Ditto.
      	(tree_ssa_loop_ivcanon): Ditto.
      	(tree_ssa_empty_loop): Ditto.
      	(tree_ssa_loop_bounds): Ditto.
      	(tree_complete_unroll): Ditto.
      	(tree_ssa_loop_prefetch): Ditto.
      	(tree_ssa_loop_ivopts): Ditto.
      	(tree_ssa_loop_done): Ditto.
      	* gcc/predict.c (tree_estimate_probability): Ditto.
      	* gcc/recog.c (split_all_insns_noflow): Ditto.
      	(rest_of_handle_peephole2): Ditto.
      	(rest_of_handle_split_all_insns): Ditto.
      	* gcc/tree-eh.c (lower_eh_constructs): Ditto.
      	* gcc/regmove.c (rest_of_handle_regmove): Ditto.
      	(rest_of_handle_stack_adjustments): Ditto.
      	* gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
      	* gcc/function.c (instantiate_virtual_regs): Ditto.
      	(init_function_for_compilation): Ditto.
      	(rest_of_handle_check_leaf_regs): Ditto.
      	* gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
      	(rest_of_handle_gcse): Ditto.
      	* gcc/ipa-type-escape.c (type_escape_execute): Ditto.
      	* gcc/alias.c (rest_of_handle_cfg): Ditto.
      	* gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
      	* gcc/profile.c (rest_of_handle_branch_prob): Ditto.
      	* gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
      	* gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
      	* gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
      	* gcc/tree-dfa.c (find_referenced_vars): Ditto.
      	* gcc/except.c (set_nothrow_function_flags): Ditto.
      	(convert_to_eh_region_ranges): Ditto.
      	(rest_of_handle_eh): Ditto.
      	* gcc/emit-rtl.c (unshare_all_rtl): Ditto.
      	(remove_unnecessary_notes): Ditto.
      	* gcc/except.h (set_nothrow_function_flags): Ditto.
      	(convert_to_eh_region_ranges): Ditto.
      	* gcc/cfgexpand.c (tree_expand_cfg): Ditto.
      	* gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
      	* gcc/tree-ssa-pre.c (do_pre): Ditto.
      	(execute_fre): Ditto.
      	* gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
      	(rest_of_handle_jump2): Ditto.
      	* gcc/tree-sra.c (tree_sra): Ditto.
      	* gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
      	(execute_mudflap_function_decls): Ditto.
      	* gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
      	(do_store_copy_prop): Ditto.
      	* gcc/ipa-prop.h (ipcp_driver): Ditto.
      	* gcc/cfglayout.c (insn_locators_initialize): Ditto.
      	* gcc/tree-ssa-forwprop.c
      	(tree_ssa_forward_propagate_single_use_vars): Ditto.
      	* gcc/cfglayout.h (insn_locators_initialize): Ditto.
      	* gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
      	* gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
      	(execute_late_warn_uninitialized): Ditto.
      	* gcc/rtl.h (cleanup_barriers): Ditto.
      	(split_all_insns_noflow): Ditto.
      	(purge_line_number_notes): Ditto.
      	(unshare_all_rtl): Ditto.
      	(remove_unnecessary_notes): Ditto.
      	(recompute_reg_usage): Ditto.
      	(variable_tracking_main): Ditto.
      	* gcc/integrate.c (emit_initial_value_sets): Ditto.
      	* gcc/integrate.h (emit_initial_value_sets): Ditto.
      	* gcc/tree-optimize.c (execute_free_datastructures): Ditto
      	(execute_free_cfg_annotations): Ditto.
      	(execute_fixup_cfg): Ditto.
      	(execute_cleanup_cfg_pre_ipa): Ditto.
      	(execute_cleanup_cfg_post_optimizing): Ditto.
      	(execute_init_datastructures): Ditto.
      	* gcc/tree-object-size.c (compute_object_sizes): Ditto.
      	* gcc/combine.c (rest_of_handle_combine): Ditto.
      	* gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
      	* gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
      	(rest_of_handle_reorder_blocks): Ditto.
      	(rest_of_handle_partition_blocks): Ditto.
      	* gcc/var-tracking.c (variable_tracking_main): Ditto.
      	* gcc/tree-profile.c (tree_profiling): Ditto.
      	* gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
      	* gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
      	* gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
      	(rest_of_handle_sched2): Ditto.
      	* gcc/basic-block.h (free_bb_insn): Ditto.
      	* gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
      	* gcc/tree-cfg.c (execute_build_cfg): Ditto.
      	(remove_useless_stmts): Ditto.
      	(split_critical_edges): Ditto.
      	(execute_warn_function_return): Ditto.
      	(execute_warn_function_noreturn): Ditto.
      	* gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
      	* gcc/cfgrtl.c (free_bb_for_insn): Ditto.
      	* gcc/passes.c (execute_one_pass): Run additional
      	todos returned by execute function.
      	* gcc/tree-pass.h (struct tree_opt_pass): Make execute
      	return a value.
      
      From-SVN: r111643
      Daniel Berlin committed
  28. 26 Feb, 2006 1 commit
    • common.opt (-floop-optimize, [...]): Remove. · 37818e7c
      gcc/
      	* common.opt (-floop-optimize, -frerun-loop-opt): Remove.
      	* tree-pass.h (pass_loop_optimize): Remove.
      	* passes.c (pass_loop_optimize): Never run it.
      	* toplev.c (backend_init): Don't call init_loop.
      	* opts.c (flag_loop_optimize_set): Remove.
      	(decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
      	(common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
      	the old RTL loop optimizer when profiling enabled.
      	* predict.c (tree_estimate_probability): Always strip builtin_expect.
      	* cfgcleanup.c (try_forward_edges): Don't avoid killing loop
      	pre-headers for the sake of the old RTL loop optimizer.
      	* Makefile.in: Remove all references to loop.o.
      
      	* doc/invoke.texi: Remove all references to -floop-optimize
      	and -frerun-loop-opt.
      
      testsuite/
      	* gcc.dg/20031201-1.c: Don't use -frerun-loop-opt.
      	* g++.old-deja/g++.robertl/eb132.C: Likewise.
      
      From-SVN: r111459
      Steven Bosscher committed
  29. 06 Feb, 2006 1 commit
    • tree-vrp.c (execute_vrp): Do not pass dump argument to. · 10d22567
      	* tree-vrp.c (execute_vrp): Do not pass dump argument to.
      	loop_optimizer_init and loop_optimizer_finalize
      	* tree-ssa-sink.c (execute_sink_code): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
      	tree_ssa_loop_done): Ditto.
      	* tree-ssa-pre.c (init_pre, fini_pre): Ditto.
      	* sched-ebb.c: Include output.h.
      	(schedule_ebbs): Do not use dump argument.
      	* value-prof.h (struct profile_hooks): Remove profile_dump_file.
      	* loop.c (loop_dump_stream): Removed.
      	(loop_optimize, rest_of_handle_loop_optimize): Do not use dump
      	argument.
      	(scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
      	emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
      	final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
      	loop_iterations, strength_reduce, record_biv, record_giv,
      	final_giv_value, check_final_value, check_ext_dependent_givs,
      	combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
      	try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
      	dump_file instead of loop_dump_stream.
      	* ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
      	argument dump_file.
      	* reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
      	dump argument.
      	* flow.c (life_analysis, rest_of_handle_life): Ditto.
      	* haifa-sched.c: Include output.h
      	(schedule_insns, sched_init): Do not use dump argument.
      	* mode-switching.c (optimize_mode_switching): Ditto.
      	* modulo-sched.c (stats_file): Removed.
      	(print_node_sched_params): Do not call argument dump_file.
      	(sms_schedule_by_order, loop_canon_p, sms_schedule,
      	rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
      	of stats_file.
      	* cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
      	use dump argument.
      	* loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
      	rtl_loop_init, rtl_loop_done): Ditto.
      	* global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
      	* predict.c (combine_predictions_for_bb, tree_estimate_probability):
      	Ditto.
      	* recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
      	* lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
      	* regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
      	rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
      	* emit-rtl.c (renumber_insns): Ditto.
      	* cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
      	expand_gimple_basic_block, tree_expand_cfg): Ditto.
      	* regclass.c (regclass): Ditto.
      	* tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
      	remove_ssa_form, rewrite_out_of_ssa): Ditto.
      	* reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
      	convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
      	Ditto.
      	* sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
      	* local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
      	to regclass.
      	* gcse.c (gcse_file, debug_stderr): Removed.
      	(gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
      	rest_of_handle_gcse): Do not use dump argument.
      	(cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
      	one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
      	pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
      	compute_code_hoist_vbeinout, compute_code_hoist_data,
      	one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
      	compute_store_table, build_store_vectors, insert_insn_start_bb,
      	insert_store, remove_reachable_equiv_notes, replace_store_insn,
      	store_motion): Use dump_file instead of gcse_file.
      	* ipa-type-escape.c (type_escape_execute): Remove debugging comments.
      	* profile.c (profile_dump_file): Removed.
      	(branch_prob): Use dump_file instead of profile_dump_file.
      	* ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
      	dump_file.
      	* tree-ssa-copy.c (dump_copy_of): Ditto.
      	* rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
      	dump file to life_analysis.
      	* bt-load.c (branch_target_load_optimize): Ditto.
      	* cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
      	renumber_insns.
      	* rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
      	regclass, dbr_schedule): Declaration changed.
      	* sched-int.h (sched_init): Declaration changed.
      	* tree-profile.c (tree_profile_dump_file): Removed.
      	(tree_profile_hooks): Removed profile_dump_file hook.
      	* rtl-profile (rtl_profile_dump_file): Removed.
      	(rtl_profile_hooks): emoved profile_dump_file hook.
      	* cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
      	changed.
      	* c-gimplify.c (c_genericize): Do not call local variable dump_file.
      	* tree-cfg.c (build_tree_cfg): Ditto.
      	* Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
      	* basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
      	Declaration changed.
      	* config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
      	life_analysis and schedule_insns.
      	* config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
      	life_analysis.
      	* config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
      	dbr_schedule.
      	* config/mips/mips.c (mips_reorg): Ditto.
      	* config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
      	schedule_ebbs.
      
      From-SVN: r110656
      Zdenek Dvorak committed
  30. 31 Jan, 2006 1 commit
    • tree-vrp.c: Use XNEW/XCNEW allocation wrappers. · 5ed6ace5
      2006-01-31  Marcin Dalecki  <martin@dalecki.de>
      
      	* tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
      	* regrename.c: Ditto.
      	* tree-ssa-loop-im.c: Ditto.
      	* tree-dump.c: Ditto.
      	* tree-complex.c: Ditto.
      	* genrecog.c: Ditto.
      	* tree-ssa-threadupdate.c: Ditto.
      	* tracer.c: Ditto.
      	* java/class.c: Ditto.
      	* java/jcf-parse.c: Ditto.
      	* java/resource.c: Ditto.
      	* java/except.c: Ditto.
      	* java/jvspec.c: Ditto.
      	* java/jcf-write.c: Ditto.
      	* java/jcf-path.c: Ditto.
      	* java/gjavah.c: Ditto.
      	* java/zextract.c: Ditto.
      	* java/jcf-io.c: Ditto.
      	* java/jcf.h: Ditto.
      	* java/buffer.c: Ditto.
      	* java/lang.c: Ditto.
      	* java/parse-scan.y: Ditto.
      	* java/lex.c: Ditto.
      	* java/lex.h: Ditto.
      	* cfgloopmanip.c: Ditto.
      	* postreload-gcse.c: Ditto.
      	* tree-ssa-loop-manip.c: Ditto.
      	* postreload.c: Ditto.
      	* tree-ssa-loop-ch.c: Ditto.
      	* loop.c: Ditto.
      	* ipa-cp.c: Ditto.
      	* cppspec.c: Ditto.
      	* diagnostic.c: Ditto.
      	* final.c: Ditto.
      	* genoutput.c: Ditto.
      	* gcc.c: Ditto.
      	* cfghooks.c: Ditto.
      	* cfgloopanal.c: Ditto.
      	* objc/objc-act.c: Ditto.
      	* gcov.c: Ditto.
      	* genextract.c: Ditto.
      	* genautomata.c: Ditto.
      	* pretty-print.c: Ditto.
      	* genemit.c: Ditto.
      	* cgraphunit.c: Ditto.
      	* flow.c: Ditto.
      	* df-scan.c: Ditto.
      	* haifa-sched.c: Ditto.
      	* dominance.c: Ditto.
      	* dbxout.c: Ditto.
      	* tree-ssa-loop-ivopts.c: Ditto.
      	* df-core.c: Ditto.
      	* mode-switching.c: Ditto.
      	* modulo-sched.c: Ditto.
      	* graph.c: Ditto.
      	* ipa-pure-const.c: Ditto.
      	* cse.c: Ditto.
      	* fix-header.c: Ditto.
      	* web.c: Ditto.
      	* tree-stdarg.c: Ditto.
      	* ipa-utils.c: Ditto.
      	* loop-init.c: Ditto.
      	* ipa-inline.c: Ditto.
      	* cfganal.c: Ditto.
      	* global.c: Ditto.
      	* alloc-pool.c: Ditto.
      	* dwarf2out.c: Ditto.
      	* opts.c: Ditto.
      	* genattrtab.c: Ditto.
      	* tree-ssa-loop-ivcanon.c: Ditto.
      	* predict.c: Ditto.
      	* timevar.c: Ditto.
      	* lcm.c: Ditto.
      	* fortran/gfortranspec.c: Ditto.
      	* regmove.c: Ditto.
      	* local-alloc.c: Ditto.
      	* langhooks.c: Ditto.
      	* function.c: Ditto.
      	* tree-vectorizer.c: Ditto.
      	* gcse.c: Ditto.
      	* ipa-type-escape.c: Ditto.
      	* alias.c: Ditto.
      	* tree-if-conv.c: Ditto.
      	* profile.c: Ditto.
      	* ipa.c: Ditto.
      	* tree-data-ref.c: Ditto.
      	* loop-unroll.c: Ditto.
      	* treelang/treetree.c: Ditto.
      	* calls.c: Ditto.
      	* bt-load.c: Ditto.
      	* ggc-common.c: Ditto.
      	* except.c: Ditto.
      	* coverage.c: Ditto.
      	* cselib.c: Ditto.
      	* tree-cfgcleanup.c: Ditto.
      	* tree-ssa-pre.c: Ditto.
      	* cfgcleanup.c: Ditto.
      	* loop-invariant.c: Ditto.
      	* loop-iv.c: Ditto.
      	* ipa-prop.c: Ditto.
      	* print-tree.c: Ditto.
      	* conflict.c: Ditto.
      	* ggc-page.c: Ditto.
      	* sched-deps.c: Ditto.
      	* regclass.c: Ditto.
      	* tree-object-size.c: Ditto.
      	* combine.c: Ditto.
      	* bb-reorder.c: Ditto.
      	* resource.c: Ditto.
      	* var-tracking.c: Ditto.
      	* cfgloop.c: Ditto.
      	* df-problems.c: Ditto.
      	* reg-stack.c: Ditto.
      	* tlink.c: Ditto.
      	* gccspec.c: Ditto.
      	* sched-rgn.c: Ditto.
      	* tree-ssa-structalias.c: Ditto.
      	* tree-ssa-reassoc.c: Ditto.
      	* config/darwin-c.c: Ditto.
      	* config/darwin.c: Ditto.
      	* config/arm/arm.c: Ditto.
      	* cfgrtl.c: Ditto.
      	* collect2.c: Ditto.
      	* reload1.c: Ditto.
      
      From-SVN: r110446
      Marcin Dalecki committed
  31. 17 Dec, 2005 1 commit
    • basic-block.h: Changed basic block numbering so that the entry block is 0 and the exit block is 1. · 24bd1a0b
      2005-12-17  Danny Berlin <dberlin@dberlin.org>
      	    Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* basic-block.h: Changed basic block numbering so that the entry
      	block is 0 and the exit block is 1.  Changed insn iterators so
      	that they are tolerant of blocks with no insns.
      	* regrename.c (copyprop_hardreg_forward): Changed basic block
      	numbering so that the entry block is 0 and the exit block is 1.
      	* sched-ebb.c (sehedule_ebbs): Ditto.
      	* tracer.c (branch_ratio_cutoff): Ditto.
      	* cfgloopmanip.c (fix_loop_structure): Ditto.
      	* cfghooks.c (verify_flow_info): Ditto.
      	* cfg.c (compact_blocks): Ditto.
      	* reorg.c (dbr_schedule): Ditto.
      	* flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
      	* dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
      	calculate_dominance_info): Ditto.
      	* cfganal.c (create_edge_list, print_edge_list,
      	flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
      	flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
      	dfs_enumerate_from): Ditto.
      	* global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
      	* ifcvt.c (find_if_case_2): Ditto.
      	* cfgbuild.c (control_flow_insn_p, count_basic_blocks,
      	find_basic_blocks): Ditto.
      	* predict.c (predict_loops, tree_bb_level_predictions,
      	predict_paths_leading_to, propagate_freq): Ditto.
      	* lcm.c (compute_antinout_edge, compute_laterin,
      	compute_available): Ditto.
      	* function.c (thread_prologue_and_epilogue_insns): Ditto.
      	* gcse.c (gcse_main, bypass_jumps): Ditto.
      	* profile.c (compute_branch_probabilities,
      	compute_value_histograms, branch_prob): Ditto.
      	* tree-flow-inline.h (bsi_start, bsi_after_labels,
      	bsi_last): Ditto.
      	* tree-ssa-phiopt.c (tree_ssa_phiopt,
      	blocks_in_phiopt_order): Ditto.
      	* bt-load.c (compute_defs_uses_and_gen, compute_kill,
      	compute_out, link_btr_uses, migrate_btr_defs): Ditto.
      	* tree-dfa.c (collect_dfa_stats): Ditto.
      	* cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
      	* cfglayout.c (fixup_reorder_chain): Ditto.
      	* bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
      	partition_hot_cold_basic_blocks): Ditto.
      	* var-tracking.c (vt_find_locations): Ditto.
      	* cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
      	* sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
      	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
      	label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
      	* tree-ssa-reassoc.c (init_reassoc): Ditto.
      	* cfgrtl.c (entry_of_function, rtl_verify_flow_info,
      	rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
      	* df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
      	and removed unused reverse orders.
      	* df.h (): Ditto.
      	* combine.c: Fix document typo.
      
      
      
      Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
      
      From-SVN: r108713
      Daniel Berlin committed
  32. 12 Dec, 2005 1 commit
    • tree-flow.h: Allow compilation with a C++ compiler. · 59ced947
      2005-12-11 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
      
              * tree-flow.h: Allow compilation with a C++ compiler.
              (struct edge_prediction): Prefix all field names  with "ep_".
              * predict.c (tree_predicted_by_p): Likewise for struct
              edge_prediction.
              (tree_predict_edge, combine_predictions_for_bb): Likewise.
              (remove_predictions_associated_with_edge): Likewise.
      
      From-SVN: r108430
      Rafael Ávila de Espíndola committed
  33. 05 Nov, 2005 1 commit
    • re PR rtl-optimization/23490 (Long compile time for array initializer with inlined constructor) · 95b9a3a5
      	PR rtl-optimization/23490
      	* doc/invoke.texi (max-predicted-iterations, max-cse-insns,
      	max-flow-memory-location): Document.
      	* flow.c: Include params.h
      	(MAX_MEM_SET_LIST_LEN): Kill.
      	(add_to_mem_set_list): Use new param.
      	* cse.c (cse_basic_block): Replace 1000 by new param.
      	* params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
      	PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
      	* predict.c (predict_loops): Use new param.
      	* predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
      
      From-SVN: r106520
      Jan Hubicka committed
  34. 31 Oct, 2005 1 commit
  35. 01 Aug, 2005 1 commit
    • dwarf2out.c, [...]: Fix comment typos. · 569b7f6a
      	* dwarf2out.c, fold-const.c, ipa-type-escape.c,
      	loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
      	tree-sra.c, config/arm/arm.c, config/crx/crx.c,
      	config/i386/i386.c, config/mips/mips.h,
      	config/rs6000/rs6000.h, config/sh/sh.c,
      	config/stormy16/stormy16.c: Fix comment typos.
      
      From-SVN: r102620
      Kazu Hirata committed
  36. 21 Jul, 2005 1 commit
    • re PR rtl-optimization/19210 (not using do-loop for some loops) · f9cc1a70
      gcc:
      2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
                  Zdenek Dvorak  <dvorakz@suse.cz>
      
      	PR tree-optimization/19210
      	* common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
      	New.
      	* Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
      	* loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
      	rely on unproven assumptions.
      	* predict.c (predict_loops): Adjust call to number_of_iterations_exit.
      	* tree-flow.h (number_of_iterations_exit): Add final parameter.
      	* tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
      	to number_of_iterations_exit.
      	* tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
      	* tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
      	* tree-ssa-loop-niter.c (find_loop_niter,
      	estimate_numbers_of_iterations_loop): Likewise.
      	(number_of_iterations_exit): Honor the new options.
      	* doc/invoke.texi (Wunsafe-loop-optimizations,
      	funsafe-loop-optimizations): Document them.
      
      gcc/testsuite:
      2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
      
              * gcc.dg/tree-ssa/pr19210-1.c: New.
              * gcc.dg/tree-ssa/pr19210-2.c: New.
      
      Co-Authored-By: Zdenek Dvorak <dvorakz@suse.cz>
      
      From-SVN: r102225
      Paolo Bonzini committed
  37. 16 Jul, 2005 1 commit
  38. 26 Jun, 2005 1 commit
    • builtins.c, [...]: Use fold_buildN instead of fold (buildN (...)). · 987b67bc
      	* builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
      	convert.c, lambda-code.c, predict.c, tree-cfg.c,
      	tree-complex.c, tree-data-ref.c, tree-if-conv.c,
      	tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
      	tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
      	tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
      	tree.c: Use fold_buildN instead of fold (buildN (...)).
      
      From-SVN: r101338
      Kazu Hirata committed