X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=b4c81e70acd116f8a4a23c98d7f3720cc6f6d5ef;hp=2490b8cac5455877246a08b011577dbd79d9acc0;hb=94b769652933c03b1d9a0248c16be4967b79cf54;hpb=7d4e83b161682bfed197f62e3a35e110c1e1fd4e diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2490b8cac54..b4c81e70acd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,822 @@ +2004-06-16 J"orn Rennecke + + * cfglayout.c (fixup_reorder_chain): Handle case where the + destination of E_FALL is EXIT_BLOCK_PTR. + +2004-06-16 Vladimir Makarov + + PR target/15653 + * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops + after shifts before asm. + +2004-06-16 Zdenek Dvorak + + PR tree-optimization/15993 + * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its + destination is unchanged. + +2004-06-16 Andreas Jaeger + + * doc/install.texi (Configuration): Update description for + --enable-version-specific-runtime-libs. + +2004-06-16 Paolo Bonzini + + * doc/install.texi: boehm-gc now uses automake 1.8.5. + +2004-06-16 Paolo Bonzini + + * toplev.h (rest_of_compilation): Adjust prototype. + +2004-06-16 Paolo Bonzini + + * coverage.c: Remove argument to rest_of_compilation. + * expr.c (execute_expand, set_save_expr_context, pass_expand): New. + * passes.c (rest_of_compilation): Remove argument. + (pass_rest_of_compilation): New. + (rest_of_handle_final, rest_of_handle_delay_slots, + rest_of_handle_stack_regs, rest_of_handle_variable_tracking + rest_of_handle_machine_reorg, rest_of_handle_regrename + rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2 + rest_of_handle_regmove, rest_of_handle_tracer + rest_of_handle_if_conversion, rest_of_handle_if_after_combine + rest_of_handle_web, rest_of_handle_branch_prob + rest_of_handle_value_profile_transformations, rest_of_handle_cfg + rest_of_handle_addressof, rest_of_handle_jump_bypass + rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2): + Check that the two arguments are actually superfluous. + * tree-optimize.c (register_dump_files): Add properties argument. + Track validity of passes. Only initialize dump files for + tree-based passes. Store the full set of provided passes in + the pass. + (init_tree_optimization_passes): Register pass_expand and + pass_rest_of_compilation. + (execute_one_pass): Do not track the presence of required properties + here. Set in_gimple_form. Do not update current_properties. + (current_properties): Remove. + (set_save_expr_context): Remove. + (tree_rest_of_compilation): Do not set in_gimple_form. Do not + expand to RTL here, and do not call rest_of_compilation. Push + GGC context even before gimplification. + * tree-pass.h (PROP_rtl, PROP_trees): New flags. + (pass_expand, pass_rest_of_compilation): Declare. + +2004-06-15 Jeff Law + + * fold-const.c (swap_tree_comparison): No longer static. + (tree_swap_operands_p): Similarly. Return true if both operands + are SSA_NAMEs and the first operand has a higher version number than + the second operand. + * tree.h (swap_tree_comparison): Prototype. + (tree_swap_operands_p): Prototype. + * tree-ssa-operands.c (get_expr_operands): For commutative + operators and relational comparisons, canonicalize the + order of the operands. + +2004-06-15 Richard Henderson + + * c-common.c (lang_gimplify_stmt): Remove next_p argument. + (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then, + c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt, + c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c. + (finish_fname_decls, fname_decl): Use statement_lists. + (c_expand_expr_stmt): Don't set last_expr_type. + (c_type_hash): Fix indentation. + (c_safe_from_p): Don't follow TREE_CHAIN. + (c_tree_chain_matters_p): Remove. + * c-common.def (SCOPE_STMT): Remove. + (CLEANUP_STMT): Redefine to contain its own body. + * c-common.h (struct stmt_tree_s): Remove x_last_stmt, + x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack. + Add x_cur_stmt_list. + (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove. + (cur_stmt_list): New. + (STATEMENT_LIST_STMT_EXPR): New. + (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P, + SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove. + (CLEANUP_BODY): New. + (CLEANUP_DECL): Move to operand 2. + (c_common_stmt_codes): Remove SCOPE_STMT. + (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove. + * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove. + (c_push_function_context, c_pop_function_context): Don't save it. + (finish_decl): Set TREE_USED on the decl for a cleanup. + Use push_cleanup. + (store_parm_decls): Use statement lists. + (finish_function): Remove compstmt rule workaround. Use statement + lists. Call finish_fname_decls after finalizing the body. + (c_begin_compound_stmt): Move to c-typeck.c. + * c-dump.c (c_dump_tree): Remove SCOPE_STMT. + * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New. + (c_genericize): Invoke them. + (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT. + (c_build_bind_expr): Export. + (gimplify_block, gimplify_cleanup): Remove. + (gimplify_condition): Use gimplify_stmt. + (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack. + (gimplify_if_stmt): Remove recursion hack. + (c_gimplify_expr): Remove STMT_EXPR handling. + (stmt_expr_last_stmt, gimplify_stmt_expr): Remove. + (is_last_stmt_of_scope): Remove. + * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. + * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt, + c_end_compound_stmt. + * c-objc-common.c (build_cdtor): Likewise. + * c-parse.in (primary): Use c_finish_stmt_expr. + (push_scope, pop_scope): Remove. + (c99_block_start, compstmt_start): Use c_begin_compound_stmt. + (c99_block_end, compstmt): Use c_end_compound_stmt. + (c99_block_lineno_labeled_stmt): Likewise. + (compstmt_primary_start): Use c_begin_stmt_expr. + (simple_if, select_or_iter_stmt): Update calls to stmt builders. + (do_stmt_start): Fill in body directly. + (lineno_stmt): Avoid setting lineno on constants. + * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST. + Remove SCOPE_STMT. + * c-semantics.c (begin_stmt_tree): Remove. + (push_stmt_list, re_push_stmt_list, pop_stmt_list): New. + (add_stmt): Use statement lists. + (add_scope_stmt, finish_stmt_tree): Remove. + (push_cleanup): New. + * c-tree.h: Move some decls from c-common.h. + * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists. + (do_case, c_finish_case): Likewise. + (c_finish_then): Take body for then as argument. + (c_finish_else): Similarly. + (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, + c_finish_for_stmt_incr, c_finish_for_stmt): New. + (c_begin_stmt_expr, c_finish_stmt_expr): New. + (c_begin_compound_stmt): Do scope management. + (c_end_compound_stmt): New. + * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR. + * gimplify.c (voidify_wrapper_expr): Accept temporary argument. + Look through exception handling constructs. + (gimplify_bind_expr): Accept temporary argument. + (gimplify_target_expr): Special case BIND_EXPR bodies. + (gimplify_expr): Handle fallback == fb_none like a statement. + * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill. + * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove. + * langhooks.h (tree_chain_matters_p): Remove. + * stub-objc.c (objc_clear_super_receiver): New. + * tree-gimple.h (voidify_wrapper_expr): Update decl. + (append_to_statement_list, append_to_statement_list_force): Move + to tree-iterator.h. + * tree-inline.c (expand_call_inline): Update call. + (clone_body): Use statement lists. + (walk_tree): Don't check tree_chain_matters_p. + (copy_tree_r): Likewise. + * tree-iterator.c (alloc_stmt_list): Clear lang bits. + (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly. + * tree-iterator.h (append_to_statement_list, + append_to_statement_list_force): Moved from tree-gimple.h. + * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump. + * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt. + (objc_enter_block): Likewise. + (objc_exit_block): Use c_end_compound_stmt. + (objc_build_try_enter_fragment): Add #error and comment for + rewriting for OBJCPLUS. + (objc_build_extract_fragment, objc_build_try_epilogue, + objc_build_catch_stmt, objc_build_finally_prologue, + objc_build_finally_epilogue): Update for C statement builders. + * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): + Remove. + +2004-06-15 Zdenek Dvorak + + * df.c (df_reg_clobber_gen): Removed. + (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute): + Make more effective for hard regs. + * ra-build.c (livethrough_conflicts_bb): Check contains_call. + +2004-06-15 Alexandre Oliva + + * c-pragma.h (c_lex_string_translate): Change type to int. + * c-parse.in: Change all assignments of c_lex_string_translate + to true and false to 1 and 0. + * c-lex.c (c_lex_string_translate): Likewise. + (lex_string): Convert string without translation in the -1 + case. + +2004-06-15 Mark G. Adams + + * convert.h: Add include guards + +2004-06-15 Daniel Berlin + + * tree-flow-inline.h: Document all functions. + +2004-06-15 Daniel Berlin + + * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node. + * tree-dfa.c (create_stmt_ann): Ditto. + * tree-pretty-print.c (dump_generic_node): Remove E* node handling. + * tree-inline.c (estimate_num_insns_1): Ditto. + * tree.c (tree_size): Ditto. + (make_node_stat): Ditto. + (tree_node_structure): Ditto. + (ephi_node_elt_check_failed): Remove. + (is_essa_node): Ditto. + * tree.def (EPHI_NODE): Ditto. + (EEXIT_NODE): Ditto. + (EUSE_NODE): Ditto. + (EKILL_NODE): Ditto. + * tree.h (EREF_NODE_CHECK): Remove. + (EPHI_NODE_ELT_CHECK): Ditto. + (struct tree_eref_common): Ditto. + (struct tree_euse_node): Ditto. + (struct ephi_arg_d): Ditto. + (struct tree_ephi_node): Ditto. + (ephi_node_elt_check_failed): Remove prototype. + (is_essa_node): Ditto. + (enum tree_node_structure_enum): Remove TS_E*_NODE. + (union tree_node): Remove E*_NODE uses. + +2004-06-15 Jerry Quinn + + * alias.c (record_set, record_base_value, canon_rtx, get_addr, + nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P. + * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set): + Likewise. + * builtins.c (expand_builtin_setjmp, expand_builtin_apply, + expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp, + expand_builtin_strcmp, expand_builtin_strncmp, + expand_builtin_frame_address): Likewise. + * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs, + insert_one_insn): Likewise. + * calls.c (prepare_call_address, precompute_register_parameters, + precompute_arguments, expand_call, emit_library_call_value_1): Likewise. + * cfganal.c (flow_active_insn_p): Likewise. + * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p, + combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P, + subst, combine_simplify_rtx, simplify_if_then_else, simplify_set, + make_extraction, recog_for_combine, gen_lowpart_for_combine, + simplify_comparison, record_dead_and_set_regs_1, + record_dead_and_set_regs, record_promoted_value, + check_promoted_subreg, get_last_value_validate, get_last_value, + reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes, + unmentioned_reg_p_1): Likewise. + * conflict.c (mark_reg): Likewise. + * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost, + mention_regs, insert_regs, lookup, lookup_for_remove, insert, + merge_equiv_classes, flush_hash_table, invalidate, + remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, + invalidate_for_call, use_related_value, canon_hash, exp_equiv_p, + cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant, + record_jump_cond, cse_insn, addr_affects_sp_p, + invalidate_from_clobbers, cse_process_notes, cse_around_loop, + cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode, + cse_cc_succs, cse_condition_code_reg): Likewise. + * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p, + cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx, + cselib_record_set, cselib_record_sets): Likewise. + * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms, + dbxout_block): Likewise. + * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise. + * dojump.c (do_jump): Likewise. + * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg, + is_based_loc, rtl_for_decl_location): Likewise. + * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl, + set_decl_incoming_rtl, mark_user_reg): Likewise. + * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg, + copy_to_suggested_reg, allocate_dynamic_stack_space, + probe_stack_range, hard_function_value): Likewise. + * expmed.c (store_bit_field, store_fixed_bit_field, + store_split_bit_field, extract_bit_field, extract_fixed_bit_field, + extract_split_bit_field, expand_divmod, emit_store_flag_force): + Likewise. + * expr.c (convert_move, convert_modes, + block_move_libcall_safe_for_call_parm, emit_group_load, use_reg, + use_group_regs, emit_move_insn, emit_move_insn_1, + compress_float_constant, push_block, emit_single_push_insn, + emit_push_insn, get_subtarget, expand_assignment, store_expr, + store_constructor, store_field, force_operand, safe_from_p, + expand_expr_real_1, expand_increment, do_store_flag, do_tablejump): + Likewise. + * final.c (profile_function, final_scan_insn, alter_subreg, + get_mem_expr_from_op, output_asm_operand_names, output_operand, + only_leaf_regs_used, leaf_renumber_regs_insn): Likewise. + * flow.c (verify_wide_reg_1, mark_regs_live_at_end, + find_regno_partial, propagate_one_insn, init_propagate_block_info, + insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond, + attempt_auto_inc, find_auto_inc, mark_used_regs, + count_or_remove_death_notes_bb): Likewise. + * function.c (find_temp_slot_from_address, update_temp_slot_address, + preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn, + fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof, + put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk, + purge_single_hard_subreg_set, instantiate_decl, + instantiate_virtual_regs_1, aggregate_value_p, assign_parms, + promoted_input_arg, setjmp_vars_warning, setjmp_args_warning, + setjmp_protect, setjmp_protect_args, fix_lexical_addr, + expand_function_start, diddle_return_value, clobber_return_register, + expand_function_end, keep_stack_depressed, handle_epilogue_set, + update_epilogue_consts): Likewise. + * genemit.c (gen_exp, gen_insn): Likewise. + * genrecog.c (make_insn_sequence): Likewise. + * global.c (global_conflicts, expand_preferences, mark_reg_store, + mark_reg_conflicts, set_preference, reg_becomes_live, + build_insn_chain, mark_reg_change): Likewise. + * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight): + Likewise. + * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block): + Likewise. + * integrate.c (copy_rtx_and_substitute, try_constants, + subst_constants, mark_stores, allocate_initial_values): Likewise. + * jump.c (reversed_comparison_code_parts, delete_prior_computation, + delete_computation, rtx_renumbered_equal_p, true_regnum, + reg_or_subregno): Likewise. + * lcm.c (reg_dies, reg_becomes_live): Likewise. + * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem, + update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set, + wipe_dead_reg, no_conflict_p): Likewise. + * loop-iv.c (simple_reg_p, simple_set_p, kill_sets, + iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered, + simple_rhs_p, simplify_using_assignment, implies_p): Likewise. + * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p, + move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p, + find_single_use_in_loop, count_one_set, loop_bivs_init_find, + loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs, + valid_initial_value_p, simplify_giv_expr, consec_sets_giv, + loop_regs_update, check_dbra_loop, maybe_eliminate_biv, + maybe_eliminate_biv_1, record_initial, update_reg_last_use, + canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop, + try_swap_copy_prop): Likewise. + * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop, + expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float): + Likewise. + * postreload.c (reload_cse_simplify, reload_cse_simplify_set, + reload_cse_simplify_operands, reload_combine, + reload_combine_note_store, reload_combine_note_use, + reload_cse_move2add, move2add_note_store): Likewise. + * print-rtl.c (print_rtx): Likewise. + * ra-build.c (copy_insn_p, remember_move, init_one_web_common, + contains_pseudo, handle_asm_insn): Likewise. + * ra-debug.c (ra_print_rtx_object, dump_constraints, + dump_static_insn_cost): Likewise. + * ra-rewrite.c (slots_overlap_p, emit_colors, + remove_suspicious_death_notes): Likewise. + * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use, + register_operand, scratch_operand, nonmemory_operand, + constrain_operands): Likewise. + * reg-stack (check_asm_stack_operands, remove_regno_note, + emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat, + subst_asm_stack_regs): Likewise. + * regclass.c (scan_one_insn, record_reg_classes, copy_cost, + record_address_regs, reg_scan_mark_refs): Likewise. + * regmove.c (discover_flags_reg, replacement_quality, + copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize, + fixup_match_1): Likewise. + * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value, + kill_set_value, copyprop_hardreg_forward_1): Likewise. + * reload.c (MATCHES, push_secondary_reload, find_reusable_reload, + reload_inner_reg_of_subreg, can_reload_into, push_reload, + combine_reloads, find_dummy_reload, hard_reg_set_here_p, + operands_match_p, decompose, find_reloads, find_reloads_toplev, + find_reloads_address, subst_indexed_address, find_reloads_address_1, + find_reloads_subreg_address, find_replacement, + refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p, + refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise. + * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns, + find_reg, delete_dead_insn, alter_reg, eliminate_regs, + elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs, + forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs, + emit_input_reload_insns, emit_output_reload_insns, do_input_reload, + do_output_reload, emit_reload_insns, gen_reload, + delete_address_reloads_1, inc_for_reload): Likewise. + * reorg.c (update_reg_dead_notes, fix_reg_dead_note, + update_reg_unused_notes, fill_slots_from_thread): Likewise. + * resource.c (update_live_status, mark_referenced_resources, + mark_set_resources, mark_target_live_regs): Likewise. + * rtlanal.c (nonzero_address_p, get_jump_table_offset, + global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p, + reg_set_p, set_noop_p, find_last_value, refers_to_regno_p, + note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note, + find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in, + parms_set, find_first_parameter_load, keep_with_call_p, + hoist_test_store, hoist_update_store, address_cost, nonzero_bits1, + num_sign_bit_copies1): Likewise. + * rtlhooks.c (gen_lowpart_general): Likewise. + * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn, + sched_analyze): Likewise. + * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1): + Likewise. + * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise. + * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation, + simplify_binary_operation, simplify_const_relational_operation, + simplify_subreg): Likewise. + * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands, + expand_end_stmt_expr, expand_return, expand_decl, + expand_anon_union_decl): Likewise. + * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body, + find_splittable_regs, find_splittable_givs, find_common_reg_term, + loop_iterations): Likewise. + * var-tracking.c (variable_union, variable_part_different_p, + variable_different_p, count_uses, add_uses, add_stores, + compute_bb_dataflow, set_variable_part, delete_variable_part, + emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters): + Likewise. + * varasm.c (assemble_variable): Likewise. + +2004-06-15 Chris Demetriou + + * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove + definition. + * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove + #undef and #if 0'd definition. + +2004-06-15 J"orn Rennecke + + * combine.c (distribute_notes): Comment typo fix. + +2004-06-15 Roger Sayle + + * expmed.c (synth_mult): Mask bits of the multiplier to the + machine mode of the multiplication. Don't consider shifts + by more than (or equal to) the width of the operation's mode. + +2004-06-15 Paolo Bonzini + + * doc/install.texi: Yet another update for autoconf + and automake versions. + +2004-06-15 Paolo Bonzini + + * function.h (struct function): Remove cannot_inline field. + (current_function_cannot_inline): Remove. + * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. + Simplify conditionals to ignore warn_return_type. + * tree-optimize.c (tree_rest_of_compilation): Do not reset + DECL_DEFER_OUTPUT. + * objc/objc-act.c (build_module_descriptor, finish_method_def): + Do not set current_function_cannot_inline. + +2004-06-15 J"orn Rennecke + + * cfglayout.c (fixup_reorder_chain): Handle case where the + destination of E_TAKEN is EXIT_BLOCK_PTR. + +2004-06-15 Diego Novillo + + * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo. + +2004-06-15 Paolo Bonzini + + * fold-const.c (operand_equal_p): Update comment. + +2004-06-15 Kazuhiro Inaoka + + * config/m32r/m32r.h (RETURN_ADDR_RTX): Define. + (INCOMING_RETURN_ADDR_RTX): Define. + * config/m32r/m32r-protos.h (m32r_return_addr): Added. + * config/m32r/m32r.c (m32r_exppand_prologue): Changed for + __builtin_return_address(0). + (m32r_return_addr): Added for __builtin_return_address(0). + (m32r_reload_lr): Ditto. + + * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. + +2004-06-15 Paolo Bonzini + + * doc/install.texi (Prerequisites): Update libbanshee, + fastjar, libcpp, libjava/libltdl entries to + automake 1.8.5. + +2004-06-15 Eric Botcazou + Olivier Hainque + + * function.c (fixup_var_refs): Also adjust the start of sequence + after fixing up the insns. + +2004-06-15 Giovanni Bajo + + * gccbug.in: Update optimization -> tree-optimization/rtl-optimization. + +2004-06-14 Benjamin Kosnik + + * doc/install.texi (Prerequisites): Update libstdc++ entry to + automake 1.8.5. + +2004-06-14 Eric Christopher + + * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf) + to -mtpf-trace (-mno-tpf-trace). + * doc/invoke.texi (S/390 and zSeries Options): Add tpf option + documentation. + +2004-06-14 Eric Botcazou + + * real.c: Fix bit count in head comment. + +2004-06-14 Jeff Law + + * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle + PHIs where the destination or an argument is marked with + SSA_NAME_OCCURS_IN_ABNORMAL_PHI. + +2004-06-14 Jakub Jelinek + + PR middle-end/15945 + * simplify-rtx.c (simplify_binary_operation): Don't optimize out + Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math. + +2004-06-14 Zdenek Dvorak + + * opts.sh (var_args): Fix regexp. + +2004-06-14 Jakub Jelinek + + PR target/15178 + * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. + +2004-06-14 Paul Brook + + * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries. + +2004-06-14 Zdenek Dvorak + + * Makefile.in (FLAGS_H): New. + (flags.h): Replace by FLAGS_H. + * c.opt: Document Var, VarExists, Init and Report attributes. + * common.opt: Fill the values of the attributes. + * diagnostic.c (flag_fatal_errors): Do not define. + * except.c (flag_non_call_exceptions): Do not define. + * flags.h: Include options.h. Remove declarations conflicting with + the automatically defined ones. + * opts.c: Remove automatically defined variables. + (handle_option): Perform default initialization. + (common_handle_option): Do not handle options covered by the + default initialization. + * opts.h (struct cl_option): Add flag_var, has_set_value and set_value + fields. + (CL_REPORT): New. + * opts.sh: Generate variable declarations, handle CL_REPORT. + * toplev.c: Remove automatically defined variables. + (f_options): Removed. + (print_switch_values): Use cl_options instead of f_options. + * toplev.h (version_flag): Declaration removed. + +2004-06-14 Ian Lance Taylor + + * config/sparc/sparc.h: Correct comment about availability of + little endian option. + + * config.gcc: Remove sparc64-*-aout*. + * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove. + * config/sparc/sp64-aout.h: Remove. + * config/sparc/aout.h: Remove. + +2004-06-14 Ulrich Weigand + + * config/s390/s390.c: Include "tree-gimple.h". + (s390_gimplify_va_arg): New function. + (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + (s390_va_arg): Remove. + * config/s390/s390-protos.h (s390_va_arg): Remove. + * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort (). + +2004-06-14 J"orn Rennecke + + * basic-block.h (could_fall_through): Declare. + * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR. + Fail if the source already has a fallthrough edge to the exit + block pointer. + (could_fall_through): New function. + * cfgbuild.c (make_edges): Check if we already have a fallthrough + edge to the exit block pointer. + * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is + not called before reload has completed. + Handle special case of first block having a fall-through exit edge. + (cfg_layout_finalize): Don't call it before reload or if we have + rtl epilogues. + (fixup_reorder_chain): A fall through to the exit block does not + require the block to come last. Add sanity checks. + * cfgrtl.c (rtl_split_edge): Add special handling of fall through + edges to the exit block. + * function.c (cfglayout.h): #include. + (thread_prologue_and_epilogue_insns): If we have neither return nor + epilogue, but a fall through to the exit block from mid-function, + force a non-fall-through exit. + * Makefile.in (function.o): Depend on CFGLAYOUT_H. + +2004-06-14 Alan Modra + + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu + for power5 and rs64a. Correct condition for default. Correct power3, + 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many. + +2004-06-13 Steven Bosscher + + * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set): + Revert previous change, don't use CALL_P. + +2004-06-13 Jason Merrill + + * tree.h: Move std_gimplify_va_arg_expr protoype here. + * tree-gimple.h: From here. + +2004-06-13 Daniel Berlin + + Fix PR tree-optimization/15979 + Fix PR tree-optimization/15981 + * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't + try to insert values undefined along some path. + +2004-06-13 Daniel Berlin + + * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things + are available everywhere too. + +2004-06-13 Andrew Pinski + + * fold-const.c (fold_checksum_tree ): Only + look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE. + Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if + EXPR is an INTEGERAL_TYPE or a scalar float type. + +2004-06-13 Diego Novillo + + * tree-sra.c (tree_sra): Update documentation. + +2004-06-13 Joseph S. Myers + + * c-typeck.c (comptypes, tagged_types_tu_compatible_p, + function_types_compatible_p, type_lists_compatible_p): Remove + flags parameter. + * c-tree.h (comptypes): Likewise. + (COMPARE_STRICT): Remove. + * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All + callers changed. + +2004-06-13 Eric Christopher + + * c-decl.c (diagnose_mismatched_decls): Improve error message. + Remove unused code. + * c-typeck.c (comptypes): Add location in standard we're checking. + +2004-06-13 Kaz Kojima + + * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with + version 3.3.4. + +2004-06-12 Roger Sayle + + * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally + index by machine mode. + (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost + tables inside the loop over machine modes. + (synth_mult, expand_mult_highpart_optab, expand_mult_highpart, + expand_divmod): Index shift*_cost by the appropriate machine mode. + +2004-06-12 Eric Christopher + + * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING. + * config/s390/s390.md: Ditto. + * config/s390/s390.c: Ditto. + (s390_frame_info): Conditionalize frame and setup info on + TARGET_TPF_PROFILING. + (s390_arg_frame_offset): Ditto. + +2004-06-12 Roger Sayle + + * fold-const.c (omit_two_operands): New function. + * tree.h (omit_two_operands): Prototype here. + * builtins.c (fold_builtin_unordered_cmp): New function to lower + C99 unordered comparison builtins to the appropriate tree nodes. + (fold_builtin_1): Use fold_builtin_unordered_cmp to lower + BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, + BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower + BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node. + (simplify_builtin_memcmp, simplify_builtin_strncmp, + simplify_builtin_strncat, simplify_builtin_strspn): Use the new + omit_two_operands function to build the required COMPOUND_EXPRs. + +2004-06-12 Steven Bosscher , + Andreas Jaeger + + * gcse.c (record_set_info): Use predicates like REG_P. + (mems_conflict_for_gcse_p): Likewise. + (load_killed_in_block_p): Likewise. + (hash_expr_1): Likewise. + (insert_set_in_table): Likewise. + (gcse_constant_p): Likewise. + (hash_scan_set): Likewise. + (hash_scan_insn): Likewise. + (canon_list_insert): Likewise. + (record_last_mem_set_info): Likewise. + (record_last_set_info): Likewise. + (compute_hash_table_work): Likewise. + (mark_set): Likewise. + (mark_clobber): Likewise. + (mark_oprs_set): Likewise. + (compute_transp): Likewise. + (find_avail_set): Likewise. + (cprop_insn): Likewise. + (do_local_cprop): Likewise. + (cprop): Likewise. + (find_implicit_sets): Likewise. + (find_bypass_set): Likewise. + (bypass_conditional_jumps): Likewise. + (insert_insn_end_bb): Likewise. + (pre_insert_copy_insn): Likewise. + (compute_transpout): Likewise. + (next_ls_expr): Likewise. + (invalidate_any_buried_refs): Likewise. + (compute_ld_motion_mems): Likewise. + (reg_set_info): Likewise. + (reg_clear_last_set): Likewise. + (find_moveable_store): Likewise. + (compute_store_table): Likewise. + (find_loads): Likewise. + (store_killed_in_insn): Likewise. + (insert_insn_start_bb): Likewise. + (reg_set_between_after_reload_p): Likewise. + (reg_used_between_after_reload_p): Likewise. + (is_jump_table_basic_block): Likewise. + (gcse_after_reload): Likewise. + (hash_scan_set_after_reload): Likewise. + (compute_hash_table_after_reload): Likewise. + +2004-06-12 Steven Bosscher + + * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates. + (INSN_P): Don't look at the rtx code class, just explicitly + check for one of the tree RTX_INSN codes. + +2004-06-11 Zack Weinberg + + * c-typeck.c (default_function_array_conversion): Use + build_pointer_type not TYPE_POINTER_TO. + +2004-06-11 Zack Weinberg + + * configure.ac: Don't invoke ACX_HEADER_STDBOOL. + * configure, config.in: Regenerate. + * system.h: Unconditionally define bool as unsigned char, + BOOL_BITFIELD as unsigned int. + * domwalk.h: Use BOOL_BITFIELD. + +2004-06-12 Andreas Jaeger + + * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4. + * libgcc-darwin.ver: Likewise. + +2004-06-12 Peter Jakubek + + * reload.c (find_reloads): Force reload for pseudo registers on big + endian machines. + +2004-06-11 Steven Bosscher + + * tree-ssa-dce.c (mark_control_dependent_edges_necessary): + Don't try to mark anything control dependent on the entry or + exit blocks. + +2004-06-11 Daniel Berlin + + Fix Bug 15899 + Fix Bug 15460 + * tree.h (SSA_NAME_VALUE): New macro. + (struct tree_ssa_name): Add value_handle member. + * tree-ssa-pre.c: Replaced. + * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN. + (struct cst_ann_d): New. + (struct expr_ann_d): New. + (union tree_ann_d): Add cst_ann, expr_ann. + * tree-dfa.c (create_cst_ann): New function. + (create_expr_ann): Ditto. + * tree-flow-inline.h (cst_ann): New function. + (expr_ann): Ditto. + (get_cst_ann): Ditto. + (get_expr_ann): Ditto.. + +2004-06-11 John David Anglin + + * pa.c (pa_hpux_init_libfunc): Add support for unord_optab. + * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to + _U_Qfcmp library function. + (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq, + _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions. + + * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify + unspec used for loading address from DLT. + * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE. + Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants. + Don't use short code sequence when loading the address of a nonlocal + label. + (nonlocal_goto): New expander. + (indirect_goto): New jump pattern for nonlocal gotos. + (short_jump): Remove extra whitespace. + (builtin_longjmp): Clobber memory and hard frame pointer. Restore + frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto + pattern. + +2004-06-11 Roger Sayle + + * expmed.c (synth_mult): Add an additional MODE argument for the + machine mode of the multiplication. Update recursive calls. Use + mode instead of word_mode for determining operation costs. + (choose_mult_variant): Update calls to synth_mult with "mode". + 2004-06-11 Richard Henderson * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads @@ -130,10 +949,10 @@ * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef to v_may_def. Also add code to mark statements with V_MUST_DEFs as definition sites. - (rewrite_stmt): Rename occurences of vdef to v_may_def. Also + (rewrite_stmt): Rename occurences of vdef to v_may_def. Also add code to register new V_MUST_DEFs made by the statement. * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments. - (check_replaceable): Rename occurences of vdef to v_may_def. Also + (check_replaceable): Rename occurences of vdef to v_may_def. Also add check for V_MUST_DEFs. (find_replaceable_in_bb): Ditto. * tree-pretty-print.c (dump_vops): Rename occurences of vdef @@ -143,13 +962,13 @@ (mark_all_v_must_defs): New function. (create_scalar_copies): Replace call to mark_all_vdefs with calls to mark_all_v_may_defs and mark_all_v_must_defs. - (scalarize_structures): Rename occurences of vdef to v_may_def. + (scalarize_structures): Rename occurences of vdef to v_may_def. Also add a check for V_MUST_DEFs. (scalarize_modify_expr): Rename occurences of vdef to v_may_def. * tree-ssa-alias.c (global_var): Update comment. (compute_may_aliases): Ditto. (compute_points_to_and_addr_escape): Rename occurences of vdef - to v_may_def. Also add code to mark variables in V_MUST_DEF + to v_may_def. Also add code to mark variables in V_MUST_DEF operands as being written to. (group_aliases): Update comment. (maybe_create_global_var): Ditto. @@ -157,18 +976,18 @@ Also add a check for V_MUST_DEFs on GIMPLE registers. (replace_immediate_uses): Rename occurences of vdef to v_may_def. * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef - to v_may_def. Also add code to mark all V_MUST_DEF operands + to v_may_def. Also add code to mark all V_MUST_DEF operands VARYING. (initialize): Ditto. (set_rhs): Rename occurences of vdef to v_may_def. Also add code to update SSA_NAMEs in V_MUST_DEFs. * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef to v_may_def. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename occurences of vdef to v_may_def. Also add code to mark statements with V_MUST_DEFs as necessary. (propagate_necessity): Rename occurences of vdef to v_may_def. - * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename + * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename occurences of vdef to v_may_def. Also add code to mark operands in V_MUST_DEFs for renaming. (eliminate_redundant_computations): Rename occurences of vdef @@ -187,10 +1006,10 @@ * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef to v_may_def. Also add code to mark V_MUST_DEF operands as being used in virtual operators. - * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of + * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of vdef to v_may_def. Also add code to mark V_MUST_DEF operands for renaming. - * tree-ssa-operands.c (opf_kill_def): New flag for killing + * tree-ssa-operands.c (opf_kill_def): New flag for killing definitions. (build_vdefs): Renamed to... (build_v_may_defs): This. @@ -259,7 +1078,7 @@ with calls to remove_v_may_defs and remove_v_must_defs. (process_left_occs_and_kills): Rename occurences of vdef to v_may_def. Also add code that marks left occurences of operands in V_MUST_DEFs. - * tree-tailcall.c (find_tail_calls): Rename occurences of vdef + * tree-tailcall.c (find_tail_calls): Rename occurences of vdef to v_may_def. Also add check for V_MUST_DEFs. (eliminate_tail_call):Rename occurences of vdef to v_may_def. @@ -296,7 +1115,7 @@ 2004-06-10 Jason Merrill - * target.h (struct gcc_target): Change gimplify_va_arg_expr + * target.h (struct gcc_target): Change gimplify_va_arg_expr hook signature. * tree-gimple.h: Adjust. * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust. @@ -332,7 +1151,7 @@ df_bb_reg_def_chain_create, df_bb_reg_use_chain_create, df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute, df_analyse_1, df_insn_modify): Support analysing only a part of the cfg. - + (dataflow_set_a_op_b, dataflow_set_copy): New functions. (df_rd_transfer_function, df_ru_transfer_function, df_lr_transfer_function): Type of bitmaps changed to void *. @@ -384,7 +1203,7 @@ 2004-06-09 Daniel Berlin - * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores + * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores match. 2004-06-09 Roger Sayle @@ -395,7 +1214,7 @@ (nondestructive_fold_unary_to_constant) : Likewise. 2004-06-09 Richard Henderson - + PR middle-end/15228 * function.c (assign_parms): Always set_mem_align with the computed FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT. @@ -501,7 +1320,7 @@ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn. (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. * alias.c (get_varargs_alias_set): Just return 0 for now. - + * c-objc-common.c (c_tree_printer): Improve handling of %T. 2004-06-09 Andrew Pinski @@ -526,7 +1345,7 @@ (sched_analyze): When the previous basic block ended in a CALL_INSN, initialize in_post_call_group_p as post_call_initial. (init_deps): initialize in_post_call_group_p to not_post_call. - + 2004-06-09 Arnaud Charlet PR ada/6637 @@ -595,7 +1414,7 @@ * gimple-low.c (struct lower_data): Replace the_return_label and one_return_stmt with return_statements. (lower_function_body): Process the entire list of return_statements. - (lower_return_expr): Check source value before unifying return_exprs. + (lower_return_expr): Check source value before unifying return_exprs. * gimplify.c (gimplify_return_expr): Force the use of a temporary for !aggregate_value_p. * tree-gimple.c: Update RETURN_EXPR grammer. @@ -1126,7 +1945,7 @@ 2004-06-01 Nicola Pero - PR objc/7993 + PR objc/7993 * objc-act.c (is_private): Do not emit the 'instance variable %s is declared private' error. (is_public): Emit the error after calling is_private. @@ -1692,6 +2511,7 @@ num_sign_bit_copies, cached_num_sign_bit_copies, num_sign_bit_copies1): New, from combine.c. * rtlhooks.c: New file. + * rtlhooks-def.h: New file. 2004-05-25 Svein E. Seldal @@ -5567,7 +6387,7 @@ * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can be safely built. -2004-04-16 Kazuhiro Inaoka +2004-04-16 Kazuhiro Inaoka * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian bug.