OSDN Git Service

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