OSDN Git Service

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