OSDN Git Service

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