OSDN Git Service

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