OSDN Git Service

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