OSDN Git Service

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