OSDN Git Service

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