+2004-09-09 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/17377
+ * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
+ * config/cris/cris.c (cris_return_address_on_stack): New function.
+ * config/cris/cris.md ("return"): For location of return address,
+ also check cris_return_address_on_stack.
+
+2004-09-09 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
+ calling phi_ssa_name_p.
+
+2004-09-09 Richard Henderson <rth@redhat.com>
+
+ PR c/17322
+ * c-typeck.c (valid_compound_expr_initializer): Use only
+ initializer_constant_valid_p, and not TREE_CONSTANT.
+ (digest_init): Likewise.
+ (output_init_element): Likewise.
+
+2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
+ live_out_1, prune_hardregs_for_mode, init_one_web_common,
+ reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
+ record_conflict, compare_and_free_webs, init_webs_defs_uses,
+ parts_to_webs_1, parts_to_webs, reset_conflicts,
+ check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
+ ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
+ * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
+ put_move, remove_move, combine, select_spill, colorize_one_web,
+ try_recolor_web, insert_coalesced_conflicts, check_colors,
+ break_precolored_alias, restore_conflicts_from_coalesce,
+ sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
+ * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
+ reloads_to_loads, rewrite_program2, emit_colors): Likewise.
+ * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
+ check_df): Likewise.
+ * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
+ real_arithmetic, real_compare, real_exponent, real_ldexp,
+ real_identical, real_to_integer, real_to_integer2, real_to_decimal,
+ real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
+ real_digit, real_nan, real_maxval, round_for_format, real_convert,
+ real_to_target, real_from_target, real_hash, encode_ieee_single,
+ encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
+ encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
+ encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
+ * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
+ extract_insn, peep2_next_insn, peep2_reg_dead_p,
+ peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
+ if_test_bypass_p): Likewise.
+ * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
+ stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
+ emit_swap_insn, swap_to_top, move_for_stack_reg,
+ subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
+ compensate_edge, convert_regs_1): Likewise.
+ * regclass.c (init_reg_sets, init_reg_sets_1,
+ memory_move_secondary_cost): Likewise.
+ * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
+ Likewise.
+ * reload.c (push_secondary_reload, find_valid_class, push_reload,
+ operands_match_p, decompose, immune_p, find_reloads,
+ find_reloads_toplev, find_reloads_address_1, subst_reloads,
+ copy_replacements, refers_to_regno_for_reload_p,
+ reg_overlap_mentioned_for_reload_p): Likewise.
+ * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
+ count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
+ verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
+ reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
+ choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
+ do_output_reload, fixup_abnormal_edges): Likewise.
+ * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
+ fill_slots_from_thread, relax_delay_slots): Likewise.
+ * resource.c (mark_referenced_resources, mark_set_resources):
+ Likewise.
+ * rtl.c (copy_rtx, rtx_equal_p): Likewise.
+ * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
+ dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
+ subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
+ find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
+ hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
+ * rtlhooks.c (gen_lowpart_general): Likewise.
+ * sbitmap.c (sbitmap_difference): Likewise.
+ * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
+ sched_analyze, add_forward_dependence): Likewise.
+ * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
+ * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
+ schedule_insns): Likewise.
+ * sched-vis.c (print_pattern): Likewise.
+ * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
+ * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
+ simplify_const_relational_operation, simplify_ternary_operation,
+ simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
+ Likewise.
+ * sreal.c (copy, sreal_sub, sreal_div): Likewise.
+ * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
+ resolve_operand_name_1, expand_return, expand_decl,
+ expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
+ * stor-layout.c (put_pending_size, smallest_mode_for_size,
+ int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
+ set_sizetype, get_mode_bounds): Likewise.
+
+2004-09-09 Zack Weinberg <zack@codesourcery.com>
+
+ * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
+ * config/arm/pecoff.h, config/i386/beos-elf.h
+ * config/i386/cygming.h, config/i386/i386-interix.h:
+ Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove
+ comment cloned from manual.
+ * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
+
+2004-09-09 Frank Ch. Eigler <fche@redhat.com>
+
+ * builtins.c (build_va_arg_indirect_ref): New function.
+ (std_gimplify_va_arg_expr): Call it instead of mudflap check and
+ build_fold_indirect_ref.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
+ * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
+ * tree.h: Declare new function.
+
+2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
+ dumping for development builds.
+ * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
+ development builds only.
+ * genattrtab.c (write_eligible_delay): Fix typo in previous
+ commit.
+ * tree.c (iterative_hash_expr): Replace gcc_unreachable with
+ gcc_assert.
+
+2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
+ cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
+ process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
+ hoist_code, extract_mentioned_regs_helper, compute_store_table,
+ insert_store): Use gcc_assert and gcc_unreachable.
+ * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
+ gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
+ ggc_record_overhead): Likewise.
+ * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
+ init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
+ ggc_pop_context, clear_marks, validate_free_objects,
+ ggc_pch_read): Likewise.
+ * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
+ ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
+ ggc_push_context, check_cookies, ggc_collect,
+ ggc_print_statistics): Likewise.
+ * gimple-low.c (lower_function_body, lower_stmt,
+ lower_bind_expr): Likewise.
+ * gimplify.c (gimple_tree_eq, push_gimplify_context,
+ pop_gimplify_context, gimple_pop_condition, create_tmp_var,
+ declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
+ mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
+ gimplify_case_label_expr, gimplify_exit_block_expr,
+ canonicalize_component_ref, gimplify_compound_lval,
+ gimplify_self_mod_expr, gimplify_call_expr,
+ gimplify_init_ctor_eval, gimplify_init_constructor,
+ gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
+ gimplify_expr, check_pointer_types_r,
+ force_gimple_operand): Likewise.
+ * global.c (global_alloc, build_insn_chain): Likewise.
+ * graph.c (clean_graph_dump_file,
+ finish_graph_dump_file): Likewise.
+ gcov-io.c (gcov_open): Use GCOV_CHECK.
+
+2004-09-09 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
+
+2004-09-09 Jan Hubicka <jh@suse.cz>
+
+ middle-end/17128
+ * tree-inline.c (expand_call_inline): Make overactive sanity check
+ happy.
+
+2004-09-09 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
+ VIEW_CONVERT_EXPR.
+
+2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ * Makefile.in (gengtype): Use $(BUILD_ERRORS).
+ (gengtype.o): Depend on errors.h.
+ * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
+ (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
+ attr_alt_subset_p, attr_alt_subset_of_compl_p,
+ attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
+ write_test_expr, write_attr_value, write_eligible_delay,
+ make_internal_attr, make_numeric_value): Likewise.
+ * genautomata.c (regexp_name, get_str_vect,
+ gen_presence_absence_set, automaton_decl_hash,
+ automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
+ decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
+ process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
+ test_unit_reserv, it_is_empty_reserv_sets,
+ reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
+ reserv_sets_and, output_cycle_reservs, get_free_state,
+ intersected_state_reservs_p, states_union, remove_arc,
+ copy_insn_regexp, transform_1, transform_2, transform_3,
+ regexp_transform_func, store_alt_unit_usage,
+ check_regexp_units_distribution, process_seq_for_forming_states,
+ process_alts_for_forming_states, make_automaton,
+ form_arcs_marked_by_insn, create_composed_state,
+ set_out_arc_insns_equiv_num, partition_equiv_class,
+ process_insn_equiv_class, set_insn_equiv_classes,
+ units_to_automata_heuristic_distr, form_regexp,
+ longest_path_length, output_dfa_max_issue_rate, add_vect,
+ out_state_arcs_num, add_vect_el, output_trans_table,
+ output_state_alts_table, output_dead_lock_vect,
+ output_max_insn_queue_index_def,
+ output_min_insn_conflict_delay_func,
+ output_internal_insn_latency_func, output_print_reservation_func,
+ output_cpu_unit_reservation_p, output_state_arcs,
+ make_insn_alts_attr, make_internal_dfa_insn_code_attr,
+ make_default_insn_latency_attr,
+ form_important_insn_automata_lists): Likewise.
+ * genemit.c (gen_exp, output_add_clobbers,
+ output_added_clobbers_hard_reg_p): Likewise.
+ * genextract.c (print_path, main): Likewise.
+ * genflags.c (gen_macro): Likewise.
+ * gengenrtl.c: Include errors.h
+ (type_from_format, accessor_from_format): Likewise.
+ * gengtype.c (get_file_basename, output_mangled_typename,
+ walk_type, write_types_process_field,
+ write_types_local_process_field): Likewise.
+ * genmodes.c (complete_mode): Likewise.
+ * genopinit.c (gen_insn): Likewise.
+ * genoutput.c (output_insn_data, check_constraint_len,
+ constraint_len): Likewise.
+ * genpreds.c (add_mode_tests):Likewise.
+ * gen-protos.c (add_hash): Likewise.
+ * genrecog.c (find_operand, find_matching_operand,
+ validate_pattern, add_to_sequence, maybe_both_true,
+ nodes_identical_1, merge_trees, write_switch, write_cond,
+ write_action, is_unconditional, make_insn_sequence,
+ debug_decision_2): Likewise.
+ * gensupport.c (is_predicable, collect_insn_data,
+ alter_predicate_for_insn, maybe_eval_c_test): Likewise.
+
+2004-09-09 Jan Hubicka <jh@suse.cz>
+
+ * basic-block.h (guess_outgoing_edge_probabilities): Declare.
+ * cfgbuild.c (compute_outgoing_frequencies): When probability is
+ missing, guess it.
+ (find_many_sub_basic_blocks): Do update profile only when it is
+ present.
+ * predict.c (set_even_probabilities): Break out from ...
+ (combine_predictions_for_insn): ... here; deal with
+ !can_predict_insn_p insns.
+ (combine_predictions_for_bb): Use set_even_probabilities.
+ (bb_estimate_probability_locally): Break out from ....
+ (estimate_probability): ... here.
+ (guess_outgoing_edge_probabilities): New entry point.
+
+2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
+ handle_braces, process_brace_body, main, used_arg,
+ set_multilib_dir, print_multilib_info): Use fatal, not abort.
+
+ * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
+
+ * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
+ * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
+ Morgan's theorem in last checkin.
+
+2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+ Nathan Sidwell <nathan@codesourcery.com>
+
+ * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
+ Use gcc_assert, gcc_unreachable & internal_error instead of abort.
+ * timevar.c (timevar_push, timevar_pop, timevar_start,
+ timevar_stop): Likewise.
+ * toplev.c (default_pch_valid_p): Likewise.
+ * tracer.c (tail_duplicate): Likewise.
+ * tree-alias-common.c (get_alias_var_decl,
+ get_values_from_constructor, create_alias_var, delete_alias_vars,
+ empty_points_to_set, same_points_to_set, ptr_may_alias_var):
+ Likewise.
+ * tree.c (tree_size, make_node_stat, copy_node_stat,
+ build_int_cst_wide, integer_all_onesp, list_length, chainon,
+ tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
+ substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
+ build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
+ lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
+ build_method_type_directly, decl_type_context, get_callee_fndecl,
+ get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
+ tree_fold_gcd): Likewise.
+ * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
+ make_cond_expr_edges, group_case_labels, tree_merge_blocks,
+ cleanup_control_expr_graph, find_taken_edge,
+ find_taken_edge_switch_expr, phi_alternatives_equal,
+ is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
+ stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
+ tree_split_edge, tree_verify_flow_info, thread_jumps,
+ tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
+ * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
+ chrec_fold_multiply_poly_poly): Likewise.
+ * tree-complex.c (extract_component, expand_complex_division,
+ expand_complex_comparison, expand_complex_operations_1,
+ build_replicated_const, expand_vector_operations_1): Likewise.
+ * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
+ build_classic_dir_vector): Likewise.
+ * tree-dfa.c (compute_immediate_uses_for_phi,
+ compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
+ create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
+ * tree-dump.c (dequeue_and_dump): Likewise.
+ * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
+ record_in_finally_tree, replace_goto_queue_1,
+ maybe_record_in_goto_queue, verify_norecord_switch_expr,
+ do_return_redirection): Likewise.
+ * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
+ add_to_dst_predicate_list, find_phi_replacement_condition,
+ replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
+ Likewise.
+ * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
+ initialize_inlined_parameters, declare_return_variable,
+ estimate_num_insns_1, expand_call_inline, expand_calls_inline,
+ optimize_inline_calls, copy_tree_r): Likewise.
+ * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
+ ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
+ * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
+ tsi_split_statement_list_after, tsi_split_statement_list_before):
+ Likewise.
+ * tree-mudflap.c (mf_varname_tree): Likewise.
+ * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
+ lookup_tramp_for_decl, convert_all_function_calls): Likewise.
+ * tree-optimize.c (tree_rest_of_compilation): Likewise.
+ * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
+ coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
+ free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
+ Likewise.
+ * tree-phinodes.c (resize_phi_node, add_phi_arg,
+ remove_all_phi_nodes_for): Likewise.
+ * tree-pretty-print.c (op_prio, print_call_name): Likewise.
+ * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
+ tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
+ * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
+ sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
+ generate_one_element_ref, generate_element_copy,
+ generate_element_zero, scalarize_copy, scalarize_init,
+ scalarize_ldst): Likewise.
+ * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
+ add_may_alias, add_pointed_to_expr, add_pointed_to_var,
+ collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
+ * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
+ * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
+ set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
+ widen_bitfield, ccp_fold_builtin): Likewise.
+ * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
+ replace_exp_1, propagate_tree_value): Likewise.
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
+ * tree-ssa-dce.c (set_control_dependence_map_bit,
+ find_control_dependence, find_pdom, mark_operand_necessary,
+ mark_stmt_if_obviously_necessary,
+ mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
+ * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
+ simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
+ eliminate_redundant_computations, avail_expr_eq): Likewise.
+ * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
+ * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
+ duplicate_blocks): Likewise.
+ * tree-ssa-loop-im.c (for_each_index, set_level,
+ is_call_clobbered_ref): Likewise.
+ * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
+ stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
+ find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
+ peel_address, ptr_difference_cost, may_replace_final_value,
+ determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
+ rewrite_use, rewrite_uses): Likewise.
+ * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
+ check_loop_closed_ssa_use): Likewise.
+ * tree-ssanames.c (make_ssa_name): Likewise.
+ * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
+ finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
+ get_stmt_operands, get_expr_operands, get_asm_expr_operands,
+ get_indirect_ref_operands, add_stmt_operand): Likewise.
+ * tree-ssa-pre.c (value_exists_in_set_bitmap,
+ value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
+ phi_translate, valid_in_set, compute_antic,
+ find_or_generate_expression, create_expression_by_pieces, insert_aux,
+ create_value_expr_from, eliminate): Likewise.
+ * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
+ * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
+ Likewise.
+ * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
+ eliminate_tail_call): Likewise.
+ * tree-vectorizer.c (vect_create_index_for_array_ref,
+ vect_align_data_ref, vect_create_data_ref,
+ vect_create_destination_var, vect_get_vec_def_for_operand,
+ vect_finish_stmt_generation, vect_transform_stmt,
+ vect_transform_loop_bound, vect_transform_loop,
+ vect_analyze_operations): Likewise.
+ * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
+ Likewise.
+ * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
+ get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
+ bsi_after_labels, bsi_last): Likewise.
+ * tree-ssa-live.c (var_union, change_partition_var,
+ create_ssa_var_map, calculate_live_on_entry, root_var_init,
+ type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
+ Likewise.
+ * tree-ssa-live.h (partition_is_global, live_entry_blocks,
+ tpa_find_tree): Likewise.
+ (register_ssa_partition_check): Declare.
+ (register_ssa_partition): use it.
+ * tree-ssa-live.c: Include errors.h.
+ (register_ssa_partition_check): New.
+ * tree-ssa-operands.c: Include errors.h.
+ * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
+
+2004-09-09 Richard Sandiford <rsandifo@redhat.com>
+ Catherine Moore <clm@redhat.com>
+
+ * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
+ (FRV_CPU_FR405): New processor enums.
+ (frv_issue_rate, frv_acc_group): Declare.
+ * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
+ (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
+ (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
+ (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
+ (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
+ handled by CPP_SPEC.
+ (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
+ (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
+ (ACC_MASK): New macro.
+ (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
+ (TARGET_MEDIA_FR450): New macro.
+ (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
+ (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
+ (LABEL_ALIGN_AFTER_BARRIER): Define.
+ (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
+ (IACC_FIRST, IACC_LAST): New pair of SPRs.
+ (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
+ (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
+ (REGISTER_NAMES): Add entries for new registers.
+ (REG_CLASS_CONTENTS): Update for new register ranges.
+ (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
+ (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
+ (PACKING_FLAG_USED_P): Delete.
+ (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
+ (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
+ (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
+ (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
+ (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
+ (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
+ (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
+ (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
+ (CPU_UNITS_QUERY): Define to 1.
+ * config/frv/frv.c: Include gt-frv.h
+ (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
+ (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
+ (frv_insn_group): New enumeration.
+ (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
+ (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
+ (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
+ (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the
+ gap left by REGSTATE_LIVE.
+ (regstate_t): New typedef.
+ (TARGET_MACHINE_DEPENDENT_REORG): Define.
+ (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
+ (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
+ Initialize frv_unit_codes[] and frv_type_to_unit[].
+ (frv_conditional_register_usage): Remove redundant fixing of
+ accumulator registers.
+ (frv_insn_packing_flag): Update specification.
+ (frv_function_prologue): Don't set frv_insn_packing_flag here.
+ Zero out frv_nops[].
+ (frv_expand_epilogue): Remove comments about the no-longer-present
+ SIBCALL_P argument.
+ (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
+ PACKING_FLAG_USED_P() when deciding whether to pack instructions.
+ (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
+ of the new meaning of frv_insn_packing_flag. Emit an mnop.p if
+ packing is disabled and if INSN can only issue to M1.
+ (call_operand): Check TARGET_LONG_CALLS.
+ (acc_operand, even_acc_operand, quad_acc_operand)
+ (accg_operand): Simplify. Don't accept pseudo registers.
+ (output_move_single): Handle SPR<-zero moves.
+ (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}.
+ (frv_registers_update, frv_registers_used_p): Delete.
+ (frv_registers_set_p): Delete.
+ (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
+ (frv_issues_to_branch_unit_p): New function.
+ (frv_packet): New structure.
+ (frv_cond_flags, frv_regstate_conflict_p): New functions.
+ (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
+ (frv_registers_update_1, frv_registers_update): New functions.
+ (frv_start_packet, frv_start_packet_block, frv_finish_packet)
+ (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
+ (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
+ (frv_sort_insn_group, frv_reorder_packet): New functions.
+ (frv_pack_insns): Use frv_reorder_packet.
+ (frv_packet_address): New variable.
+ (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
+ (frv_register_nop, frv_reorg): New functions.
+ (bdesc_1arg): Add __SCUTSS.
+ (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
+ __SUBSS, __SLASS and __SCAN.
+ (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
+ (bdesc_int_void2arg, bdesc_prefetches): New arrays.
+ (frv_init_builtins): Register the above builtins.
+ (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
+ registers. Turn the referenced accumulators into global registers.
+ (frv_read_iacc_argument): New function.
+ (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
+ (frv_split_iacc_move): New function.
+ (frv_expand_builtin): Handle the new builtins.
+ * config/frv/frv.md: Replace old schedulers with new order-independent
+ ones. Add schedulers for the FR405, FR450 and FR550. Describe new
+ packing algorithm.
+ (cpu): Add fr550, fr450 and fr405.
+ (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
+ mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7.
+ (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
+ (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
+ (fnop, mnop): New patterns.
+ (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
+ New constants.
+ (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
+ (mclracca8): Use ACC_MASK to determine the upper set of accumulator
+ registers.
+ (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
+ (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
+ (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
+ (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
+ (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
+ (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
+ (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
+ (frv_prefetch0, frv_prefetch): New patterns.
+ * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
+ -mcpu=simple. Add -mcpu=fr550.
+ (MULTILIB_DIRNAMES): Update accordingly.
+ (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
+ -mcpu=fr450.
+ * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
+ -mlong-calls and -malign-labels options for FR-V.
+
+2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ PR c/8420
+ * c-tree.h (struct c_declspecs): New.
+ (struct c_declarator, struct c_type_name, struct c_parm): Update
+ element types.
+ (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
+ start_function, start_decl, build_c_parm,
+ make_pointer_declarator): Update prototypes.
+ (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
+ declspecs_add_scspec, declspecs_add_attrs): New.
+ (split_specs_attrs): Remove.
+ * c-parse.in (%union): Add dsptype.
+ (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
+ declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
+ declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
+ declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
+ declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
+ declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
+ declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
+ declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
+ declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
+ declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
+ maybe_type_quals_attrs): Change to dsptype.
+ (struct c_declspec_stack): New.
+ (current_declspecs, declspec_stack): Change type.
+ (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
+ structures.
+ (extdefs): Likewise.
+ (setspecs): Likewise.
+ (fndef): Use current_declspecs for empty declspecs list.
+ (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
+ declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
+ declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
+ declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
+ declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
+ declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
+ declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
+ declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
+ structures and helper functions. Update comments.
+ (typespec_nonattr): Correct comment.
+ (maybe_type_quals_attrs, typename): Update to new structures.
+ * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
+ shadow_tag, shadow_tag_warned, start_function, start_decl,
+ build_c_parm, make_pointer_declarator,
+ set_array_declarator_inner, groktypename): Update to new
+ structures.
+ (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
+ declspecs_add_scspec, declspecs_add_attrs): New.
+ (split_specs_attrs): Remove.
+ (shadow_tag_warned): Make warning for useless type names a
+ pedwarn. Give hard error for long, short, signed, unsigned or
+ _Complex used with struct, union or enum in empty declaration.
+ Make found_tag a bool.
+ (grokdeclarator): Remove checks now done at parse time.
+
+2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
+ c_declarator, struct c_type_name, struct c_parm): New.
+ (build_array_declarator, set_array_declarator_inner,
+ get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
+ start_function, start_decl, build_c_parm, build_attrs_declarator,
+ build_function_declarator, make_pointer_declarator, c_cast_expr,
+ store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
+ (build_id_declarator): New.
+ * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
+ structures.
+ * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
+ ARG_INFO_OTHERS): Remove.
+ (build_id_declarator): New.
+ (build_array_declarator, set_array_declarator_inner, groktypename,
+ start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
+ grokfield, start_function, store_parm_decls_newstyle,
+ store_parm_decls_oldstyle, store_parm_decls,
+ build_c_parm, build_attrs_declarator, build_function_declarator,
+ make_pointer_declarator, grokdeclarator): Update to new
+ structures.
+ * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
+ parmtype.
+ (declarator, notype_declarator, after_type_declarator,
+ parm_declarator, parm_declarator_starttypename,
+ parm_declarator_nostarttypename, array_declarator, typename,
+ absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
+ absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
+ parmlist_1, parmlist_2, parmlist_or_identifiers,
+ parmlist_or_identifiers_1): Use these types.
+ (primary, after_type_declarator, parm_declarator_starttypename,
+ notype_declarator, component_decl, component_declarator,
+ component_notype_declarator, typename, absdcl,
+ absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
+ parmlist_2, parmlist_or_identifiers_1): Update to new structures.
+
+2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
+ in_typeof, record_maybe_used_decl, pop_maybe_used,
+ c_expr_sizeof_expr, c_expr_sizeof_type): New.
+ * c-decl.c (parser_obstack): New.
+ (c_init_decl_processing): Initialize parser_obstack.
+ (c_write_global_declarations_1): Check for used but undefined
+ static functions.
+ * c-parse.in (%union): Add otype.
+ (save_obstack_position): New.
+ (extdefs): Use it.
+ (unary_expr): Update in_sizeof and in_alignof. Use
+ c_expr_sizeof_expr and c_expr_sizeof_type.
+ (sizeof): Update in_sizeof.
+ (alignof): Update in_alignof.
+ (typeof): Update in_typeof.
+ (typespec_nonreserved_nonattr): Call pop_maybe_used.
+ * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
+ maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
+ pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
+ (build_external_ref): Set C_DECL_USED or call
+ record_maybe_used_decl if appropriate.
+ * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
+
+2004-09-08 Eric Christopher <echristo@redhat.com>
+
+ * builtins.c: Fix prototype for fold_builtin_atan.
+
+2004-09-08 Eric Christopher <echristo@redhat.com>
+
+ * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
+ fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
+ fold_builtin_atan): New functions. Migrate function bodies...
+ (fold_builtin_1): ... from here.
+
+2004-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
+ save_size.
+
+2004-09-08 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
+ * config/rs6000/power5.md (power5-lmul): Same.
+
+2004-09-08 Richard Henderson <rth@redhat.com>
+
+ PR rtl-opt/17186
+ * function.c (expand_function_end): Have fall-off-the-end
+ return path jump around return register setup.
+
+2004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (sparc_indent_opcode): New variable.
+ (output_return): Do not test for the presence of the 'unimp' insn.
+ Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
+ as predicates instead of custom ones. Return raw strings when
+ possible.
+ (output_sibcall): Likewise. Concatenate strings.
+ (output_ubranch): Remove kludge for TurboSPARC.
+ (output_cbranch): Remove 'noop' parameter. Do not output 'nop'.
+ (output_v9branch): Likewise.
+ (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
+ <#>: Set sparc_indent_opcode if the delay slot is filled.
+ <(>: Likewise.
+ <)>: New operand to emit the displacement from the saved PC on return.
+ <@>: Remove.
+ * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
+ (ASM_OUTPUT_OPCODE): New macro.
+ (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
+ * config/sparc/sparc.md (normal_branch, inverted_branch,
+ normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
+ inverted_fpe_branch): Adjust call to output_cbranch.
+ (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
+ call to output_v9branch.
+ * config/sparc/sparc-protos.h (output_cbranch): Adjust.
+ (output_v9branch): Likewise.
+
+2004-09-08 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
+ -segs_read_only_addr and -segs_read_write_addr.
+ (WORD_SWITCH_TAKES_ARG): Same.
+ (LINK_SPEC): Same.
+ * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
+ -segs_read_write_addr.
+
+2004-09-08 Richard Henderson <rth@redhat.com>
+
+ * function.c (reference_callee_copied): New.
+ (assign_parm_setup_reg): Use it.
+ * calls.c (initialize_argument_information): Likewise.
+ (emit_library_call_value_1): Likewise.
+ * function.h (reference_callee_copied): Declare.
+
+ * target.h (struct gcc_target): Add callee_copies.
+ * target-def.h (TARGET_CALLEE_COPIES): New.
+ (TARGET_PASS_BY_REFERENCE): Update default.
+ * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * targhooks.c (hook_callee_copies_named): New.
+ (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
+ hook_pass_by_reference_false.
+ (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
+ * targhooks.h: Update decls.
+ * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
+ * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
+ * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
+ * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
+ * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
+ * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
+ (mips_callee_copies): New.
+ * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
+ * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
+ * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
+ * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/sh/sh.c (sh_callee_copies): New.
+ (TARGET_CALLEE_COPIES): New.
+ * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
+ * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
+ * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
+ for FUNCTION_ARG_CALLEE_COPIES.
+ * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
+
+2004-09-08 Devang Patel <dpatel@apple.com>
+
+ * tree-if-conv.c (find_phi_replacement_condition): Return true
+ edge block.
+ (replace_phi_with_cond_modify_expr): Select conditional expr args
+ based on true edge basic block.
+
+2004-09-08 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
+ variables being alias set.
+
+2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * final.c (shorten_branches, final, get_insn_template,
+ output_alternate_entry_point, final_scan_insn, alter_subreg,
+ alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
+ leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
+ * fix-header.c (lookup_std_proto): Likewise.
+ * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
+ verify_local_live_at_start, update_life_info, mark_reg,
+ calculate_global_regs_live, allocate_reg_life_data,
+ init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
+ ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
+ attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
+ * fold-const.c (force_fit_type, div_and_round_double,
+ may_negate_without_overflow_p, int_const_binop, const_binop,
+ size_binop, size_diffop, fold_convert_const, fold_convert,
+ invert_tree_comparison, swap_tree_comparison,
+ comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
+ range_binop, make_range, fold_cond_expr_with_comparison,
+ fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
+ fold_abs_const, fold_not_const, fold_relational_const, round_up,
+ round_down): Likewise.
+ * function.c (find_function_data, assign_stack_temp_for_type,
+ instantiate_virtual_regs_lossage, aggregate_value_p,
+ assign_parm_find_entry_rtl, assign_parm_setup_block,
+ expand_function_start, expand_function_end, keep_stack_depressed,
+ handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
+
+2004-09-08 Daniel Berlin <dberlin@dberlin.org>
+
+ * Makefile.in (tree-loop-linear.o): Added.
+ (OBJS-common): Add tree-loop-linear.o
+ * common.opt: New flag, ftree-loop-linear.
+ * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
+ * tree-flow.h: Add prototype for linear_transform_loops.
+ * tree-optimize.c: Add linear transform after vectorization.
+ * tree-pass.h: Add struct pass_linear_transform.
+ * tree-ssa-loop.c: Add pass_linear_transform.
+ * tree-loop-linear.c: New file.
+ * lambda-code.c: gcc_assertify.
+ (gcc_loop_to_lambda_loop): Handle all exit tests.
+ Handle case where we have (invariant >= induction var).
+ (find_induction_var_from_exit_cond): Ditto.
+
+2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
+
+ * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
+ memory tag is call clobbered, so are its aliases.
+ (group_aliases): When two memory tags being grouped, if one is
+ call clobbered, so are the other and its aliases.
+ (add_may_alias): Remove call-clobbering stuff.
+ (replace_may_alias): Likewise.
+ (merge_pointed_to_info): Merge pt_global_mem
+
+2004-09-08 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
+ * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
+ (cgraph_expand_function): Remove stale cgraph edges of currently
+ compiled function; fix non-unit-at-a-time code copying function
+ node for later reuse.
+
+2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
+ (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
+ (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
+ (vec_gc_free, vec_heap_free): New.
+ * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
+ (DEF_VEC_P): Add allocator argument. Adjust.
+ (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
+ (DEF_VEC_O): Add allocator argument. Adjust.
+ (VEC(free)): New.
+
+ * tree.h (tree): Define a GC'd vector.
+ * lamba-code.c (lambda_loop): Likewise.
+ * value-prof.h (histogram_value): Likewise.
+
+2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
+ (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
+ gen_lowpart_common, gen_highpart, gen_highpart_mode,
+ subreg_highpart_offset, operand_subword, operand_subword_force,
+ mem_expr_equal_p, set_mem_attributes_minus_bitpos,
+ set_mem_alias_set, change_address_1, verify_rtx_sharing,
+ copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
+ try_split, add_insn_after, add_insn_before, remove_insn,
+ remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
+ emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
+ emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
+ set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
+ gen_const_vector_0, emit_copy_of_insn_after): Likewise.
+ * et-forest.c (set_prev, set_next, et_check_occ_sanity,
+ record_path_before_1, check_path_after_1, check_path_after): Likewise.
+ * except.c (gen_eh_region, resolve_one_fixup_region,
+ remove_unreachable_regions, convert_from_eh_region_ranges_1,
+ add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
+ connect_post_landing_pads, sjlj_emit_function_exit,
+ remove_exception_handler_label, remove_eh_handler,
+ reachable_next_level, collect_one_action_chain,
+ output_function_exception_table): Likewise.
+ * explow.c (trunc_int_for_mode, copy_to_mode_reg,
+ optimize_save_area_alloca, allocate_dynamic_stack_space,
+ probe_stack_range, hard_function_value): Likewise.
+ * expmed.c (mode_for_extraction, store_bit_field,
+ store_fixed_bit_field, extract_bit_field, expand_shift,
+ expand_mult_const, expand_mult, choose_multiplier,
+ expand_mult_highpart, expand_divmod, emit_store_flag,
+ do_cmp_and_jump): Likewise.
+ * expr.c (convert_move, convert_modes, move_by_pieces,
+ move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
+ move_block_from_reg, gen_group_rtx, emit_group_load,
+ emit_group_move, emit_group_store, use_reg, use_regs,
+ can_store_by_pieces, store_by_pieces, store_by_pieces_1,
+ emit_move_insn, emit_move_insn_1, emit_push_insn,
+ expand_assignment, store_expr, count_type_elements,
+ store_constructor, store_field, safe_from_p, expand_var,
+ expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
+
+2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
+ gcc_assert and gcc_unreachable.
+ * ddg.c (create_ddg_dependence, add_deps_for_def,
+ add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
+ * df.c (df_ref_unlink, df_ref_record, df_uses_record,
+ df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
+ df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
+ df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
+ df_bb_reg_live_end_p, df_bb_regs_lives_compare,
+ df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
+ dataflow_set_copy, hybrid_search, diagnostic.c,
+ diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
+ * dojump.c (do_jump): Likewise.
+ * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
+ compute_dom_fast_query, calculate_dominance_info,
+ free_dominance_info, get_immediate_dominator,
+ set_immediate_dominator, get_dominated_by,
+ redirect_immediate_dominators, nearest_common_dominator,
+ dominated_by_p, verify_dominators, recount_dominator,
+ iterate_fix_dominators, add_to_dominance_info,
+ delete_from_dominance_info): Likewise.
+ * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
+ dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
+ dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
+ * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
+ initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
+ flush_queued_reg_saves, dwarf2out_frame_debug_expr,
+ dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
+ output_call_frame_info, output_loc_operands, build_cfa_loc,
+ decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
+ AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
+ AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
+ splice_child_die, attr_checksum, same_dw_val_p,
+ break_out_includes, build_abbrev_table, size_of_die, mark_dies,
+ unmark_dies, value_format, output_loc_list, output_die,
+ output_pubnames, output_aranges, base_type_die, is_base_type,
+ modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
+ mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
+ field_byte_offset, add_data_member_location_attribute,
+ add_const_value_attribute, rtl_for_decl_location,
+ add_location_or_const_value_attribute, add_byte_size_attribute,
+ add_bit_offset_attribute, add_bit_size_attribute,
+ add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
+ decl_start_label, gen_formal_parameter_die,
+ gen_type_die_for_member, gen_subprogram_die, gen_label_die,
+ gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
+ force_decl_die, force_type_die, gen_decl_die,
+ dwarf2out_imported_module_or_decl, prune_unused_types_prune,
+ dwarf2out_finish): Likewise.
+
+2004-09-08 Andreas Tobler <toa@pop.agri.ch>
+
+ * Makefile.in (builtins.o): Depend on tree-mudflap.h.
+ * builtins.c: Include tree-mudflap.h.
+
+2004-09-08 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
+ force operand 0.0 into register in XFmode. Also do not force
+ operand 0.0 into register if !TARGET_CMOVE.
+ * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
+ (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
+ implement ftst x87 instruction.
+ (*fp_jcc_7): New insn pattern. Change corresponding split
+ pattern to handle "general_operand" instead of
+ "nonimmediate_operand".
+
+2004-09-08 Ben Elliston <bje@au.ibm.com>
+
+ * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
+
+2004-09-07 Frank Ch. Eigler <fche@redhat.com>
+
+ * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
+ generated from standard va_arg expansion.
+ * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
+ marked nodes.
+ (mf_varname_tree, mf_file_function_line_tree): Add some support
+ for column numbers if compiled with USE_MAPPED_LOCATION.
+
+2004-09-07 Ziemowit Laski <zlaski@apple.com>
+
+ * c-decl.c (groktypename_in_parm_context): Remove function.
+ * c-tree.h (groktypename_in_parm_context): Remove prototype.
+
+2004-09-07 Ziemowit Laski <zlaski@apple.com>
+
+ * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
+ * c-parse.in: Include c-common.h instead of objc-act.h.
+ (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
+ myparms, myparm): Remove %type declarations.
+ (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
+ objc_typename, objc_try_catch_stmt, optellipsis): Add %type
+ declarations.
+ (objc_inherit_code, objc_public_flag): Remove.
+ (typespec_nonreserved_nonattr): Call
+ objc_get_protocol_qualified_type() instead of get_static_reference()
+ and get_protocol_reference().
+ (stmt_nocomp): Call grokparm() on @catch parameter.
+ (objcdef): Move semantic action to objc_finish_implementation().
+ (classdef): Move semantic action to objc_start_class_interface(),
+ objc_continue_interface(), objc_finish_interface(),
+ objc_start_class_implementation(), objc_continue_implementation(),
+ objc_start_category_interface() and
+ objc_start_category_implementation().
+ (protocoldef): Move semantic actions to objc_start_protocol() and
+ objc_finish_interface().
+ (ivar_decl_list): Remove nonterminal.
+ (visibility_spec): Move semantic actions to objc_set_visibility().
+ (ivar_decls): Remove assignment to $$.
+ (ivar_decl): Rephrase in terms of component_decl; call
+ objc_add_instance_variable().
+ (ivars, ivar_declarator): Remove nonterminals.
+ (opt_semi): New nonterminal.
+ (methodtype): Remove semantic actions.
+ (methoddef): Move semantic actions to objc_set_method_type(),
+ objc_start_method_definition() and objc_finish_method_definition().
+ (methodproto): Move semantic actions to objc_set_method_type() and
+ objc_add_method_declaration().
+ (methoddecl): Use objc_typename instead of typename; move semantic
+ actions to objc_build_method_signature().
+ (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
+ (optparmlist): Express in terms of optparms and optellipsis.
+ (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
+ nonterminals.
+ (keyworddecl): Use objc_typename instead of typename.
+ (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
+ and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
+
+2004-09-08 Alan Modra <amodra@bigpond.net.au>
+
+ * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
+ (MD_FALLBACK_FRAME_STATE_FOR): Update.
+ * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
+ (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
+ (MD_FROB_UPDATE_CONTEXT): Remove default.
+ (uw_update_context_1): Instead #ifdef invocation.
+ * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
+ (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
+ * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
+ (MD_UNWIND_SUPPORT): Undefine this instead.
+ * config/i386/gnu.h: Likewise.
+ * config/alpha/linux-unwind.h: New file, macro converted to
+ function, extracted from..
+ * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
+ (MD_UNWIND_SUPPORT): Define.
+ * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
+ * config/i386/linux-unwind.h, config/i386/linux.h,
+ config/i386/linux64.h: Likewise.
+ * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
+ MD_HANDLE_UNWABI too.
+ * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
+ * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
+ * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
+ * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
+ * config/sparc/linux-unwind.h, config/sparc/linux.h,
+ config/sparc/linux64.h: Likewise.
+ * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
+ SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
+ * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
+ config/rs6000/linux64.h: Likewise. Split out get_sigcontext
+ function. Use ARG_POINTER_REGNUM for 32-bit temp reg too.
+
+2004-09-07 Jan Hubicka <jh@suse.cz>
+
+ * cse.c (fold_rtx): Avoid building of
+ (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
+
+ * tree-ssa-pre.c (grand_bitmap_obstack): New.
+ (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
+ (init_pre): Initialize obstack.
+ (fini_pre): Free obstack.
+
+2004-09-07 David Daney <ddaney@avtrex.com>
+
+ * config.gcc: Added support for --with-divide=[breaks|traps] for
+ mips targets.
+ * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
+ (TARGET_DIVIDE_TRAPS): New macro.
+ (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
+ (OPTION_DEFAULT_SPECS): Added --with-divide= support.
+ * config/mips/mips.c (mips_idiv_insns): Generate proper count on
+ GENERATE_DIVIDE_TRAPS.
+ (mips_output_division): Emit conditional trap if
+ GENERATE_DIVIDE_TRAPS is set.
+ * doc/install.texi: Document --with-divide.
+ * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
+
+2004-09-07 Caroline Tice <ctice@apple.com>
+
+ * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
+ EDGE_CROSSING, to flags test case.
+
+2004-09-07 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
+ class too.
+
+2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
+ cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
+ make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
+ or gcc_unreachable.
+ * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
+ remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
+ alloc_aux_for_edges, free_aux_for_edges): Likewise.
+ * cfgcleanup.c (try_forward_edges,
+ merge_blocks_move_predecessor_nojumps,
+ merge_blocks_move_successor_nojumps): Likewise.
+ * cfgexpand.c (expand_gimple_cond_expr,
+ expand_gimple_tailcall): Likewise.
+ * cfghooks.c (duplicate_block): Likewise.
+ * cfglayout.c (record_effective_endpoints,
+ insn_locators_initialize, change_scope, fixup_reorder_chain,
+ verify_insn_chain, fixup_fallthru_exit_predecessor,
+ duplicate_insn_chain, cfg_layout_finalize): Likewise.
+ * cfgloopanal.c (check_irred): Likewise.
+ * cfgloop.c (superloop_at_depth, flow_loops_free,
+ flow_loop_entry_edges_find, flow_loops_find,
+ flow_loop_outside_edge_p, get_loop_body,
+ get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
+ get_loop_exit_edges, num_loop_branches, cancel_loop,
+ verify_loop_structure): Likewise.
+ cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
+ duplicate_loop_to_header_edge, create_preheader,
+ create_loop_notes): Likewise.
+ * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
+ edirect_branch_edge, force_nonfallthru_and_redirect,
+ rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
+ commit_edge_insertions, commit_edge_insertions_watch_calls,
+ purge_dead_edges, cfg_layout_redirect_edge_and_branch,
+ cfg_layout_redirect_edge_and_branch_force,
+ cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
+ * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
+ cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
+ cgraph_varpool_node): Likewise.
+ * cgraphunit.c (cgraph_finalize_function,
+ cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
+ cgraph_expand_function, cgraph_remove_unreachable_nodes,
+ cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
+ cgraph_mark_inline, cgraph_expand_all_functions,
+ cgraph_build_static_cdtor): Likewise.
+ * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx,
+ simplify_logical, distribute_notes, insn_cuid): Likewise.
+ * conflict.c (conflict_graph_add, print_conflict): Likewise.
+ * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
+ coverage_checksum_string): Likewise.
+ * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
+ hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
+ cse_cc_succs, cse_condition_code_reg): Likewise.
+ * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
+ rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
+ new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
+ cselib_record_set): Likewise.
+
2004-09-07 Jan Hubicka <jh@suse.cz>
* tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
check_format_types, format_type_warning,
find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
init_dynamic_diag_info, handle_format_attribute): Likewise.
- * c-gimplify.c (push_context, pop_context, finish_bc_block):
+ * c-gimplify.c (push_context, pop_context, finish_bc_block):
* c-lex.c (c_lex_with_flags, lex_string): Likewise.
* c-objc-common.c (c_tree_printer): Likewise.
* c-pch.c (pch_init): Likewise.