OSDN Git Service

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