OSDN Git Service

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