+2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30433
+ * fold-const.c (fold_comparison): Add back the
+ folding of constant complex comparisions.
+
+2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30729
+ * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
+ effects unknown to this function, return early.
+
+2007-02-15 Ian Lance Taylor <iant@google.com>
+
+ * lower-subreg.c (move_eh_region_note): New static function.
+ (resolve_simple_move): Call it.
+ (decompose_multiword_subregs): Track blocks for which we resolve a
+ simple move which is also a control flow insn. Pass them to
+ find_many_sub_basic_blocks.
+ (pass_lower_subreg): Add TODO_verify_flow.
+ (pass_lower_subreg2): Likewise.
+
+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 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/26494
+ * doc/invoke.texi (Warning Options): Remove
+ -Werror-implicit-function-declaration.
+ (Wimplicit-function-declaration): Update description.
+ * opts.c (common_handle_option): Move handling of -Werror=* to...
+ (enable_warning_as_error): ...here.
+ * opts.h (enable_warning_as_error): Declare.
+ * c-decl.c (implicit_decl_warning): Unless
+ -Wno-implicit-function-declaration is given, emit a pedwarn if
+ -std=c99 or emit a warning if -Wimplicit-function-declaration.
+ * c.opt (Wimplicit-function-declaration): Replace
+ mesg_implicit_function_declaration with
+ warn_implicit_function_declaration.
+ * c-opts.c (c_common_handle_option):
+ -Werror-implicit-function-declaration is exactly equal as
+ -Werror=implicit-function-declaration.
+ (set_Wimplicit): Replace mesg_implicit_function_declaration with
+ warn_implicit_function_declaration.
+ (c_common_post_options): -Wimplict-function-declaration is enabled
+ by default by -std=c99, otherwise is disabled by default.
+ * c-objc-common.c (c_objc_common_init): Remove flawed logic.
+
+2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimplify.c (gimplify_modify_expr): During gimplification, attach a
+ DECL on the rhs to a DECL on the lhs for debug info purposes if the
+ former is ignored but not the latter.
+
+2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
+ is made and the reference doesn't use the alias set of its type,
+ do not create the temporary using that type.
+
+2007-02-15 Aldy Hernandez <aldyh@redhat.com>
+
+ * jump.c: Remove prototypes for delete_computation and
+ delete_prior_computation.
+
+2007-02-15 Paolo Bonzini <bonzini@gnu.org>
+
+ * jump.c (get_label_after): Delete.
+ (get_label_before, delete_computation, delete_jump,
+ delete_prior_computation, follow_jumps): Move...
+ * reorg.c (delete_computation, delete_prior_computation): ... here...
+ (get_label_before, delete_jump): ... making these static ...
+ (follow_jumps): ... and simplifying this since it only runs after
+ reload.
+ * rtl.h (get_label_after, get_label_before, delete_jump,
+ follow_jumps): Delete prototypes.
+
+2007-02-15 Paolo Bonzini <bonzini@gnu.org>
+
+ * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
+
+2007-02-15 Nick Clifton <nickc@redhat.com>
+
+ * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
+ order to prevent it from being munged by the target.
+
+2007-02-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md: Remove misleading comment.
+
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
+ reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
+ invalid patterns.
+
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-sra.c (instantiate_missing_elements): Canonicalize
+ bit-field types.
+ (sra_build_assignment): New.
+ (generate_copy_inout, generate_element_copy,
+ generate_element_zero, generate_one_element_init): Use it.
+
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-sra.c (instantiate_missing_elements): Canonicalize
+ bit-field types.
+ (sra_build_assignment): New.
+ (generate_copy_inout, generate_element_copy,
+ generate_element_zero, generate_one_element_init): Use it.
+
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
+ limbo die nodes.
+
+2007-02-14 Joseph Myers <joseph@codesourcery.com>
+
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
+ types as aggregates not scalars.
+ * function.c (assign_stack_temp_for_type): Likewise.
+
+2007-02-14 Roger Sayle <roger@eyesopen.com>
+ Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-dump.c (dump_switch_p_1): Require exact match of the option
+ name.
+
+2007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * passes.c (next_pass_1): Clear the next field of the copied
+ pass structure.
+
+2007-02-14 Richard Henderson <rth@redhat.com>
+
+ * tree-sra.c (early_sra): New.
+ (decl_can_be_decomposed_p): Deny va_list if early_sra.
+ (tree_sra_early, pass_sra_early): New.
+ * tree-pass.h (pass_sra_early): Declare.
+ * passes.c (init_optimization_passes): Use it.
+
+2007-02-14 Richard Guenther <rguenther@suse.de>
+
+ * flags.h (issue_strict_overflow_warning): Convert to a macro.
+
+2007-02-14 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/30771
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
+ also phi nodes.
+ (vect_analyze_operations): Induction phis can now be marked as
+ used_in_loop.
+ (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
+ Update documentation accordingly.
+
+2007-02-14 Nick Clifton <nickc@redhat.com>
+
+ * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
+ most 3 arguments are supported.
+ (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
+
+2007-02-13 Seongbae Park <seongbae.park@gmail.com>
+
+ * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
+ Ensure dst->current is valid.
+
+2007-02-13 Paul Brook <paul@codesourcery.com>
+
+ * config.gcc: Add arm*-*-uclinux-*eabi.
+ * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
+ (SUBTARGET_EXTRA_LINK_SPEC): Define.
+ (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
+ (LINK_GCC_C_SEQUENCE_SPEC): Undef.
+ (LINK_SPEC): Define.
+ (LIB_SPEC): Define.
+ * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
+ register.
+ * config/arm/uclinux-eabi.h: New file.
+ * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
+ * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
+ based targets.
+
+2007-02-13 Ian Lance Taylor <iant@google.com>
+
+ * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
+ * flags.h (warn_strict_overflow): Declare.
+ (enum warn_strict_overflow_code): Define.
+ (issue_strict_overflow_warning): New static inline function.
+ * opts.c (warn_strict_overflow): New variable.
+ (common_handle_option): Handle OPT_Wstrict_overflow and
+ OPT_Wstrict_overflow_.
+ * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
+ OPT_Wall.
+ * fold-const.c: Include intl.h.
+ (fold_deferring_overflow_warnings): New static variable.
+ (fold_deferred_overflow_warning): New static variable.
+ (fold_deferred_overflow_code): New static variable.
+ (fold_defer_overflow_warnings): New function.
+ (fold_undefer_overflow_warnings): New function.
+ (fold_undefer_and_ignore_overflow_warnings): New function.
+ (fold_deferring_overflow_warnings_p): New function.
+ (fold_overflow_warning): New static function.
+ (make_range): Add strict_overflow_p parameter. Change all
+ callers.
+ (extract_muldiv, extract_muldiv_1): Likewise.
+ (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
+ tree_expr_nonnegative_p.
+ (fold_negate_expr): Call fold_overflow_warning.
+ (fold_range_test): Likewise.
+ (fold_comparison): Likewise.
+ (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
+ instead of tree_expr_nonnegative_p.
+ (tree_expr_nonnegative_warnv_p): Rename from
+ tree_expr_nonnegative_p, add strict_overflow_p parameter.
+ (tree_expr_nonnegative_p): New function.
+ (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
+ strict_overflow_p parameter.
+ (tree_expr_nonzero_p): New function.
+ * passes.c (verify_interpass_invariants): New static function.
+ (execute_one_pass): Call it.
+ * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
+ warnings.
+ (number_of_iterations_exit, loop_niter_by_eval): Likewise.
+ (estimate_numbers_of_iterations): Likewise.
+ (scev_probably_wraps_p): Likewise.
+ * tree-ssa-ccp.c: Include "toplev.h".
+ (evaluate_stmt): Defer fold overflow warnings until we know we are
+ going to optimize.
+ (struct fold_stmt_r_data): Add stmt field.
+ (fold_stmt_r): Defer fold overflow warnings until we know we
+ optimized.
+ (fold_stmt): Initialize stmt field of fold_stmt_r_data.
+ (fold_stmt_inplace): Likewise.
+ * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
+ (cleanup_control_expr_graph): Defer fold overflow warnings until
+ we know we are going to optimize.
+ * tree-cfg.c (fold_cond_expr_cond): Likewise.
+ * tree-ssa-threadedge.c (simplify_control_stmt_condition):
+ Likewise.
+ * tree-vrp.c (vrp_expr_computes_nonnegative): Call
+ tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
+ * tree-ssa-loop-manip.c (create_iv): Likewise.
+ * c-typeck.c (build_conditional_expr): Likewise.
+ (build_binary_op): Likewise.
+ * tree-vrp.c (vrp_expr_computes_nonzero): Call
+ tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
+ (extract_range_from_unary_expr): Likewise.
+ * simplify-rtx.c (simplify_const_relational_operation): Warn when
+ assuming that signed overflow does not occur.
+ * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
+ * tree.h (tree_expr_nonnegative_warnv_p): Declare.
+ (fold_defer_overflow_warnings): Declare.
+ (fold_undefer_overflow_warnings): Declare.
+ (fold_undefer_and_ignore_overflow_warnings): Declare.
+ (fold_deferring_overflow_warnings_p): Declare.
+ (tree_expr_nonzero_warnv_p): Declare.
+ * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
+ of warning options.
+ (Warning Options): Document -Wstrict-overflow.
+ * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
+ (tree-ssa-ccp.o): Likewise.
+ (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
+ (fold-const.o): Depend on intl.h.
+
+2007-02-13 Ian Lance Taylor <iant@google.com>
+
+ PR middle-end/30751
+ * lower-subreg.c (resolve_simple_move): Decompose subregs in
+ addresses.
+
+2007-02-13 Stuart Hastings <stuart@apple.com>
+
+ * gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
+
+2007-02-13 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
+ handled_component_p before looking for the indirect_ref.
+
+2007-02-13 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
+ remove flags clobber.
+ (bswapsi2): New expander, emit code for !TARGET_BSWAP.
+ (bswaphi_lowpart): New.
+ (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
+ remove TARGET_BSWAP test. Delete expander of the same name.
+
+ * optabs.c (widen_bswap, expand_doubleword_bswap): New.
+ (expand_unop): Use them.
+
+2007-02-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
+ *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
+ *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
+ *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
+ *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
+ *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
+ *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
+ assembler dialect choice from asm templates.
+
+2007-02-12 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
+ (fixuns_trunc<SSEMODEF>si2): Use it.
+ * config/i386/sse.md (vec_setv4sf_0): Export.
+ * config/i386/i386.c (ix86_build_const_vector): Export.
+ (ix86_split_convert_uns_si_sse): Rename from
+ ix86_expand_convert_uns_si_sse and rewrite as a splitter.
+ * config/i386/i386-protos.h: Update.
+
+2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/29521
+ * c-typeck.c (c_finish_return): Improve warning message.
+
+2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * alias.c (find_symbolic_term): Delete unused function.
+
+2007-02-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (paritydi2, paritysi2): New expanders.
+ (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
+ (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
+
+2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
+ * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
+ the function, temporarily point the debug interface to the null one.
+
+2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * dwarf2out.c (round_up_to_align): New static function.
+ (field_byte_offset): Use it to round the offset.
+
+2007-02-12 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
+ (inswl_const): Export.
+
+2007-02-12 Richard Henderson <rth@redhat.com>
+
+ * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
+ result mode of the libcall, convert back to outmode.
+
+2007-02-12 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
+ (bswapdi2): New define_expand to implement 32-bit implementation.
+
+2007-02-12 Nick Clifton <nickc@redhat.com>
+
+ * doc/invoke.texi (Overall Options): Document --help=.
+ * gcc.c (target_help_flag): Rename to print_subprocess_flag.
+ (cc1_options): Pass --help= on to cc1.
+ (display_help): Add description of --help=.
+ (process_command): Add code to handle --help=. Allow translated
+ --help and --target-help switches to be passed on to compiler
+ sub-process.
+ (main): Remove unused if statement.
+ * opts.c (columns): Remove.
+ (LEFT_COLUMN): Define.
+ (wrap_help): Add columns argument.
+ (print_filtered_help): Change parameters to be an include bitmask,
+ an exclude bitmask, an any bitmask and the column width. Move the
+ code to display the params list here. Add code to display the
+ status of options rather than their descriptions if the quiet flag
+ is not active.
+ (print_specific_help): Change parameters to be an include bitmask,
+ an exclude bitmask and an any bitmask. Move code to look up the
+ column width here. Decide upon the title for an options listing.
+ (common_handle_options): Add code to handle --help=. Adapt code
+ for --help and --target-help to use the revised form of the
+ print_specific_help function.
+ (print_help): Delete.
+ (print_param_help): Delete.
+ (print_switch): Delete.
+ * opts.h (cl_lang_count): Add prototype.
+ (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
+ CL_MAX_OPTION_CLASS): New defines.
+ * optc-gen.awk: Add construction of cl_lang_count.
+ * c.opt: Add Warning attribute to warning options and Optimization
+ attribute to optimization options.
+ * common.opt: Likewise.
+ Add --help=.
+ Add -fhelp and -ftarget-help as aliases for the transformed --help
+ and --target-help options.
+ * opt-functions.awk: Add code to handle Warning and Optimization
+ attributes.
+
+2007-02-12 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/constraints.md: New file.
+ * config/alpha/alpha.c: Include tm-constrs.h.
+ (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
+ alpha_extra_constraint): Remove.
+ (alpha_emit_conditional_branch): Use satisfies_constraint_*.
+ * config/alpha/alpha-protos.h: Update.
+ * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
+ (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
+ (EXTRA_CONSTRAINT): Remove.
+ * config/alpha/alpha.md: Include constraints.md.
+ (adddi splitter): Use satisfies_constraint_*.
+ * config/alpha/predicates.md (add_operand): Likewise.
+ (sext_add_operand, addition_operation): Likewise.
+
+2007-02-12 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/29145
+ * tree-data-ref.c (base_addr_differ_p): Make us more conservative
+ in our handling of restrict qualified pointers.
+
+2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/7651
+ * doc/invoke.texi (Wunused-value): Update description.
+ (Wextra): Delete item.
+ * opts.c (set_Wextra): Don't use the value of Wextra to set the
+ value of Wunused-value.
+ * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
+ (c_finish_stmt_expr): Don't check extra_warnings.
+ (emit_side_effect_warnings): The caller is responsible to check
+ warn_unused_value.
+
+2007-02-11 Roger Sayle <roger@eyesopen.com>
+ Matt Thomas <matt@3am-software.com>
+
+ * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
+
+2007-02-11 Roger Sayle <roger@eyesopen.com>
+
+ * simplify-rtx.c (simplify_relational_operation_1): Optimize
+ comparisons of POPCOUNT against zero.
+ (simplify_const_relational_operation): Likewise.
+
+2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (Wextra): Delete outdated paragraph.
+
+2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * dwarf2out.c (root_type): Delete unused function.
+
+2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * genattrtab.c (contained_in_p): Delete unused function.
+ (write_expr_attr_cache): Likewise.
+
+2007-02-11 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
+ previous patch.
+
+2007-02-11 Steven Bosscher <steven@gcc.gnu.org>
+
+ * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
+ to add the REG_EQ* note.
+ * see.c (see_merge_one_use_extension): Likewise.
+ * local-alloc.c (update_equiv_regs): Likewise. Also don't
+ turn REG_EQUAL notes into REG_EQUIV notes if the target
+ register may have more than one set.
+ * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
+ * gcse.c (try_replace_reg): Likewise.
+ * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
+ * calls.c (fixup_tail_calls): Likewise. Abort if there is
+ more than one REG_EQUIV note.
+ * reload1.c (gen_reload): Use set_unique_reg_note.
+
+2007-02-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
+ (ix86_builtin_conversion): New function.
+
+2007-02-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR target/29487
+ * tree.h (DECL_REPLACEABLE_P): New macro.
+ * except.c (set_nothrow_function_flags): Likewise.
+
+2007-02-11 Tehila Meyzels <tehila@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+ Dorit Nuzman <dorit@il.ibm.com>
+
+ * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
+ * targhooks.c (default_builtin_vectorized_conversion): New.
+ * targhooks.h (default_builtin_vectorized_function): New declaration.
+ * target.h (struct vectorize): Add builtin_conversion field.
+ * tree-vectorizer.h (type_conversion_vec_info_type): New enum
+ stmt_vec_info_type value.
+ (vectorizable_conversion): New declaration.
+ * tree-vect-analyze.c (vect_analyze_operations): Add
+ vectorizable_conversion call.
+ * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
+ * tree-vect-transform.c (vectorizable_conversion): New function.
+ (vect_transform_stmt): Add case for type_conversion_vec_info_type.
+ * tree-vect-generic.c (expand_vector_operations_1): Consider correct
+ mode.
+ * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
+ (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
+ (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
+ or ALTIVEC_BUILTIN_VCFSX.
+
+2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/30634
+ * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
+ CONST_DOUBLE and operand 0 is a hard register.
+ (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
+ memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
+ is a hard floating-point register.
+
+2007-02-10 Richard Henderson <rth@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
+ Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
+ * builtin-types.def (BT_WORD): Make unsigned.
+ (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
+ * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
+ (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
+ * c-decl.c (grokdeclarator): Don't error if !have_tls.
+ * c-parser.c (c_parser_omp_threadprivate): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
+ emulated tls.
+ * expr.c (emutls_var_address): New.
+ (expand_expr_real_1): Expand emulated tls.
+ (expand_expr_addr_expr_1): Likewise.
+ * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
+ * output.h (emutls_finish): Declare.
+ * toplev.c (compile_file): Call it.
+ * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
+ address before wrapping in CONST.
+ * varasm.c (emutls_htab, emutls_object_type): New.
+ (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
+ (get_emutls_object_name, get_emutls_object_type): New.
+ (get_emutls_init_templ_addr, emutls_decl): New.
+ (emutls_common_1, emutls_finish): New.
+ (assemble_variable): When emulating tls, swap decls; generate
+ constructor for the emutls objects.
+ (do_assemble_alias): When emulating tls, swap decl and target name.
+ (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
+ for emulated tls.
+ * varpool.c (decide_is_variable_needed): Look at force_output.
+ Recurse for emulated tls.
+ (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
+ with decide_is_variable_needed.
+ * emutls.c: New file.
+ * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
+ tls_object for real tls.
+
2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
PR rtl-optimization/29599
mode into account when computing the offset.
2007-02-09 Stuart Hastings <stuart@apple.com>
- Richard Henderson <rth@redhat.com>
+ Richard Henderson <rth@redhat.com>
* gcc/config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
* gcc/config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
(floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
(floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
(floatunssidf2): Allow nonimmediate source.
- * gcc/config/i386/sse.md (movdi_to_sse): New. (vec_concatv2di): Drop '*'.
+ * gcc/config/i386/sse.md (movdi_to_sse): New.
+ (vec_concatv2di): Drop '*'.
* gcc/config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
- ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse): New.
+ ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
+ New.
* gcc/config/i386/i386.c (ix86_expand_convert_uns_si_sse,
ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
- (ix86_build_signbit_mask): Fix decl of v, refactor to call ix86_build_const_vector.
+ (ix86_build_signbit_mask): Fix decl of v, refactor to call
+ ix86_build_const_vector.
(x86_emit_floatuns): Rewrite.
2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
(ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
for optimize_size. Remove SF/DFmode hack.
-2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
- * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
- (bit_SSE4a): New.
+ * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
+ (bit_SSE4a): New.
2007-02-09 Nathan Sidwell <nathan@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
(M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
2007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
- Richard Guenther <rguenther@suse.de>
+ Richard Guenther <rguenther@suse.de>
PR middle-end/23361
* fold-const.c (fold_comparison): Handle obfuscated comparisons
2007-02-06 Paolo Bonzini <bonzini@gnu.org>
- * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
- Remove prototypes and make them non-static.
- (struct tree_int_map): Remove.
- * tree.h (struct tree_int_map): Move here, turning TO into an
- unsigned int.
- (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
+ * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
+ Remove prototypes and make them non-static.
+ (struct tree_int_map): Remove.
+ * tree.h (struct tree_int_map): Move here, turning TO into an
+ unsigned int.
+ (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
- * tree.h (TREE_COMPLEXITY): Remove.
- (struct tree_exp): Remove complexity field.
- * tree.c (build1_stat): Don't set it.
+ * tree.h (TREE_COMPLEXITY): Remove.
+ (struct tree_exp): Remove complexity field.
+ * tree.c (build1_stat): Don't set it.
2007-02-06 Dorit Nuzman <dorit@il.ibm.com>
Victor Kaplansky <victork@il.ibm.com>
* config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
__enable_execute_stack on completion.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
(athlon_idirect_loadmov, athlon_idirect_movstore): Added
amdfam10.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/athlon.md (athlon_call_amdfam10,
athlon_pop_amdfam10, athlon_lea_amdfam10): New
athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/athlon.md (athlon_sseld_amdfam10,
athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
athlon_mmxssest_short_amdfam10): New define_insn_reservation.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/athlon.md (athlon_sseins_amdfam10): New
define_insn_reservation.
* config/i386/sse.md: Set type attribute to sseins for insertq
and insertqi.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
define_insn_reservation.
(ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/athlon.md (cvtss2sd_load_amdfam10,
cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/athlon.md (athlon_ssedivvector_amdfam10,
athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
(athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
athlon_ssemul_load_k8): Added amdfam10.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
(x86_sse_unaligned_move_optimal): New variable.
(ix86_expand_vector_move_misalign): Add code to generate movupd/movups
for unaligned vector SSE double/single precision loads for AMDFAM10.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/i386.h (TARGET_AMDFAM10): New macro.
(TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
(ix86_issue_rate): Add PROCESSOR_AMDFAM10.
(ix86_adjust_cost): Add code for amdfam10.
-2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
+2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
* config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
instruction set feature flag. Add new (-mpopcnt) flag for popcnt
extra argument.
* targhooks.h (default_builtin_vectorized_function): Likewise.
* target.h (builtin_vectorized_function): Add argument type
- argument.
+ argument.
* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
extra argument, allow vectorizing of lrintf.
* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
* config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
64-bit.
-2007-2-01 Seongbae Park <seongbae.park@gmail.com>
+2007-2-01 Seongbae Park <seongbae.park@gmail.com>
- PR inline-asm/28686
+ PR inline-asm/28686
* global.c (global_alloc): Add mising initialization of
ELIMINABLE_REGSET.
PR c++/24745
* doc/invoke.texi (Wpointer-arith): Document warning.
-2007-01-30 Janis Johnson
+2007-01-30 Janis Johnson <janis187@us.ibm.com>
* doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
the list of discrepancies from the draft TR.
* output.h (default_globalize_decl_name): New.
* varasm.c (asm_output_bss): Use globalize_decl_name instead of
globalize_label.
- (globalize_decl): Ditto.
+ (globalize_decl): Ditto.
(default_globalize_decl_name): New.
* config/ia64/ia64.c (ia64_globalize_decl_name): New.
(ia64_handle_version_id_attribute): New.
2007-01-20 Jan Hubicka <jh@suse.cz>
- * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
- * tree-ssa-structalias.c (compute_points_to_sets): Do call
- init_alias_heapvars.
- (init_alias_heapvars): Initialize only when not already initialized.
- (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
+ * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
+ * tree-ssa-structalias.c (compute_points_to_sets): Do call
+ init_alias_heapvars.
+ (init_alias_heapvars): Initialize only when not already initialized.
+ (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
2007-01-19 Roger Sayle <roger@eyesopen.com>
2007-01-19 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
+ * 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
2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
* doc/gty.texi (Options): Document the mark_hook option to GTY.
- * gengtype.c (write_types_data, write_func_for_structure,
- write_types, ggc_wtd, pch_wtd): Add skip_hooks to
- write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
- (walk_type, write_func_for_structure): Generate the mark_hook if
- needed.
+ * gengtype.c (write_types_data, write_func_for_structure,
+ write_types, ggc_wtd, pch_wtd): Add skip_hooks to
+ write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
+ (walk_type, write_func_for_structure): Generate the mark_hook if
+ needed.
2007-01-19 Jan Hubicka <jh@suse.cz>
about long double soft float.
2007-01-16 Dorit Nuzman <dorit@il.ibm.com>
- Tehila Meyzels <tehila@il.ibm.com>
+ Tehila Meyzels <tehila@il.ibm.com>
* tree-vectorizer.h (is_pattern_stmt_p): New.
* tree-vect-analyze.c (vect_determine_vectorization_factor): Fix