OSDN Git Service

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