OSDN Git Service

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