OSDN Git Service

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