OSDN Git Service

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