OSDN Git Service

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