OSDN Git Service

319bf11396a0f89d3b29d98b76a82f25d8ef8c0a
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
2
3         * doc/extend.texi (nothrow attribute): The attribute is not
4         implemented in 3.2 and earlier.
5
6 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
7
8         * genrecog.c (compute_predicate_codes): Use op0_codes
9         instead of codes.
10
11 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
12
13         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
14         implementation changes.
15
16 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
17
18         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
19         a PARALLEL instead of a SET due to added clobbers.
20
21 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
22
23         * reload.c (find_reloads_address): Pass correct operand to 
24         maybe_memory_address_p.
25
26 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
27
28         * Makefile.in: Remove libbanshee, tree-alias-*.
29         Remove tree-alias-common.h dependencies.
30         * common.opt: Remove -ftree-points-to.
31         * configure.ac: Remove libbanshee.
32         * flags.h: Remove pta_type, flag_tree_points_to.
33         * gengtype.c (open_base_files): Remove tree-alias-type.h.
34         * opts.c (OPT_ftree_points_to): Remove.
35         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
36         * tree-dfa.c: Remove tree-alias-common.h
37         * tree-into-ssa.c: Ditto.
38         * tree-outof-ssa.c: Ditto.
39         * tree-ssa-copyrename.c: Ditto.
40         * tree-ssa-live.c: Ditto.
41         * tree-optimize.c: Ditto.
42         * tree-ssa.c: Ditto.
43         Remove pass_build_pta, pass_del_pta.
44         * tree-pass.h: Ditto.
45         * tree-ssa-alias.c: Remove tree-alias-common.h.
46         (struct alias_stats_d): Remove pta_queries, pta_resolved.
47         (pass_may_alias): Remove PROP_pta requirement.
48         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
49         (get_tmt_for): Ditto.
50         (dump_alias_stats): Ditto.
51         * doc/passes.texi: Remove blurb about points-to analysis.
52         * fortran/Make-lang.in: Remove tree-alias-*.o.
53         
54 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
55
56         * genattrtab.c (write_insn_cases): New function, split out from
57         write_attr_case.  Correctly handle define_peepholes when printing
58         the instruction name.
59         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
60
61 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
62
63         PR target/17377
64         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
65         * config/cris/cris.c (cris_return_address_on_stack): New function.
66         * config/cris/cris.md ("return"): For location of return address,
67         also check cris_return_address_on_stack.
68
69 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
70
71         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
72         calling phi_ssa_name_p.
73
74 2004-09-09  Richard Henderson  <rth@redhat.com>
75
76         PR c/17322
77         * c-typeck.c (valid_compound_expr_initializer): Use only
78         initializer_constant_valid_p, and not TREE_CONSTANT.
79         (digest_init): Likewise.
80         (output_init_element): Likewise.
81
82 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
83
84         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
85         live_out_1, prune_hardregs_for_mode, init_one_web_common,
86         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
87         record_conflict, compare_and_free_webs, init_webs_defs_uses,
88         parts_to_webs_1, parts_to_webs, reset_conflicts,
89         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
90         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
91         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
92         put_move, remove_move, combine, select_spill, colorize_one_web,
93         try_recolor_web, insert_coalesced_conflicts, check_colors,
94         break_precolored_alias, restore_conflicts_from_coalesce,
95         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
96         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
97         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
98         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
99         check_df): Likewise.
100         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
101         real_arithmetic, real_compare, real_exponent, real_ldexp,
102         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
103         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
104         real_digit, real_nan, real_maxval, round_for_format, real_convert,
105         real_to_target, real_from_target, real_hash, encode_ieee_single,
106         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
107         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
108         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
109         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
110         extract_insn, peep2_next_insn, peep2_reg_dead_p,
111         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
112         if_test_bypass_p): Likewise.
113         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
114         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
115         emit_swap_insn, swap_to_top, move_for_stack_reg,
116         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
117         compensate_edge, convert_regs_1): Likewise.
118         * regclass.c (init_reg_sets, init_reg_sets_1,
119         memory_move_secondary_cost): Likewise.
120         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
121         Likewise.
122         * reload.c (push_secondary_reload, find_valid_class, push_reload,
123         operands_match_p, decompose, immune_p, find_reloads,
124         find_reloads_toplev, find_reloads_address_1, subst_reloads,
125         copy_replacements, refers_to_regno_for_reload_p,
126         reg_overlap_mentioned_for_reload_p): Likewise.
127         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
128         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
129         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
130         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
131         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
132         do_output_reload, fixup_abnormal_edges): Likewise.
133         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
134         fill_slots_from_thread, relax_delay_slots): Likewise.
135         * resource.c (mark_referenced_resources, mark_set_resources):
136         Likewise.
137         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
138         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
139         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
140         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
141         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
142         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
143         * rtlhooks.c (gen_lowpart_general): Likewise.
144         * sbitmap.c (sbitmap_difference): Likewise.
145         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
146         sched_analyze, add_forward_dependence): Likewise.
147         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
148         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
149         schedule_insns): Likewise.
150         * sched-vis.c (print_pattern): Likewise.
151         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
152         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
153         simplify_const_relational_operation, simplify_ternary_operation,
154         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
155         Likewise.
156         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
157         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
158         resolve_operand_name_1, expand_return, expand_decl,
159         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
160         * stor-layout.c (put_pending_size, smallest_mode_for_size,
161         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
162         set_sizetype, get_mode_bounds): Likewise.
163
164 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
165
166         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
167         * config/arm/pecoff.h, config/i386/beos-elf.h
168         * config/i386/cygming.h, config/i386/i386-interix.h:
169         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
170         comment cloned from manual.
171         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
172
173 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
174
175         * builtins.c (build_va_arg_indirect_ref): New function.
176         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
177         build_fold_indirect_ref.
178         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
179         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
180         * tree.h: Declare new function.
181
182 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
183
184         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
185         dumping for development builds.
186         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
187         development builds only.
188         * genattrtab.c (write_eligible_delay): Fix typo in previous
189         commit.
190         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
191         gcc_assert.
192
193 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
194
195         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
196         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
197         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
198         hoist_code, extract_mentioned_regs_helper, compute_store_table,
199         insert_store): Use gcc_assert and gcc_unreachable.
200         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
201         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
202         ggc_record_overhead): Likewise.
203         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
204         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
205         ggc_pop_context, clear_marks, validate_free_objects,
206         ggc_pch_read): Likewise.
207         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
208         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
209         ggc_push_context, check_cookies, ggc_collect,
210         ggc_print_statistics): Likewise.
211         * gimple-low.c (lower_function_body, lower_stmt,
212         lower_bind_expr): Likewise.
213         * gimplify.c (gimple_tree_eq, push_gimplify_context,
214         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
215         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
216         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
217         gimplify_case_label_expr, gimplify_exit_block_expr,
218         canonicalize_component_ref, gimplify_compound_lval,
219         gimplify_self_mod_expr, gimplify_call_expr,
220         gimplify_init_ctor_eval, gimplify_init_constructor,
221         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
222         gimplify_expr, check_pointer_types_r,
223         force_gimple_operand): Likewise.
224         * global.c (global_alloc, build_insn_chain): Likewise.
225         * graph.c (clean_graph_dump_file,
226         finish_graph_dump_file): Likewise.
227         gcov-io.c (gcov_open): Use GCOV_CHECK.
228
229 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
230
231         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
232
233 2004-09-09  Jan Hubicka  <jh@suse.cz>
234
235         middle-end/17128
236         * tree-inline.c (expand_call_inline): Make overactive sanity check
237         happy.
238
239 2004-09-09  Jan Hubicka  <jh@suse.cz>
240
241         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
242         VIEW_CONVERT_EXPR.
243
244 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
245
246         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
247         (gengtype.o): Depend on errors.h.
248         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
249         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
250         attr_alt_subset_p, attr_alt_subset_of_compl_p,
251         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
252         write_test_expr, write_attr_value, write_eligible_delay,
253         make_internal_attr, make_numeric_value): Likewise.
254         * genautomata.c (regexp_name, get_str_vect,
255         gen_presence_absence_set, automaton_decl_hash,
256         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
257         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
258         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
259         test_unit_reserv, it_is_empty_reserv_sets,
260         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
261         reserv_sets_and, output_cycle_reservs, get_free_state,
262         intersected_state_reservs_p, states_union, remove_arc,
263         copy_insn_regexp, transform_1, transform_2, transform_3,
264         regexp_transform_func, store_alt_unit_usage,
265         check_regexp_units_distribution, process_seq_for_forming_states,
266         process_alts_for_forming_states, make_automaton,
267         form_arcs_marked_by_insn, create_composed_state,
268         set_out_arc_insns_equiv_num, partition_equiv_class,
269         process_insn_equiv_class, set_insn_equiv_classes,
270         units_to_automata_heuristic_distr, form_regexp,
271         longest_path_length, output_dfa_max_issue_rate, add_vect,
272         out_state_arcs_num, add_vect_el, output_trans_table,
273         output_state_alts_table, output_dead_lock_vect,
274         output_max_insn_queue_index_def,
275         output_min_insn_conflict_delay_func,
276         output_internal_insn_latency_func, output_print_reservation_func,
277         output_cpu_unit_reservation_p, output_state_arcs,
278         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
279         make_default_insn_latency_attr,
280         form_important_insn_automata_lists): Likewise.
281         * genemit.c (gen_exp, output_add_clobbers,
282         output_added_clobbers_hard_reg_p): Likewise.
283         * genextract.c (print_path, main): Likewise.
284         * genflags.c (gen_macro): Likewise.
285         * gengenrtl.c: Include errors.h
286         (type_from_format, accessor_from_format): Likewise.
287         * gengtype.c (get_file_basename, output_mangled_typename,
288         walk_type, write_types_process_field,
289         write_types_local_process_field): Likewise.
290         * genmodes.c (complete_mode): Likewise.
291         * genopinit.c (gen_insn): Likewise.
292         * genoutput.c (output_insn_data, check_constraint_len,
293         constraint_len): Likewise.
294         * genpreds.c (add_mode_tests):Likewise.
295         * gen-protos.c (add_hash): Likewise.
296         * genrecog.c (find_operand, find_matching_operand,
297         validate_pattern, add_to_sequence, maybe_both_true,
298         nodes_identical_1, merge_trees, write_switch, write_cond,
299         write_action, is_unconditional, make_insn_sequence,
300         debug_decision_2): Likewise.
301         * gensupport.c (is_predicable, collect_insn_data,
302         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
303
304 2004-09-09  Jan Hubicka  <jh@suse.cz>
305
306         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
307         * cfgbuild.c (compute_outgoing_frequencies): When probability is
308         missing, guess it.
309         (find_many_sub_basic_blocks): Do update profile only when it is
310         present.
311         * predict.c (set_even_probabilities): Break out from ...
312         (combine_predictions_for_insn): ... here; deal with
313         !can_predict_insn_p insns.
314         (combine_predictions_for_bb): Use set_even_probabilities.
315         (bb_estimate_probability_locally): Break out from ....
316         (estimate_probability): ... here.
317         (guess_outgoing_edge_probabilities): New entry point.
318
319 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
320
321         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
322         handle_braces, process_brace_body, main, used_arg,
323         set_multilib_dir, print_multilib_info): Use fatal, not abort.
324
325         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
326
327         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
328         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
329         Morgan's theorem in last checkin.
330
331 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
332             Nathan Sidwell  <nathan@codesourcery.com>
333
334         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
335         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
336         * timevar.c (timevar_push, timevar_pop, timevar_start,
337         timevar_stop): Likewise.
338         * toplev.c (default_pch_valid_p): Likewise.
339         * tracer.c (tail_duplicate): Likewise.
340         * tree-alias-common.c (get_alias_var_decl,
341         get_values_from_constructor, create_alias_var, delete_alias_vars,
342         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
343         Likewise.
344         * tree.c (tree_size, make_node_stat, copy_node_stat,
345         build_int_cst_wide, integer_all_onesp, list_length, chainon,
346         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
347         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
348         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
349         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
350         build_method_type_directly, decl_type_context, get_callee_fndecl,
351         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
352         tree_fold_gcd): Likewise.
353         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
354         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
355         cleanup_control_expr_graph, find_taken_edge,
356         find_taken_edge_switch_expr, phi_alternatives_equal,
357         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
358         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
359         tree_split_edge, tree_verify_flow_info, thread_jumps,
360         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
361         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
362         chrec_fold_multiply_poly_poly): Likewise.
363         * tree-complex.c (extract_component, expand_complex_division,
364         expand_complex_comparison, expand_complex_operations_1,
365         build_replicated_const, expand_vector_operations_1): Likewise.
366         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
367         build_classic_dir_vector): Likewise.
368         * tree-dfa.c (compute_immediate_uses_for_phi,
369         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
370         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
371         * tree-dump.c (dequeue_and_dump): Likewise.
372         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
373         record_in_finally_tree, replace_goto_queue_1,
374         maybe_record_in_goto_queue, verify_norecord_switch_expr,
375         do_return_redirection): Likewise.
376         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
377         add_to_dst_predicate_list, find_phi_replacement_condition,
378         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
379         Likewise.
380         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
381         initialize_inlined_parameters, declare_return_variable,
382         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
383         optimize_inline_calls, copy_tree_r): Likewise.
384         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
385         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
386         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
387         tsi_split_statement_list_after, tsi_split_statement_list_before):
388         Likewise.
389         * tree-mudflap.c (mf_varname_tree): Likewise.
390         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
391         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
392         * tree-optimize.c (tree_rest_of_compilation): Likewise.
393         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
394         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
395         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
396         Likewise.
397         * tree-phinodes.c (resize_phi_node, add_phi_arg,
398         remove_all_phi_nodes_for): Likewise.
399         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
400         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
401         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
402         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
403         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
404         generate_one_element_ref, generate_element_copy,
405         generate_element_zero, scalarize_copy, scalarize_init,
406         scalarize_ldst): Likewise.
407         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
408         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
409         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
410         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
411         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
412         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
413         widen_bitfield, ccp_fold_builtin): Likewise.
414         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
415         replace_exp_1, propagate_tree_value): Likewise.
416         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
417         * tree-ssa-dce.c (set_control_dependence_map_bit,
418         find_control_dependence, find_pdom, mark_operand_necessary,
419         mark_stmt_if_obviously_necessary,
420         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
421         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
422         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
423         eliminate_redundant_computations, avail_expr_eq): Likewise.
424         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
425         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
426         duplicate_blocks): Likewise.
427         * tree-ssa-loop-im.c (for_each_index, set_level,
428         is_call_clobbered_ref): Likewise.
429         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
430         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
431         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
432         peel_address, ptr_difference_cost, may_replace_final_value,
433         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
434         rewrite_use, rewrite_uses): Likewise.
435         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
436         check_loop_closed_ssa_use): Likewise.
437         * tree-ssanames.c (make_ssa_name): Likewise.
438         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
439         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
440         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
441         get_indirect_ref_operands, add_stmt_operand): Likewise.
442         * tree-ssa-pre.c (value_exists_in_set_bitmap,
443         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
444         phi_translate, valid_in_set, compute_antic,
445         find_or_generate_expression, create_expression_by_pieces, insert_aux,
446         create_value_expr_from, eliminate): Likewise.
447         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
448         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
449         Likewise.
450         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
451         eliminate_tail_call): Likewise.
452         * tree-vectorizer.c (vect_create_index_for_array_ref,
453         vect_align_data_ref, vect_create_data_ref,
454         vect_create_destination_var, vect_get_vec_def_for_operand,
455         vect_finish_stmt_generation, vect_transform_stmt,
456         vect_transform_loop_bound, vect_transform_loop,
457         vect_analyze_operations): Likewise.
458         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
459         Likewise.
460         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
461         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
462         bsi_after_labels, bsi_last): Likewise.
463         * tree-ssa-live.c (var_union, change_partition_var,
464         create_ssa_var_map, calculate_live_on_entry, root_var_init,
465         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
466         Likewise.
467         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
468         tpa_find_tree): Likewise.
469         (register_ssa_partition_check): Declare.
470         (register_ssa_partition): use it.
471         * tree-ssa-live.c: Include errors.h.
472         (register_ssa_partition_check): New.
473         * tree-ssa-operands.c: Include errors.h.
474         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
475
476 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
477             Catherine Moore  <clm@redhat.com>
478
479         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
480         (FRV_CPU_FR405): New processor enums.
481         (frv_issue_rate, frv_acc_group): Declare.
482         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
483         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
484         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
485         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
486         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
487         handled by CPP_SPEC.
488         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
489         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
490         (ACC_MASK): New macro.
491         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
492         (TARGET_MEDIA_FR450): New macro.
493         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
494         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
495         (LABEL_ALIGN_AFTER_BARRIER): Define.
496         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
497         (IACC_FIRST, IACC_LAST): New pair of SPRs.
498         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
499         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
500         (REGISTER_NAMES): Add entries for new registers.
501         (REG_CLASS_CONTENTS): Update for new register ranges.
502         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
503         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
504         (PACKING_FLAG_USED_P): Delete.
505         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
506         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
507         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
508         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
509         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
510         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
511         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
512         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
513         (CPU_UNITS_QUERY): Define to 1.
514         * config/frv/frv.c: Include gt-frv.h
515         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
516         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
517         (frv_insn_group): New enumeration.
518         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
519         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
520         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
521         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
522         gap left by REGSTATE_LIVE.
523         (regstate_t): New typedef.
524         (TARGET_MACHINE_DEPENDENT_REORG): Define.
525         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
526         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
527         Initialize frv_unit_codes[] and frv_type_to_unit[].
528         (frv_conditional_register_usage): Remove redundant fixing of
529         accumulator registers.
530         (frv_insn_packing_flag): Update specification.
531         (frv_function_prologue): Don't set frv_insn_packing_flag here.
532         Zero out frv_nops[].
533         (frv_expand_epilogue): Remove comments about the no-longer-present
534         SIBCALL_P argument.
535         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
536         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
537         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
538         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
539         packing is disabled and if INSN can only issue to M1.
540         (call_operand): Check TARGET_LONG_CALLS.
541         (acc_operand, even_acc_operand, quad_acc_operand)
542         (accg_operand): Simplify.  Don't accept pseudo registers.
543         (output_move_single): Handle SPR<-zero moves.
544         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
545         (frv_registers_update, frv_registers_used_p): Delete.
546         (frv_registers_set_p): Delete.
547         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
548         (frv_issues_to_branch_unit_p): New function.
549         (frv_packet): New structure.
550         (frv_cond_flags, frv_regstate_conflict_p): New functions.
551         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
552         (frv_registers_update_1, frv_registers_update): New functions.
553         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
554         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
555         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
556         (frv_sort_insn_group, frv_reorder_packet): New functions.
557         (frv_pack_insns): Use frv_reorder_packet.
558         (frv_packet_address): New variable.
559         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
560         (frv_register_nop, frv_reorg): New functions.
561         (bdesc_1arg): Add __SCUTSS.
562         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
563         __SUBSS, __SLASS and __SCAN.
564         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
565         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
566         (frv_init_builtins): Register the above builtins.
567         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
568         registers.  Turn the referenced accumulators into global registers.
569         (frv_read_iacc_argument): New function.
570         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
571         (frv_split_iacc_move): New function.
572         (frv_expand_builtin): Handle the new builtins.
573         * config/frv/frv.md: Replace old schedulers with new order-independent
574         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
575         packing algorithm.
576         (cpu): Add fr550, fr450 and fr405.
577         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
578         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
579         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
580         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
581         (fnop, mnop): New patterns.
582         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
583         New constants.
584         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
585         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
586         registers.
587         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
588         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
589         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
590         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
591         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
592         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
593         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
594         (frv_prefetch0, frv_prefetch): New patterns.
595         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
596         -mcpu=simple.  Add -mcpu=fr550.
597         (MULTILIB_DIRNAMES): Update accordingly.
598         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
599         -mcpu=fr450.
600         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
601         -mlong-calls and -malign-labels options for FR-V.
602
603 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
604
605         PR c/8420
606         * c-tree.h (struct c_declspecs): New.
607         (struct c_declarator, struct c_type_name, struct c_parm): Update
608         element types.
609         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
610         start_function, start_decl, build_c_parm,
611         make_pointer_declarator): Update prototypes.
612         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
613         declspecs_add_scspec, declspecs_add_attrs): New.
614         (split_specs_attrs): Remove.
615         * c-parse.in (%union): Add dsptype.
616         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
617         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
618         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
619         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
620         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
621         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
622         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
623         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
624         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
625         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
626         maybe_type_quals_attrs): Change to dsptype.
627         (struct c_declspec_stack): New.
628         (current_declspecs, declspec_stack): Change type.
629         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
630         structures.
631         (extdefs): Likewise.
632         (setspecs): Likewise.
633         (fndef): Use current_declspecs for empty declspecs list.
634         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
635         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
636         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
637         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
638         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
639         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
640         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
641         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
642         structures and helper functions.  Update comments.
643         (typespec_nonattr): Correct comment.
644         (maybe_type_quals_attrs, typename): Update to new structures.
645         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
646         shadow_tag, shadow_tag_warned, start_function, start_decl,
647         build_c_parm, make_pointer_declarator,
648         set_array_declarator_inner, groktypename): Update to new
649         structures.
650         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
651         declspecs_add_scspec, declspecs_add_attrs): New.
652         (split_specs_attrs): Remove.
653         (shadow_tag_warned): Make warning for useless type names a
654         pedwarn.  Give hard error for long, short, signed, unsigned or
655         _Complex used with struct, union or enum in empty declaration.
656         Make found_tag a bool.
657         (grokdeclarator): Remove checks now done at parse time.
658
659 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
660
661         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
662         c_declarator, struct c_type_name, struct c_parm): New.
663         (build_array_declarator, set_array_declarator_inner,
664         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
665         start_function, start_decl, build_c_parm, build_attrs_declarator,
666         build_function_declarator, make_pointer_declarator, c_cast_expr,
667         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
668         (build_id_declarator): New.
669         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
670         structures.
671         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
672         ARG_INFO_OTHERS): Remove.
673         (build_id_declarator): New.
674         (build_array_declarator, set_array_declarator_inner, groktypename,
675         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
676         grokfield, start_function, store_parm_decls_newstyle,
677         store_parm_decls_oldstyle, store_parm_decls,
678         build_c_parm, build_attrs_declarator, build_function_declarator,
679         make_pointer_declarator, grokdeclarator): Update to new
680         structures.
681         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
682         parmtype.
683         (declarator, notype_declarator, after_type_declarator,
684         parm_declarator, parm_declarator_starttypename,
685         parm_declarator_nostarttypename, array_declarator, typename,
686         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
687         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
688         parmlist_1, parmlist_2, parmlist_or_identifiers,
689         parmlist_or_identifiers_1): Use these types.
690         (primary, after_type_declarator, parm_declarator_starttypename,
691         notype_declarator, component_decl, component_declarator,
692         component_notype_declarator, typename, absdcl,
693         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
694         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
695
696 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
697
698         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
699         in_typeof, record_maybe_used_decl, pop_maybe_used,
700         c_expr_sizeof_expr, c_expr_sizeof_type): New.
701         * c-decl.c (parser_obstack): New.
702         (c_init_decl_processing): Initialize parser_obstack.
703         (c_write_global_declarations_1): Check for used but undefined
704         static functions.
705         * c-parse.in (%union): Add otype.
706         (save_obstack_position): New.
707         (extdefs): Use it.
708         (unary_expr): Update in_sizeof and in_alignof.  Use
709         c_expr_sizeof_expr and c_expr_sizeof_type.
710         (sizeof): Update in_sizeof.
711         (alignof): Update in_alignof.
712         (typeof): Update in_typeof.
713         (typespec_nonreserved_nonattr): Call pop_maybe_used.
714         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
715         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
716         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
717         (build_external_ref): Set C_DECL_USED or call
718         record_maybe_used_decl if appropriate.
719         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
720
721 2004-09-08  Eric Christopher  <echristo@redhat.com>
722
723         * builtins.c: Fix prototype for fold_builtin_atan.
724
725 2004-09-08  Eric Christopher  <echristo@redhat.com>
726
727         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
728         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
729         fold_builtin_atan): New functions. Migrate function bodies...
730         (fold_builtin_1): ... from here.
731
732 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
733
734         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
735         save_size.
736
737 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
738
739         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
740         * config/rs6000/power5.md (power5-lmul): Same.
741
742 2004-09-08  Richard Henderson  <rth@redhat.com>
743
744         PR rtl-opt/17186
745         * function.c (expand_function_end): Have fall-off-the-end
746         return path jump around return register setup.
747
748 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
749
750         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
751         (output_return): Do not test for the presence of the 'unimp' insn.
752         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
753         as predicates instead of custom ones.  Return raw strings when
754         possible.
755         (output_sibcall): Likewise.  Concatenate strings.
756         (output_ubranch): Remove kludge for TurboSPARC.
757         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
758         (output_v9branch): Likewise.
759         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
760         <#>: Set sparc_indent_opcode if the delay slot is filled.
761         <(>: Likewise.
762         <)>: New operand to emit the displacement from the saved PC on return.
763         <@>: Remove.
764         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
765         (ASM_OUTPUT_OPCODE): New macro.
766         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
767         * config/sparc/sparc.md (normal_branch, inverted_branch,
768         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
769         inverted_fpe_branch): Adjust call to output_cbranch.
770         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
771         call to output_v9branch.
772         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
773         (output_v9branch): Likewise.
774
775 2004-09-08  Devang Patel  <dpatel@apple.com>
776
777         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
778         -segs_read_only_addr and -segs_read_write_addr.
779         (WORD_SWITCH_TAKES_ARG): Same.
780         (LINK_SPEC): Same.
781         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
782         -segs_read_write_addr.
783
784 2004-09-08  Richard Henderson  <rth@redhat.com>
785
786         * function.c (reference_callee_copied): New.
787         (assign_parm_setup_reg): Use it.
788         * calls.c (initialize_argument_information): Likewise.
789         (emit_library_call_value_1): Likewise.
790         * function.h (reference_callee_copied): Declare.
791
792         * target.h (struct gcc_target): Add callee_copies.
793         * target-def.h (TARGET_CALLEE_COPIES): New.
794         (TARGET_PASS_BY_REFERENCE): Update default.
795         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
796         * targhooks.c (hook_callee_copies_named): New.
797         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
798         hook_pass_by_reference_false.
799         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
800         * targhooks.h: Update decls.
801         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
802         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
803         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
804         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
805         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
806         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
807         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
808         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
809         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
810         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
811         (mips_callee_copies): New.
812         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
813         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
814         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
815         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
816         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
817         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
818         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
819         * config/sh/sh.c (sh_callee_copies): New.
820         (TARGET_CALLEE_COPIES): New.
821         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
822         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
823         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
824         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
825         for FUNCTION_ARG_CALLEE_COPIES.
826         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
827
828 2004-09-08  Devang Patel  <dpatel@apple.com>
829
830         * tree-if-conv.c (find_phi_replacement_condition): Return true
831         edge block.
832         (replace_phi_with_cond_modify_expr): Select conditional expr args
833         based on true edge basic block.
834
835 2004-09-08  Jan Hubicka  <jh@suse.cz>
836
837         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
838         variables being alias set.
839
840 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
841
842         * final.c (shorten_branches, final, get_insn_template,
843         output_alternate_entry_point, final_scan_insn, alter_subreg,
844         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
845         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
846         * fix-header.c (lookup_std_proto): Likewise.
847         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
848         verify_local_live_at_start, update_life_info, mark_reg,
849         calculate_global_regs_live, allocate_reg_life_data,
850         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
851         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
852         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
853         * fold-const.c (force_fit_type, div_and_round_double,
854         may_negate_without_overflow_p, int_const_binop, const_binop,
855         size_binop, size_diffop, fold_convert_const, fold_convert,
856         invert_tree_comparison, swap_tree_comparison,
857         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
858         range_binop, make_range, fold_cond_expr_with_comparison,
859         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
860         fold_abs_const, fold_not_const, fold_relational_const, round_up,
861         round_down): Likewise.
862         * function.c (find_function_data, assign_stack_temp_for_type,
863         instantiate_virtual_regs_lossage, aggregate_value_p,
864         assign_parm_find_entry_rtl, assign_parm_setup_block,
865         expand_function_start, expand_function_end, keep_stack_depressed,
866         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
867
868 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
869
870         * Makefile.in (tree-loop-linear.o): Added.
871         (OBJS-common): Add tree-loop-linear.o
872         * common.opt: New flag, ftree-loop-linear.
873         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
874         * tree-flow.h: Add prototype for linear_transform_loops.
875         * tree-optimize.c: Add linear transform after vectorization.
876         * tree-pass.h: Add struct pass_linear_transform.
877         * tree-ssa-loop.c: Add pass_linear_transform.
878         * tree-loop-linear.c: New file.
879         * lambda-code.c: gcc_assertify.
880         (gcc_loop_to_lambda_loop): Handle all exit tests.
881         Handle case where we have (invariant >= induction var).
882         (find_induction_var_from_exit_cond): Ditto.
883
884 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
885
886         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
887         memory tag is call clobbered, so are its aliases.
888         (group_aliases): When two memory tags being grouped, if one is
889         call clobbered, so are the other and its aliases.
890         (add_may_alias): Remove call-clobbering stuff.
891         (replace_may_alias): Likewise.
892         (merge_pointed_to_info): Merge pt_global_mem
893
894 2004-09-08  Jan Hubicka  <jh@suse.cz>
895
896         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
897         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
898         (cgraph_expand_function): Remove stale cgraph edges of currently
899         compiled function; fix non-unit-at-a-time code copying function
900         node for later reuse.
901
902 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
903
904         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
905         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
906         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
907         (vec_gc_free, vec_heap_free): New.
908         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
909         (DEF_VEC_P): Add allocator argument. Adjust.
910         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
911         (DEF_VEC_O): Add allocator argument. Adjust.
912         (VEC(free)): New.
913
914         * tree.h (tree): Define a GC'd vector.
915         * lamba-code.c (lambda_loop): Likewise.
916         * value-prof.h (histogram_value): Likewise.
917
918 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
919
920         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
921         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
922         gen_lowpart_common, gen_highpart, gen_highpart_mode,
923         subreg_highpart_offset, operand_subword, operand_subword_force,
924         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
925         set_mem_alias_set, change_address_1, verify_rtx_sharing,
926         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
927         try_split, add_insn_after, add_insn_before, remove_insn,
928         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
929         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
930         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
931         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
932         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
933         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
934         record_path_before_1, check_path_after_1, check_path_after): Likewise.
935         * except.c (gen_eh_region, resolve_one_fixup_region,
936         remove_unreachable_regions, convert_from_eh_region_ranges_1,
937         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
938         connect_post_landing_pads, sjlj_emit_function_exit,
939         remove_exception_handler_label, remove_eh_handler,
940         reachable_next_level, collect_one_action_chain,
941         output_function_exception_table): Likewise.
942         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
943         optimize_save_area_alloca, allocate_dynamic_stack_space,
944         probe_stack_range, hard_function_value): Likewise.
945         * expmed.c (mode_for_extraction, store_bit_field,
946         store_fixed_bit_field, extract_bit_field, expand_shift,
947         expand_mult_const, expand_mult, choose_multiplier,
948         expand_mult_highpart, expand_divmod, emit_store_flag,
949         do_cmp_and_jump): Likewise.
950         * expr.c (convert_move, convert_modes, move_by_pieces,
951         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
952         move_block_from_reg, gen_group_rtx, emit_group_load,
953         emit_group_move, emit_group_store, use_reg, use_regs,
954         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
955         emit_move_insn, emit_move_insn_1, emit_push_insn,
956         expand_assignment, store_expr, count_type_elements,
957         store_constructor, store_field, safe_from_p, expand_var,
958         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
959
960 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
961
962         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
963         gcc_assert and gcc_unreachable.
964         * ddg.c (create_ddg_dependence, add_deps_for_def,
965         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
966         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
967         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
968         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
969         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
970         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
971         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
972         dataflow_set_copy, hybrid_search, diagnostic.c,
973         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
974         * dojump.c (do_jump): Likewise.
975         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
976         compute_dom_fast_query, calculate_dominance_info,
977         free_dominance_info, get_immediate_dominator,
978         set_immediate_dominator, get_dominated_by,
979         redirect_immediate_dominators, nearest_common_dominator,
980         dominated_by_p, verify_dominators, recount_dominator,
981         iterate_fix_dominators, add_to_dominance_info,
982         delete_from_dominance_info): Likewise.
983         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
984         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
985         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
986         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
987         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
988         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
989         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
990         output_call_frame_info, output_loc_operands, build_cfa_loc,
991         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
992         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
993         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
994         splice_child_die, attr_checksum, same_dw_val_p,
995         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
996         unmark_dies, value_format, output_loc_list, output_die,
997         output_pubnames, output_aranges, base_type_die, is_base_type,
998         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
999         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
1000         field_byte_offset, add_data_member_location_attribute,
1001         add_const_value_attribute, rtl_for_decl_location,
1002         add_location_or_const_value_attribute, add_byte_size_attribute,
1003         add_bit_offset_attribute, add_bit_size_attribute,
1004         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
1005         decl_start_label, gen_formal_parameter_die,
1006         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
1007         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
1008         force_decl_die, force_type_die, gen_decl_die,
1009         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
1010         dwarf2out_finish): Likewise.
1011
1012 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
1013
1014         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
1015         * builtins.c: Include tree-mudflap.h.
1016
1017 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
1018
1019         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
1020         force operand 0.0 into register in XFmode. Also do not force
1021         operand 0.0 into register if !TARGET_CMOVE.
1022         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
1023         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
1024         implement ftst x87 instruction.
1025         (*fp_jcc_7): New insn pattern. Change corresponding split
1026         pattern to handle "general_operand" instead of
1027         "nonimmediate_operand".
1028
1029 2004-09-08  Ben Elliston  <bje@au.ibm.com>
1030
1031         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
1032
1033 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
1034
1035         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
1036         generated from standard va_arg expansion.
1037         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
1038         marked nodes.
1039         (mf_varname_tree, mf_file_function_line_tree): Add some support
1040         for column numbers if compiled with USE_MAPPED_LOCATION.
1041
1042 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1043
1044         * c-decl.c (groktypename_in_parm_context): Remove function.
1045         * c-tree.h (groktypename_in_parm_context): Remove prototype.
1046
1047 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1048
1049         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
1050         * c-parse.in: Include c-common.h instead of objc-act.h.
1051         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
1052         myparms, myparm): Remove %type declarations.
1053         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
1054         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
1055         declarations.
1056         (objc_inherit_code, objc_public_flag): Remove.
1057         (typespec_nonreserved_nonattr): Call
1058         objc_get_protocol_qualified_type() instead of get_static_reference()
1059         and get_protocol_reference().
1060         (stmt_nocomp): Call grokparm() on @catch parameter.
1061         (objcdef): Move semantic action to objc_finish_implementation().
1062         (classdef): Move semantic action to objc_start_class_interface(),
1063         objc_continue_interface(), objc_finish_interface(),
1064         objc_start_class_implementation(), objc_continue_implementation(),
1065         objc_start_category_interface() and
1066         objc_start_category_implementation().
1067         (protocoldef): Move semantic actions to objc_start_protocol() and
1068         objc_finish_interface().
1069         (ivar_decl_list): Remove nonterminal.
1070         (visibility_spec): Move semantic actions to objc_set_visibility().
1071         (ivar_decls): Remove assignment to $$.
1072         (ivar_decl): Rephrase in terms of component_decl; call
1073         objc_add_instance_variable().
1074         (ivars, ivar_declarator): Remove nonterminals.
1075         (opt_semi): New nonterminal.
1076         (methodtype): Remove semantic actions.
1077         (methoddef): Move semantic actions to objc_set_method_type(),
1078         objc_start_method_definition() and objc_finish_method_definition().
1079         (methodproto): Move semantic actions to objc_set_method_type() and
1080         objc_add_method_declaration().
1081         (methoddecl): Use objc_typename instead of typename; move semantic
1082         actions to objc_build_method_signature().
1083         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
1084         (optparmlist): Express in terms of optparms and optellipsis.
1085         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
1086         nonterminals.
1087         (keyworddecl): Use objc_typename instead of typename.
1088         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
1089         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
1090
1091 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
1092
1093         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
1094         (MD_FALLBACK_FRAME_STATE_FOR): Update.
1095         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
1096         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1097         (MD_FROB_UPDATE_CONTEXT): Remove default.
1098         (uw_update_context_1): Instead #ifdef invocation.
1099         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
1100         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1101         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
1102         (MD_UNWIND_SUPPORT): Undefine this instead.
1103         * config/i386/gnu.h: Likewise.
1104         * config/alpha/linux-unwind.h: New file, macro converted to
1105         function, extracted from..
1106         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
1107         (MD_UNWIND_SUPPORT): Define.
1108         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
1109         * config/i386/linux-unwind.h, config/i386/linux.h,
1110         config/i386/linux64.h: Likewise.
1111         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
1112         MD_HANDLE_UNWABI too.
1113         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
1114         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
1115         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
1116         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
1117         * config/sparc/linux-unwind.h, config/sparc/linux.h,
1118         config/sparc/linux64.h: Likewise.
1119         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
1120         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
1121         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
1122         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
1123         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
1124
1125 2004-09-07  Jan Hubicka  <jh@suse.cz>
1126
1127         * cse.c (fold_rtx):  Avoid building of
1128         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
1129
1130         * tree-ssa-pre.c (grand_bitmap_obstack): New.
1131         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
1132         (init_pre): Initialize obstack.
1133         (fini_pre): Free obstack.
1134
1135 2004-09-07  David Daney  <ddaney@avtrex.com>
1136
1137         * config.gcc: Added support for --with-divide=[breaks|traps] for
1138         mips targets.
1139         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
1140         (TARGET_DIVIDE_TRAPS): New macro.
1141         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
1142         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
1143         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
1144         GENERATE_DIVIDE_TRAPS.
1145         (mips_output_division): Emit conditional trap if
1146         GENERATE_DIVIDE_TRAPS is set.
1147         * doc/install.texi: Document --with-divide.
1148         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
1149
1150 2004-09-07  Caroline Tice  <ctice@apple.com>
1151
1152         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
1153         EDGE_CROSSING, to flags test case.
1154
1155 2004-09-07  Jan Hubicka  <jh@suse.cz>
1156
1157         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
1158         class too.
1159
1160 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1161
1162         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
1163         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
1164         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
1165         or gcc_unreachable.
1166         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
1167         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
1168         alloc_aux_for_edges, free_aux_for_edges): Likewise.
1169         * cfgcleanup.c (try_forward_edges,
1170         merge_blocks_move_predecessor_nojumps,
1171         merge_blocks_move_successor_nojumps): Likewise.
1172         * cfgexpand.c (expand_gimple_cond_expr,
1173         expand_gimple_tailcall): Likewise.
1174         * cfghooks.c (duplicate_block): Likewise.
1175         * cfglayout.c (record_effective_endpoints,
1176         insn_locators_initialize, change_scope, fixup_reorder_chain,
1177         verify_insn_chain, fixup_fallthru_exit_predecessor,
1178         duplicate_insn_chain, cfg_layout_finalize): Likewise.
1179         * cfgloopanal.c (check_irred): Likewise.
1180         * cfgloop.c (superloop_at_depth, flow_loops_free,
1181         flow_loop_entry_edges_find, flow_loops_find,
1182         flow_loop_outside_edge_p, get_loop_body,
1183         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
1184         get_loop_exit_edges, num_loop_branches, cancel_loop,
1185         verify_loop_structure): Likewise.
1186         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
1187         duplicate_loop_to_header_edge, create_preheader,
1188         create_loop_notes): Likewise.
1189         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
1190         edirect_branch_edge, force_nonfallthru_and_redirect,
1191         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
1192         commit_edge_insertions, commit_edge_insertions_watch_calls,
1193         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
1194         cfg_layout_redirect_edge_and_branch_force,
1195         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
1196         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
1197         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
1198         cgraph_varpool_node): Likewise.
1199         * cgraphunit.c (cgraph_finalize_function,
1200         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
1201         cgraph_expand_function, cgraph_remove_unreachable_nodes,
1202         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1203         cgraph_mark_inline, cgraph_expand_all_functions,
1204         cgraph_build_static_cdtor): Likewise.
1205         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
1206         simplify_logical, distribute_notes, insn_cuid): Likewise.
1207         * conflict.c (conflict_graph_add, print_conflict): Likewise.
1208         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
1209         coverage_checksum_string): Likewise.
1210         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
1211         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
1212         cse_cc_succs, cse_condition_code_reg): Likewise.
1213         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
1214         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
1215         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
1216         cselib_record_set): Likewise.
1217
1218 2004-09-07  Jan Hubicka  <jh@suse.cz>
1219
1220         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
1221
1222 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1223
1224         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
1225         fold_convert.
1226         (fold_builtin_strpbrk): Likewise.
1227         * expr.c (array_ref_low_bound): Likewise.
1228         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
1229         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
1230         * tree-sra.c (generate_element_zero): Likewise.
1231         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1232         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
1233         add_old_iv_candidates, add_iv_candidates): Likewise.
1234         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1235
1236 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1237
1238         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
1239         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
1240         c_expand_expr, boolean_increment, nonnull_check_p,
1241         check_function_arguments_recurse, fold_offsetof_1): Likewise.
1242         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
1243         builtin_define_type_max): Likewise.
1244         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
1245         implicit_decl_warning, builtin_function, build_compound_literal,
1246         complete_array_type, grokdeclarator, get_parm_info,
1247         start_function, store_parm_decls_oldstyle,
1248         c_write_global_declarations): Likewise.
1249         * c-format.c (get_constant, decode_format_attr,
1250         maybe_read_dollar_number, get_flag_spec, check_format_arg,
1251         check_format_types, format_type_warning,
1252         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
1253         init_dynamic_diag_info, handle_format_attribute): Likewise.
1254         * c-gimplify.c (push_context, pop_context, finish_bc_block):
1255         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
1256         * c-objc-common.c (c_tree_printer): Likewise.
1257         * c-pch.c (pch_init): Likewise.
1258         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
1259         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
1260         * c-typeck.c (c_incomplete_type_error, composite_type,
1261         common_pointer_type, common_type, same_translation_unit_p,
1262         tagged_types_tu_compatible_p, finish_init, pop_init_level,
1263         set_designator, set_nonincremental_init_from_string,
1264         process_init_element, c_finish_if_stmt): Likewise.
1265         * caller-save.c (init_caller_save, save_call_clobbered_regs,
1266         insert_restore, insert_save, insert_one_insn): Likewise.
1267         * calls.c (emit_call_1, compute_argument_block_size,
1268         precompute_arguments, expand_call, emit_library_call_value_1,
1269         store_one_arg): Likewise.
1270
1271 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1272
1273         * configure.ac (enable-checking): Add release option. Reorganize
1274         to avoid repetition.
1275         * configure: Rebuilt.
1276         * doc/install.texi (enable-checking): Amend documentation.
1277
1278 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1279
1280         PR bootstrap/17313
1281         * Makefile.in (specs.ready): Depend on cc1$(exeext).
1282
1283 2004-09-06  James E Wilson  <wilson@specifixinc.com>
1284
1285         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
1286         movdf_hardfloat_32bit): Split fG into two alternatives.
1287         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
1288
1289         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
1290
1291 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1292
1293         * final.c (output_in_slot): Delete.
1294         (final_scan_insn): Revert 2004-09-03 change.
1295         (output_asm_insn): Likewise.
1296         * config/sparc/sparc.c (output_return): Likewise.
1297         (output_sibcall): Likewise.
1298
1299 2004-09-06  Jan Hubicka  <jh@suse.cz>
1300
1301         * loop.c (loop_dump_aux): Do not print RTL when not available.
1302         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
1303         frontend specific type nodes.
1304         (produce_memory_decl_rtl): Break out from ...
1305         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
1306         (get_computation_at): Avoid random tree sharing.
1307         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
1308
1309 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
1310
1311         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
1312         unnecessary commands.
1313
1314 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
1315
1316         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
1317         (bitmap.o): Likewise.
1318
1319 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
1320
1321         Unify the management of RTL and tree-level dump files.
1322
1323         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
1324         Don't print function name to the dump file, the pass manager
1325         would do this for us. Add code from the top of
1326         rest_of_compilation, up to the initial RTL dump.
1327         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
1328         close the DFI_sibling dump file.
1329         (rest_of_compilation): Don't do that here.  Remove code up to the
1330         initial RTL dump.
1331         (init_optimization_passes): Remove.
1332         (pass_rest_of_compilation): Change pass name to NULL.
1333         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
1334         Do not call init_optimization_passes.
1335         * toplev.h (init_optimization_passes): Remove.
1336
1337         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1338         finish_graph_dump_file): Remove SUFFIX parameter.
1339         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
1340         finish_graph_dump_file): Likewise.
1341
1342         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
1343         * cfgexpand.c (pass_expand): Adjust.
1344         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
1345         * passes.c (pass_rest_of_compilation): Adjust.
1346         * predict.c (pass_profile): Adjust.
1347         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
1348         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
1349         pass_split_crit_edges, pass_warn_function_return): Adjust.
1350         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
1351         * tree-dfa.c (pass_referenced_vars): Adjust.
1352         * tree-eh.c (pass_lower_eh): Adjust.
1353         * tree-if-conv.c (pass_build_ssa): Adjust.
1354         * tree-into-ssa.c (pass_build_ssa): Adjust.
1355         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1356         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1357         * tree-nrv.c (pass_nrv): Adjust.
1358         * tree-optimize.c (pass_gimple, pass_all_optimizations,
1359         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
1360         pass_init_datastructures): Adjust.
1361         * tree-outof-ssa.c (pass_del_ssa): Adjust.
1362         * tree-profile.c (pass_tree_profile): Adjust.
1363         * tree-sra.c (pass_sra): Adjust.
1364         * tree-ssa-alias.c (pass_may_alias): Adjust.
1365         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
1366         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
1367         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
1368         * tree-ssa-dom.c (pass_dominator): Adjust.
1369         * tree-ssa-dse.c (pass_dse): Adjust.
1370         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
1371         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
1372         * tree-ssa-loop-ch.c (pass_ch): Adjust.
1373         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
1374         pass_loop_done, pass_complete_unroll, pass_iv_canon,
1375         pass_iv_optimize, pass_vectorize): Adjust.
1376         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
1377         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
1378         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
1379         pass_late_warn_uninnitialized): Adjust.
1380         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
1381
1382         * Makefile.in (tree-dump.o): Add new dependencies.
1383         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
1384         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
1385         Likewise.
1386         * toplev.c (dump_file_name): New.
1387         * tree-dump.c (dump_enable_all): Add LETTER parameter.
1388         (struct dump_file_info): Add NUM and LETTER fields.
1389         (dump_files): Adjust and add RTL dump files.
1390         (dump_register): Add NUM and LETTER fields.
1391         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
1392         (dump_begin): Use get_dump_file_name.
1393         (dump_switch_p_1): Adjust call to dump_enable_all.
1394         * tree-dump.h (dump_register): Adjust prototype.
1395         * tree-optimize.c (register_one_dump_file): Take dump file index.
1396         Support flags for RTL dumps.
1397         (register_dump_files): Fill in NUM field of struct dump_file_info.
1398         Track properties both when the gate is executed and when it is not.
1399         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
1400         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
1401         dumps of RTL.
1402         * tree-pass.h (dump_file_name): New.
1403         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
1404         New.
1405
1406         * Makefile.in (passes.o): Add new dependencies.
1407         * passes.c (struct dump_file_info, enum dump_file_index,
1408         dump_file_tbl, init_optimization_passes): Remove.
1409         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
1410         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
1411         dump_enabled_p.
1412         (finish_optimization_passes): Update finish_graph_dump_file loop.
1413         (enable_rtl_dump_file): Remove.
1414         * tree-dump.c (dump_files): Adjust and add RTL dump files.
1415         (enable_rtl_dump_file): Add here.
1416         * tree.h (enum tree_dump_index): Add RTL dump file indices.
1417         * doc/invoke.texi (Debugging options): Document new RTL debugging
1418         options.  Update.
1419
1420 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1421
1422         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
1423         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
1424         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
1425         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
1426         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
1427         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
1428         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
1429         vec.h: Fix comment formatting.
1430
1431 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1432
1433         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
1434         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
1435         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
1436         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
1437         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
1438         tree-ssa-loop-niter.c, tree-ssa-operands.c,
1439         tree-ssa-operands.h, tree-ssa-propagate.c,
1440         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
1441         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
1442
1443 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
1444
1445         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
1446         vectorizer is enabled.
1447
1448 2004-09-05  Andreas Jaeger  <aj@suse.de>
1449
1450         * tree-if-conv.c: Spell check comments and clean up whitespace.
1451
1452 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1453
1454         * tree-ssa-loop-ivopts.c: New file.
1455         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
1456         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
1457         target_pres_cost, target_spill_cost): Declare.
1458         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
1459         spill_cost): Renamed to ...
1460         (target_avail_regs, target_res_regs, target_small_cost,
1461         target_pres_cost, target_spill_cost): ... and exported.
1462         (init_set_costs, global_cost_for_size): Work with renamed variables.
1463         * common.opt (flag_ivopts): New flag.
1464         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
1465         REF_ORIGINAL.
1466         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
1467         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
1468         generating SSA form.
1469         (force_gimple_operand): New function.
1470         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
1471         * tree-cfg.c (stmt_bsi): New function.
1472         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
1473         PARAM_IV_MAX_CONSIDERED_USES): New.
1474         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
1475         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
1476         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
1477         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
1478         * tree-nested.c (build_addr): Export.
1479         * tree-optimize.c (init_tree_optimization_passes): Add
1480         pass_iv_optimize.
1481         * tree-pass.h (pass_iv_optimize): Declare.
1482         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
1483         IMAGPART_EXPR.
1484         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
1485         as a phi node argument.
1486         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
1487         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
1488         functions.
1489         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
1490         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
1491         pass_iv_optimize): New pass.
1492         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
1493         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
1494         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
1495         * tree.h (REF_ORIGINAL): New macro.
1496         (build_int_cst_type, unsigned_type_for, zero_p,
1497         cst_and_fits_in_hwi, build_addr): Declare.
1498         * doc/invoke.texi (-fivopts): Document.
1499         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
1500         PARAM_IV_MAX_CONSIDERED_USES): Document.
1501         * doc/passes.texi: Document induction variable optimizations pass.
1502
1503 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1504
1505         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
1506         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
1507         * c-common.c (c_common_attribute_table): Accept parameters to
1508         sentinel attribute.
1509         (check_function_sentinel, handle_sentinel_attribute): Likewise.
1510         * doc/extend.texi: Update accordingly.
1511
1512 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1513
1514         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
1515         New.
1516         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
1517         attribute.
1518         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
1519         New functions.
1520         (c_common_attribute_table): Add `sentinel' attribute.
1521         (check_function_arguments): Handle `sentinel' attribute.
1522         * doc/extend.texi: Document `sentinel' attribute.
1523
1524 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
1525
1526         * configure: Regenerated.
1527
1528 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1529
1530         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
1531
1532         * tree.c (save_expr): No longer TREE_READONLY.
1533
1534 2004-09-04  Jan Hubicka  <jh@suse.cz>
1535
1536         * passes.c (rest_of_clean_state):  Fix merge conflict made during
1537         commiting the patch.
1538
1539 2004-09-04  Jan Hubicka  <jh@suse.cz>
1540
1541         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
1542
1543 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
1544
1545         * doc/md.texi (shift patterns): New anchor.  Add reference to
1546         TARGET_SHIFT_TRUNCATION_MASK.
1547         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
1548         * target.h (shift_truncation_mask): New target hook.
1549         * targhook.h (default_shift_truncation_mask): Declare.
1550         * targhook.c (default_shift_truncation_mask): Define.
1551         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
1552         (TARGET_INITIALIZER): Include it.
1553         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
1554         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
1555         reject all out-of-range values.  Fix sign-extension code for modes
1556         whose width is smaller than HOST_BITS_PER_WIDE_INT.
1557         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
1558         (expand_superword_shift, expand_subword_shift): Likewise.
1559         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
1560         (expand_binop): Use them to implement double-word shifts.
1561         * config/arm/arm.c (arm_shift_truncation_mask): New function.
1562         (TARGET_SHIFT_TRUNCATION_MASK): Define.
1563
1564 2004-09-04  Jan Hubicka  <jh@suse.cz>
1565
1566         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
1567         (mix): New macro copied from hashtab.c
1568         (iterative_hash_hashval_t, iterative_hash_pointer,
1569         iterative_hash_host_wide_int): New functions based on hashtab.c
1570         implementation.
1571
1572 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
1573
1574         * config/mips/mips.md (mask): New mode attribute.
1575         (zero_extendsidi2): Add memory alternative.
1576         (*zero_extendsidi2_mem): Delete.
1577         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
1578         memory_operand in the TARGET_MIPS16 check.
1579         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
1580         Redefine using :GPR and :SHORT.
1581         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
1582
1583 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
1584
1585         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
1586         using rint_optab.
1587         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
1588         expand_builtin_mathfn.
1589         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
1590         btrunc?f patterns for btrunc_optab. Implement rint_optab using
1591         rint?f patterns.
1592         * optabs.c (init_optabs): Initialize rint_optab.
1593         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
1594         Add new OTI_rint.
1595         (btrunc_optab): Rename macro from trunc_optab.
1596         (rint_optab): Define corresponding macro.
1597
1598         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
1599         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
1600
1601         * config/i386/i386-protos.h (emit_i387_cw_initialization):
1602         Change prototype. Add new int parameter.
1603         * config/i386/i386.c (emit_i387_cw_initialization):
1604         Handle new rounding modes.
1605
1606         * config/i386/i386.h (enum fp_cw_mode): Delete.
1607         (MODE_NEEDED): Handle new rounding modes.
1608         (EMIT_MODE_SET): Change condition to handle new rounding modes.
1609
1610         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
1611         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
1612         represent different rounding modes of frndint insn.
1613         (type): Add frndint type.
1614         (i387, length, memory): Handle this type.
1615         (i387_cw): New attribute definition.
1616         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
1617         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
1618         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
1619         Add "i387_cw" attribute defined to "trunc".
1620         (x86_fnstcw_1): Remove comment.
1621         (*frndintxf2): Rename insn definition to frndintxf2. Move
1622         insn definition near rint?f2 expanders.
1623         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
1624         rintf and rintl built-ins as inline x87 intrinsics.
1625         (frndintxf2_floor): New pattern to implement floor rounding
1626         mode with frndint x87 instruction.
1627         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
1628         floorf and floorl built-ins as inline x87 intrinsics.
1629         (frndintxf2_ceil): New pattern to implement ceil rounding
1630         mode with frndint x87 instruction.
1631         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
1632         ceilf and ceill built-ins as inline x87 intrinsics.
1633         (frndintxf2_trunc): New pattern to implement trunc rounding
1634         mode with frndint x87 instruction.
1635         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
1636         truncf and truncl built-ins as inline x87 intrinsics.
1637         (frndintxf2_mask_pm): New pattern to implement rounding
1638         mode with exceptions with frndint x87 instruction.
1639         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
1640         implement nearbyint, nearbyintf and nearbyintl built-ins as
1641         inline x87 intrinsics.
1642
1643 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
1644
1645         * config/mips/mips.md (SHORT): New mode macro.
1646         (size): New mode attribute.
1647         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
1648         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
1649         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
1650         !ISA_HAS_SEB_SEH.
1651         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
1652         *extend[qh]isi2_hw patterns and extending them to di.
1653         (extendqihi2): Implement as define_insn_and_split that produces
1654         extendqisi2 after reload.
1655
1656 2004-09-03  Devang Patel  <dpatel@apple.com>
1657
1658         * Makefile.in (OBJS-common): Add tree-if-conv.o
1659         (tree-if-conv.o): New rule.
1660         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
1661         (get_loop_body_in_bfs_order): New.
1662         * cfgloop.h (get_loop_body_in_bfs_order): New.
1663         * tree-flow.h (enum move_pos): Move here from ..
1664         * tree-ssa-loop-im.c (enum move_pos): here.
1665         (movement_possibility): Make externally visible.
1666         * tree-optimize.c (init_tree_optimization_passes): New entry for
1667         if conversion pass.
1668         * tree-pass.h (pass_if_conversion): New.
1669         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
1670         * tree-if-conv.c: New file.
1671         * doc/passes.texi: Document tree if-conversion pass.
1672         * doc/tree-ssa.texi: Same.
1673
1674 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
1675
1676         PR target/14925:
1677         Makefile.in (LIB2ADDEHSTATIC): New.
1678         (LIB2ADDEHSHARED): New.
1679         (LIBUNWIND): New.
1680         (LIBUNWINDDEP): New.
1681         (SHLIBUNWIND_LINK): New.
1682         (SHLIBUNWIND_INSTALL): New.
1683         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
1684         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
1685         (clean): Remove libunwind*
1686         (stage1-start): Remove and copy stage1/libunwind*.
1687         (stage2-start): Remove and copy stage2/libunwind*.
1688         (stage3-start): Remove and copy stage3/libunwind*.
1689         (stage4-start): Remove and copy stage4/libunwind*.
1690         (stageprofile-start): Remove and copy stageprofile/libunwind*.
1691         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
1692
1693         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
1694         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
1695         tmake_file if --with-system-libunwind isn't used.
1696
1697         * config/ia64/t-glibc-libunwind: New file.
1698         * config/t-libunwind-elf: Likewise.
1699         * unwind-compat.c: Likewise.
1700         * unwind-compat.h: Likewise.
1701         * unwind-dw2-fde-compat.c: Likewise.
1702
1703         * config/ia64/t-glibc (LIB2ADDEH): Updated.
1704         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
1705
1706         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
1707         aliases if needed.
1708         * unwind-dw2-fde-glibc.c: Likewise.
1709         * unwind-dw2.c: Likewise.
1710
1711         * config/t-libunwind (LIB2ADDEH): Updated.
1712         (LIB2ADDEHSTATIC): New.
1713         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
1714         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
1715
1716         * configure.ac: Change --enable-libunwind-exceptions to
1717         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
1718         * configure: Regenerated.
1719         * config.in: Updated.
1720
1721         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
1722         above and mention --with-system-libunwind.
1723         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
1724         removed in gcc 3.4.3 and later.
1725
1726         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
1727         USE_LIBUNWIND_EXCEPTIONS is defined.
1728
1729         * mklibgcc.in: Support libunwind.
1730
1731 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
1732
1733         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
1734         m_NOCONA.
1735
1736 2004-09-03  Richard Henderson  <rth@redhat.com>
1737
1738         PR middle-end/9997
1739         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
1740         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
1741         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
1742         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
1743         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
1744         resize_stack_vars_conflict, add_stack_var_conflict,
1745         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
1746         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
1747         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
1748         expand_one_static_var, expand_one_hard_reg_var,
1749         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
1750         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
1751         (expand_used_vars): Rewrite.
1752         * Makefile.in (cfgexpand.o): Update dependencies.
1753
1754 2004-09-04  Jan Hubicka  <jh@suse.cz>
1755
1756         * cfg.c (free_edge): Use ggc_free.
1757         (expunge_block): Use ggc_free.
1758         * passes.c (rest_of_clean_state): Free after compilation.
1759         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
1760         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
1761
1762 2004-09-03  James E Wilson  <wilson@specifixinc.com>
1763
1764         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
1765         DECL_EXTERNAL check.
1766
1767 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1768
1769         * final.c (output_in_slot): New global variable.
1770         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
1771         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
1772         'output_in_slot' before invoking output_asm_insn.
1773         (output_asm_insn): Add a space after the tab if 'output_in_slot'
1774         is set.
1775         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
1776         final_scan_insn.
1777         (output_sibcall): Likewise.
1778
1779 2004-09-03  Jan Hubicka  <jh@suse.cz>
1780
1781         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
1782         * tree-ssanames (init_ssanames): Likewise.
1783
1784 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
1785
1786         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
1787         objc_declare_protocols, objc_start_protocol,
1788         objc_start_class_interface, objc_start_category_interface,
1789         objc_continue_interface, objc_finish_interface,
1790         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
1791         objc_start_class_implementation, objc_start_category_implementation,
1792         objc_continue_implementation, objc_finish_implementation,
1793         objc_add_method_declaration, objc_start_method_definition,
1794         objc_finish_method_definition, objc_build_keyword_decl,
1795         objc_build_method_signature, objc_build_encode_expr,
1796         objc_build_protocol_expr, objc_build_selector_expr,
1797         objc_build_message_expr, objc_build_string_object,
1798         objc_get_class_reference, objc_get_protocol_qualified_type,
1799         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
1800
1801 2004-09-03  James E Wilson  <wilson@specifixinc.com>
1802
1803         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
1804
1805         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
1806         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
1807         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
1808         (mips_recip1_<fmt>): Use frdiv1 type.
1809         (mips_recip2_<fmt>): Use frdiv2 type.
1810         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
1811         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
1812         and frsqrt1.
1813         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
1814
1815 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
1816
1817         * reload.c (find_reloads): Swap operand_loc pointers for
1818         find_dummy_reload if we have swapped two operands.
1819
1820 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
1821
1822         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
1823         to get the tablejump-insn before the jump-table label.
1824
1825 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
1826
1827         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
1828         objc_declare_protocols, objc_build_message_expr,
1829         objc_finish_message_expr, objc_build_selector_expr,
1830         objc_build_protocol_expr, objc_build_encode_expr,
1831         objc_build_string_object, objc_get_protocol_qualified_type,
1832         objc_get_class_reference, objc_get_class_ivars,
1833         objc_start_class_interface, objc_start_category_interface,
1834         objc_start_protocol, objc_continue_interface, objc_finish_interface,
1835         objc_start_class_implementation, objc_start_category_implementation,
1836         objc_continue_implementation, objc_finish_implementation,
1837         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
1838         objc_add_method_declaration, objc_start_method_definition,
1839         objc_finish_method_definition, objc_add_instance_variable,
1840         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
1841         objc_finish_try_stmt, objc_begin_catch_clause,
1842         objc_finish_catch_clause, objc_build_finally_clause,
1843         objc_build_synchronized, objc_static_init_needed_p,
1844         objc_generate_static_init_call): New prototypes.
1845
1846 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
1847
1848         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
1849         is only one reg.
1850         (ia64_function_value): Ditto.
1851
1852 2004-09-03  Jan Beulich  <jbeulich@novell.com>
1853
1854         * config.gcc: Resurrect NetWare as a target. Handle special case of
1855         Novell linker to be used (specified through --with-ld=) and threading
1856         model of either Posix (default) or NKS.
1857         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
1858         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
1859         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
1860         * config/i386/netware.c, config/i386/netware.h: New.
1861         * config/i386/nwld.c, config/i386/nwld.h: New.
1862         * config/i386/netware-crt0.c: New.
1863         * config/i386/netware-libgcc.c: New.
1864         * config/i386/netware-libgcc.def: New.
1865         * config/i386/netware-libgcc.exp: New.
1866         * config/i386/t-netware, config/i386/t-nwld: New.
1867         * gthr-nks.h: New.
1868         * doc/install.texi: Document NKS threading model.
1869
1870 2004-09-03  Jan Beulich  <jbeulich@novell.com>
1871
1872         PR c/7054
1873         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
1874         * tree.h (initial_max_fld_align): Declare
1875         * stor-layout.c (initial_max_fld_align): Define and initialize.
1876         (maximum_field_alignment): Initialize to the same value.
1877         * common.opt: Add -fpack-struct= variant of switch.
1878         * opts.c: Handle -fpack-struct= variant of switch.
1879         * c-pragma.c: Change #pragma pack() handling so that it becomes
1880         compatible to other compilers: accept individual 'push' argument,
1881         make final pop restore (command line) default, correct interaction
1882         of push/pop and sole specification of a new alignment (so that the
1883         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
1884         to #pragma pack(push, <n>).
1885         * doc/extend.texi: New node "Structure-Packing Pragmas" under
1886         "Pragmas", describing #pragma pack.
1887         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
1888         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
1889         Document new TARGET_DEFAULT_PACK_STRUCT.
1890
1891 2004-09-03  Devang Patel  <dpatel@apple.com>
1892
1893         * dwarf2out.c (gen_field_die). Equate decl number to die.
1894
1895 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
1896
1897         PR target/15832
1898         * global.c (modify_reg_pav): New function.
1899         (make_accurate_live_analysis): Call the new function.  Move pavin
1900         modification by earlyclobber set into the new function.
1901
1902 2004-09-03  Andreas Schwab  <schwab@suse.de>
1903
1904         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
1905         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
1906         extended.
1907
1908 2004-09-02  Jan Beulich  <jbeulich@novell.com>
1909
1910         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
1911         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
1912         not unwind code specific ones.
1913         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
1914         Remove unwind code specific dependencies.
1915         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
1916         Remove gbl-ctors.h.
1917         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
1918         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
1919         * tsystem.h: Declare memcpy and memset when inhibit_libc.
1920
1921 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
1922
1923         * combine.c (try_combine): Delay modifying of insns which cannot
1924         be easily undone.
1925
1926 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
1927
1928         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
1929         tree-loop-im.
1930         * gcc/tree-ssa-loop.c: Ditto
1931         * gcc/tree-ssa-loop-ivcanon.c: Ditto
1932         * gcc/doc/invoke.texi: Ditto.
1933
1934 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
1935
1936         * c-decl.c (store_parm_decls_newstyle): Make static.
1937         (store_parm_decls_from): New function.
1938         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
1939         (store_parm_decls_from): New prototype.
1940
1941 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
1942
1943         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
1944         HImode with STRICT_ALIGNMENT.
1945
1946 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
1947
1948         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
1949         (TARGET_OS_CPP_BUILTINS): Likewise.
1950         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
1951         TARGET_BPABI_CPP_BUILTINS.
1952
1953 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
1954
1955         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
1956
1957 2004-09-02  Eric Christopher  <echristo@redhat.com>
1958
1959         * builtins.c (expand_builtin_cabs): Delete.
1960         (expand_builtin): If unable to fold the values do a normal
1961         library call for builtin_cab*.
1962         (fold_builtin_cabs): Depend on optimize and optimize_size.
1963         * optabs.c (expand_cmplxdiv_straight): Delete.
1964         (expand_cmplxdiv_wide): Ditto.
1965         (expand_vector_binop): Ditto.
1966         (expand_vector_unop): Ditto.
1967         (expand_complex_abs): Delete.
1968         (expand_binop): Remove calls to above functions.
1969         Remove open coding of complex arithmetic.
1970         (expand_unop): Ditto.
1971         * optabs.h: Remove prototypes.
1972
1973 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
1974
1975         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
1976         * c-tree.h (store_parm_decls_newstyle): New prototype.
1977
1978 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
1979
1980         * config/rs6000/rs6000.c (expand_block_clear): Use vector
1981         instructions if available.
1982         (expand_block_move): Likewise.
1983
1984 2004-09-03  Jan Hubicka  <jh@suse.cz>
1985
1986         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
1987
1988 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
1989
1990         * config/arm/symbian.h (LIB_SPEC): Define to empty.
1991         * config/arm/t-symbian (SHLIB_LC): Likewise.
1992
1993 2004-09-02  Paul Brook  <paul@codesourcery.com>
1994
1995         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
1996
1997 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
1998
1999         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
2000         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
2001         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
2002         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
2003         (mips_issue_rate): Remove unreachable abort.
2004         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
2005         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
2006         (mips_block_move_straight, print_operand_address, mips_file_start)
2007         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
2008         (mips_output_conditional_branch, mips_expand_builtin_direct)
2009         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
2010         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
2011         with gcc_assert.
2012
2013 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2014
2015         * config/mips/mips.md (*lea_high64): Change split condition to
2016         flow2_completed.  Add a peephole2 to generate a more parallel version.
2017
2018 2004-09-02  Jan Hubicka  <jh@suse.cz>
2019
2020         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
2021         GGC.
2022
2023         * ggc-page.c: include tree-flow.h.
2024         (extra_order_size_table): Add stmt_ann_d.
2025         (STAT_LABEL): Rename from ....
2026         (LABEL): ... this one.
2027         * Makefile.in (ggc-page.o): Add dependency.
2028
2029         * ggc-common.c (ggc_force_collect): New global variable.
2030         (loc_description): Add fields "freed", "collected"
2031         (ptr_hash): New static hash
2032         (ptr_hash_entry): New structure.
2033         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
2034         (ggc_record_overhead): Take ptr argument, record it
2035         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
2036         (cmp_statistics): Imrove sorting.
2037         (dump_ggc_loc_statistics): Output newly collected statistics
2038         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
2039         (ggc_free): Call ggc_free_overhead.
2040         (ggc_collect): Force collection when asked to be forced.
2041         (ggc_collect): Call ggc_prune_overhead_list.
2042         * ggc.h (ggc_force_collect): Declare
2043         (ggc_record_overhead): Update prototype.
2044         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
2045
2046 2004-09-02  James E Wilson  <wilson@specifixinc.com>
2047
2048         * common.opt (ftrapping-math): Default to on.
2049
2050 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
2051
2052         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
2053
2054 2004-09-02  Denis Chertykov  <denisc@overta.ru>
2055
2056         PR target/16884
2057         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
2058         match_scratch.
2059         (*movmemqi_insn): Likewise.
2060         (*movmemhi): Likewise.
2061         (clrmemhi): Likewise.
2062         (*clrmemqi): Likewise.
2063         (*clrmemhi): Likewise.
2064
2065 2004-09-02  Paul Brook  <paul@codesourcery.com>
2066
2067         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
2068         default_use_cxa_atexit=yes.
2069
2070 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
2071
2072         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
2073         (struct kernel_old_ucontext): Delete.
2074         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
2075         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
2076         when IN_LIGGCC2.
2077
2078 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2079
2080         * toplev.c (process_options): Fix typo.
2081
2082 2004-09-01  Richard Henderson  <rth@redhat.com>
2083
2084         PR middle-end/17258
2085         * calls.c (initialize_argument_information): Tighten pass-through
2086         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
2087         Use build_fold_addr_expr.
2088         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
2089         that assumes ADDR_EXPR allocates stack space.
2090         * fold-const.c (build_fold_addr_expr_with_type): Look through
2091         WITH_SIZE_EXPR.
2092
2093 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
2094
2095         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
2096         * ggc.h (ggc_alloc_rtx): Delete.
2097
2098 2004-09-01  Roger Sayle  <roger@eyesopen.com>
2099
2100         * expmed.c (enum alg_code): Remove long unused enumeration values.
2101         (struct mult_cost): New structure to hold the "score" of a synthetic
2102         multiply sequence, including both a rtx_cost and a latency field.
2103         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
2104         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
2105         (struct algorithm): Change type of cost field to be mult_cost.
2106         (synth_mult): Change type of cost_limit argument to be a
2107         pointer to a mult_cost.  Update all cost comparisons to use the
2108         new mult_cost infrastructure.  For alg_add_factor and
2109         alg_sub_factor operations, latency is lower than the rtx_cost.
2110         (choose_mult_variant):  Update calls to synth_mult.  Perform
2111         cost comparisons using the new mult_cost infrastructure.
2112         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
2113         to optain the total rtx_cost of a synth_mult "algorithm".
2114
2115 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
2116
2117         * config/rs6000/power4.md: Increase store latency to 12.
2118         * config/rs6000/power5.md: Same.
2119
2120 2004-09-01  James E Wilson  <wilson@specifixinc.com>
2121
2122         PR target/14064
2123         * config/avr/avr.c (avr_unique_section): Delete prototype and
2124         definition.
2125         (TARGET_ASM_UNIQUE_SECTION): Delete.
2126
2127 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
2128
2129         * c-parse.in (primary): Call objc_build_message_expr(),
2130         objc_build_selector_expr(), objc_build_protocol_expr(),
2131         objc_build_encode_expr() and objc_build_string_object() instead of
2132         build_message_expr(), build_selector_expr(), build_protocol_expr(),
2133         build_encode_expr() and build_objc_string_object(), respectively.
2134         (component_decl_list2): Call objc_get_class_ivars() instead of
2135         get_class_ivars_from_name().
2136         (keyworddecl): Call objc_build_keyword_decl() instead of
2137         build_keyword_decl().
2138         (receiver): Call objc_get_class_reference() instead of
2139         get_class_reference().
2140         (reswords): Add blank line before @@ifobjc section, for clarity.
2141
2142 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
2143
2144         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
2145         to Altivec vetors.
2146
2147 2004-09-01  Wu Yongwei  <adah@sh163.net>
2148             Danny Smith  <dannysmith@users.sourceforge.net>
2149
2150         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
2151         not Windows 'DWORD'.
2152         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
2153         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
2154         (__gthr_win32_recursive_mutex_init_function): Add prototype for
2155         __GTHREAD_HIDE_WIN32API case..
2156         (__gthr_win32_recursive_mutex_lock): Likewise.
2157         (__gthr_win32_recursive_mutex_trylock): Likewise.
2158         (__gthr_win32_recursive_mutex_unlock): Likewise.
2159         (__gthread_recursive_mutex_init_function); Add definition for
2160         __GTHREAD_HIDE_WIN32API case.
2161         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
2162         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
2163         call to InterlockedDecrement.
2164
2165 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2166
2167         * tree-tailcall.c (find_tail_calls): Also fail is statement has
2168         volatile operands.
2169
2170         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
2171
2172         * doc/c-tree.texi: Document new operands for ARRAY_REF and
2173         COMPONENT_REF.
2174
2175 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2176
2177         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
2178         * common.opt (fspeculative-prefetching): New.
2179         * flags.h (flag_speculative_prefetching_set): Declare.
2180         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
2181         values.
2182         * opts.c (flag_sepculative_prefetching_set): New variable.
2183         (common_handle_option): Handle -fspeculative-prefetching.
2184         * passes.c (rest_of_compilation): Ditto.
2185         * profile.c (instrument_values, compute_value_histograms, branch_prob):
2186         Use vectors instead of arrays.
2187         * toplev.c (process_options): Handle -fspeculative-prefetching.
2188         * rtl-profile.c: Include ggc.h.
2189         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
2190         rtl_gen_one_value_profiler_no_edge_manipulation,
2191         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
2192         argument changed.
2193         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2194         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
2195         argument changed.
2196         * value-prof.c: Include ggc.h.
2197         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
2198         macros.
2199         (insn_prefetch_values_to_profile, find_mem_reference_1,
2200         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
2201         speculative_prefetching_transform): New.
2202         (value_profile_transformations): Call speculative_prefetching_transform.
2203         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
2204         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
2205         tree_find_values_to_profile, find_values to profile): Use vectors
2206         instead of arrays.
2207         (free_profiled_values): Removed.
2208         * value-prof.h (struct histogram_value): Renamed to
2209         struct histogram_value_t.
2210         (histogram_value, histogram_values): New types.
2211         (find_values_to_profile): Declaration changed.
2212         (free_profiled_values): Removed.
2213         (struct profile_hooks): Type of argument of the hooks changed to
2214         histogram_value.
2215         * doc/invoke.texi (-fspeculative-prefetching): Document.
2216
2217 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2218
2219         PR rtl-optimization/16408
2220         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
2221
2222 2004-09-01  Richard Henderson  <rth@redhat.com>
2223
2224         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
2225         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
2226
2227 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2228
2229         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
2230
2231 2004-09-01  Mike Stump  <mrs@apple.com>
2232
2233         * config/darwin.c (machopic_symbol_defined_p): In addition to
2234         being SYMBOL_REF_LOCAL_P, a symbol must also be
2235         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
2236         defined in this output file, or translation unit in the case
2237         of IMA not being used.
2238         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
2239         never need .indirect_symbol when indirecting.
2240
2241 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2242
2243         * Makefile.in (bb-reorder.o): Add several dependencies.
2244
2245 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2246
2247         * fold-const.c (operand_equal_p): Require equal sign also for
2248         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
2249
2250 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2251
2252         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
2253         for use in configargs.h.  Put the cname in a separate variable.  Use
2254         that to set target_cpu_default2.
2255
2256 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
2257             Nick Clifton  <nickc@redhat.com>
2258
2259         * config/sh/sh.md ("length"): Increase branch length when
2260         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
2261         constant, 2 byte for aligning the constant.
2262
2263 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2264
2265         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
2266         CPU.
2267         (arm7tdmi-s): New CPU name.
2268         * arm/arm.c (ARM_CORE): Update for new format.
2269         * arm/arm.h (ARM_CORE): Likewise.
2270         * arm/gentune.sh: Update for extra field.
2271         * config.gcc: Likewise.
2272         * arm/arm-tune.md: Regenerate.
2273         * doc/invoke.texi: Document the real processor names for ARM cpus.
2274
2275 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2276
2277         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
2278         (floatdidf): New functions.
2279         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
2280         (floatdisf): New functions.
2281         * t-arm-elf: Use them.
2282
2283 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
2284
2285         * c-common.h (lookup_interface): Remove prototype.
2286         (is_class_name): Rename to objc_is_class_name.
2287         (lookup_objc_ivar): Rename to objc_lookup_ivar.
2288         (get_current_scope): Rename to objc_get_current_scope.
2289         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
2290         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
2291         (yylexname): Call objc_is_class_name() instead of is_class_name().
2292         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
2293         instead of lookup_objc_ivar().
2294         * stub-objc.c (lookup_interface): Remove stub.
2295         (is_class_name): Rename to objc_is_class_name.
2296         (lookup_objc_ivar): Rename to objc_lookup_ivar.
2297
2298 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2299
2300         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
2301         * config/arm/lib1funcs.asm: Do not include supplemental .S files
2302         when compiling for Symbian.
2303         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
2304         (TARGET_OS_CPP_BUILTINS): Likewise.
2305         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
2306
2307 2004-08-31  Stan Shebs  <shebs@apple.com>
2308
2309         * toplev.c (process_options): Ensure debug_hooks is initialized.
2310
2311 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2312
2313         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
2314         * target.h (cxx): Add export_class_data.
2315         * config/arm/arm.c (arm_cxx_export_class_data): New function.
2316         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
2317         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
2318
2319 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2320
2321         * config/sh/sh.c (output_branch): Check the insn length possibly
2322         in the delayed slot.
2323
2324 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2325
2326         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
2327         blank after ')'.
2328         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
2329
2330         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
2331         (c_sizeof_of_alignof_type): Likewise.
2332         * expr.c (array_ref_element_size): Likewise.
2333         (highest_pow2_factor_for_target): Likewise.
2334         * gimplify.c (canonicalize_addr_expr): Likewise.
2335         (gimplify_compound_lval): Likewise.
2336         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
2337         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
2338         * varasm.c (assemble_variable): Likewise.
2339         (output_constant_def_contents): Alignments are unsigned.
2340
2341 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2342             Jeff Law  <law@redhat.com>
2343
2344         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
2345         gets modified.
2346
2347 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2348
2349         * hooks.c (hook_bool_void_true): New function.
2350         * hooks.h (hook_bool_void_true): Declare.
2351         * target-def.h (TARGET_CXX): Add
2352         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
2353         * target.h (struct cxx): Add key_method_may_be_inline.
2354         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
2355         function.
2356         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
2357         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
2358         __THUMB_INTERWORK.
2359
2360 2004-08-31  Denis Chertykov  <denisc@overta.ru>
2361
2362         PR target/15417
2363         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
2364         frame pointer register only in Pmode while reload in progress.
2365
2366 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
2367
2368         PR target/15334
2369         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
2370         because it breaks the 32-bit shift patterns that rely on a match_dup.
2371
2372 2004-08-31  Matt Austern  <austern@apple.com>
2373
2374         * config/darwin.c (darwin_make_decl_one_only): Allocate section
2375         names once per compilation, instead of once per symbol.
2376
2377 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
2378
2379         * Makefile.in (build_subdir): New substitution.
2380         (fixinc.sh): Simplify heavily since fixincludes is already built.
2381         (stmp-fixinc): Depend on specs.ready.
2382         (install-mkheaders): Use new location of fixincludes.
2383         (clean): Do not descend into fixinc.
2384         (FORBUILD): Replace with ../$(build_subdir).
2385         * configure.ac (build_subdir): Substitute.
2386         (FORBUILD): Do not set.
2387         (all_outputs): Remove fixinc/Makefile.
2388         (default commands): Do not create links in fixinc.
2389         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
2390         the fixincludes configuration steps and substituting
2391         @FIXINCL@ in fixinc.in.
2392         * fixinc.in: New, from fixinc/fixincl.sh.
2393
2394         * fixinc/*: Removed.
2395
2396 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2397
2398         * attribs.c (strip_attrs): Remove.
2399         (split_specs_attrs): Move ...
2400         * c-decl.c: ... to here.
2401         * tree.h (split_specs_attrs, strip_attrs): Remove.
2402         * c-tree.h (split_specs_attrs): Declare.
2403
2404 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
2405
2406         * read-rtl.c: Disable RTL checking.
2407         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
2408
2409 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
2410
2411         * config/mips/mips.md (fcond): New code macro and attribute.
2412         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
2413         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
2414         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
2415
2416 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
2417
2418         Revert:
2419         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
2420         PR rtl-optimization/16590
2421         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
2422
2423 2004-08-30  Andrew Pinski  <apinski@apple.com>
2424
2425         * hard-reg-set.h:
2426         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
2427         * ChangeLog: Fix previous ChangeLog entry.
2428
2429         PR rtl-opt/13987
2430         * config.host (use_long_long_for_widest_fast_int): New, default is
2431         off.
2432         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
2433         * configure.ac: If use_long_long_for_widest_fast_int, then
2434         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
2435         * configure: Regenerate.
2436         * config.in: Regenerate.
2437         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
2438         New: widest integer type supported efficiently in hardware for the
2439         host.
2440         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
2441         HOST_BITS_PER_WIDEST_FAST_INT.
2442         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
2443         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
2444         HOST_WIDEST_FAST_INT
2445         instead of HOST_WIDE_INT.
2446         (HARD_REG_SET_LONGS): Likewise.
2447         (UHOST_BITS_PER_WIDE_INT): Likewise.
2448         Change the checks for the fast cases to be based on
2449         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
2450
2451 2004-08-30  Steven Bosscher  <stevenb@suse.de>
2452
2453         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
2454         not the pointers.
2455
2456 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
2457
2458         PR 12738
2459         PR 17205
2460         Radar 3460526
2461         Radar 3775729
2462         * c-decl.c (grokdeclarator): Produce error for 'static' on local
2463         function declaration.
2464
2465 2004-08-30  Richard Henderson  <rth@redhat.com>
2466
2467         * expr.c (array_ref_element_size): Force aligned_size back to
2468         sizetype.
2469         (component_ref_field_offset): Similarly for aligned_offset.
2470         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
2471         low-bound, element-size, field-offset fields rather than
2472         computed values.
2473
2474 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2475
2476         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
2477         redundant code.
2478
2479 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2480
2481         * c-tree.h (struct language_function): Add arg_info element.
2482         * c-decl.c (current_function_arg_info): New.
2483         (grokdeclarator, store_parm_decls): Use it instead of
2484         DECL_ARGUMENTS.
2485         (c_push_function_context, c_pop_function_context): Save and
2486         restore it.
2487
2488 2004-08-30  Richard Henderson  <rth@redhat.com>
2489
2490         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
2491         COMPONENT_REF to pointer arithmetic.
2492         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
2493         constant "c" as a valid constant initializer.  Allow narrowing of
2494         differences against the same base object, for any base object.
2495
2496 2004-08-30  Richard Henderson  <rth@redhat.com>
2497
2498         * expr.c (expand_expr_addr_expr): New.
2499         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
2500
2501 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
2502
2503         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
2504         (mips_fp_condition): New enum.
2505         (mips_fp_conditions): New array.
2506         (print_fcc_operand): Delete.
2507         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
2508         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
2509         (builtin_description): Add "cond" field.
2510         (DIRECT_BUILTIN): Initialize it.
2511         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
2512         into INSN and CODE.  Initialize the "cond" field.
2513         (CMP_BUILTINS): Update accordingly.
2514         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
2515         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
2516         mips_fp_condition as argument.  Make it the final operand of the
2517         comparison instruction.
2518         (mips_expand_builtin): Update accordingly.
2519         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
2520         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
2521         the gaps.
2522         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
2523         Don't use the 'Q' operand prefix; just print the operand normally.
2524         (mips_cabs_*, mips_c_*): Delete, replacing with...
2525         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
2526         patterns.  Split the 4s versions into 2 ps patterns after reload.
2527
2528 2004-08-30  Richard Henderson  <rth@redhat.com>
2529
2530         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
2531         assuming an ADDR_EXPR is non-null.
2532
2533 2004-08-30  Jason Merrill  <jason@redhat.com>
2534
2535         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
2536
2537 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
2538
2539         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
2540         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
2541         gcc_assert and gcc_unreachable instead of abort.
2542         * alloc-pool.c (abort, fancy_abort): Remove.
2543         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
2544         gcc_assert or gcc_unreachable.
2545         * attribs.c (init_attributes, decl_attributes): Likewise.
2546         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
2547         mark_bb_for_unlikely_executed_section,
2548         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
2549         fix_crossing_unconditional_branches):  Likewise.
2550         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
2551         bitmap_operation):  Likewise.
2552         * bt-load.c (insn_sets_btr_p, augment_live_range,
2553         move_btr_def):  Likewise.
2554         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
2555         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
2556         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
2557         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
2558         expand_builtin_memcmp, expand_builtin_args_info,
2559         std_gimplify_va_arg_expr, expand_builtin_unop,
2560         expand_builtin_fputs, expand_builtin_profile_func,
2561         expand_builtin_fork_or_exec, fold_builtin_bitop,
2562         fold_builtin_classify, fold_builtin_fputs): Likewise.
2563
2564 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
2565
2566         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
2567         * gcov.c (abort): Remove undef.
2568
2569         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
2570         (struct tree_binfo): Remove primary field.
2571
2572 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
2573
2574         * fixinc/Makefile.in (machname.h): Remove.
2575         (fixincl.x): Do not pass $@ to genfixes.
2576         * fixinc/genfixes: Remove code to produce machname.h.
2577         * fixinc/fixincl.sh: Move it here instead.
2578         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
2579         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
2580         return a bool indicating whether pz_mn_name_pat is NULL.
2581         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
2582         Declare extern C variables for the ENV_TABLE.
2583         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
2584         instead use the result of mn_get_regexps.
2585         * fixinc/fixtests.c: Likewise.
2586
2587 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
2588
2589         * configure.ac: Do not run fixincludes after stage1 during
2590         toplevel bootstrap.
2591         * configure: Regenerate.
2592
2593 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
2594
2595         * sched-deps.c (get_condition): Partially revert previous, by never
2596         trying to extract the condition from a condjump.
2597
2598 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
2599
2600         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
2601         (handle_visibility_attribute, c_determine_visibility): Likewise.
2602         * c-common.h (my_friendly_assert): Remove.
2603
2604 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
2605
2606         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
2607         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
2608         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
2609         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
2610         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
2611
2612 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
2613
2614         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
2615         in COMPONENT_REF nodes.
2616
2617 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2618
2619         PR c++/15378
2620         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
2621         global_dc->warning_as_error_requested.
2622         * diagnostic.c (diagnostic_initialize): Tidy.
2623         * diagnostic.h (diagnostic_context::x_data): Remove
2624         (diagnostic_context::issue_warnings_are_errors_message): Rename
2625         from warnings_are_errors_message.
2626         (diagnostic_context::warning_as_error_requested): New.
2627
2628 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
2629
2630         * sched-deps.c (get_condition): Fix breakage in previous patch.
2631
2632 2004-08-30  Paul Brook  <paul@codesourcery.com>
2633
2634         * doc/install.texi: Fix broken mpfr link.
2635
2636 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
2637
2638         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
2639         other FreeBSD platforms.
2640
2641 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
2642
2643         * arm.h (REVERSE_CONDITION): Define.
2644         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
2645
2646 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
2647
2648         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
2649         just the codes, call reversed_comparison_code ().
2650         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
2651         (not_reg_cond): Use reversed_comparison_code.
2652         (and_reg_cond): Likewise.
2653         * ifcvt.c (cond_exec_process_if_block): Likewise.
2654         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
2655
2656 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
2657
2658         * sched-deps.c (get_condition): Rewrite using jump support functions.
2659         Use reversed_comparison_code.
2660         (conditions_mutex_p): Use reversed_comparison_code.
2661
2662 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2663
2664         * config/mips/mips.c (override_options): Disable hot/cold partitioning
2665         for MIPS16.
2666
2667 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2668
2669         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
2670         (mips_function_type): Move to mips.c.
2671         * config/mips/mips.c (mips_builtin_type): New enum.
2672         (builtin_description): Replace code and ftype with builtin_type
2673         and function_type.
2674         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
2675         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
2676         (CODE_FOR_mips_abs_ps): Define.
2677         (mips_bdesc): Use new macros.
2678         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
2679         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
2680         (mips_expand_builtin_direct): New function.
2681         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
2682         builtin.  Replace boolean parameter with builtin_type.
2683         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
2684         (mips_expand_4s_compare_builtin): Delete, replacing with...
2685         (mips_expand_builtin_compare): ...this new function.
2686
2687 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
2688
2689         PR rtl-optimization/16590
2690         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
2691
2692 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
2693
2694         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
2695         * tree-ssa-propagate.c: Fix documentation.
2696
2697 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2698
2699         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
2700         (mov[sd]fcc): Likewise.
2701
2702 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2703
2704         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
2705
2706 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2707
2708         * config/mips/mips.md (divide_condition): New mode attribute.
2709         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
2710         (sqrt[sd]f3): Redefine using SCALARF.
2711         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
2712         patterns.
2713
2714 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2715
2716         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
2717         (loadx, storex, fmt, UNITMODE): New mode attributes.
2718         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
2719         (mul[sd]f3): Redefine using :SCALARF.
2720         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
2721         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
2722         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
2723         Check TARGET_FUSED_MADD for V2SF too.
2724         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
2725         were already named.
2726         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
2727         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
2728
2729 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2730
2731         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
2732         V2SF_type_node if it will be needed.
2733
2734 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2735
2736         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
2737         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
2738         (mips_prepare_builtin_target): New function.
2739         (mips_expand_builtin): Use them.  Update calls to subroutines.
2740         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
2741         cmp_choice with a boolean argument to select between movt and movf.
2742         Take the comparison's icode as an argument, not the function's fcode.
2743         (mips_expand_compare_builtin): New function.  Rename existing function
2744         to mips_expand_scalar_compare_builtin.
2745         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
2746         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
2747         comparison's icode as an argument, not the builtin's fcode.
2748
2749 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2750
2751         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
2752         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
2753         registers are false and -1 if all registers are true.
2754         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
2755         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
2756         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
2757         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
2758         (bc1any2t, bc1any2f): Likewise CCV2.
2759         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
2760
2761 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
2762
2763         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
2764         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
2765         UNSPEC rather than an IF_THEN_ELSE.
2766         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
2767         mips_cond_move_tf_ps by name.
2768
2769 2004-08-29  Chao-ying Fu  <fu@mips.com>
2770             James E Wilson  <wilson@specifixinc.com>
2771
2772         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
2773         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
2774         * config/mips/mips-ps-3d.md: New file.
2775         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
2776         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2777         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
2778         (mips_output_move): Emit "mov.ps" for V2SFmode.
2779         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
2780         MODE_VECTOR_FLOAT.
2781         (override_options): Check if TARGET_MIPS3D and there was an explicit
2782         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
2783         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
2784         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
2785         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
2786         and allow CCV2 and CCV4 to occupy two and four CC registers.
2787         (print_fcc_operand): New function.
2788         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
2789         %Z to call print_fcc_operand.
2790         (mips_function_value): Handle MODE_VECTOR_FLOAT.
2791         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
2792         (mips_vector_mode_supported_p): New function.
2793         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
2794         (builtin_description): New struct.
2795         (mips_bdesc): New array of struct builtin_description.
2796         (mips_expand_builtin, mips_init_builtins,
2797         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
2798         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
2799         functions.
2800         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
2801         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
2802         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
2803         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
2804         "-mips3d", and "-mno-mips3d".
2805         (ASM_SPEC): Map -mips3d to -mips3d in gas.
2806         (EXTRA_CONSTRAINT_Y): New macro.
2807         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
2808         multi-letter constraint 'Y'.
2809         (CONSTRAINT_LEN): New macro.
2810         (enum mips_builtins): New for MIPS builtin functions.
2811         (enum mips_function_type): New for the types of MIPS builtin functions.
2812         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
2813         * config/mips/mips.md: New constants for paired single and MIPS-3D
2814         instructions.  Include the new mips-ps-3d.md file.
2815         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
2816         movv2sf_hardfloat_64bit): New named patterns.
2817         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
2818         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
2819         sdxc1_v2sf_di): New unnamed patterns.
2820         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
2821         const_vector support.
2822         (const_0_or_1_operand): New predicate.
2823         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
2824
2825 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
2826
2827         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
2828         (tree-ssa-propagate.o): New rule.
2829         (GTFILES): Add tree-ssa-propagate.c.
2830         * tree-flow.h (struct stmt_ann_d): Remove field
2831         in_ccp_worklist.
2832         * tree-ssa-propagate.c: New file.
2833         * tree-ssa-propagate.h: New file.
2834         * tree-ssa-ccp.c: Re-write to use the routines from
2835         tree-ssa-propagate.c.
2836
2837 2004-08-28  Andrew Pinski  <apinski@apple.com>
2838
2839         * tree-ssa-loop.c: Remove extra include of basic-block.h.
2840
2841 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
2842
2843         * c-common.h: Update comments about ObjC/ObjC++ entry points.
2844         (objc_is_reserved_word): New prototype.
2845         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
2846         separate section; these are call-backs.
2847         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
2848         ObjC/ObjC++ "@" keywords.
2849         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
2850         prototypes; they already live in c-common.h.
2851         * stub-objc.c: Update copyright notice.
2852         (objc_is_reserved_word): New stub.
2853
2854 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
2855
2856         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
2857         even when not checking.
2858
2859 2004-08-27  Jason Merrill  <jason@redhat.com>
2860
2861         PR c++/13684
2862         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
2863         (gimple_push_cleanup): Add eh_only parm.
2864         (gimplify_target_expr): Pass it.
2865         * c.opt (-fno-threadsafe-statics): New option.
2866         * c-opts.c (c_common_handle_option): Handle it.
2867         * c-common.h (flag_threadsafe_statics): Declare it.
2868         * c-common.c (flag_threadsafe_statics): Record it.
2869         * doc/invoke.texi: Document it.
2870         * tsystem.h (_GNU_SOURCE): Define.
2871         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
2872         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
2873         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
2874         (__gthread_recursive_mutex_init_function): New fn.
2875         (__gthread_recursive_mutex_lock): New fn.
2876         (__gthread_recursive_mutex_trylock): New fn.
2877         (__gthread_recursive_mutex_unlock): New fn.
2878         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
2879         * gthr-win32.h, gthr-vxworks.h: Likewise.
2880         * gthr.h: Document.
2881
2882 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
2883
2884         * config/rs6000/rs6000.c (rs6000_override_options): Increase
2885         maximum skip to 15.  Set function alignment, jump alignment, and
2886         loop alignment to 16 for processors that form dispatch groups.
2887         (rs6000_rtx_costs): outer_code is used.
2888
2889 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
2890
2891         * stor-layout.c (sizetype_set): Remove.
2892         (set_sizetype): Don't test or set it.
2893
2894         * tree.h (size_int_type): Remove.
2895         * fold-const.c: Do not #include gt-fold-const.h.
2896         (size_htab_hash, size_htab_eq): Remove.
2897         (size_int_kind): Use build_int_cst.
2898         (new_const, size_htab): Remove.
2899         (size_int_type): Remove.
2900         (round_up): Use build_int_cst.
2901         (round_down): Likewise. Remove spurious constant build.
2902
2903 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
2904
2905         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
2906         Add is_release variable, use it for --enable-werror and
2907         --enable-checking defaults.
2908         * system.h (gcc_assert, gcc_unreachable): New.
2909         * doc/install.texi (--enable-checking): Update.
2910         * configure, config.in: Rebuilt.
2911
2912 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
2913
2914         * rtl.h (read_rtx): Change prototype.
2915         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
2916         line number.  Return true on success.
2917         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
2918         callers accordingly.
2919
2920 2004-08-26  Richard Henderson  <rth@redhat.com>
2921
2922         * c-typeck.c (build_offsetof): Remove.
2923         * c-tree.h (build_offsetof): Remove.
2924         * c-common.c (fold_offsetof_1, fold_offsetof): New.
2925         * c-common.h (fold_offsetof): Declare.
2926         * c-parse.in (offsetof_base): New.
2927         (offsetof_member_designator): Use it.  Build references, not just
2928         a tree list.
2929         (primary): Use fold_offsetof, not build_offsetof.
2930
2931 2004-08-26  Richard Henderson  <rth@redhat.com>
2932
2933         * tree.c (staticp): Return the static object.
2934         * tree.h (staticp): Update decl.
2935         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
2936         * langhooks.c (lhd_staticp): Return NULL_TREE.
2937         * langhooks-def.h (lhd_staticp): Update decl.
2938         * c-common.c (c_staticp): Return the static object.
2939         * c-common.h (c_staticp): Update decl.
2940
2941 2004-08-26  Richard Henderson  <rth@redhat.com>
2942
2943         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
2944         modes.
2945
2946 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
2947
2948         PR c/13801
2949         * c-decl.c (struct c_binding): Add type and inner_comp fields.
2950         (bind): Set type and inner_comp fields.
2951         (pop_scope): Restore type of decl to the correct type from an
2952         outer scope.  Give error when popping file scope for incomplete
2953         arrays completed incompatibly with default initialization in an
2954         inner scope.
2955         (diagnose_mismatched_decls): Handle externs with initializers at
2956         block scope.
2957         (pushdecl): Set type of external declaration at block scope based
2958         only on the visible declarations.  Save type when changing the
2959         type of a declaration.  Merge an external declaration at block
2960         scope with a visible static declaration at file scope.
2961         (implicitly_declare): Give recycled old declaration the new type
2962         except for incompatible declarations of built-in functions, saving
2963         the old type.
2964
2965 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
2966
2967         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
2968
2969 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
2970
2971         * tree-alias-common.c (gate_pta): New function.
2972         (pass_build_pta): Use it.
2973         (pass_del_pta): Use it.
2974         (delete_alias_vars): Don't check flag_tree_points_to.
2975
2976 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
2977
2978         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
2979         TFmode as additional register mode cloberred by call.
2980
2981 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
2982
2983         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
2984         parallel pattern for library call returning DImode in
2985         mixed mode.
2986
2987 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
2988
2989         * config/rs6000/rs6000.c (function_arg): Generate parallel
2990         pattern for more split args.
2991
2992 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
2993
2994         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
2995         either gen_movdi_di_update or gen_movdi_si_update depending on
2996         target mode.
2997         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
2998         to generate two versions.
2999
3000 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
3001
3002         * Makefile.in (lambda-code.o): New.
3003         (lambda-trans.o): Ditto.
3004         (TREE_DATA_REF_H): Ditto.
3005         (LAMBDA_H): Ditto.
3006         (lambda-mat.o): Use LAMBDA_H.
3007         (tree-data-ref.o): Ditto.
3008         * lambda-code.c: New file.  Lambda code generation algorithm.
3009         * lambda-trans.c: Ditto. Lambda transformation matrix support.
3010         * lambda.h: Add lambda loop structures.
3011         Add lambda loopnest structures.
3012         Add lambda body vector structure.
3013         Add lambda linear expression structures.
3014         Add prototypes for functions in new files.
3015         * lambda-mat.c: Include tree.h
3016
3017 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
3018             Sebastian Pop  <pop@cri.ensmp.fr>
3019
3020         * tree-data-ref.h: Include lambda.h
3021         (free_dependence_relation): Declared here.
3022         (free_dependence_relations): Ditto.
3023         (free_data_refs): Ditto.
3024         * tree-data-ref.c (free_dependence_relation): New function.
3025         (free_dependence_relations): Ditto.
3026         (free_data_refs): Ditot.
3027         (analyze_all_data_dependences): Free datarefs and dependence_relations.
3028         (build_classic_dist_vector): Store in the dependence_relations the
3029         information. Each arc in the dependence_relations graph is labelled
3030         with the distance and direction vectors.
3031         (build_classic_dir_vector): Ditto.
3032         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
3033         Now computes again the whole dependence graph including read-read
3034         relations.
3035         (compute_data_dependences_for_loop): Now dependence_relations contains
3036         all the data, and thus it doesn't need to initialize the classic_dir
3037         and classic_dist vectors.
3038         (analyze_all_data_dependences): Adjusted for using the new interface of
3039         compute_data_dependences_for_loop.  Remove the statistics dump.
3040
3041 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
3042
3043         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
3044         (xtensa_expand_block_move): Update comment.
3045         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
3046
3047 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
3048
3049         PR target/13506
3050         * toplev.c (crash_signal): If we crashed while emitting
3051         a user asm, then die more gracefully.
3052
3053 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3054
3055         PR target/17119.
3056         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
3057         checking for a valid constant, regardless of sign.
3058
3059 2004-08-25  Richard Henderson  <rth@redhat.com>
3060
3061         PR target/16974
3062         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
3063         if the constant satisfies add_operand.
3064
3065 2004-08-25  Richard Henderson  <rth@redhat.com>
3066
3067         PR debug/10695
3068         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
3069         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
3070         unwind info for >16-bit frames.
3071
3072 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
3073
3074         PR target/17171
3075         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
3076
3077 2004-08-25  Richard Henderson  <rth@redhat.com>
3078
3079         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
3080         (TARGET_CANNOT_FORCE_CONST_MEM): New.
3081
3082 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
3083
3084         * doc/tree-ssa.texi: Document new operand iterator.
3085
3086 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
3087
3088         PR target/16480
3089         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
3090         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
3091         as PLUS base regs.
3092
3093 2005-08-28  Paul Brook  <paul@codesourcery.com>
3094
3095         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
3096         -mfpu=vfp -march=armv5t
3097         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
3098
3099 2004-08-25  Richard Henderson  <rth@redhat.com>
3100
3101         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3102         * target.h (struct gcc_target): Add scalar_mode_supported_p.
3103         * targhooks.c (default_scalar_mode_supported_p): New.
3104         * targhooks.h (default_scalar_mode_supported_p): Declare.
3105         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
3106
3107         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
3108         before attempting to create types.  Tidy.
3109         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
3110
3111         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
3112         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3113
3114 2004-08-25  Richard Henderson  <rth@redhat.com>
3115
3116         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3117         set REAL_MODE_FORMAT for TFmode.
3118
3119 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
3120
3121         * c-decl.c (grokparm): New function.
3122         * c-tree.h (grokparm): New prototype.
3123
3124 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
3125
3126         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
3127         iterator controlling structure.
3128         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
3129         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
3130         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
3131         iterator flags.
3132         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
3133         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
3134         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
3135         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
3136         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
3137         Empty operand pointers.
3138         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
3139         (op_iter_next_use): New.  Return next use_operand_p.
3140         (op_iter_next_def): New.  Return next def_operand_p.
3141         (op_iter_next_tree): New.  Return next operands as a tree.
3142         (op_iter_init): New.  Initialize an iterator structure.
3143         (op_iter_init_use): New.  Initialize structure and get the first use.
3144         (op_iter_init_def): New.  Initialize structure and get the first def.
3145         (op_iter_init_tree): New.  Initialize structure and get the first tree.
3146         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
3147         (op_iter_init_maydef): New.  Initialize structure and get the first
3148         V_MAY_DEF operands.
3149         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
3150         * tree-dfa.c (compute_immediate_uses_for_stmt,
3151         redirect_immediate_uses): Use new operand iterator.
3152         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
3153         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
3154         operands instead of using *_disappeared_p routines.
3155         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
3156         ssa_rewrite_stmt): Use new operand iterator.
3157         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
3158         rewrite_trees): Use new operand iterator.
3159         * tree-pretty-print.c (dump_vops): Use new operand iterator.
3160         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
3161         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
3162         dump_points_to_info): Use new operand iterator.
3163         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
3164         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
3165         operand iterator.
3166         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
3167         propagate_necessity): Use new operand iterator.
3168         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
3169         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
3170         a parameter instead of a stmt_ann_t.
3171         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
3172         build_tree_conflict_graph): Use new operand iterator.
3173         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
3174         rewrite_mem_refs): Use new operand iterator.
3175         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
3176         check_loop_closed_ssa_use): Use new operand iterator.
3177         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
3178         * tree-ssanames.c (release_defs): Use new operand iterator.
3179         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
3180
3181 2004-08-25  Adam Nemet  <anemet@lnxw.com>
3182
3183         * tlink.c (initial_cwd): New variable.
3184         (tlink_init): Initialize it.
3185         (recompile_files): Use tlink_execute() instead of system().  Don't
3186         duplicate verbose output of collect_execute.  Restore initial_cwd.
3187         Update comment before the function.
3188
3189 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
3190
3191         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
3192         accept) a cast from one Objective-C pointer type to another.
3193
3194 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
3195
3196         * doc/install.texi: Document that libstdc++-v3 requires
3197         now automake 1.9.1.
3198
3199 2004-08-25  Caroline Tice  <ctice@apple.com>
3200
3201         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
3202         to comments at start of function.
3203         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
3204         comment.
3205         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3206         merge_blocks_move_predecessor_nojumps,
3207         merge_blocks_move_successor_nojumps, merge_blocks_move,
3208         try_crossjump_to_edge, try_crossjump_bb): Likewise.
3209         * cfglayout.c (fixup_reorder_chain): Likewise.
3210         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
3211         cfg_layout_can_merge_blocks_p):  Likewise.
3212         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
3213         * passes.c (rest_of_compilation): Update comments for calling
3214         optimization that partitions hot/cold basic blocks.
3215         * doc/invoke.texi:  Update documentation of
3216         freorder-blocks-and-partition flag.
3217
3218 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
3219
3220         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
3221         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
3222
3223 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
3224
3225         * config/mips/mips.md (any_shift): New code macro.
3226         (optab, insn): New code attributes.
3227         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
3228         Use the standard rather than internal patterns for the MIPS16
3229         double-shift optimization.
3230         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
3231         Redefine using :GPR and any_shift.
3232         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
3233         to cover all three shifts.
3234         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
3235         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
3236         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
3237
3238 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
3239
3240         * gimplify.c (lookup_tmp_var): Separate temporaries when not
3241         optimizing.
3242
3243 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3244
3245         PR libstdc++/17005 (fix for HP-UX 11.11)
3246         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
3247         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
3248         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
3249         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
3250         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
3251         (LINK_SPEC): Handle march=1.0 option.
3252         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3253         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
3254         (SUBTARGET_OPTIONS): New define.
3255         (LINK_SPEC): Handle march=1.0 option.
3256         (STARTFILE_SPEC): New define.
3257         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3258         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
3259         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
3260         (SUBTARGET_OPTIONS): New define.
3261         (LINK_SPEC): Handle march=1.0 option.
3262         (STARTFILE_SPEC): New define.
3263         * config/pa/pa.c (override_options): Add code to process -munix= option.
3264         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
3265         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
3266         defines.
3267         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
3268         (SUBTARGET_OPTIONS): Provide default define.
3269         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
3270         STANDARD_STARTFILE_PREFIX_2): New defines.
3271         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
3272         (ENDFILE_SPEC): Use %O.
3273         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
3274         Mention issue caused by changing namespace and runtime to UNIX 95/98.
3275         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
3276         Document -munix=std option.
3277
3278 2004-08-25  Steven Bosscher  <stevenb@suse.de>
3279
3280         * cse.c (cse_around_loop, cse_check_loop_start,
3281         cse_set_around_loop): Remove.
3282         (cse_basic_block): Remove the around_loop argument.
3283         (cse_end_of_basic_block): Remove the after_loop argument.
3284         (cse_main): Likewise.
3285         * rtl.h (cse_main): Update prototype.
3286         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
3287         rest_of_handle_gcse): Update cse_main calls.
3288
3289 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
3290
3291         * tree.h  (build_int_cst): New, sign extended constant.
3292         (build_int_cstu): New, zero extended constant.
3293         (build_int_cst_wide): Renamed from build_int_cst.
3294         * tree.c (build_int_cst, build_int_cstu): New.
3295         (build_int_cst_wide): Renamed from build_int_cst.
3296         (make_vector_type, build_common_tree_nodes,
3297         build_common_tree_nodes_2): Adjust build_int_cst calls.
3298         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
3299         expand_builtin_strpbrk, expand_builtin_fputs,
3300         build_string_literal, expand_builtin_printf,
3301         expand_builtin_sprintf, fold_builtin_classify_type,
3302         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
3303         fold_builtin_toascii, fold_builtin_isdigit,
3304         simplify_builtin_strstr, simplify_builtin_strpbrk,
3305         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
3306         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
3307         DEF_ATTR_INT): Likewise.
3308         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
3309         Likewise.
3310         * c-lex.c (interpret_integer, lex_charconst): Likewise.
3311         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
3312         * c-pretty-print.c (pp_c_integer_constant): Likewise.
3313         * c-typeck.c (really_start_incremental_init, push_init_level,
3314         set_nonincremental_init_from_string): Likewise.
3315         * calls.c (load_register_parameters): Likewise.
3316         convert.c (convert_to_pointer): Likewise.
3317         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
3318         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
3319         build_gcov_info): Likewise.
3320         * except.c (init_eh, assign_filter_values): Likewise.
3321         * expmed.c (store_fixed_bit_field, extract_bit_field,
3322         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
3323         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
3324         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
3325         * expr.c (convert_move, emit_group_load, emit_group_store,
3326         expand_assignment, store_constructor, store_field,
3327         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3328         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
3329         invert_truthvalue, optimize_bit_field_compare,
3330         decode_field_reference, all_ones_mask_p, constant_boolean_node,
3331         fold_div_compare, fold, fold_read_from_constant_string,
3332         fold_negate_const, fold_abs_const, fold_not_const, round_up,
3333         round_down): Likewise.
3334         * function.c (assign_parm_setup_block): Likewise.
3335         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
3336         Likewise.
3337         * stor-layout.c (layout_type, initialize_sizetypes,
3338         set_min_and_max_values_for_integral_type): Likewise.
3339         * tree-chrec.c (chrec_fold_multiply_poly_poly,
3340         reset_evolution_in_loop): Likewise.
3341         * tree-chrec.h (build_polynomial_chrec): Likewise.
3342         * tree-complex.c (build_replicated_const): Likewise.
3343         * tree-eh.c (honor_protect_cleanup_actions,
3344         lower_try_finally_onedest, lower_try_finally_copy,
3345         lower_try_finally_switch): Likewise.
3346         * tree-mudflap.c (mf_build_string, mx_register_decls,
3347         mudflap_register_call, mudflap_enqueue_constant): Likewise.
3348         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
3349         * tree-pretty-print.c (dump_generic_node): Likewise.
3350         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
3351         Likewise.
3352         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3353         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3354         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
3355         Likewise.
3356         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
3357         canonicalize_loop_induction_variables): Likewise.
3358         * tree-vectorizer.c (vect_create_index_for_array_ref,
3359         vect_transform_loop_bound, vect_compute_data_ref_alignment):
3360         Likewise.
3361
3362         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
3363         alpha_gimplify_va_arg_1): Likewise.
3364         * config/arm/arm.c (arm_get_cookie_size): Likewise.
3365         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
3366         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3367         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3368         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
3369         mips_gimplify_va_arg_expr): Likewise.
3370         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3371         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
3372         add_compiler_branch_island): Likewise.
3373         * config/s390/s390.c (s390_va_start): Likewise.
3374         * config/sh/sh.c (sh_va_start): Likewise.
3375         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3376         Likewise.
3377         * config/xtensa/xtensa.c (xtensa_va_start,
3378         xtensa_gimplify_va_arg_expr): Likewise.
3379
3380         * objc/objc-act.c (build_objc_string_object,
3381         build_objc_symtab_template, init_def_list, init_objc_symtab,
3382         init_module_descriptor, generate_static_references,
3383         build_selector_translation_table, get_proto_encoding,
3384         build_typed_selector_reference, build_selector_reference,
3385         build_next_objc_exception_stuff,
3386         build_method_prototype_list_template, generate_descriptor_table,
3387         generate_protocols, build_protocol_initializer,
3388         build_ivar_list_template, build_method_list_template,
3389         build_ivar_list_initializer, generate_ivars_list,
3390         generate_dispatch_table, generate_protocol_list,
3391         build_category_initializer, build_shared_structure_initializer,
3392         generate_shared_structures, handle_impent,
3393         generate_objc_image_info): Likewise.
3394
3395 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3396
3397         * cfglayout.c (duplicate_insn_chain): Remove references to
3398         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
3399         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
3400         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
3401         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
3402         and NOTE_INSN_LOOP_CONT.
3403         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
3404         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
3405         and NOTE_INSN_LOOP_CONT.
3406         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
3407         check_dbra_loop, loop_dump_aux): Remove references to removed notes
3408         and fields.
3409         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
3410         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
3411         references to removed notes and fields.
3412         (subtract_reg_term, ujump_to_loop_cont): Remove.
3413
3414 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
3415
3416         * doc/install.texi: Document that libcpp does not require
3417         Automake any longer.  Document that Automake 1.9.1 should
3418         work everywhere.
3419
3420 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
3421
3422         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
3423         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
3424         DWARF_DEBUGGING_INFO from choice-of-definition chain;
3425         restructure using C89 features (#elif, #error).
3426         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
3427         * config/sh/sh.h: Remove references to DWARF_DEBUG.
3428         * doc/invoke.texi: Remove references to DWARF version 1;
3429         clarify why -gdwarf-2<n> doesn't work.
3430
3431 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
3432
3433         * basic-block.h (BB_SET_PARTITION): Clear old value first.
3434         * cfg.c (clear_bb_flags): Don't clear partition setting.
3435         * ifcvt.c (find_if_case_1): Remove ??? comment.
3436
3437 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
3438
3439         PR target/17052
3440         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
3441         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
3442         current_function_stdarg in place of sysv_varargs_p.
3443         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
3444         sysv_varargs_p.
3445
3446 2004-08-24  Richard Henderson  <rth@redhat.com>
3447
3448         PR target/16298
3449         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
3450         random codes within CONST.
3451
3452 2004-08-24  James E Wilson  <wilson@specifixinc.com>
3453
3454         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
3455         -freorder-blocks-and-partition.
3456
3457 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3458
3459         PR middle-end/17044
3460         * tree-ssa-threadupdate.c (redirection_data): Make static.
3461         (thread_block): Use ggc_alloc_cleared to allocate struct
3462         redirection_data.  Don't free elements in redirection_data.
3463
3464 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3465
3466         * config/mips/predicates.md (small_data_pattern): Match prefetches.
3467
3468 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3469
3470         PR tree-optimization/17016
3471         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3472         number_of_iterations_exit): Use POINTER_TYPE_P instead
3473         of testing for POINTER_TYPE.
3474
3475 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3476
3477         * tree-ssa-loop-ivcanon.c: New file.
3478         * tree-ssa-loop-manip.c (create_iv): New function.
3479         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
3480         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
3481         * cfgloop.c (mark_single_exit_loops): New function.
3482         (verify_loop_structure): Verify single-exit loops.
3483         * cfgloop.h (struct loop): Add single_exit field.
3484         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
3485         (mark_single_exit_loops): Declare.
3486         (tree_num_loop_insns): Declare.
3487         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
3488         (duplicate_loop_to_header_edge): Use it.
3489         * common.opt (fivcanon): New flag.
3490         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
3491         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
3492         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
3493         (bsi_insert_on_edge_immediate): New function.
3494         * tree-flow.h (bsi_insert_on_edge_immediate,
3495         canonicalize_induction_variables, tree_unroll_loops_completely,
3496         create_iv): Declare.
3497         * tree-optimize.c (init_tree_optimization_passes): Add
3498         pass_iv_canon and pass_complete_unroll.
3499         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
3500         * tree-scalar-evolution.c (get_loop_exit_condition,
3501         get_exit_conditions_rec, number_of_iterations_in_loop,
3502         scev_initialize): Use single_exit information.
3503         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
3504         missing assumptions.
3505         (loop_niter_by_eval):  Return number of iterations as unsigned
3506         int.
3507         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
3508         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
3509         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
3510         New passes.
3511         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
3512         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
3513         the defining statement is ready.
3514         * tree-vectorizer.c (vect_create_iv_simple): Removed.
3515         (vect_create_index_for_array_ref, vect_transform_loop_bound):
3516         Use create_iv.
3517         (vect_transform_loop_bound): Use single_exit information.
3518         (vect_analyze_loop_form): Cleanup bogus tests.
3519         (vectorize_loops): Do not call flow_loop_scan.
3520         * tree.h (may_negate_without_overflow_p): Declare.
3521         * fold-const.c (may_negate_without_overflow_p): Split out from ...
3522         (negate_expr_p): ... this function.
3523         (tree_expr_nonzero_p): Handle overflowed constants correctly.
3524         * doc/invoke.texi (-fivcanon): Document.
3525         * doc/passes.texi: Document canonical induction variable creation.
3526
3527 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3528
3529         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
3530         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
3531         using the mode of the operand to decide between them.
3532         * config/mips/mips.md (MOVECC): New mode macro.
3533         (ccreg): New mode attribute.
3534         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
3535         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
3536         (mov[sd]icc): Redefine using :GPR.
3537
3538 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3539
3540         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
3541         (mips_prefetch_cookie): New function.
3542         * config/mips/mips.c (print_operand_address): Fix handling of
3543         ADDRESS_CONST_INT.
3544         (mips_emit_prefetch): Delete.
3545         (mips_prefetch_cookie): New function.
3546         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
3547         mode of QImode for the address_operand.  Use mips_prefetch_cookie
3548         to calculate the first "pref" operand.
3549         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
3550         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
3551
3552 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
3553
3554         * arm.md: Include predicates.md.
3555         * predicates.md: New file.
3556         * arm.c (s_register_operand, arm_hard_register_operand)
3557         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
3558         (arm_immediate_operand, arm_neg_immediate_operand)
3559         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
3560         (arm_add_operand, arm_addimm_operand, arm_not_operand)
3561         (offsettable_memory_operand, alignable_memory_operand)
3562         (arm_reload_memory_operand, arm_float_rhs_operand)
3563         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
3564         (index_operand, shiftable_operator, logical_binary_operator)
3565         (shift_operator, equality_operator, arm_comparison_operator)
3566         (minmax_operator, cc_register, dominant_cc_register)
3567         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
3568         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
3569         (const_shift_operand, load_multiple_operation)
3570         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
3571         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
3572         (cirrus_register_operand, cirrus_fp_register)
3573         (cirrus_shift_const): Delete, replaced with equivalents in
3574         predicates.md.
3575         (shift_op): Handle ROTATE.
3576         * arm-protos.h: Delete declarations for above.
3577         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
3578         * t-arm (MD_INCLUDES): Add predicates.md.
3579         (s-preds): Depends on MD_INCLUDES.
3580
3581 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3582
3583         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
3584         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
3585         patterns.  Redefine using :GPR.  Give the match_operator a mode.
3586         Use '%2' rather than '%z2' for operand 2.
3587
3588 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3589
3590         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
3591         attribute.
3592
3593 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3594
3595         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
3596         of internal patterns.
3597         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
3598         Redefine using :P.
3599         (tablejump): Use expand_binop to calculate address.  Adjust names
3600         of internal patterns.
3601         (tablejump[sd]i): Renamed from tablejump_internal[12].
3602         Redefine using :P.
3603         (tablejump_mips16[12]): Delete.
3604
3605 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3606
3607         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
3608         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
3609         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
3610         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
3611         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
3612
3613 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3614
3615         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
3616         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
3617         using :GPR.
3618         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
3619         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
3620         (*branch_equality[sd]i_inverted): Likewise
3621         branch_equality{,_di}_inverted.
3622         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
3623         Redefine using :GPR.
3624
3625 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
3626
3627         * rtl.def: Reorganize, placing all codes used only in machine
3628         descriptions at the end.
3629
3630         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
3631         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
3632         rtx_name, rtx_format arrays by direct reference to rtl.def,
3633         first undefining GENERATOR_FILE.  Define enum insn_note and
3634         note_insn_name array by direct reference to insn-notes.def.
3635         (adjust_field_rtx_def): Remove local definition of rtx_name.
3636         Use symbolic names for insn notes.
3637         * Makefile.in (gengtype.o): Update dependencies.
3638
3639 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
3640
3641         * basic-block.h (struct basic_block_def): Reorder fields to
3642         eliminate interior padding.  Remove 'partition' field.
3643         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
3644         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
3645         (BB_COPY_PARTITION): New macros.
3646         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
3647         Replace all references to the 'partition' field of a basic
3648         block with new macros.
3649
3650         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
3651         * final.c (final_scan_insn): Don't handle it.
3652         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
3653         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
3654         * sched-rgn.c (sched_is_disabled_for_current_region_p):
3655         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
3656
3657 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
3658
3659         * c-decl.c (c_init_decl_processing): Adjust
3660         build_common_tree_nodes call.
3661         * expmed.c (const_mult_add_overflow_p): Use
3662         build_distinct_type_copy.
3663         * stor-layout.c (early_type_list): Remove.
3664         (layout_type): Don't append to early_type_list.
3665         (initialize_sizetypes): Add signed_p argument.
3666         (set_sizetype): Overwrite the stub type nodes directly.
3667         * tree.c (copy_node_stat): Clear a type's value cache here ...
3668         (build_distinct_type): ... not here.
3669         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
3670         * tree.h (initialize_sizetypes): Add signed_p argument.
3671         (build_common_tree_nodes): Likewise.
3672
3673         * objc/objc-act.c (get_static_reference): Use
3674         build_variant_type_copy.
3675         (get_protocol_reference): Likewise.
3676         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
3677
3678 2004-08-24  Richard Henderson  <rth@redhat.com>
3679             Andrew Pinski  <apinski@apple.com>
3680
3681         * gimplify.c (gimplify_array_ref_to_plus): Delete.
3682         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
3683         for ARRAY_REF.
3684
3685         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
3686         ARRAY_REF also to get to the STRING_CST.
3687
3688 2004-08-24  Paul Brook  <paul@codesourcery.com>
3689
3690         * config/arm/arm.c (arm_override_options): Update error message.
3691         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
3692         TARGET_HARD_FLOAT_ABI.
3693         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
3694         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
3695
3696 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3697
3698         PR target/17093
3699         * config/m32r.md (movsi_sda): Add SI mode specification to
3700         UNSPEC.
3701
3702 2004-08-24  Nick Clifton  <nickc@redhat.com>
3703
3704         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
3705         of seth_add3_operand.
3706
3707 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
3708
3709         * Makefile.in (PROTO_OBJS): Add errors.o.
3710         * protoize.c (fancy_abort): Remove.
3711         * mips-tfile.c (fancy_abort): Add parameters.
3712
3713 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
3714
3715         * doc/trouble.texi (C++ misunderstandings): Fix example code.
3716
3717 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
3718
3719         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
3720         (host-default.o): Add dependency on HOOKS_H.
3721         * config/x-linux: Likewise.
3722         * config/x-solaris: Likewise.
3723         * config/i386/x-mingw32: Likewise.
3724         * config/rs6000/x-darwin: Likewise.
3725
3726 2004-08-23  James E Wilson  <wilson@specifixinc.com>
3727
3728         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
3729         DEF_REG_NOTE.
3730
3731 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
3732
3733         PR c/14492
3734         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
3735
3736 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
3737
3738         * cfg.c (check_bb_profile): Fix typos.
3739         * function.c (assign_parm_is_stack_parm): Likewise.
3740         * tree-nested.c: Likewise.
3741
3742 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
3743
3744         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
3745         Remove TYPECODE.
3746         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
3747
3748 2004-08-23  Eric Christopher  <echristo@redhat.com>
3749
3750         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
3751         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
3752         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
3753         * target.h: Ditto.
3754         * hooks.h: Include machmode.h.
3755         (hook_bool_mode_false): Declare.
3756         * hooks.c (hook_bool_mode_false): Define.
3757         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
3758         * stor-layout.c (layout_type): Ditto.
3759         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
3760         Define to target macro.
3761         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
3762         * config/arm/arm.c: Ditto. Use.
3763         * config/arm/arm.h: Ditto.
3764         * config/arm/arm-protos.h: Ditto.
3765         * config/i386/i386.c: Ditto.
3766         * config/i386/i386.h: Ditto.
3767         * config/rs6000/rs6000.c: Ditto.
3768         * config/rs6000/rs6000.h: Ditto.
3769         * config/sh/sh.c: Ditto.
3770         * config/sh/sh.h: Ditto.
3771         * config/sh/sh-protos.h: Ditto.
3772         * config/sh/sh.md: Use.
3773         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
3774         to TARGET_VECTOR_MODE_SUPPORTED_P.
3775
3776 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
3777
3778         * Makefile.in (BUILD_ERRORS): Set to build-errors.
3779         (errors.o): New target for host.
3780         (build-errors.o): New target for build.
3781         (genobjs): Replace errors.o with build-errors.
3782         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
3783         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
3784         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
3785         (fix-header.o): Add errors.h
3786         * collect2.c (fancy_abort): Add parameters.
3787         * collect2.h (fancy_abort): Don't declare.
3788         * errors.h (fancy_abort): Don't declare.
3789         * errors.c: Include either bconfig.h or config.h.
3790         (fancy_abort): Trim filename.
3791         * fix-header.c (v_fatal, fatal): Remove.
3792         (progname): Remove definition.
3793         (main): Set progname here.
3794         * gcc.c (fancy_abort): Add parameters.
3795         * gcc.h (fancy_abort): Remove declaration.
3796         * gcov.c (fancy_abort): Remove.
3797         * rtl.h (fancy_abort): Don't declare.
3798         (abort): Don't define.
3799         * tree.h (fancy_abort): Don't declare.
3800         (abort): Don't define.
3801         * system.h (fancy_abort): Declare.
3802         (abort): Define to fancy_abort.
3803         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
3804
3805         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
3806         (usize_type, ubitsizetype): Remove.
3807         * stor-layout.c (set_sizetype): Don't initialize usizetype,
3808         ubitsizetype.
3809         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
3810
3811         * tree.h (build_distinct_type_copy): New.
3812         (build_type_copy): ... here.  Rename to ...
3813         (build_variant_type_copy): ... here.
3814         * tree.c (build_qualified_type): Rename build_type_copy call.
3815         (build_distinct_type_copy): New, broken out of ...
3816         (build_type_copy): ... here.  Rename to ...
3817         (build_variant_type_copy): ... here.  Use
3818         build_distinct_type_copy.
3819         (build_common_tree_nodes_2): Rename build_type_copy call.
3820         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
3821         call.
3822         (handle_packed_attribute, handle_unused_attribute,
3823         handle_transparanet_union_attribute, handle_aligned_attribute,
3824         handle_deprecated_attribute): Likewise.
3825         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
3826         Likewise.
3827         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
3828         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
3829         build_distinct_type_copy.
3830
3831 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
3832
3833         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
3834         attribute.
3835
3836 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
3837
3838         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
3839         loads and stores.
3840         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
3841         formerly unnamed patterns.  Redefine using :P for the address.  Remove
3842         explicit length attributes.
3843
3844 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3845
3846         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
3847         New functions.
3848         (single_reachable_address): Use them.
3849         (schedule_sm): Add dump.
3850         (is_call_clobbered_ref): New function.
3851         (determine_lsm_reg): Check whether the reference is call clobbered.
3852         Only work for gimple_reg_type values.
3853
3854 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
3855
3856         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
3857         $31 store insns.  Redefine using :GPR.
3858
3859 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
3860
3861         * config/mips/mips.md (P): New mode macro.
3862         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
3863         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
3864         Add mode attributes.
3865
3866 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
3867
3868         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
3869         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
3870         later constants to cover the gap.
3871         (load, store): New mode attributes.
3872         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
3873         Use new unspec constants.
3874
3875 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
3876
3877         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
3878         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
3879         to use register_operand rather than uns_arith_operand as the predicate
3880         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
3881         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
3882         Redefine using :GPR.  Make same predicate change here.  Extend the
3883         commutativity of operands 1 and 2 from the SImode version to the
3884         DImode one.
3885         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
3886         but with no predicate changes.
3887         (*nor[sd]i3): Redefine using :GPR.
3888
3889 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3890
3891         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
3892         noreturn functions.
3893
3894 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
3895
3896         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
3897         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
3898         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
3899         rather than "%z2" (with a fake const0_rtx for operand 2).
3900         (ffs[sd]i2): Redefine using :GPR.
3901         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
3902
3903 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>