OSDN Git Service

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