OSDN Git Service

2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2             Zack Weinberg  <zack@codesourcery.com>
3
4         * alias.c (find_base_decl): Remove unreachable case '3' block.
5         * expr.c (safe_from_p): Abort if passed a type.
6         * tree-gimple.c (recalculate_side_effects): Abort if passed
7         anything other than an expression.
8         * tree-ssa-pre.c (phi_translate): Return expr immediately if
9         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
10         Abort on un-handled tree classes.
11         (valid_in_set): Likewise.
12         * tree.c (tree_code_class_strings): New static data.
13
14         * tree.h (enum tree_code_class): New.
15         (tree_code_class_strings): Declare.
16         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
17         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
18         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
19         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
20         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
21
22         * tree.def, c-common.def, objc/objc-tree.def: Use
23         tree_code_class enumeration constants instead of code letters.
24
25         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
26         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
27         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
28         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
29         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
30         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
31         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
32         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
33         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
34         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
35         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
36         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
37         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
38         Update to match.
39
40         * LANGUAGES: Add note about change.
41
42 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
43
44         PR tree-optimization/17319
45         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
46         examine pointers on the LHS of an assignment.
47         (collect_points_to_info_r): Handle RETURN_EXPR.
48
49 2004-09-17 Jeff Law  <law@redhat.com>
50
51         * tree-ssa-dom.c (const_and_copies_stack): New.
52         (dom_walk_block_data): Remove const_and_copies field.
53         (record_const_or_copy): No longer need to pass in varray_type *.
54         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
55         Callers updated.
56         (record_equality): Similarly.
57         (restore_vars_to_original_value): Similarly.  Revamp to use new
58         single global stack rather than per-block stacks.
59         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
60         (thread_across_edge): Remove now unused parameters.
61         (dom_opt_initialize_block_local_data): No longer test the block
62         local CONST_AND_COPIES.
63         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
64
65 2004-09-17  Jan Hubicka  <jh@suse.cz>
66
67         PR tree-optimization/17509
68         * tree-optimize.c (update_inlined_to_pointers): New function.
69         (tree_rest_of_compilation): Use it.
70
71 2004-09-17  Devang Patel  <dpatel@apple.com>
72
73         * dbxout.c (get_lang_number): New.
74         (dbxout_init): Include lang number in N_SO  stab.
75         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
76         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
77
78 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
79
80         PR tree-optimization/17273
81         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
82         replacement is a constant.
83
84 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
85
86         * c-tree.h (enum c_typespec_keyword): New.
87         (struct c_declspecs): Adjust description of "type".  Remove
88         specbits, explicit_int_p and explicit_char_p.  Rename
89         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
90         short_p, signed_p, unsigned_p and complex_p.
91         (finish_declspecs): New.
92         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
93         typename): Call finish_declspecs.
94         * c-decl.c (finish_declspecs): New.
95         (declspecs_add_type): Check for combinations which cannot occur in
96         valid specifier lists.  Update comments.
97         (shadow_tag_warned): Remove checks done in finish_declspecs.
98         Don't report useless type name if type defaulted to int.
99         (grokdeclarator): Remove checks and actions done in
100         finish_declspecs.  Don't allow for type being NULL.  Update for
101         datastructures changes.  Initialize decl_attr.
102         (build_null_declspecs, quals_from_declspecs): Update for
103         datastructures changes.
104
105 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
106
107         * doc/extend.texi: Fix duplicated word.
108
109 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
110
111         * doc/invoke.texi: Remove stray explanation on
112         -freduce-all-givs and -fmove-all-movables.
113
114 2004-09-17  James Morrison  <phython@gcc.gnu.org>
115
116         * doc/cfg.texi: Use @smallexample.
117         * doc/md.texi: Likewise.
118         * doc/tree-ssa.texi: Likewise.
119         * doc/extend.texi: Likewise.  Use @r{} in comments.
120         * doc/trouble.texi: Use @r{} in comments.
121
122 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
123
124         * configure.ac (gcc_cv_gld_version): Handle whitespace before
125         "VERSION=".
126         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
127         * configure: Regenerate.
128
129 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
130
131         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
132         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
133         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
134         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
135         slashes in substitutions.
136         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
137
138 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
139
140         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
141         gimplify.c, lambda-code.c, optabs.c, predict.c,
142         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
143         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
144         conventions.
145
146 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
147
148         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
149         doc/extend.texi, doc/install.texi, doc/invoke.texi,
150         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
151         doc/trouble.texi: Use @option around options.
152
153 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
154
155         * Makefile.in (gen-protos.o): Depend on errors.h.
156
157 2004-09-17  Steven Bosscher  <stevenb@suse.de>
158
159         PR tree-optimization/17513
160         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
161         for successors of the entry block.
162
163 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
164
165         PR rtl-optimization/15187
166         * ifcvt.c (noce_try_cmove_arith): Exit early if total
167         insn_rtx_cost of both branches > BRANCH_COST
168
169 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
170
171         PR tree-optimization/17528
172         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
173         erase the may-alias set for a tag when merging it with
174         another.
175
176 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
177
178         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
179         for 32-bit TARGET_SHMEDIA.
180         (call_value): Likewise.
181
182 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
183
184         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
185         test apply only to TREE_STATIC and DECL_EXTERNAL.
186
187 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
188
189         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
190         * basic-block.h (get_dominated_by_region): Declare.
191         * dominance.c (get_dominated_by_region): New function.
192         * tree-cfg.c: Include cfglayout.h.
193         (tree_duplicate_bb): Duplicate also phi nodes.
194         (struct ssa_name_map_entry): New type.
195         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
196         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
197         allocate_ssa_names, rewrite_to_new_ssa_names_def,
198         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
199         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
200         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
201         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
202         rewrite_to_new_ssa_names, allocate_ssa_names,
203         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
204         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
205         (copy_loop_headers): Use tree_duplicate_sese_region.
206
207 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
208
209         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
210
211 2004-09-16 Jeff Law  <law@redhat.com>
212
213         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
214         (rewrite_block_data): Remove, no longer used.
215         (rewrite_initialize_block_local_data): Remove, no longer used.
216         (rewrite_initialize_block): Mark parameters as unused as needed.
217         Change references to the block local block_defs to be block_defs_stack.
218         Push a marker onto the block_defs_stack.
219         (ssa_rewrite_initialize_block): Similarly.
220         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
221         (ssa_register_new_def): No longer needs varray argument.  Use
222         block_defs_stack instead.  No longer handle possibly null block_defs
223         varray.  Reverse order of items we push on the stack to make it
224         easier to identify our marker.
225         (register_new_def): No longer handle possibly null block_defs
226         varray.
227         (rewrite_finalize_block): Revamp to look for markers in the global
228         block_defs_stack varray rather than wiping a block local varray.
229         Mark arguments as unused as needed.
230         (ssa_rewrite_finalize_block): Similarly.
231         (rewrite_into_ssa): Update initialization of dom walker structure
232         to reflect that we don't need block local data anymore.  Initialize
233         the block_defs_stack varray.
234         (rewrite_ssa_into_ssa): Similarly.
235         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
236         (struct dom_walk_data): Kill block_defs field.
237         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
238         (thread_across_edge): Use the global block_defs_stack instead of
239         the old block_defs varray.
240         (dom_opt_initialize_block_local_data): Update now that we don't have
241         block_defs field to check anymore.
242         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
243         (restore_currdefs_to_original_value): Use the new block_defs_stack
244         instead of a block local varray.
245         (dom_opt_finalize_block): Similarly.
246         (record_equivalencs_from_phis): Similarly.
247         (optimize_stmt, register_definitions_for_stmt): Similarly.
248
249 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
250
251         PR tree-optimization/17517
252         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
253         coalesce same-root variables without checking for abnormal PHI usage.
254
255 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
256
257         * cfgloop.h (duplicate_loop):  Add prototype.
258         * cfgloopmanip.c (duplicate_loop): Make non-static.
259         * lambda-code.c (perfect_nestify): Factor out test whether
260         we can handle this loop into separate function.
261         Call it.
262         (can_convert_to_perfect_nest): New function.
263         (replace_uses_of_x_with_y): Add modify_stmt call.
264         * tree-loop-linear.c (linear_transform_loops): Call
265         rewrite_into_loop_closed_ssa and free_df.
266
267 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
268
269         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
270         loop invariant as well.
271         (perfect_nestify): new function.
272         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
273         upper bounds, and steps.
274         Set outerinductionvar properly.
275         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
276         parameters.
277         Return NULL if we need a perfect loop and can't make one.
278         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
279         (not_interesting_stmt): New function.
280         (phi_loop_edge_uses_def): Ditto.
281         (stmt_uses_phi_result): Ditto.
282         (stmt_is_bumper_for_loop): Ditto.
283         (perfect_nest_p): Ditto.
284         (nestify_update_pending_stmts): Ditto.
285         (replace_uses_of_x_with_y): Ditto.
286         (stmt_uses_op): Ditto.
287         (perfect_nestify): Ditto.
288         * lambda-mat.c (lambda_matrix_id_p): New function.
289         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
290         * lambda.h: Update prototypes.
291         * tree-loop-linear (linear_transform_loop): Use new
292         perfect_nest_p. Detect and ignore identity transform.
293         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
294
295 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
296
297         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
298         Gather also strides of accessed data.  Pass in the data references
299         array.
300         (try_interchange_loops): Add a new heuristic for handling the temporal
301         locality.  Pass in the data references array.
302         (linear_transform_loops): Pass the data references array to
303         try_interchange_loops.
304
305 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
306
307         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
308
309 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
310
311         * doc/c-tree.texi (Classes): Remove index entries for
312         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
313
314 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
315
316         * fold-const.c (fold): Fold difference of addresses.
317         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
318         get_inner_reference.
319         * tree-ssa-loop-ivopts.c (peel_address): Removed.
320         (ptr_difference_const): Moved to fold-const.c.
321         (split_address_cost): Use get_inner_reference instead of peel_address.
322         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
323         * tree.h (ptr_difference_const): Export.
324
325         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
326         variable type to the dump.  Fix indentation.
327         (idx_find_step): Handle nonconstant array_ref_element_size and
328         array_ref_low_bound.
329         (idx_record_use): Handle array_ref_element_size and
330         array_ref_low_bound.
331         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
332         statements correctly.
333         (get_computation_at, iv_value): Do not unshare expressions here.
334         (rewrite_use_outer): Unshare the expression before it is emitted
335         to code.
336         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
337         Moved to tree.c.
338         * tree.c (unsigned_type_for, signed_type_for): Moved from
339         tree-ssa-loop-niter.c.  Use langhooks.
340         * tree.h (signed_type_for): Export.
341
342 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
343
344         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
345         prototype.
346
347 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
348
349         PR target/11572
350         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
351         Add two parameters to extra_includes.
352         (C_INCPATH_INIT): Remove.
353         * c-incpath.c (register_include_chains): Call extra_pre_includes
354         before adding the standard include directory.
355         Update call to extra_includes.
356         (!defined TARGET_EXTRA_INCLUDES): Update
357         hook_void_charptr_charptr_int and add !define
358         TARGET_EXTRA_PRE_INCLUDES.
359         (!define TARGET_EXTRA_INCLUDES): Define as
360         hook_void_charptr_charptr_int.
361         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
362         (target_c_incpath): Always declare.
363         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
364         empty function.
365         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
366         * config/darwin.h: (darwin_register_frameworks): Update for
367         the two new parameters.
368         (darwin_register_objc_includes): Add prototype.
369         (TARGET_EXTRA_PRE_INCLUDES): Define.
370         * config/darwin-c.c (darwin_register_objc_includes): New function.
371         (darwin_register_frameworks): Update for the two new parameters.
372         (target_c_incpath): Remove.
373         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
374         the compile line.
375         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
376         parameters.
377         (TARGET_EXTRA_PRE_INCLUDES): Document.
378
379         * gcc.c (spec_function): Add replace-outfile.
380         (replace_outfile_spec_function): New function.
381         * config/darwin.h (LINK_SPEC): Add replace
382         -lobjc with -lobjc-gnu if -fgnu-runtime is
383         supplied.
384         * invoke.texi (replace-outfile): Document.
385
386 2004-09-13  Jan Hubicka  <jh@suse.cz>
387
388         * predict.c (expr_expected_value, strip_builtin_expect): New function.
389         (tree_predict_by_opcode): Use it.
390         (tree_estimate_probability): Add, for now disabled,
391         strip_builtin_expect call.
392
393 2004-09-15  James E Wilson  <wilson@specifixinc.com>
394
395         PR target/17455
396         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
397         if current_function_decl is a sibcall.
398
399 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
400
401         * varasm.c (default_function_rdodata_section): Make sure to pass
402         along a decl for a link-once section.
403
404 2004-09-15  Richard Henderson  <rth@redhat.com>
405
406         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
407         warning with code disable.  Fix formatting.
408
409 2004-09-15  Steven Bosscher  <stevenb@suse.de>
410
411         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
412         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
413         after propagating into an ADDR_EXPR.
414
415 2004-09-15  Andrew Pinski  <apinski@apple.com>
416
417         PR rtl-opt/17427
418         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
419         Move it out of gcc_assert.
420
421 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
422
423         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
424         except.c, fold-const.c, function.c, langhooks.c, params.c,
425         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
426         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
427         for quoting in diagnostics going through pretty-print.c.  Use ''
428         for quoting in other diagnostic text.
429         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
430         translation.
431         * Makefile.in (langhooks.o): Update dependencies.
432         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
433         formats.
434
435 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
436
437         * configure.ac: Check for COMDAT support.  Robustify check for
438         SHF_MERGE support.
439         * configure: Regenerated.
440         * config.in: Likewise.
441         * langhooks-def.h (lhd_comdat_group): New function.
442         (LANG_HOOKS_COMDAT_GROUP): New macro.
443         (LANG_HOOKS_DECLS): Use it.
444         * langhooks.c (lhd_comdat_group): Define.
445         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
446         * output.h (named_section_flags): Make it a macro.
447         (named_section_real): New function.
448         (default_no_named_section): Add decl parameter.
449         (default_elf_asm_named_section): Likewise.
450         (default_coff_asm_named_section): Likewise.
451         (default_pe_asm_named_section): Likewise.
452         * target.h (gcc_target): Adjust type of named_section.
453         * varasm.c (named_section_flags): Rename to named_section_real.
454         Add decl parameter.
455         (default_no_named_section): Add decl parameter.
456         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
457         with the case that ASM_COMMENT_START is "@".
458         (default_coff_asm_named_section): Add decl parameter.
459         (default_pe_asm_named_section): Likewise.
460         * config/alpha/alpha.c (vms_asm_named_section): Add decl
461         parameter.
462         (unicosmk_asm_named_section): Likewise.
463         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
464         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
465         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
466         * config/cris/cris-protos.h (cris_target_asm_named_section):
467         Likewise.
468         * config/cris/cris.c (cris_target_asm_named_section):
469         Likewise.
470         * config/darwin/darwin-protos.h (darwin_asm_named_section):
471         Likewise.
472         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
473         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
474         * config/i386/i386-protos.h (i386_pe_asm_named_section):
475         Likewise.
476         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
477         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
478         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
479         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
480         Likewise.
481         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
482         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
483         * cp/cp-tree.h (cxx_comdat_group): Declare.
484         * cp/decl.c (cxx_comdat_group): New function.
485
486 2004-09-15  Jan Hubicka  <jh@suse.cz>
487
488         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
489         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
490
491         * tree-cfg.c (remove_bb): Release SSA defs.
492
493 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
494
495         * doc/tm.texi: Follow spelling conventions.
496
497 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
498
499         * tree-ssa-dom.c: Fix comment typos.
500
501 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
502
503         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
504         include ccr.
505         (ppc_fallback_frame_state): Save location of CR.
506
507 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
508
509         * expr.c (string_constant): Handle also read-only variables
510         initialized to string literals.
511
512         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
513         into memcpy (x, y, 1) if memcpy can be expanded inline.
514
515 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
516
517         PR tree-optimization/17468
518         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
519         definition inside a block precede uses.
520         * tree-tailcall.c (adjust_return_value): Emit statements in the
521         correct order.
522
523 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
524
525         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
526
527 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
528
529         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
530
531 2004-09-14 Jeff Law  <law@redhat.com>
532
533         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
534         (struct dom_walk_block_data): Remove avail_exprs member.
535         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
536         (lookup_avail_expr): No longer need to pass in address of
537         the block local available exprs stack.  All callers changed.
538         (simplify_cond_and_lookup_avail_expr): Similarly.
539         (simplify_switch_and_lookup_avail_expr): Similarly.
540         (get_eq_expr_value, record_cond): Likewise.
541         (record_dominating_conditions): Likewise.
542         (update_rhs_and_lookup_avail_expr): Likewise.
543         (record_equivalences_from_stmt): Likewise.
544         (dom_opt_initialize_block_local_data): No longer test state of
545         block local avail_exprs.
546         (dom_opt_initialize_block): Mark unwind point in the global
547         avail_expr stack.
548         (remove_expressions_from_table): Update to unwind to the
549         most recent unwind marker in the global avail_expr stack.
550         All callers changed.
551         (dom_opt_finalize_block): Mark unwind point in the global
552         avail_expr stack as needed.
553         (record_cond): Push elements into the global avail_exprs stack.
554
555         * tree-dfa.c (free_df_for_stmt): No longer static.
556         (free_df): Update comments.
557         * tree-flow.h (free_df_for_stmt): Prototype.
558         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
559         call release_defs.
560
561 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
562
563         PR tree-optimization/17252
564         * tree-ssa-alias.c (may_alias_p): Don't assume that a
565         pointer may not point to itself when using relaxed
566         aliasing rules.
567
568 2004-09-14  Richard Henderson  <rth@redhat.com>
569
570         PR middle-end/17397
571         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
572         while folding <ADDR_EXPR <INDIRECT_REF X>>.
573
574 2004-09-14  Andrew Pinski  <apinski@apple.com>
575
576         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
577         sets of the pointers but the aliasing sets of what they point to.
578
579 2004-09-14  Roger Sayle  <roger@eyesopen.com>
580
581         PR rtl-optimization/9771
582         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
583         conditional compilation in init_reg_sets_1.
584         (init_reg_sets_1): Let global_regs[i] take priority over the frame
585         (but not stack) pointer exceptions to regs_invalidated_by_call.
586         (globalize_reg): Globalizing a fixed register may need to update
587         regs_invalidated_by_call.
588
589 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
590
591         PR tree-optimization/15262
592         * tree-dfa.c (dump_variable): Also print the type of the
593         variable.
594         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
595         memory tags are of conflicting alias sets but have no aliased
596         symbols in common, add one tag to the alias set of the other.
597         (setup_pointers_and_addressables): Remove hack to deal with
598         programs with no aliased symbols.
599         (may_alias_p): Don't special case aggregate types.
600
601 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
602
603         PR c/15498
604         * doc/invoke.texi (Environment Variables): Correct example locale.
605
606 2004-09-14  Jan Hubicka  <jh@suse.cz>
607
608         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
609
610 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
611
612         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
613
614 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
615
616         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
617         restrict_p.
618         (struct c_declarator): Change u.array.quals and pointer_quals to
619         int.  Add u.array.attrs.
620         (quals_from_declspecs): New.
621         * c-decl.c (quals_from_declspecs): New.
622         (shadow_tag_warned): Give more specific message for useless type
623         qualifiers.
624         (build_array_declarator, set_array_declarator_inner,
625         grokdeclarator, make_pointer_declarator, build_null_declspecs,
626         declspecs_add_qual): Update for changed structures.
627
628 2004-09-14  Jeff Law  <law@redhat.com>
629
630         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
631         to a global varray.
632         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
633         (dom_opt_initialize_block_local_data): No longer test state
634         of stmts_to_rescan.
635         (dom_opt_finalize_block): Update due to change in scope of
636         stmts_to_rescan.
637         (optimize_stmt): Similarly.
638
639 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
640
641         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
642         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
643         comment typos.  Follow spelling conventions.
644
645 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
646
647         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
648         config/i386/predicates.md, config/sparc/sparc.c: Follow
649         spelling conventions.
650
651 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
652             Steven Bosscher  <stevenb@suse.de>
653
654         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
655         * basic-block.h (struct reorder_block_def): Add copy_number field.
656         * cfgloop.h (biv_p): Declare.
657         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
658         * common.opt (fsplit-ivs-in-unroller): New flag.
659         * loop-iv.c (biv_p): New function.
660         * loop-unroll.c: Include hashtab.h and recog.h.
661         (struct iv_to_split, struct split_ivs_info): New types.
662         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
663         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
664         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
665         insert_base_initialization, split_iv): New functions.
666         (peel_loop_completely, unroll_loop_constant_iterations,
667         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
668         Use them.
669         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
670
671 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
672
673         * tree-cfg.c (thread_jumps): Update dominators correctly in
674         case destination of threaded edge dominates its source.
675
676 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
677
678         * unroll.c: Removed.
679         * loop.h: Removed.
680         * Makefile.in (LOOP_H, unroll.o): Removed.
681         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
682         dependency.
683         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
684         reference.
685         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
686         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
687         * loop.c: Do not include loop.h.
688         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
689         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
690         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
691         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
692         struct loop_regs, struct loop_movables, struct loop_info): Moved
693         from loop.h.
694         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
695         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
696         find_common_reg_term, loop_iterations, final_giv_value): Moved
697         from unroll.c.
698         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
699         loop_dump_stream, for_each_insn_in_loop, express_from,
700         extend_value_for_giv, loop_iv_add_mult_emit_before,
701         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
702         loop_insn_first_p, get_condition_for_loop,
703         loop_insn_emit_before, loop_insn_hoist,
704         loop_insn_sink): Made static.
705         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
706         reference.
707         (strength_reduce): Do not call unroller.
708         (record_giv): Do not initialize unrolled field.
709         (prescan_loop): Do not set loop_info->preconditioned.
710         * passes.c: Do not include loop.h.
711         (rest_of_handle_loop_optimize): Do not call unroller.
712         * predict.c: Do not include loop.h.
713         * rtl.h (NOTE_PRECONDITIONED): Removed.
714         * stmt.c: Do not include loop.h.
715         * toplev.c: Do not include loop.h.
716         (process_options): Do not handle flag_old_unroll_loops.
717
718         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
719         Documentation removed.
720         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
721
722 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
723
724         * Makefile.in (STAGE1_CHECKING): New variable.
725         (stage1_build): Use it.
726         * tree-ssa.c (verify_ssa): Preserve state of dominance
727         information.
728
729 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
730
731         * config/i386/i386.c (output_fp_compare): Add generation
732         of ftst instruction.
733         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
734         Use output_fp_compare () function.
735         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
736         (fix_truncdi_memory): Remove operands[5] copy.
737
738 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
739
740         * config/m32r/m32r.md, config/m68k/m68kelf.h,
741         config/mcore/mcore.md, config/rs6000/linux64.h,
742         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
743         typos.
744
745 2004-09-13  James E Wilson  <wilson@specifixinc.com>
746
747         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
748         * gen-protos.c: Include errors.h.
749         (progname): Delete.
750
751 2004-09-14  Jan Hubicka  <jh@suse.cz>
752
753         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
754         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
755         (predict_loops): Use number_of_iterations_exit to predict
756         number of iterations on trees.
757
758 2004-09-13  Dale Johannesen  <dalej@apple.com>
759
760         PR 17408
761         PR 17409
762         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
763         objects declared extern.
764
765 2004-09-14  Paul Brook  <paul@codesourcery.com>
766
767         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
768         HOST_WIDE_INT.
769
770 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
771
772         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
773         Only use TYPE_BINFO for aggregates.
774
775 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
776
777         * expmed.c (synth_mult): Initialize latency.  Check cost before
778         checking ops count.
779
780 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
781
782         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
783         add_call_clobber_ops and add_call_read_ops.
784         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
785         the number of vdefs and vuses inserted based on analysis of global
786         variables across calls.  * tree-dfa.c (find_referenced_vars):
787         Needed to reset static var maps before each function is compiled.
788         * cgraphunit.c:
789         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
790         static_vars_info,functions_to_static_vars_info,module_statics_escape,
791         all_module_statics,searchc_env,dfs_info): New fields to support
792         analysis of static global variables.
793         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
794         cgraph_reset_static_var_maps, get_global_static_vars_info,
795         get_global_statics_not_read, get_global_statics_not_written,
796         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
797         check_rhs_var, check_lhs_var, get_asm_expr_operands,
798         process_call_for_static_vars, scan_for_static_refs,
799         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
800         clear_static_vars_maps, cgraph_propagate_bits,
801         cgraph_characterize_statics): New. Functions to support analysis
802         of static global variables.
803         (cgraph_mark_local_and_external_functions): Renamed from:
804         (cgraph_mark_local_functions)
805         (cgraph_expand_all_functions): Remove call to
806         cgraph_mark_local_and_external_functions.
807         (cgraph_optimize): Added driver to analyze static variables whose
808         scope is within the compilation unit.  * cgraph.h (struct
809         cgraph_local_info, GTY): Added statics_read, statics_written,
810         local, calls_read_all, calls_write_all, for_functions_valid.
811         (struct cgraph_node): Added next_cycle.  * cgraph.c
812         (dump_cgraph_node): Added print routines for new fields.  *
813         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
814         list.
815
816 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
817
818         * c-decl.c (grokdeclarator): Correct comments about where storage
819         class specifiers are rejected by grammar and add corresponding
820         asserts.  Diagnose typedefs and parameters declared inline.
821         Change warning for inline main to a pedwarn.  Only diagnose inline
822         main if hosted.
823         (declspecs_add_scspec): Allow duplicate "inline".
824
825 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
826
827         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
828         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
829
830 2004-09-13  Richard Henderson  <rth@redhat.com>
831
832         PR 17436
833         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
834         (tree_type): Replace spare with contains_placeholder_bits.
835         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
836         make static.  Remove seen_types list.
837         (type_contains_placeholder_p): New.
838
839 2004-09-13  James E Wilson  <wilson@specifixinc.com>
840
841         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
842         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
843         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
844         bdesc_arrays instead of mips_bdesc.
845         (mips_init_builtins): Likewise.
846         * config/mips/mips.h (TARGET_SB1): New.
847         (HAVE_SQRT_P): Delete.
848         * config/mips/mips.md (divide_condition): Support V2SF.
849         (sqrt_condition, recip_condition): New.
850         (div<mode>3): Use ANYF instead of SCALARF.
851         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
852         MODE.
853         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
854         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
855         instead of MODE.
856         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
857         instead of SCALARF.  Use UNITMODE instead of MODE.
858
859 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
860
861         * config.in: Regenerate after removal of libbanshee.
862
863 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
864
865         PR tree-optimization/17400
866         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
867         coalesce partitions when one occurs in an abnormal PHI.
868
869 2004-09-13  Andrew Pinski  <apinski@apple.com>
870
871         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
872         name to _new_size.
873
874 2004-09-13  Richard Henderson  <rth@redhat.com>
875
876         PR inline-asm/6806
877         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
878         (cselib_invalidate_rtx_note_stores): New.
879         (cselib_record_sets, cselib_process_insn): Update to match.
880         * cselib.h (cselib_invalidate_rtx): Declare.
881         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
882
883 2004-09-13  Richard Henderson  <rth@redhat.com>
884
885         PR tree-opt/10528
886         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
887         after copying its argument.
888
889 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
890
891         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
892         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
893         in diagnostics.  Use %' for English apostrophes.
894         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
895         (pedwarn_c90, pedwarn_c99): Use it.
896         * c-decl.c (lookup_label): Quote label name in diagnostic.
897         * c-parse.in (yyprint): Use ' instead of ` for left quote.
898         * c-typeck.c (warn_for_assignment): Likewise.
899
900 2004-09-13  Jan Hubicka  <jh@suse.cz>
901
902         * i386.c (x86_schedule): New global variable.
903         (override_options): Disable scheduling when not supported.
904         * i386.h (x86_schedule): Declare.
905         (TARGET_SCHEDULE): New macro.
906
907 2004-09-12  Richard Henderson  <rth@redhat.com>
908
909         PR c++/16254
910         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
911         * tree.c, tree.h (has_cleanups): Remove.
912
913 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
914
915         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
916         arguments of the phi nodes correctly.
917
918 2004-09-12  Jan Hubicka  <jh@suse.cz>
919
920         * ggc-common.c (cmp_statistics): Fix sorting.
921
922 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
923
924         PR target/16795
925         * expmed.c (expand_divmod): If cheap power of 2 divide is
926         available, use it for negative constant as well.
927
928 2004-09-12  Andrew Pinski  <apinski@apple.com>
929
930         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
931         size of 0.
932
933         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
934
935 2004-09-12  Richard Henderson  <rth@redhat.com>
936
937         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
938         or minus one.
939         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
940         post-reload, and scratch NULL.
941         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
942         (x86_shift_adj_2): Use ix86_expand_clear.
943         (ashldi3): Remove CMOVE expansion difference.
944         (ashldi3_1): Remove.
945         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
946         add constraints for immediates.  New peephole for split-with-temp.
947         Run splitter after peep2 pass.
948         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
949         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
950         (setcc_2): Rename with *.
951         * config/i386/predicates.md (reg_or_pm1_operand): New.
952         (ashldi_input_operand): New.
953
954 2004-09-12  Richard Henderson  <rth@redhat.com
955
956         * print-rtl.c (print_decl_name): New.
957         (print_mem_expr): Use it.
958
959 2004-09-12  Richard Henderson  <rth@redhat.com
960
961         PR 17186, part deux
962         * except.c (sjlj_emit_function_exit): Fix logic locating
963         sjlj_exit_after in final block.
964
965 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
966
967         * common.opt: Remove flags -fmove-all-movables and
968         -freduce-all-givs.
969         * loop-invariant.c (find_invariants_to_move):
970         Remove all uses of flag_move_all_movables.
971         * loop.c (move_movables): Remove all uses of
972         flag_move_all_movables.
973         (strength_reduce): Remove all uses of
974         flag_reduce_all_givs.
975         * doc/invoke.texi: Remove documentation of flags
976         -fremove-all-movables and -freduce-all-givs.
977
978 2004-09-11  Roger Sayle  <roger@eyesopen.com>
979
980         PR middle-end/17411
981         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
982         change. elt->type may be a floating point type, so use fold_convert.
983
984 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
985
986         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
987         the thing referenced as used, not the stub itself.
988
989 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
990
991         * c-tree.h (enum c_storage_class): New.
992         (struct c_declspecs): Add storage_class, inline_p and thread_p.
993         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
994         declarations and "auto" or "register" in file scope empty
995         declarations.  Give more specific warnings for other cases of
996         storage class specifiers in empty declarations.
997         (grokdeclarator): Update for new structures.  Don't check for
998         multiple storage classes.  Diagnose file-scope "register" if
999         pedantic.
1000         (build_null_declspecs): Update.
1001         (declspecs_add_scspec): Update.  Diagnose multiple storage class
1002         specifiers and invalid uses of "__thread".
1003
1004 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
1005
1006         * tree.c (tree_code_size): New function, bulk of code from tree_size.
1007         (tree_size, make_node): Use it.
1008         * tree-ssa-pre.c (init_pre): Use it.
1009         * tree.h: Prototype it.
1010
1011 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1012
1013         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
1014         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
1015         redirect_immediate_use): Use PHI_DF.
1016         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
1017         (bb_for_stmt): Use PHI_BB.
1018         (get_immediate_uses): Use PHI_DF.
1019         * tree-ssa-dse.c (max_stmt_uid): New variable.
1020         (get_stmt_uid): New function.
1021         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
1022         node annotations.
1023         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
1024         (max_uid): Renamed to max_stmt_uid.
1025         (get_stmt_uid): New function.
1026         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
1027         phi node annotations.
1028         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
1029         * tree.h (PHI_BB, PHI_DF): New accessor functions.
1030         (struct tree_phi_node): Add bb and df fields.
1031
1032 2004-09-11  Richard Henderson  <rth@redhat.com>
1033
1034         PR middle-end/17416
1035         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
1036         in conflict loop.
1037
1038 2004-09-11  Jan Hubicka  <jh@suse.cz>
1039
1040         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
1041         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
1042         * i386.md (i387_cw): Add 'uninitialized' mode.
1043
1044         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
1045         (output_location): Break out from ....
1046         (branch_prob): ... here; handle gcov output on trees.
1047         * toplev.c (process_options): No longer be sorry about coverage for
1048         trees.
1049
1050 2004-09-11  Steven Bosscher  <stevenb@suse.de>
1051
1052         PR c++/17412
1053         * fold-const.c (fold): Do not try to fold the operand of a
1054         CLEANUP_POINT_EXPR if that operand does itself not have any
1055         operands.
1056
1057         PR middle-end/17417
1058         * langhooks.c (lhd_decl_printable_name): Make sure that this
1059         function is called with is a decl node that has an identifier.
1060         * tree-pretty-print.c (dump_function_name): New function to
1061         wrap PRINT_FUNCTION_NAME and dump_decl_name.
1062         (print_call_name): Use it.
1063
1064 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
1065
1066         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
1067         "config.h" if not.
1068
1069 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
1070
1071         * tree-ssa-alias.c (collect_points_to_info_r): Handle
1072         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
1073         to OFFSET.
1074
1075 2004-09-11  Richard Henderson  <rth@redhat.com>
1076
1077         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
1078         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
1079         operand of the ADDR_EXPR.
1080         (expand_expr_real_1): Update to match.
1081
1082 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
1083
1084         PR target/17277
1085         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
1086         choose 64-bit version.
1087
1088 2004-09-11  Richard Henderson  <rth@redhat.com>
1089
1090         PR c/17396
1091         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
1092
1093 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
1094
1095         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
1096         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
1097         Insert @: after i.e. or e.g.
1098
1099 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
1100
1101         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
1102         D.xxx rather than <Dxxx>.
1103
1104 2004-09-10  Adam Nemet  <anemet@lnxw.com>
1105
1106         * configure.ac (AC_MSG_CHECKING(what linker to use)):
1107         in_tree_ld_is_elf should be true for LynxOS.
1108         * configure: Regenerate.
1109
1110 2004-09-10  Adam Nemet  <anemet@lnxw.com>
1111
1112         * Makefile.in (all.cross): Add srcextra.
1113
1114 2004-09-10  Roger Sayle  <roger@eyesopen.com>
1115
1116         PR middle-end/17024
1117         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
1118         floating point comparison operators.  Change aborts to gcc_asserts.
1119
1120 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
1121
1122         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
1123
1124 2004-09-10  James E Wilson  <wilson@specifixinc.com>
1125
1126         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
1127         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
1128
1129         * convert.c (convert_to_vector): Replace recursive call with
1130         error_mark_node.
1131
1132         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
1133         Add integer argument named constant.  Use const_tiny_rtx instead of
1134         CONST0_RTX.
1135         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
1136         and CONST1_RTX.
1137         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
1138         vector types.
1139         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
1140         of gen_rtx_raw_CONST_VECTOR.
1141
1142 2004-09-10  Eric Christopher  <echristo@redhat.com>
1143
1144         PR c/16046
1145         * c-parse.in (attribute): Add NULL_TREE for error case
1146         for error recovery.
1147
1148 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
1149
1150         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
1151         (extract_interface_info): Delete prototype.
1152         * c-decl.c (extract_interface_info): Delete stub.
1153         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
1154         it's not already been done ...
1155         (init_c_lex): ... not here.
1156         (fe_file_change): Don't call extract_interface_info.
1157
1158 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1159
1160         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
1161         typedef_p and typedef_signed_p.
1162         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
1163         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
1164         Check typedef_p and typedef_signed_p, not typedef_decl.
1165         (grokfield): Check typedef_p, not typedef_decl.
1166         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
1167         not typedef_decl.
1168         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
1169         typedef_decl.
1170
1171 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
1172
1173         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
1174
1175 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
1176
1177         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
1178         temporary variables.
1179
1180         * dbxout.c (dbxout_block): Update for
1181         current_function_func_begin_label a string.
1182         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
1183         * except.c (dw2_output_call_site_table): Likewise.
1184         * toplev.c (current_function_func_begin_label): Likewise.
1185         * tree.h (current_function_func_begin_label): Likewise.
1186         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
1187
1188         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
1189         loop.
1190
1191         * config/darwin.c: Include target.h.
1192         (struct machopic_indirection): Make ptr_name a string.
1193         (machopic_indirection_hash): Update for ptr_name a string.
1194         (machopic_indirection_eq): Likewise.
1195         (machopic_indirection_name): Likewise.
1196         (machopic_output_indirection): Likewise.
1197         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
1198         string.  Don't expect stub names to be in the identifier hash table.
1199         Do call strip_name_encoding before looking up entry in ID hash table.
1200         * config/t-darwin (darwin.o): Add target.h to dependencies.
1201
1202         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
1203         of fprintf for register names.
1204
1205         * output.h (unlikely_section_label): Delete declaration.
1206         (unlikely_text_section_name): Likewise.
1207         * varasm.c (unlikely_section_label_printed): Make static.
1208         (unlikely_section_label): Likewise.
1209         (unlikely_text_section_name): Likewise.
1210         (assemble_start_function): Use reconcat.
1211
1212         * rtl.def (REG): Add comment to describe third field.
1213
1214 2004-09-10  Andrew Pinski  <apinski@apple.com>
1215
1216         * config/darwin.c (machopic_mcount_stub_name): Call
1217         machopic_indirection_name instead of making the string
1218         ourselves.
1219
1220 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
1221
1222         Revert
1223
1224         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
1225
1226             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
1227             memory tag is call clobbered, so are its aliases.
1228             (group_aliases): When two memory tags being grouped, if one is
1229             call clobbered, so are the other and its aliases.
1230             (add_may_alias): Remove call-clobbering stuff.
1231             (replace_may_alias): Likewise.
1232             (merge_pointed_to_info): Merge pt_global_mem
1233
1234 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
1235
1236         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
1237         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
1238         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
1239         tree-scalar-evolution.c, tree-ssa-copyrename.c,
1240         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
1241
1242 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
1243
1244         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
1245         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
1246         pair.  Remove match_dup from inputs.  Remove masaccs handling.
1247         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
1248         (masaccs, mdasaccs): Turn into define_insns.
1249
1250 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
1251
1252         * tree-tailcall.c (process_assignment): Only do accumulator transforms
1253         for floating-point types if flag_unsafe_math_optimizations.
1254
1255 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
1256
1257         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
1258         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
1259         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
1260         config/h8300/h8300.md, config/i386/gmm_malloc.h,
1261         config/ia64/ia64.md, config/ip2k/libgcc.S,
1262         config/mips/mips-ps-3d.md, config/mips/mips.c,
1263         config/rs6000/rs6000.c, config/s390/s390.c,
1264         config/sh/symbian.c: Fix comment typos.
1265
1266 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1267
1268         * config/s390/s390.c (s390_emit_prologue): Added missing
1269         "{}" brackets.
1270
1271 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
1272
1273         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
1274         typos.  Follow spelling conventions.
1275
1276 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1277
1278         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
1279         in diagnostic.  Don't dereference NULL TYPE_NAME.
1280
1281 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
1282
1283         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
1284         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
1285         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
1286         value-prof.c: Fix comment typos.  Follow spelling conventions.
1287
1288 2004-09-10  Jan Hubicka  <jh@suse.cz>
1289
1290         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
1291         * tree-split_edge.c (tree_split_edge): Likewise.
1292         (thread_jumps): Likewise.
1293
1294 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
1295
1296         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
1297         typos.
1298
1299 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
1300
1301         * cgraph.h (cgraph_dump_file): Do not declare.
1302         * cgraphunit.c (cgraph_dump_file): Declare as static.
1303         (init_cgraph): New.
1304         * toplev.c (cgraph_dump_file): Do not declare.
1305         (compile_file): Call init_cgraph.
1306         * tree-dump.c (dump_files): Add IPA dump file, remove
1307         XML dump of call graph.
1308         (get_dump_file_name): Support IPA dump file naming scheme.
1309         * tree.h (enum tree_dump_index): Add IPA dump file, remove
1310         XML dump of call graph.
1311         * doc/invoke.texi (Debugging Options): Document the new options.
1312
1313 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
1314
1315         * doc/extend.texi: Document the FR-V built-in functions.
1316
1317 2004-09-09  James E Wilson  <wilson@specifixinc.com>
1318
1319         * doc/sourcebuild.texi: Delete libbanshee reference.
1320
1321 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
1322
1323         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
1324
1325 2004-09-09  James E Wilson  <wilson@specifixinc.com>
1326
1327         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
1328         before calling vector_types_convertible_p.
1329         (digest_init): Check that inside_init has VECTOR_TYPE before calling
1330         vector_types_convertible_p.  Don't give another error if
1331         convert_for_assignment returns error_mark_node.
1332
1333 2004-09-09  Roger Sayle  <roger@eyesopen.com>
1334
1335         PR middle-end/17055
1336         * fold-const.c (build_zero_vector): New function to construct a
1337         vector (either floating point or integer) of zeros.
1338         (fold_convert): Internally, enable conversions of integer zero
1339         to arbitrary vector types, using the new build_zero_vector.
1340
1341 2004-09-09  Roger Sayle  <roger@eyesopen.com>
1342
1343         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
1344         expand a left shift by an immediate constant as either an ashl or
1345         a sequence of additions.
1346         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
1347         instead of calling gen_ashlsi3 with a constant directly.
1348
1349 2004-09-09  Roger Sayle  <roger@eyesopen.com>
1350
1351         * config/i386/i386.c (ix86_split_long_move): When optimizing for
1352         size, and the low and high parts of a DImode constant are equal,
1353         copy one register to another instead of loading the same immediate
1354         value twice.
1355
1356 2004-09-09  Richard Henderson  <rth@redhat.com>
1357
1358         PR middle-end/17367
1359         * function.c (assign_parm_setup_block): Only put PARALLELs into
1360         a register if use_register_for_decl.
1361
1362 2004-09-09  Eric Christopher  <echristo@redhat.com>
1363
1364         * ra-colorize.c (reset_lists): Move variable declaration inside
1365         ENABLE_CHECKING to avoid unused variable warnings when
1366         not --enable-checking.
1367         (check_colors): Ditto.
1368
1369 2004-09-09  Mike Stump  <mrs@apple.com>
1370
1371         * version.c (version_string): Bump to 4.0.0.
1372         * doc/include/gcc-common.texi (version-GCC): Likewise.
1373
1374 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
1375
1376         * doc/extend.texi (nothrow attribute): The attribute is not
1377         implemented in 3.2 and earlier.
1378
1379 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
1380
1381         * genrecog.c (compute_predicate_codes): Use op0_codes
1382         instead of codes.
1383
1384 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
1385
1386         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
1387         implementation changes.
1388
1389 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
1390
1391         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
1392         a PARALLEL instead of a SET due to added clobbers.
1393
1394 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
1395
1396         * reload.c (find_reloads_address): Pass correct operand to
1397         maybe_memory_address_p.
1398
1399 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
1400
1401         * Makefile.in: Remove libbanshee, tree-alias-*.
1402         Remove tree-alias-common.h dependencies.
1403         * common.opt: Remove -ftree-points-to.
1404         * configure.ac: Remove libbanshee.
1405         * flags.h: Remove pta_type, flag_tree_points_to.
1406         * gengtype.c (open_base_files): Remove tree-alias-type.h.
1407         * opts.c (OPT_ftree_points_to): Remove.
1408         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
1409         * tree-dfa.c: Remove tree-alias-common.h
1410         * tree-into-ssa.c: Ditto.
1411         * tree-outof-ssa.c: Ditto.
1412         * tree-ssa-copyrename.c: Ditto.
1413         * tree-ssa-live.c: Ditto.
1414         * tree-optimize.c: Ditto.
1415         * tree-ssa.c: Ditto.
1416         Remove pass_build_pta, pass_del_pta.
1417         * tree-pass.h: Ditto.
1418         * tree-ssa-alias.c: Remove tree-alias-common.h.
1419         (struct alias_stats_d): Remove pta_queries, pta_resolved.
1420         (pass_may_alias): Remove PROP_pta requirement.
1421         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
1422         (get_tmt_for): Ditto.
1423         (dump_alias_stats): Ditto.
1424         * doc/passes.texi: Remove blurb about points-to analysis.
1425         * fortran/Make-lang.in: Remove tree-alias-*.o.
1426
1427 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
1428
1429         * genattrtab.c (write_insn_cases): New function, split out from
1430         write_attr_case.  Correctly handle define_peepholes when printing
1431         the instruction name.
1432         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
1433
1434 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
1435
1436         PR target/17377
1437         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
1438         * config/cris/cris.c (cris_return_address_on_stack): New function.
1439         * config/cris/cris.md ("return"): For location of return address,
1440         also check cris_return_address_on_stack.
1441
1442 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
1443
1444         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
1445         calling phi_ssa_name_p.
1446
1447 2004-09-09  Richard Henderson  <rth@redhat.com>
1448
1449         PR c/17322
1450         * c-typeck.c (valid_compound_expr_initializer): Use only
1451         initializer_constant_valid_p, and not TREE_CONSTANT.
1452         (digest_init): Likewise.
1453         (output_init_element): Likewise.
1454
1455 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1456
1457         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
1458         live_out_1, prune_hardregs_for_mode, init_one_web_common,
1459         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
1460         record_conflict, compare_and_free_webs, init_webs_defs_uses,
1461         parts_to_webs_1, parts_to_webs, reset_conflicts,
1462         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
1463         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
1464         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
1465         put_move, remove_move, combine, select_spill, colorize_one_web,
1466         try_recolor_web, insert_coalesced_conflicts, check_colors,
1467         break_precolored_alias, restore_conflicts_from_coalesce,
1468         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
1469         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
1470         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
1471         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
1472         check_df): Likewise.
1473         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
1474         real_arithmetic, real_compare, real_exponent, real_ldexp,
1475         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
1476         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
1477         real_digit, real_nan, real_maxval, round_for_format, real_convert,
1478         real_to_target, real_from_target, real_hash, encode_ieee_single,
1479         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
1480         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
1481         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
1482         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
1483         extract_insn, peep2_next_insn, peep2_reg_dead_p,
1484         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
1485         if_test_bypass_p): Likewise.
1486         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
1487         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
1488         emit_swap_insn, swap_to_top, move_for_stack_reg,
1489         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
1490         compensate_edge, convert_regs_1): Likewise.
1491         * regclass.c (init_reg_sets, init_reg_sets_1,
1492         memory_move_secondary_cost): Likewise.
1493         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
1494         Likewise.
1495         * reload.c (push_secondary_reload, find_valid_class, push_reload,
1496         operands_match_p, decompose, immune_p, find_reloads,
1497         find_reloads_toplev, find_reloads_address_1, subst_reloads,
1498         copy_replacements, refers_to_regno_for_reload_p,
1499         reg_overlap_mentioned_for_reload_p): Likewise.
1500         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
1501         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
1502         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
1503         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
1504         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
1505         do_output_reload, fixup_abnormal_edges): Likewise.
1506         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
1507         fill_slots_from_thread, relax_delay_slots): Likewise.
1508         * resource.c (mark_referenced_resources, mark_set_resources):
1509         Likewise.
1510         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
1511         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
1512         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
1513         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
1514         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
1515         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
1516         * rtlhooks.c (gen_lowpart_general): Likewise.
1517         * sbitmap.c (sbitmap_difference): Likewise.
1518         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
1519         sched_analyze, add_forward_dependence): Likewise.
1520         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
1521         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
1522         schedule_insns): Likewise.
1523         * sched-vis.c (print_pattern): Likewise.
1524         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
1525         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
1526         simplify_const_relational_operation, simplify_ternary_operation,
1527         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
1528         Likewise.
1529         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
1530         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
1531         resolve_operand_name_1, expand_return, expand_decl,
1532         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
1533         * stor-layout.c (put_pending_size, smallest_mode_for_size,
1534         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
1535         set_sizetype, get_mode_bounds): Likewise.
1536
1537 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
1538
1539         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
1540         * config/arm/pecoff.h, config/i386/beos-elf.h
1541         * config/i386/cygming.h, config/i386/i386-interix.h:
1542         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
1543         comment cloned from manual.
1544         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
1545
1546 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
1547
1548         * builtins.c (build_va_arg_indirect_ref): New function.
1549         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
1550         build_fold_indirect_ref.
1551         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
1552         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
1553         * tree.h: Declare new function.
1554
1555 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1556
1557         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
1558         dumping for development builds.
1559         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
1560         development builds only.
1561         * genattrtab.c (write_eligible_delay): Fix typo in previous
1562         commit.
1563         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
1564         gcc_assert.
1565
1566 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1567
1568         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
1569         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
1570         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
1571         hoist_code, extract_mentioned_regs_helper, compute_store_table,
1572         insert_store): Use gcc_assert and gcc_unreachable.
1573         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
1574         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
1575         ggc_record_overhead): Likewise.
1576         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
1577         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
1578         ggc_pop_context, clear_marks, validate_free_objects,
1579         ggc_pch_read): Likewise.
1580         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
1581         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
1582         ggc_push_context, check_cookies, ggc_collect,
1583         ggc_print_statistics): Likewise.
1584         * gimple-low.c (lower_function_body, lower_stmt,
1585         lower_bind_expr): Likewise.
1586         * gimplify.c (gimple_tree_eq, push_gimplify_context,
1587         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
1588         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
1589         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
1590         gimplify_case_label_expr, gimplify_exit_block_expr,
1591         canonicalize_component_ref, gimplify_compound_lval,
1592         gimplify_self_mod_expr, gimplify_call_expr,
1593         gimplify_init_ctor_eval, gimplify_init_constructor,
1594         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
1595         gimplify_expr, check_pointer_types_r,
1596         force_gimple_operand): Likewise.
1597         * global.c (global_alloc, build_insn_chain): Likewise.
1598         * graph.c (clean_graph_dump_file,
1599         finish_graph_dump_file): Likewise.
1600         gcov-io.c (gcov_open): Use GCOV_CHECK.
1601
1602 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
1603
1604         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
1605
1606 2004-09-09  Jan Hubicka  <jh@suse.cz>
1607
1608         middle-end/17128
1609         * tree-inline.c (expand_call_inline): Make overactive sanity check
1610         happy.
1611
1612 2004-09-09  Jan Hubicka  <jh@suse.cz>
1613
1614         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
1615         VIEW_CONVERT_EXPR.
1616
1617 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1618
1619         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
1620         (gengtype.o): Depend on errors.h.
1621         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
1622         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
1623         attr_alt_subset_p, attr_alt_subset_of_compl_p,
1624         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
1625         write_test_expr, write_attr_value, write_eligible_delay,
1626         make_internal_attr, make_numeric_value): Likewise.
1627         * genautomata.c (regexp_name, get_str_vect,
1628         gen_presence_absence_set, automaton_decl_hash,
1629         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
1630         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
1631         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
1632         test_unit_reserv, it_is_empty_reserv_sets,
1633         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
1634         reserv_sets_and, output_cycle_reservs, get_free_state,
1635         intersected_state_reservs_p, states_union, remove_arc,
1636         copy_insn_regexp, transform_1, transform_2, transform_3,
1637         regexp_transform_func, store_alt_unit_usage,
1638         check_regexp_units_distribution, process_seq_for_forming_states,
1639         process_alts_for_forming_states, make_automaton,
1640         form_arcs_marked_by_insn, create_composed_state,
1641         set_out_arc_insns_equiv_num, partition_equiv_class,
1642         process_insn_equiv_class, set_insn_equiv_classes,
1643         units_to_automata_heuristic_distr, form_regexp,
1644         longest_path_length, output_dfa_max_issue_rate, add_vect,
1645         out_state_arcs_num, add_vect_el, output_trans_table,
1646         output_state_alts_table, output_dead_lock_vect,
1647         output_max_insn_queue_index_def,
1648         output_min_insn_conflict_delay_func,
1649         output_internal_insn_latency_func, output_print_reservation_func,
1650         output_cpu_unit_reservation_p, output_state_arcs,
1651         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
1652         make_default_insn_latency_attr,
1653         form_important_insn_automata_lists): Likewise.
1654         * genemit.c (gen_exp, output_add_clobbers,
1655         output_added_clobbers_hard_reg_p): Likewise.
1656         * genextract.c (print_path, main): Likewise.
1657         * genflags.c (gen_macro): Likewise.
1658         * gengenrtl.c: Include errors.h
1659         (type_from_format, accessor_from_format): Likewise.
1660         * gengtype.c (get_file_basename, output_mangled_typename,
1661         walk_type, write_types_process_field,
1662         write_types_local_process_field): Likewise.
1663         * genmodes.c (complete_mode): Likewise.
1664         * genopinit.c (gen_insn): Likewise.
1665         * genoutput.c (output_insn_data, check_constraint_len,
1666         constraint_len): Likewise.
1667         * genpreds.c (add_mode_tests):Likewise.
1668         * gen-protos.c (add_hash): Likewise.
1669         * genrecog.c (find_operand, find_matching_operand,
1670         validate_pattern, add_to_sequence, maybe_both_true,
1671         nodes_identical_1, merge_trees, write_switch, write_cond,
1672         write_action, is_unconditional, make_insn_sequence,
1673         debug_decision_2): Likewise.
1674         * gensupport.c (is_predicable, collect_insn_data,
1675         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
1676
1677 2004-09-09  Jan Hubicka  <jh@suse.cz>
1678
1679         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
1680         * cfgbuild.c (compute_outgoing_frequencies): When probability is
1681         missing, guess it.
1682         (find_many_sub_basic_blocks): Do update profile only when it is
1683         present.
1684         * predict.c (set_even_probabilities): Break out from ...
1685         (combine_predictions_for_insn): ... here; deal with
1686         !can_predict_insn_p insns.
1687         (combine_predictions_for_bb): Use set_even_probabilities.
1688         (bb_estimate_probability_locally): Break out from ....
1689         (estimate_probability): ... here.
1690         (guess_outgoing_edge_probabilities): New entry point.
1691
1692 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1693
1694         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
1695         handle_braces, process_brace_body, main, used_arg,
1696         set_multilib_dir, print_multilib_info): Use fatal, not abort.
1697
1698         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
1699
1700         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
1701         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
1702         Morgan's theorem in last checkin.
1703
1704 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1705             Nathan Sidwell  <nathan@codesourcery.com>
1706
1707         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
1708         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
1709         * timevar.c (timevar_push, timevar_pop, timevar_start,
1710         timevar_stop): Likewise.
1711         * toplev.c (default_pch_valid_p): Likewise.
1712         * tracer.c (tail_duplicate): Likewise.
1713         * tree-alias-common.c (get_alias_var_decl,
1714         get_values_from_constructor, create_alias_var, delete_alias_vars,
1715         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
1716         Likewise.
1717         * tree.c (tree_size, make_node_stat, copy_node_stat,
1718         build_int_cst_wide, integer_all_onesp, list_length, chainon,
1719         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
1720         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
1721         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
1722         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
1723         build_method_type_directly, decl_type_context, get_callee_fndecl,
1724         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
1725         tree_fold_gcd): Likewise.
1726         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
1727         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
1728         cleanup_control_expr_graph, find_taken_edge,
1729         find_taken_edge_switch_expr, phi_alternatives_equal,
1730         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
1731         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
1732         tree_split_edge, tree_verify_flow_info, thread_jumps,
1733         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
1734         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1735         chrec_fold_multiply_poly_poly): Likewise.
1736         * tree-complex.c (extract_component, expand_complex_division,
1737         expand_complex_comparison, expand_complex_operations_1,
1738         build_replicated_const, expand_vector_operations_1): Likewise.
1739         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
1740         build_classic_dir_vector): Likewise.
1741         * tree-dfa.c (compute_immediate_uses_for_phi,
1742         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
1743         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
1744         * tree-dump.c (dequeue_and_dump): Likewise.
1745         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
1746         record_in_finally_tree, replace_goto_queue_1,
1747         maybe_record_in_goto_queue, verify_norecord_switch_expr,
1748         do_return_redirection): Likewise.
1749         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
1750         add_to_dst_predicate_list, find_phi_replacement_condition,
1751         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
1752         Likewise.
1753         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
1754         initialize_inlined_parameters, declare_return_variable,
1755         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
1756         optimize_inline_calls, copy_tree_r): Likewise.
1757         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
1758         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
1759         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
1760         tsi_split_statement_list_after, tsi_split_statement_list_before):
1761         Likewise.
1762         * tree-mudflap.c (mf_varname_tree): Likewise.
1763         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
1764         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
1765         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1766         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
1767         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
1768         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
1769         Likewise.
1770         * tree-phinodes.c (resize_phi_node, add_phi_arg,
1771         remove_all_phi_nodes_for): Likewise.
1772         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
1773         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
1774         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
1775         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
1776         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
1777         generate_one_element_ref, generate_element_copy,
1778         generate_element_zero, scalarize_copy, scalarize_init,
1779         scalarize_ldst): Likewise.
1780         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
1781         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
1782         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
1783         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
1784         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
1785         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
1786         widen_bitfield, ccp_fold_builtin): Likewise.
1787         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
1788         replace_exp_1, propagate_tree_value): Likewise.
1789         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1790         * tree-ssa-dce.c (set_control_dependence_map_bit,
1791         find_control_dependence, find_pdom, mark_operand_necessary,
1792         mark_stmt_if_obviously_necessary,
1793         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
1794         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
1795         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
1796         eliminate_redundant_computations, avail_expr_eq): Likewise.
1797         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
1798         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
1799         duplicate_blocks): Likewise.
1800         * tree-ssa-loop-im.c (for_each_index, set_level,
1801         is_call_clobbered_ref): Likewise.
1802         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
1803         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
1804         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
1805         peel_address, ptr_difference_cost, may_replace_final_value,
1806         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
1807         rewrite_use, rewrite_uses): Likewise.
1808         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1809         check_loop_closed_ssa_use): Likewise.
1810         * tree-ssanames.c (make_ssa_name): Likewise.
1811         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
1812         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
1813         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
1814         get_indirect_ref_operands, add_stmt_operand): Likewise.
1815         * tree-ssa-pre.c (value_exists_in_set_bitmap,
1816         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
1817         phi_translate, valid_in_set, compute_antic,
1818         find_or_generate_expression, create_expression_by_pieces, insert_aux,
1819         create_value_expr_from, eliminate): Likewise.
1820         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
1821         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
1822         Likewise.
1823         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
1824         eliminate_tail_call): Likewise.
1825         * tree-vectorizer.c (vect_create_index_for_array_ref,
1826         vect_align_data_ref, vect_create_data_ref,
1827         vect_create_destination_var, vect_get_vec_def_for_operand,
1828         vect_finish_stmt_generation, vect_transform_stmt,
1829         vect_transform_loop_bound, vect_transform_loop,
1830         vect_analyze_operations): Likewise.
1831         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
1832         Likewise.
1833         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
1834         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
1835         bsi_after_labels, bsi_last): Likewise.
1836         * tree-ssa-live.c (var_union, change_partition_var,
1837         create_ssa_var_map, calculate_live_on_entry, root_var_init,
1838         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
1839         Likewise.
1840         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
1841         tpa_find_tree): Likewise.
1842         (register_ssa_partition_check): Declare.
1843         (register_ssa_partition): use it.
1844         * tree-ssa-live.c: Include errors.h.
1845         (register_ssa_partition_check): New.
1846         * tree-ssa-operands.c: Include errors.h.
1847         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
1848
1849 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
1850             Catherine Moore  <clm@redhat.com>
1851
1852         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
1853         (FRV_CPU_FR405): New processor enums.
1854         (frv_issue_rate, frv_acc_group): Declare.
1855         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
1856         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
1857         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
1858         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
1859         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
1860         handled by CPP_SPEC.
1861         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
1862         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
1863         (ACC_MASK): New macro.
1864         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
1865         (TARGET_MEDIA_FR450): New macro.
1866         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
1867         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
1868         (LABEL_ALIGN_AFTER_BARRIER): Define.
1869         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
1870         (IACC_FIRST, IACC_LAST): New pair of SPRs.
1871         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
1872         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
1873         (REGISTER_NAMES): Add entries for new registers.
1874         (REG_CLASS_CONTENTS): Update for new register ranges.
1875         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
1876         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
1877         (PACKING_FLAG_USED_P): Delete.
1878         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
1879         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
1880         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
1881         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
1882         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
1883         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
1884         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
1885         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
1886         (CPU_UNITS_QUERY): Define to 1.
1887         * config/frv/frv.c: Include gt-frv.h
1888         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
1889         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
1890         (frv_insn_group): New enumeration.
1891         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
1892         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
1893         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
1894         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
1895         gap left by REGSTATE_LIVE.
1896         (regstate_t): New typedef.
1897         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1898         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
1899         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
1900         Initialize frv_unit_codes[] and frv_type_to_unit[].
1901         (frv_conditional_register_usage): Remove redundant fixing of
1902         accumulator registers.
1903         (frv_insn_packing_flag): Update specification.
1904         (frv_function_prologue): Don't set frv_insn_packing_flag here.
1905         Zero out frv_nops[].
1906         (frv_expand_epilogue): Remove comments about the no-longer-present
1907         SIBCALL_P argument.
1908         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
1909         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
1910         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
1911         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
1912         packing is disabled and if INSN can only issue to M1.
1913         (call_operand): Check TARGET_LONG_CALLS.
1914         (acc_operand, even_acc_operand, quad_acc_operand)
1915         (accg_operand): Simplify.  Don't accept pseudo registers.
1916         (output_move_single): Handle SPR<-zero moves.
1917         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
1918         (frv_registers_update, frv_registers_used_p): Delete.
1919         (frv_registers_set_p): Delete.
1920         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
1921         (frv_issues_to_branch_unit_p): New function.
1922         (frv_packet): New structure.
1923         (frv_cond_flags, frv_regstate_conflict_p): New functions.
1924         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
1925         (frv_registers_update_1, frv_registers_update): New functions.
1926         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
1927         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
1928         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
1929         (frv_sort_insn_group, frv_reorder_packet): New functions.
1930         (frv_pack_insns): Use frv_reorder_packet.
1931         (frv_packet_address): New variable.
1932         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
1933         (frv_register_nop, frv_reorg): New functions.
1934         (bdesc_1arg): Add __SCUTSS.
1935         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
1936         __SUBSS, __SLASS and __SCAN.
1937         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
1938         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
1939         (frv_init_builtins): Register the above builtins.
1940         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
1941         registers.  Turn the referenced accumulators into global registers.
1942         (frv_read_iacc_argument): New function.
1943         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
1944         (frv_split_iacc_move): New function.
1945         (frv_expand_builtin): Handle the new builtins.
1946         * config/frv/frv.md: Replace old schedulers with new order-independent
1947         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
1948         packing algorithm.
1949         (cpu): Add fr550, fr450 and fr405.
1950         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
1951         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
1952         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
1953         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
1954         (fnop, mnop): New patterns.
1955         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
1956         New constants.
1957         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
1958         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
1959         registers.
1960         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
1961         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
1962         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
1963         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
1964         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
1965         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
1966         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
1967         (frv_prefetch0, frv_prefetch): New patterns.
1968         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
1969         -mcpu=simple.  Add -mcpu=fr550.
1970         (MULTILIB_DIRNAMES): Update accordingly.
1971         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
1972         -mcpu=fr450.
1973         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
1974         -mlong-calls and -malign-labels options for FR-V.
1975
1976 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1977
1978         PR c/8420
1979         * c-tree.h (struct c_declspecs): New.
1980         (struct c_declarator, struct c_type_name, struct c_parm): Update
1981         element types.
1982         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
1983         start_function, start_decl, build_c_parm,
1984         make_pointer_declarator): Update prototypes.
1985         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1986         declspecs_add_scspec, declspecs_add_attrs): New.
1987         (split_specs_attrs): Remove.
1988         * c-parse.in (%union): Add dsptype.
1989         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1990         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1991         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1992         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1993         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1994         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1995         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1996         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
1997         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
1998         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
1999         maybe_type_quals_attrs): Change to dsptype.
2000         (struct c_declspec_stack): New.
2001         (current_declspecs, declspec_stack): Change type.
2002         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
2003         structures.
2004         (extdefs): Likewise.
2005         (setspecs): Likewise.
2006         (fndef): Use current_declspecs for empty declspecs list.
2007         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
2008         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
2009         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
2010         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
2011         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
2012         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
2013         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
2014         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
2015         structures and helper functions.  Update comments.
2016         (typespec_nonattr): Correct comment.
2017         (maybe_type_quals_attrs, typename): Update to new structures.
2018         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
2019         shadow_tag, shadow_tag_warned, start_function, start_decl,
2020         build_c_parm, make_pointer_declarator,
2021         set_array_declarator_inner, groktypename): Update to new
2022         structures.
2023         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2024         declspecs_add_scspec, declspecs_add_attrs): New.
2025         (split_specs_attrs): Remove.
2026         (shadow_tag_warned): Make warning for useless type names a
2027         pedwarn.  Give hard error for long, short, signed, unsigned or
2028         _Complex used with struct, union or enum in empty declaration.
2029         Make found_tag a bool.
2030         (grokdeclarator): Remove checks now done at parse time.
2031
2032 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
2033
2034         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
2035         c_declarator, struct c_type_name, struct c_parm): New.
2036         (build_array_declarator, set_array_declarator_inner,
2037         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
2038         start_function, start_decl, build_c_parm, build_attrs_declarator,
2039         build_function_declarator, make_pointer_declarator, c_cast_expr,
2040         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
2041         (build_id_declarator): New.
2042         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
2043         structures.
2044         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
2045         ARG_INFO_OTHERS): Remove.
2046         (build_id_declarator): New.
2047         (build_array_declarator, set_array_declarator_inner, groktypename,
2048         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
2049         grokfield, start_function, store_parm_decls_newstyle,
2050         store_parm_decls_oldstyle, store_parm_decls,
2051         build_c_parm, build_attrs_declarator, build_function_declarator,
2052         make_pointer_declarator, grokdeclarator): Update to new
2053         structures.
2054         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
2055         parmtype.
2056         (declarator, notype_declarator, after_type_declarator,
2057         parm_declarator, parm_declarator_starttypename,
2058         parm_declarator_nostarttypename, array_declarator, typename,
2059         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
2060         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
2061         parmlist_1, parmlist_2, parmlist_or_identifiers,
2062         parmlist_or_identifiers_1): Use these types.
2063         (primary, after_type_declarator, parm_declarator_starttypename,
2064         notype_declarator, component_decl, component_declarator,
2065         component_notype_declarator, typename, absdcl,
2066         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
2067         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
2068
2069 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
2070
2071         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
2072         in_typeof, record_maybe_used_decl, pop_maybe_used,
2073         c_expr_sizeof_expr, c_expr_sizeof_type): New.
2074         * c-decl.c (parser_obstack): New.
2075         (c_init_decl_processing): Initialize parser_obstack.
2076         (c_write_global_declarations_1): Check for used but undefined
2077         static functions.
2078         * c-parse.in (%union): Add otype.
2079         (save_obstack_position): New.
2080         (extdefs): Use it.
2081         (unary_expr): Update in_sizeof and in_alignof.  Use
2082         c_expr_sizeof_expr and c_expr_sizeof_type.
2083         (sizeof): Update in_sizeof.
2084         (alignof): Update in_alignof.
2085         (typeof): Update in_typeof.
2086         (typespec_nonreserved_nonattr): Call pop_maybe_used.
2087         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
2088         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
2089         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
2090         (build_external_ref): Set C_DECL_USED or call
2091         record_maybe_used_decl if appropriate.
2092         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
2093
2094 2004-09-08  Eric Christopher  <echristo@redhat.com>
2095
2096         * builtins.c: Fix prototype for fold_builtin_atan.
2097
2098 2004-09-08  Eric Christopher  <echristo@redhat.com>
2099
2100         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
2101         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
2102         fold_builtin_atan): New functions. Migrate function bodies...
2103         (fold_builtin_1): ... from here.
2104
2105 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
2106
2107         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
2108         save_size.
2109
2110 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
2111
2112         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
2113         * config/rs6000/power5.md (power5-lmul): Same.
2114
2115 2004-09-08  Richard Henderson  <rth@redhat.com>
2116
2117         PR rtl-opt/17186
2118         * function.c (expand_function_end): Have fall-off-the-end
2119         return path jump around return register setup.
2120
2121 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2122
2123         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
2124         (output_return): Do not test for the presence of the 'unimp' insn.
2125         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
2126         as predicates instead of custom ones.  Return raw strings when
2127         possible.
2128         (output_sibcall): Likewise.  Concatenate strings.
2129         (output_ubranch): Remove kludge for TurboSPARC.
2130         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
2131         (output_v9branch): Likewise.
2132         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
2133         <#>: Set sparc_indent_opcode if the delay slot is filled.
2134         <(>: Likewise.
2135         <)>: New operand to emit the displacement from the saved PC on return.
2136         <@>: Remove.
2137         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
2138         (ASM_OUTPUT_OPCODE): New macro.
2139         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
2140         * config/sparc/sparc.md (normal_branch, inverted_branch,
2141         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
2142         inverted_fpe_branch): Adjust call to output_cbranch.
2143         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
2144         call to output_v9branch.
2145         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
2146         (output_v9branch): Likewise.
2147
2148 2004-09-08  Devang Patel  <dpatel@apple.com>
2149
2150         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
2151         -segs_read_only_addr and -segs_read_write_addr.
2152         (WORD_SWITCH_TAKES_ARG): Same.
2153         (LINK_SPEC): Same.
2154         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
2155         -segs_read_write_addr.
2156
2157 2004-09-08  Richard Henderson  <rth@redhat.com>
2158
2159         * function.c (reference_callee_copied): New.
2160         (assign_parm_setup_reg): Use it.
2161         * calls.c (initialize_argument_information): Likewise.
2162         (emit_library_call_value_1): Likewise.
2163         * function.h (reference_callee_copied): Declare.
2164
2165         * target.h (struct gcc_target): Add callee_copies.
2166         * target-def.h (TARGET_CALLEE_COPIES): New.
2167         (TARGET_PASS_BY_REFERENCE): Update default.
2168         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2169         * targhooks.c (hook_callee_copies_named): New.
2170         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
2171         hook_pass_by_reference_false.
2172         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
2173         * targhooks.h: Update decls.
2174         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
2175         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2176         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
2177         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
2178         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2179         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
2180         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2181         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
2182         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2183         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
2184         (mips_callee_copies): New.
2185         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2186         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
2187         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2188         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
2189         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2190         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
2191         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2192         * config/sh/sh.c (sh_callee_copies): New.
2193         (TARGET_CALLEE_COPIES): New.
2194         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2195         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
2196         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2197         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
2198         for FUNCTION_ARG_CALLEE_COPIES.
2199         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
2200
2201 2004-09-08  Devang Patel  <dpatel@apple.com>
2202
2203         * tree-if-conv.c (find_phi_replacement_condition): Return true
2204         edge block.
2205         (replace_phi_with_cond_modify_expr): Select conditional expr args
2206         based on true edge basic block.
2207
2208 2004-09-08  Jan Hubicka  <jh@suse.cz>
2209
2210         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
2211         variables being alias set.
2212
2213 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
2214
2215         * final.c (shorten_branches, final, get_insn_template,
2216         output_alternate_entry_point, final_scan_insn, alter_subreg,
2217         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
2218         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
2219         * fix-header.c (lookup_std_proto): Likewise.
2220         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
2221         verify_local_live_at_start, update_life_info, mark_reg,
2222         calculate_global_regs_live, allocate_reg_life_data,
2223         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
2224         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
2225         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
2226         * fold-const.c (force_fit_type, div_and_round_double,
2227         may_negate_without_overflow_p, int_const_binop, const_binop,
2228         size_binop, size_diffop, fold_convert_const, fold_convert,
2229         invert_tree_comparison, swap_tree_comparison,
2230         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
2231         range_binop, make_range, fold_cond_expr_with_comparison,
2232         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
2233         fold_abs_const, fold_not_const, fold_relational_const, round_up,
2234         round_down): Likewise.
2235         * function.c (find_function_data, assign_stack_temp_for_type,
2236         instantiate_virtual_regs_lossage, aggregate_value_p,
2237         assign_parm_find_entry_rtl, assign_parm_setup_block,
2238         expand_function_start, expand_function_end, keep_stack_depressed,
2239         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
2240
2241 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
2242
2243         * Makefile.in (tree-loop-linear.o): Added.
2244         (OBJS-common): Add tree-loop-linear.o
2245         * common.opt: New flag, ftree-loop-linear.
2246         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
2247         * tree-flow.h: Add prototype for linear_transform_loops.
2248         * tree-optimize.c: Add linear transform after vectorization.
2249         * tree-pass.h: Add struct pass_linear_transform.
2250         * tree-ssa-loop.c: Add pass_linear_transform.
2251         * tree-loop-linear.c: New file.
2252         * lambda-code.c: gcc_assertify.
2253         (gcc_loop_to_lambda_loop): Handle all exit tests.
2254         Handle case where we have (invariant >= induction var).
2255         (find_induction_var_from_exit_cond): Ditto.
2256
2257 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
2258
2259         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
2260         memory tag is call clobbered, so are its aliases.
2261         (group_aliases): When two memory tags being grouped, if one is
2262         call clobbered, so are the other and its aliases.
2263         (add_may_alias): Remove call-clobbering stuff.
2264         (replace_may_alias): Likewise.
2265         (merge_pointed_to_info): Merge pt_global_mem
2266
2267 2004-09-08  Jan Hubicka  <jh@suse.cz>
2268
2269         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
2270         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
2271         (cgraph_expand_function): Remove stale cgraph edges of currently
2272         compiled function; fix non-unit-at-a-time code copying function
2273         node for later reuse.
2274
2275 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
2276
2277         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
2278         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
2279         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
2280         (vec_gc_free, vec_heap_free): New.
2281         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
2282         (DEF_VEC_P): Add allocator argument. Adjust.
2283         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
2284         (DEF_VEC_O): Add allocator argument. Adjust.
2285         (VEC(free)): New.
2286
2287         * tree.h (tree): Define a GC'd vector.
2288         * lamba-code.c (lambda_loop): Likewise.
2289         * value-prof.h (histogram_value): Likewise.
2290
2291 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
2292
2293         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
2294         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
2295         gen_lowpart_common, gen_highpart, gen_highpart_mode,
2296         subreg_highpart_offset, operand_subword, operand_subword_force,
2297         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
2298         set_mem_alias_set, change_address_1, verify_rtx_sharing,
2299         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
2300         try_split, add_insn_after, add_insn_before, remove_insn,
2301         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
2302         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
2303         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
2304         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
2305         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
2306         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
2307         record_path_before_1, check_path_after_1, check_path_after): Likewise.
2308         * except.c (gen_eh_region, resolve_one_fixup_region,
2309         remove_unreachable_regions, convert_from_eh_region_ranges_1,
2310         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
2311         connect_post_landing_pads, sjlj_emit_function_exit,
2312         remove_exception_handler_label, remove_eh_handler,
2313         reachable_next_level, collect_one_action_chain,
2314         output_function_exception_table): Likewise.
2315         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
2316         optimize_save_area_alloca, allocate_dynamic_stack_space,
2317         probe_stack_range, hard_function_value): Likewise.
2318         * expmed.c (mode_for_extraction, store_bit_field,
2319         store_fixed_bit_field, extract_bit_field, expand_shift,
2320         expand_mult_const, expand_mult, choose_multiplier,
2321         expand_mult_highpart, expand_divmod, emit_store_flag,
2322         do_cmp_and_jump): Likewise.
2323         * expr.c (convert_move, convert_modes, move_by_pieces,
2324         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
2325         move_block_from_reg, gen_group_rtx, emit_group_load,
2326         emit_group_move, emit_group_store, use_reg, use_regs,
2327         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
2328         emit_move_insn, emit_move_insn_1, emit_push_insn,
2329         expand_assignment, store_expr, count_type_elements,
2330         store_constructor, store_field, safe_from_p, expand_var,
2331         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
2332
2333 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
2334
2335         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
2336         gcc_assert and gcc_unreachable.
2337         * ddg.c (create_ddg_dependence, add_deps_for_def,
2338         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
2339         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
2340         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
2341         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
2342         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
2343         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
2344         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
2345         dataflow_set_copy, hybrid_search, diagnostic.c,
2346         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
2347         * dojump.c (do_jump): Likewise.
2348         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
2349         compute_dom_fast_query, calculate_dominance_info,
2350         free_dominance_info, get_immediate_dominator,
2351         set_immediate_dominator, get_dominated_by,
2352         redirect_immediate_dominators, nearest_common_dominator,
2353         dominated_by_p, verify_dominators, recount_dominator,
2354         iterate_fix_dominators, add_to_dominance_info,
2355         delete_from_dominance_info): Likewise.
2356         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
2357         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
2358         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
2359         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
2360         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
2361         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
2362         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
2363         output_call_frame_info, output_loc_operands, build_cfa_loc,
2364         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
2365         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
2366         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
2367         splice_child_die, attr_checksum, same_dw_val_p,
2368         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
2369         unmark_dies, value_format, output_loc_list, output_die,
2370         output_pubnames, output_aranges, base_type_die, is_base_type,
2371         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
2372         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
2373         field_byte_offset, add_data_member_location_attribute,
2374         add_const_value_attribute, rtl_for_decl_location,
2375         add_location_or_const_value_attribute, add_byte_size_attribute,
2376         add_bit_offset_attribute, add_bit_size_attribute,
2377         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
2378         decl_start_label, gen_formal_parameter_die,
2379         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
2380         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
2381         force_decl_die, force_type_die, gen_decl_die,
2382         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
2383         dwarf2out_finish): Likewise.
2384
2385 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
2386
2387         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
2388         * builtins.c: Include tree-mudflap.h.
2389
2390 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
2391
2392         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
2393         force operand 0.0 into register in XFmode. Also do not force
2394         operand 0.0 into register if !TARGET_CMOVE.
2395         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
2396         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
2397         implement ftst x87 instruction.
2398         (*fp_jcc_7): New insn pattern. Change corresponding split
2399         pattern to handle "general_operand" instead of
2400         "nonimmediate_operand".
2401
2402 2004-09-08  Ben Elliston  <bje@au.ibm.com>
2403
2404         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
2405
2406 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
2407
2408         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
2409         generated from standard va_arg expansion.
2410         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
2411         marked nodes.
2412         (mf_varname_tree, mf_file_function_line_tree): Add some support
2413         for column numbers if compiled with USE_MAPPED_LOCATION.
2414
2415 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
2416
2417         * c-decl.c (groktypename_in_parm_context): Remove function.
2418         * c-tree.h (groktypename_in_parm_context): Remove prototype.
2419
2420 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
2421
2422         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
2423         * c-parse.in: Include c-common.h instead of objc-act.h.
2424         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
2425         myparms, myparm): Remove %type declarations.
2426         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
2427         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
2428         declarations.
2429         (objc_inherit_code, objc_public_flag): Remove.
2430         (typespec_nonreserved_nonattr): Call
2431         objc_get_protocol_qualified_type() instead of get_static_reference()
2432         and get_protocol_reference().
2433         (stmt_nocomp): Call grokparm() on @catch parameter.
2434         (objcdef): Move semantic action to objc_finish_implementation().
2435         (classdef): Move semantic action to objc_start_class_interface(),
2436         objc_continue_interface(), objc_finish_interface(),
2437         objc_start_class_implementation(), objc_continue_implementation(),
2438         objc_start_category_interface() and
2439         objc_start_category_implementation().
2440         (protocoldef): Move semantic actions to objc_start_protocol() and
2441         objc_finish_interface().
2442         (ivar_decl_list): Remove nonterminal.
2443         (visibility_spec): Move semantic actions to objc_set_visibility().
2444         (ivar_decls): Remove assignment to $$.
2445         (ivar_decl): Rephrase in terms of component_decl; call
2446         objc_add_instance_variable().
2447         (ivars, ivar_declarator): Remove nonterminals.
2448         (opt_semi): New nonterminal.
2449         (methodtype): Remove semantic actions.
2450         (methoddef): Move semantic actions to objc_set_method_type(),
2451         objc_start_method_definition() and objc_finish_method_definition().
2452         (methodproto): Move semantic actions to objc_set_method_type() and
2453         objc_add_method_declaration().
2454         (methoddecl): Use objc_typename instead of typename; move semantic
2455         actions to objc_build_method_signature().
2456         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
2457         (optparmlist): Express in terms of optparms and optellipsis.
2458         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
2459         nonterminals.
2460         (keyworddecl): Use objc_typename instead of typename.
2461         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
2462         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
2463
2464 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
2465
2466         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
2467         (MD_FALLBACK_FRAME_STATE_FOR): Update.
2468         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
2469         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
2470         (MD_FROB_UPDATE_CONTEXT): Remove default.
2471         (uw_update_context_1): Instead #ifdef invocation.
2472         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
2473         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
2474         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
2475         (MD_UNWIND_SUPPORT): Undefine this instead.
2476         * config/i386/gnu.h: Likewise.
2477         * config/alpha/linux-unwind.h: New file, macro converted to
2478         function, extracted from..
2479         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
2480         (MD_UNWIND_SUPPORT): Define.
2481         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
2482         * config/i386/linux-unwind.h, config/i386/linux.h,
2483         config/i386/linux64.h: Likewise.
2484         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
2485         MD_HANDLE_UNWABI too.
2486         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
2487         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
2488         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
2489         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
2490         * config/sparc/linux-unwind.h, config/sparc/linux.h,
2491         config/sparc/linux64.h: Likewise.
2492         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
2493         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
2494         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
2495         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
2496         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
2497
2498 2004-09-07  Jan Hubicka  <jh@suse.cz>
2499
2500         * cse.c (fold_rtx):  Avoid building of
2501         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
2502
2503         * tree-ssa-pre.c (grand_bitmap_obstack): New.
2504         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
2505         (init_pre): Initialize obstack.
2506         (fini_pre): Free obstack.
2507
2508 2004-09-07  David Daney  <ddaney@avtrex.com>
2509
2510         * config.gcc: Added support for --with-divide=[breaks|traps] for
2511         mips targets.
2512         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
2513         (TARGET_DIVIDE_TRAPS): New macro.
2514         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
2515         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
2516         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
2517         GENERATE_DIVIDE_TRAPS.
2518         (mips_output_division): Emit conditional trap if
2519         GENERATE_DIVIDE_TRAPS is set.
2520         * doc/install.texi: Document --with-divide.
2521         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
2522
2523 2004-09-07  Caroline Tice  <ctice@apple.com>
2524
2525         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
2526         EDGE_CROSSING, to flags test case.
2527
2528 2004-09-07  Jan Hubicka  <jh@suse.cz>
2529
2530         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
2531         class too.
2532
2533 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
2534
2535         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
2536         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
2537         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
2538         or gcc_unreachable.
2539         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
2540         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
2541         alloc_aux_for_edges, free_aux_for_edges): Likewise.
2542         * cfgcleanup.c (try_forward_edges,
2543         merge_blocks_move_predecessor_nojumps,
2544         merge_blocks_move_successor_nojumps): Likewise.
2545         * cfgexpand.c (expand_gimple_cond_expr,
2546         expand_gimple_tailcall): Likewise.
2547         * cfghooks.c (duplicate_block): Likewise.
2548         * cfglayout.c (record_effective_endpoints,
2549         insn_locators_initialize, change_scope, fixup_reorder_chain,
2550         verify_insn_chain, fixup_fallthru_exit_predecessor,
2551         duplicate_insn_chain, cfg_layout_finalize): Likewise.
2552         * cfgloopanal.c (check_irred): Likewise.
2553         * cfgloop.c (superloop_at_depth, flow_loops_free,
2554         flow_loop_entry_edges_find, flow_loops_find,
2555         flow_loop_outside_edge_p, get_loop_body,
2556         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
2557         get_loop_exit_edges, num_loop_branches, cancel_loop,
2558         verify_loop_structure): Likewise.
2559         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
2560         duplicate_loop_to_header_edge, create_preheader,
2561         create_loop_notes): Likewise.
2562         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
2563         edirect_branch_edge, force_nonfallthru_and_redirect,
2564         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
2565         commit_edge_insertions, commit_edge_insertions_watch_calls,
2566         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
2567         cfg_layout_redirect_edge_and_branch_force,
2568         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
2569         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
2570         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
2571         cgraph_varpool_node): Likewise.
2572         * cgraphunit.c (cgraph_finalize_function,
2573         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
2574         cgraph_expand_function, cgraph_remove_unreachable_nodes,
2575         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
2576         cgraph_mark_inline, cgraph_expand_all_functions,
2577         cgraph_build_static_cdtor): Likewise.
2578         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
2579         simplify_logical, distribute_notes, insn_cuid): Likewise.
2580         * conflict.c (conflict_graph_add, print_conflict): Likewise.
2581         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
2582         coverage_checksum_string): Likewise.
2583         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
2584         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
2585         cse_cc_succs, cse_condition_code_reg): Likewise.
2586         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
2587         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
2588         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
2589         cselib_record_set): Likewise.
2590
2591 2004-09-07  Jan Hubicka  <jh@suse.cz>
2592
2593         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
2594
2595 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
2596
2597         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
2598         fold_convert.
2599         (fold_builtin_strpbrk): Likewise.
2600         * expr.c (array_ref_low_bound): Likewise.
2601         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
2602         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
2603         * tree-sra.c (generate_element_zero): Likewise.
2604         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2605         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
2606         add_old_iv_candidates, add_iv_candidates): Likewise.
2607         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2608
2609 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
2610
2611         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
2612         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
2613         c_expand_expr, boolean_increment, nonnull_check_p,
2614         check_function_arguments_recurse, fold_offsetof_1): Likewise.
2615         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
2616         builtin_define_type_max): Likewise.
2617         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
2618         implicit_decl_warning, builtin_function, build_compound_literal,
2619         complete_array_type, grokdeclarator, get_parm_info,
2620         start_function, store_parm_decls_oldstyle,
2621         c_write_global_declarations): Likewise.
2622         * c-format.c (get_constant, decode_format_attr,
2623         maybe_read_dollar_number, get_flag_spec, check_format_arg,
2624         check_format_types, format_type_warning,
2625         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
2626         init_dynamic_diag_info, handle_format_attribute): Likewise.
2627         * c-gimplify.c (push_context, pop_context, finish_bc_block):
2628         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
2629         * c-objc-common.c (c_tree_printer): Likewise.
2630         * c-pch.c (pch_init): Likewise.
2631         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
2632         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
2633         * c-typeck.c (c_incomplete_type_error, composite_type,
2634         common_pointer_type, common_type, same_translation_unit_p,
2635         tagged_types_tu_compatible_p, finish_init, pop_init_level,
2636         set_designator, set_nonincremental_init_from_string,
2637         process_init_element, c_finish_if_stmt): Likewise.
2638         * caller-save.c (init_caller_save, save_call_clobbered_regs,
2639         insert_restore, insert_save, insert_one_insn): Likewise.
2640         * calls.c (emit_call_1, compute_argument_block_size,
2641         precompute_arguments, expand_call, emit_library_call_value_1,
2642         store_one_arg): Likewise.
2643
2644 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
2645
2646         * configure.ac (enable-checking): Add release option. Reorganize
2647         to avoid repetition.
2648         * configure: Rebuilt.
2649         * doc/install.texi (enable-checking): Amend documentation.
2650
2651 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
2652
2653         PR bootstrap/17313
2654         * Makefile.in (specs.ready): Depend on cc1$(exeext).
2655
2656 2004-09-06  James E Wilson  <wilson@specifixinc.com>
2657
2658         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
2659         movdf_hardfloat_32bit): Split fG into two alternatives.
2660         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
2661
2662         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
2663
2664 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2665
2666         * final.c (output_in_slot): Delete.
2667         (final_scan_insn): Revert 2004-09-03 change.
2668         (output_asm_insn): Likewise.
2669         * config/sparc/sparc.c (output_return): Likewise.
2670         (output_sibcall): Likewise.
2671
2672 2004-09-06  Jan Hubicka  <jh@suse.cz>
2673
2674         * loop.c (loop_dump_aux): Do not print RTL when not available.
2675         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
2676         frontend specific type nodes.
2677         (produce_memory_decl_rtl): Break out from ...
2678         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
2679         (get_computation_at): Avoid random tree sharing.
2680         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
2681
2682 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
2683
2684         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
2685         unnecessary commands.
2686
2687 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
2688
2689         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
2690         (bitmap.o): Likewise.
2691
2692 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
2693
2694         Unify the management of RTL and tree-level dump files.
2695
2696         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
2697         Don't print function name to the dump file, the pass manager
2698         would do this for us. Add code from the top of
2699         rest_of_compilation, up to the initial RTL dump.
2700         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
2701         close the DFI_sibling dump file.
2702         (rest_of_compilation): Don't do that here.  Remove code up to the
2703         initial RTL dump.
2704         (init_optimization_passes): Remove.
2705         (pass_rest_of_compilation): Change pass name to NULL.
2706         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
2707         Do not call init_optimization_passes.
2708         * toplev.h (init_optimization_passes): Remove.
2709
2710         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
2711         finish_graph_dump_file): Remove SUFFIX parameter.
2712         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
2713         finish_graph_dump_file): Likewise.
2714
2715         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
2716         * cfgexpand.c (pass_expand): Adjust.
2717         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
2718         * passes.c (pass_rest_of_compilation): Adjust.
2719         * predict.c (pass_profile): Adjust.
2720         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
2721         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
2722         pass_split_crit_edges, pass_warn_function_return): Adjust.
2723         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
2724         * tree-dfa.c (pass_referenced_vars): Adjust.
2725         * tree-eh.c (pass_lower_eh): Adjust.
2726         * tree-if-conv.c (pass_build_ssa): Adjust.
2727         * tree-into-ssa.c (pass_build_ssa): Adjust.
2728         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
2729         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
2730         * tree-nrv.c (pass_nrv): Adjust.
2731         * tree-optimize.c (pass_gimple, pass_all_optimizations,
2732         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
2733         pass_init_datastructures): Adjust.
2734         * tree-outof-ssa.c (pass_del_ssa): Adjust.
2735         * tree-profile.c (pass_tree_profile): Adjust.
2736         * tree-sra.c (pass_sra): Adjust.
2737         * tree-ssa-alias.c (pass_may_alias): Adjust.
2738         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
2739         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
2740         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
2741         * tree-ssa-dom.c (pass_dominator): Adjust.
2742         * tree-ssa-dse.c (pass_dse): Adjust.
2743         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
2744         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
2745         * tree-ssa-loop-ch.c (pass_ch): Adjust.
2746         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
2747         pass_loop_done, pass_complete_unroll, pass_iv_canon,
2748         pass_iv_optimize, pass_vectorize): Adjust.
2749         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
2750         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
2751         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
2752         pass_late_warn_uninnitialized): Adjust.
2753         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
2754
2755         * Makefile.in (tree-dump.o): Add new dependencies.
2756         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
2757         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
2758         Likewise.
2759         * toplev.c (dump_file_name): New.
2760         * tree-dump.c (dump_enable_all): Add LETTER parameter.
2761         (struct dump_file_info): Add NUM and LETTER fields.
2762         (dump_files): Adjust and add RTL dump files.
2763         (dump_register): Add NUM and LETTER fields.
2764         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
2765         (dump_begin): Use get_dump_file_name.
2766         (dump_switch_p_1): Adjust call to dump_enable_all.
2767         * tree-dump.h (dump_register): Adjust prototype.
2768         * tree-optimize.c (register_one_dump_file): Take dump file index.
2769         Support flags for RTL dumps.
2770         (register_dump_files): Fill in NUM field of struct dump_file_info.
2771         Track properties both when the gate is executed and when it is not.
2772         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
2773         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
2774         dumps of RTL.
2775         * tree-pass.h (dump_file_name): New.
2776         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
2777         New.
2778
2779         * Makefile.in (passes.o): Add new dependencies.
2780         * passes.c (struct dump_file_info, enum dump_file_index,
2781         dump_file_tbl, init_optimization_passes): Remove.
2782         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
2783         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
2784         dump_enabled_p.
2785         (finish_optimization_passes): Update finish_graph_dump_file loop.
2786         (enable_rtl_dump_file): Remove.
2787         * tree-dump.c (dump_files): Adjust and add RTL dump files.
2788         (enable_rtl_dump_file): Add here.
2789         * tree.h (enum tree_dump_index): Add RTL dump file indices.
2790         * doc/invoke.texi (Debugging options): Document new RTL debugging
2791         options.  Update.
2792
2793 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
2794
2795         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
2796         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
2797         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
2798         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
2799         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
2800         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
2801         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
2802         vec.h: Fix comment formatting.
2803
2804 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
2805
2806         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
2807         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
2808         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
2809         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
2810         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
2811         tree-ssa-loop-niter.c, tree-ssa-operands.c,
2812         tree-ssa-operands.h, tree-ssa-propagate.c,
2813         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
2814         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
2815
2816 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
2817
2818         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
2819         vectorizer is enabled.
2820
2821 2004-09-05  Andreas Jaeger  <aj@suse.de>
2822
2823         * tree-if-conv.c: Spell check comments and clean up whitespace.
2824
2825 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2826
2827         * tree-ssa-loop-ivopts.c: New file.
2828         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
2829         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
2830         target_pres_cost, target_spill_cost): Declare.
2831         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
2832         spill_cost): Renamed to ...
2833         (target_avail_regs, target_res_regs, target_small_cost,
2834         target_pres_cost, target_spill_cost): ... and exported.
2835         (init_set_costs, global_cost_for_size): Work with renamed variables.
2836         * common.opt (flag_ivopts): New flag.
2837         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
2838         REF_ORIGINAL.
2839         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
2840         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
2841         generating SSA form.
2842         (force_gimple_operand): New function.
2843         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
2844         * tree-cfg.c (stmt_bsi): New function.
2845         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
2846         PARAM_IV_MAX_CONSIDERED_USES): New.
2847         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
2848         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
2849         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
2850         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
2851         * tree-nested.c (build_addr): Export.
2852         * tree-optimize.c (init_tree_optimization_passes): Add
2853         pass_iv_optimize.
2854         * tree-pass.h (pass_iv_optimize): Declare.
2855         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
2856         IMAGPART_EXPR.
2857         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
2858         as a phi node argument.
2859         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
2860         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
2861         functions.
2862         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
2863         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
2864         pass_iv_optimize): New pass.
2865         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
2866         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
2867         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
2868         * tree.h (REF_ORIGINAL): New macro.
2869         (build_int_cst_type, unsigned_type_for, zero_p,
2870         cst_and_fits_in_hwi, build_addr): Declare.
2871         * doc/invoke.texi (-fivopts): Document.
2872         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
2873         PARAM_IV_MAX_CONSIDERED_USES): Document.
2874         * doc/passes.texi: Document induction variable optimizations pass.
2875
2876 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2877
2878         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
2879         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
2880         * c-common.c (c_common_attribute_table): Accept parameters to
2881         sentinel attribute.
2882         (check_function_sentinel, handle_sentinel_attribute): Likewise.
2883         * doc/extend.texi: Update accordingly.
2884
2885 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2886
2887         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
2888         New.
2889         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
2890         attribute.
2891         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
2892         New functions.
2893         (c_common_attribute_table): Add `sentinel' attribute.
2894         (check_function_arguments): Handle `sentinel' attribute.
2895         * doc/extend.texi: Document `sentinel' attribute.
2896
2897 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
2898
2899         * configure: Regenerated.
2900
2901 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2902
2903         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
2904
2905         * tree.c (save_expr): No longer TREE_READONLY.
2906
2907 2004-09-04  Jan Hubicka  <jh@suse.cz>
2908
2909         * passes.c (rest_of_clean_state):  Fix merge conflict made during
2910         commiting the patch.
2911
2912 2004-09-04  Jan Hubicka  <jh@suse.cz>
2913
2914         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
2915
2916 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2917
2918         * doc/md.texi (shift patterns): New anchor.  Add reference to
2919         TARGET_SHIFT_TRUNCATION_MASK.
2920         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
2921         * target.h (shift_truncation_mask): New target hook.
2922         * targhook.h (default_shift_truncation_mask): Declare.
2923         * targhook.c (default_shift_truncation_mask): Define.
2924         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
2925         (TARGET_INITIALIZER): Include it.
2926         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
2927         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
2928         reject all out-of-range values.  Fix sign-extension code for modes
2929         whose width is smaller than HOST_BITS_PER_WIDE_INT.
2930         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
2931         (expand_superword_shift, expand_subword_shift): Likewise.
2932         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
2933         (expand_binop): Use them to implement double-word shifts.
2934         * config/arm/arm.c (arm_shift_truncation_mask): New function.
2935         (TARGET_SHIFT_TRUNCATION_MASK): Define.
2936
2937 2004-09-04  Jan Hubicka  <jh@suse.cz>
2938
2939         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
2940         (mix): New macro copied from hashtab.c
2941         (iterative_hash_hashval_t, iterative_hash_pointer,
2942         iterative_hash_host_wide_int): New functions based on hashtab.c
2943         implementation.
2944
2945 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2946
2947         * config/mips/mips.md (mask): New mode attribute.
2948         (zero_extendsidi2): Add memory alternative.
2949         (*zero_extendsidi2_mem): Delete.
2950         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
2951         memory_operand in the TARGET_MIPS16 check.
2952         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
2953         Redefine using :GPR and :SHORT.
2954         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
2955
2956 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
2957
2958         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
2959         using rint_optab.
2960         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
2961         expand_builtin_mathfn.
2962         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
2963         btrunc?f patterns for btrunc_optab. Implement rint_optab using
2964         rint?f patterns.
2965         * optabs.c (init_optabs): Initialize rint_optab.
2966         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
2967         Add new OTI_rint.
2968         (btrunc_optab): Rename macro from trunc_optab.
2969         (rint_optab): Define corresponding macro.
2970
2971         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
2972         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
2973
2974         * config/i386/i386-protos.h (emit_i387_cw_initialization):
2975         Change prototype. Add new int parameter.
2976         * config/i386/i386.c (emit_i387_cw_initialization):
2977         Handle new rounding modes.
2978
2979         * config/i386/i386.h (enum fp_cw_mode): Delete.
2980         (MODE_NEEDED): Handle new rounding modes.
2981         (EMIT_MODE_SET): Change condition to handle new rounding modes.
2982
2983         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
2984         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
2985         represent different rounding modes of frndint insn.
2986         (type): Add frndint type.
2987         (i387, length, memory): Handle this type.
2988         (i387_cw): New attribute definition.
2989         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
2990         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
2991         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
2992         Add "i387_cw" attribute defined to "trunc".
2993         (x86_fnstcw_1): Remove comment.
2994         (*frndintxf2): Rename insn definition to frndintxf2. Move
2995         insn definition near rint?f2 expanders.
2996         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
2997         rintf and rintl built-ins as inline x87 intrinsics.
2998         (frndintxf2_floor): New pattern to implement floor rounding
2999         mode with frndint x87 instruction.
3000         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
3001         floorf and floorl built-ins as inline x87 intrinsics.
3002         (frndintxf2_ceil): New pattern to implement ceil rounding
3003         mode with frndint x87 instruction.
3004         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
3005         ceilf and ceill built-ins as inline x87 intrinsics.
3006         (frndintxf2_trunc): New pattern to implement trunc rounding
3007         mode with frndint x87 instruction.
3008         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
3009         truncf and truncl built-ins as inline x87 intrinsics.
3010         (frndintxf2_mask_pm): New pattern to implement rounding
3011         mode with exceptions with frndint x87 instruction.
3012         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
3013         implement nearbyint, nearbyintf and nearbyintl built-ins as
3014         inline x87 intrinsics.
3015
3016 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
3017
3018         * config/mips/mips.md (SHORT): New mode macro.
3019         (size): New mode attribute.
3020         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
3021         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
3022         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
3023         !ISA_HAS_SEB_SEH.
3024         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
3025         *extend[qh]isi2_hw patterns and extending them to di.
3026         (extendqihi2): Implement as define_insn_and_split that produces
3027         extendqisi2 after reload.
3028
3029 2004-09-03  Devang Patel  <dpatel@apple.com>
3030
3031         * Makefile.in (OBJS-common): Add tree-if-conv.o
3032         (tree-if-conv.o): New rule.
3033         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
3034         (get_loop_body_in_bfs_order): New.
3035         * cfgloop.h (get_loop_body_in_bfs_order): New.
3036         * tree-flow.h (enum move_pos): Move here from ..
3037         * tree-ssa-loop-im.c (enum move_pos): here.
3038         (movement_possibility): Make externally visible.
3039         * tree-optimize.c (init_tree_optimization_passes): New entry for
3040         if conversion pass.
3041         * tree-pass.h (pass_if_conversion): New.
3042         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
3043         * tree-if-conv.c: New file.
3044         * doc/passes.texi: Document tree if-conversion pass.
3045         * doc/tree-ssa.texi: Same.
3046
3047 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
3048
3049         PR target/14925:
3050         Makefile.in (LIB2ADDEHSTATIC): New.
3051         (LIB2ADDEHSHARED): New.
3052         (LIBUNWIND): New.
3053         (LIBUNWINDDEP): New.
3054         (SHLIBUNWIND_LINK): New.
3055         (SHLIBUNWIND_INSTALL): New.
3056         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
3057         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
3058         (clean): Remove libunwind*
3059         (stage1-start): Remove and copy stage1/libunwind*.
3060         (stage2-start): Remove and copy stage2/libunwind*.
3061         (stage3-start): Remove and copy stage3/libunwind*.
3062         (stage4-start): Remove and copy stage4/libunwind*.
3063         (stageprofile-start): Remove and copy stageprofile/libunwind*.
3064         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
3065
3066         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
3067         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
3068         tmake_file if --with-system-libunwind isn't used.
3069
3070         * config/ia64/t-glibc-libunwind: New file.
3071         * config/t-libunwind-elf: Likewise.
3072         * unwind-compat.c: Likewise.
3073         * unwind-compat.h: Likewise.
3074         * unwind-dw2-fde-compat.c: Likewise.
3075
3076         * config/ia64/t-glibc (LIB2ADDEH): Updated.
3077         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
3078
3079         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
3080         aliases if needed.
3081         * unwind-dw2-fde-glibc.c: Likewise.
3082         * unwind-dw2.c: Likewise.
3083
3084         * config/t-libunwind (LIB2ADDEH): Updated.
3085         (LIB2ADDEHSTATIC): New.
3086         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
3087         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
3088
3089         * configure.ac: Change --enable-libunwind-exceptions to
3090         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
3091         * configure: Regenerated.
3092         * config.in: Updated.
3093
3094         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
3095         above and mention --with-system-libunwind.
3096         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
3097         removed in gcc 3.4.3 and later.
3098
3099         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
3100         USE_LIBUNWIND_EXCEPTIONS is defined.
3101
3102         * mklibgcc.in: Support libunwind.
3103
3104 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
3105
3106         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
3107         m_NOCONA.
3108
3109 2004-09-03  Richard Henderson  <rth@redhat.com>
3110
3111         PR middle-end/9997
3112         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
3113         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
3114         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
3115         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
3116         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
3117         resize_stack_vars_conflict, add_stack_var_conflict,
3118         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
3119         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
3120         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
3121         expand_one_static_var, expand_one_hard_reg_var,
3122         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
3123         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
3124         (expand_used_vars): Rewrite.
3125         * Makefile.in (cfgexpand.o): Update dependencies.
3126
3127 2004-09-04  Jan Hubicka  <jh@suse.cz>
3128
3129         * cfg.c (free_edge): Use ggc_free.
3130         (expunge_block): Use ggc_free.
3131         * passes.c (rest_of_clean_state): Free after compilation.
3132         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
3133         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
3134
3135 2004-09-03  James E Wilson  <wilson@specifixinc.com>
3136
3137         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
3138         DECL_EXTERNAL check.
3139
3140 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3141
3142         * final.c (output_in_slot): New global variable.
3143         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
3144         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
3145         'output_in_slot' before invoking output_asm_insn.
3146         (output_asm_insn): Add a space after the tab if 'output_in_slot'
3147         is set.
3148         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
3149         final_scan_insn.
3150         (output_sibcall): Likewise.
3151
3152 2004-09-03  Jan Hubicka  <jh@suse.cz>
3153
3154         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
3155         * tree-ssanames (init_ssanames): Likewise.
3156
3157 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
3158
3159         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
3160         objc_declare_protocols, objc_start_protocol,
3161         objc_start_class_interface, objc_start_category_interface,
3162         objc_continue_interface, objc_finish_interface,
3163         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
3164         objc_start_class_implementation, objc_start_category_implementation,
3165         objc_continue_implementation, objc_finish_implementation,
3166         objc_add_method_declaration, objc_start_method_definition,
3167         objc_finish_method_definition, objc_build_keyword_decl,
3168         objc_build_method_signature, objc_build_encode_expr,
3169         objc_build_protocol_expr, objc_build_selector_expr,
3170         objc_build_message_expr, objc_build_string_object,
3171         objc_get_class_reference, objc_get_protocol_qualified_type,
3172         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
3173
3174 2004-09-03  James E Wilson  <wilson@specifixinc.com>
3175
3176         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
3177
3178         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
3179         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
3180         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
3181         (mips_recip1_<fmt>): Use frdiv1 type.
3182         (mips_recip2_<fmt>): Use frdiv2 type.
3183         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
3184         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
3185         and frsqrt1.
3186         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
3187
3188 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
3189
3190         * reload.c (find_reloads): Swap operand_loc pointers for
3191         find_dummy_reload if we have swapped two operands.
3192
3193 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
3194
3195         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
3196         to get the tablejump-insn before the jump-table label.
3197
3198 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
3199
3200         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
3201         objc_declare_protocols, objc_build_message_expr,
3202         objc_finish_message_expr, objc_build_selector_expr,
3203         objc_build_protocol_expr, objc_build_encode_expr,
3204         objc_build_string_object, objc_get_protocol_qualified_type,
3205         objc_get_class_reference, objc_get_class_ivars,
3206         objc_start_class_interface, objc_start_category_interface,
3207         objc_start_protocol, objc_continue_interface, objc_finish_interface,
3208         objc_start_class_implementation, objc_start_category_implementation,
3209         objc_continue_implementation, objc_finish_implementation,
3210         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
3211         objc_add_method_declaration, objc_start_method_definition,
3212         objc_finish_method_definition, objc_add_instance_variable,
3213         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
3214         objc_finish_try_stmt, objc_begin_catch_clause,
3215         objc_finish_catch_clause, objc_build_finally_clause,
3216         objc_build_synchronized, objc_static_init_needed_p,
3217         objc_generate_static_init_call): New prototypes.
3218
3219 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
3220
3221         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
3222         is only one reg.
3223         (ia64_function_value): Ditto.
3224
3225 2004-09-03  Jan Beulich  <jbeulich@novell.com>
3226
3227         * config.gcc: Resurrect NetWare as a target. Handle special case of
3228         Novell linker to be used (specified through --with-ld=) and threading
3229         model of either Posix (default) or NKS.
3230         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
3231         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
3232         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
3233         * config/i386/netware.c, config/i386/netware.h: New.
3234         * config/i386/nwld.c, config/i386/nwld.h: New.
3235         * config/i386/netware-crt0.c: New.
3236         * config/i386/netware-libgcc.c: New.
3237         * config/i386/netware-libgcc.def: New.
3238         * config/i386/netware-libgcc.exp: New.
3239         * config/i386/t-netware, config/i386/t-nwld: New.
3240         * gthr-nks.h: New.
3241         * doc/install.texi: Document NKS threading model.
3242
3243 2004-09-03  Jan Beulich  <jbeulich@novell.com>
3244
3245         PR c/7054
3246         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
3247         * tree.h (initial_max_fld_align): Declare
3248         * stor-layout.c (initial_max_fld_align): Define and initialize.
3249         (maximum_field_alignment): Initialize to the same value.
3250         * common.opt: Add -fpack-struct= variant of switch.
3251         * opts.c: Handle -fpack-struct= variant of switch.
3252         * c-pragma.c: Change #pragma pack() handling so that it becomes
3253         compatible to other compilers: accept individual 'push' argument,
3254         make final pop restore (command line) default, correct interaction
3255         of push/pop and sole specification of a new alignment (so that the
3256         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
3257         to #pragma pack(push, <n>).
3258         * doc/extend.texi: New node "Structure-Packing Pragmas" under
3259         "Pragmas", describing #pragma pack.
3260         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
3261         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
3262         Document new TARGET_DEFAULT_PACK_STRUCT.
3263
3264 2004-09-03  Devang Patel  <dpatel@apple.com>
3265
3266         * dwarf2out.c (gen_field_die). Equate decl number to die.
3267
3268 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3269
3270         PR target/15832
3271         * global.c (modify_reg_pav): New function.
3272         (make_accurate_live_analysis): Call the new function.  Move pavin
3273         modification by earlyclobber set into the new function.
3274
3275 2004-09-03  Andreas Schwab  <schwab@suse.de>
3276
3277         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
3278         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
3279         extended.
3280
3281 2004-09-02  Jan Beulich  <jbeulich@novell.com>
3282
3283         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
3284         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
3285         not unwind code specific ones.
3286         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
3287         Remove unwind code specific dependencies.
3288         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
3289         Remove gbl-ctors.h.
3290         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
3291         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
3292         * tsystem.h: Declare memcpy and memset when inhibit_libc.
3293
3294 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
3295
3296         * combine.c (try_combine): Delay modifying of insns which cannot
3297         be easily undone.
3298
3299 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
3300
3301         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
3302         tree-loop-im.
3303         * gcc/tree-ssa-loop.c: Ditto
3304         * gcc/tree-ssa-loop-ivcanon.c: Ditto
3305         * gcc/doc/invoke.texi: Ditto.
3306
3307 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
3308
3309         * c-decl.c (store_parm_decls_newstyle): Make static.
3310         (store_parm_decls_from): New function.
3311         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
3312         (store_parm_decls_from): New prototype.
3313
3314 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
3315
3316         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
3317         HImode with STRICT_ALIGNMENT.
3318
3319 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
3320
3321         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
3322         (TARGET_OS_CPP_BUILTINS): Likewise.
3323         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
3324         TARGET_BPABI_CPP_BUILTINS.
3325
3326 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
3327
3328         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
3329
3330 2004-09-02  Eric Christopher  <echristo@redhat.com>
3331
3332         * builtins.c (expand_builtin_cabs): Delete.
3333         (expand_builtin): If unable to fold the values do a normal
3334         library call for builtin_cab*.
3335         (fold_builtin_cabs): Depend on optimize and optimize_size.
3336         * optabs.c (expand_cmplxdiv_straight): Delete.
3337         (expand_cmplxdiv_wide): Ditto.
3338         (expand_vector_binop): Ditto.
3339         (expand_vector_unop): Ditto.
3340         (expand_complex_abs): Delete.
3341         (expand_binop): Remove calls to above functions.
3342         Remove open coding of complex arithmetic.
3343         (expand_unop): Ditto.
3344         * optabs.h: Remove prototypes.
3345
3346 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
3347
3348         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
3349         * c-tree.h (store_parm_decls_newstyle): New prototype.
3350
3351 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
3352
3353         * config/rs6000/rs6000.c (expand_block_clear): Use vector
3354         instructions if available.
3355         (expand_block_move): Likewise.
3356
3357 2004-09-03  Jan Hubicka  <jh@suse.cz>
3358
3359         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
3360
3361 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
3362
3363         * config/arm/symbian.h (LIB_SPEC): Define to empty.
3364         * config/arm/t-symbian (SHLIB_LC): Likewise.
3365
3366 2004-09-02  Paul Brook  <paul@codesourcery.com>
3367
3368         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
3369
3370 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
3371
3372         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
3373         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
3374         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
3375         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
3376         (mips_issue_rate): Remove unreachable abort.
3377         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
3378         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
3379         (mips_block_move_straight, print_operand_address, mips_file_start)
3380         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
3381         (mips_output_conditional_branch, mips_expand_builtin_direct)
3382         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
3383         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
3384         with gcc_assert.
3385
3386 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
3387
3388         * config/mips/mips.md (*lea_high64): Change split condition to
3389         flow2_completed.  Add a peephole2 to generate a more parallel version.
3390
3391 2004-09-02  Jan Hubicka  <jh@suse.cz>
3392
3393         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
3394         GGC.
3395
3396         * ggc-page.c: include tree-flow.h.
3397         (extra_order_size_table): Add stmt_ann_d.
3398         (STAT_LABEL): Rename from ....
3399         (LABEL): ... this one.
3400         * Makefile.in (ggc-page.o): Add dependency.
3401
3402         * ggc-common.c (ggc_force_collect): New global variable.
3403         (loc_description): Add fields "freed", "collected"
3404         (ptr_hash): New static hash
3405         (ptr_hash_entry): New structure.
3406         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
3407         (ggc_record_overhead): Take ptr argument, record it
3408         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
3409         (cmp_statistics): Imrove sorting.
3410         (dump_ggc_loc_statistics): Output newly collected statistics
3411         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
3412         (ggc_free): Call ggc_free_overhead.
3413         (ggc_collect): Force collection when asked to be forced.
3414         (ggc_collect): Call ggc_prune_overhead_list.
3415         * ggc.h (ggc_force_collect): Declare
3416         (ggc_record_overhead): Update prototype.
3417         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
3418
3419 2004-09-02  James E Wilson  <wilson@specifixinc.com>
3420
3421         * common.opt (ftrapping-math): Default to on.
3422
3423 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
3424
3425         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
3426
3427 2004-09-02  Denis Chertykov  <denisc@overta.ru>
3428
3429         PR target/16884
3430         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
3431         match_scratch.
3432         (*movmemqi_insn): Likewise.
3433         (*movmemhi): Likewise.
3434         (clrmemhi): Likewise.
3435         (*clrmemqi): Likewise.
3436         (*clrmemhi): Likewise.
3437
3438 2004-09-02  Paul Brook  <paul@codesourcery.com>
3439
3440         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
3441         default_use_cxa_atexit=yes.
3442
3443 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
3444
3445         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
3446         (struct kernel_old_ucontext): Delete.
3447         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
3448         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
3449         when IN_LIGGCC2.
3450
3451 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
3452
3453         * toplev.c (process_options): Fix typo.
3454
3455 2004-09-01  Richard Henderson  <rth@redhat.com>
3456
3457         PR middle-end/17258
3458         * calls.c (initialize_argument_information): Tighten pass-through
3459         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
3460         Use build_fold_addr_expr.
3461         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
3462         that assumes ADDR_EXPR allocates stack space.
3463         * fold-const.c (build_fold_addr_expr_with_type): Look through
3464         WITH_SIZE_EXPR.
3465
3466 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
3467
3468         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
3469         * ggc.h (ggc_alloc_rtx): Delete.
3470
3471 2004-09-01  Roger Sayle  <roger@eyesopen.com>
3472
3473         * expmed.c (enum alg_code): Remove long unused enumeration values.
3474         (struct mult_cost): New structure to hold the "score" of a synthetic
3475         multiply sequence, including both a rtx_cost and a latency field.
3476         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
3477         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
3478         (struct algorithm): Change type of cost field to be mult_cost.
3479         (synth_mult): Change type of cost_limit argument to be a
3480         pointer to a mult_cost.  Update all cost comparisons to use the
3481         new mult_cost infrastructure.  For alg_add_factor and
3482         alg_sub_factor operations, latency is lower than the rtx_cost.
3483         (choose_mult_variant):  Update calls to synth_mult.  Perform
3484         cost comparisons using the new mult_cost infrastructure.
3485         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
3486         to optain the total rtx_cost of a synth_mult "algorithm".
3487
3488 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
3489
3490         * config/rs6000/power4.md: Increase store latency to 12.
3491         * config/rs6000/power5.md: Same.
3492
3493 2004-09-01  James E Wilson  <wilson@specifixinc.com>
3494
3495         PR target/14064
3496         * config/avr/avr.c (avr_unique_section): Delete prototype and
3497         definition.
3498         (TARGET_ASM_UNIQUE_SECTION): Delete.
3499
3500 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
3501
3502         * c-parse.in (primary): Call objc_build_message_expr(),
3503         objc_build_selector_expr(), objc_build_protocol_expr(),
3504         objc_build_encode_expr() and objc_build_string_object() instead of
3505         build_message_expr(), build_selector_expr(), build_protocol_expr(),
3506         build_encode_expr() and build_objc_string_object(), respectively.
3507         (component_decl_list2): Call objc_get_class_ivars() instead of
3508         get_class_ivars_from_name().
3509         (keyworddecl): Call objc_build_keyword_decl() instead of
3510         build_keyword_decl().
3511         (receiver): Call objc_get_class_reference() instead of
3512         get_class_reference().
3513         (reswords): Add blank line before @@ifobjc section, for clarity.
3514
3515 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
3516
3517         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
3518         to Altivec vetors.
3519
3520 2004-09-01  Wu Yongwei  <adah@sh163.net>
3521             Danny Smith  <dannysmith@users.sourceforge.net>
3522
3523         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
3524         not Windows 'DWORD'.
3525         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
3526         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
3527         (__gthr_win32_recursive_mutex_init_function): Add prototype for
3528         __GTHREAD_HIDE_WIN32API case..
3529         (__gthr_win32_recursive_mutex_lock): Likewise.
3530         (__gthr_win32_recursive_mutex_trylock): Likewise.
3531         (__gthr_win32_recursive_mutex_unlock): Likewise.
3532         (__gthread_recursive_mutex_init_function); Add definition for
3533         __GTHREAD_HIDE_WIN32API case.
3534         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
3535         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
3536         call to InterlockedDecrement.
3537
3538 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3539
3540         * tree-tailcall.c (find_tail_calls): Also fail is statement has
3541         volatile operands.
3542
3543         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
3544
3545         * doc/c-tree.texi: Document new operands for ARRAY_REF and
3546         COMPONENT_REF.
3547
3548 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3549
3550         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
3551         * common.opt (fspeculative-prefetching): New.
3552         * flags.h (flag_speculative_prefetching_set): Declare.
3553         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
3554         values.
3555         * opts.c (flag_sepculative_prefetching_set): New variable.
3556         (common_handle_option): Handle -fspeculative-prefetching.
3557         * passes.c (rest_of_compilation): Ditto.
3558         * profile.c (instrument_values, compute_value_histograms, branch_prob):
3559         Use vectors instead of arrays.
3560         * toplev.c (process_options): Handle -fspeculative-prefetching.
3561         * rtl-profile.c: Include ggc.h.
3562         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
3563         rtl_gen_one_value_profiler_no_edge_manipulation,
3564         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
3565         argument changed.
3566         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3567         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
3568         argument changed.
3569         * value-prof.c: Include ggc.h.
3570         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
3571         macros.
3572         (insn_prefetch_values_to_profile, find_mem_reference_1,
3573         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
3574         speculative_prefetching_transform): New.
3575         (value_profile_transformations): Call speculative_prefetching_transform.
3576         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
3577         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
3578         tree_find_values_to_profile, find_values to profile): Use vectors
3579         instead of arrays.
3580         (free_profiled_values): Removed.
3581         * value-prof.h (struct histogram_value): Renamed to
3582         struct histogram_value_t.
3583         (histogram_value, histogram_values): New types.
3584         (find_values_to_profile): Declaration changed.
3585         (free_profiled_values): Removed.
3586         (struct profile_hooks): Type of argument of the hooks changed to
3587         histogram_value.
3588         * doc/invoke.texi (-fspeculative-prefetching): Document.
3589
3590 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3591
3592         PR rtl-optimization/16408
3593         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
3594
3595 2004-09-01  Richard Henderson  <rth@redhat.com>
3596
3597         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
3598         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
3599
3600 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
3601
3602         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
3603
3604 2004-09-01  Mike Stump  <mrs@apple.com>
3605
3606         * config/darwin.c (machopic_symbol_defined_p): In addition to
3607         being SYMBOL_REF_LOCAL_P, a symbol must also be
3608         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
3609         defined in this output file, or translation unit in the case
3610         of IMA not being used.
3611         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
3612         never need .indirect_symbol when indirecting.
3613
3614 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
3615
3616         * Makefile.in (bb-reorder.o): Add several dependencies.
3617
3618 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
3619
3620         * fold-const.c (operand_equal_p): Require equal sign also for
3621         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
3622
3623 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
3624
3625         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
3626         for use in configargs.h.  Put the cname in a separate variable.  Use
3627         that to set target_cpu_default2.
3628
3629 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
3630             Nick Clifton  <nickc@redhat.com>
3631
3632         * config/sh/sh.md ("length"): Increase branch length when
3633         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
3634         constant, 2 byte for aligning the constant.
3635
3636 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
3637
3638         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
3639         CPU.
3640         (arm7tdmi-s): New CPU name.
3641         * arm/arm.c (ARM_CORE): Update for new format.
3642         * arm/arm.h (ARM_CORE): Likewise.
3643         * arm/gentune.sh: Update for extra field.
3644         * config.gcc: Likewise.
3645         * arm/arm-tune.md: Regenerate.
3646         * doc/invoke.texi: Document the real processor names for ARM cpus.
3647
3648 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
3649
3650         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
3651         (floatdidf): New functions.
3652         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
3653         (floatdisf): New functions.
3654         * t-arm-elf: Use them.
3655
3656 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
3657
3658         * c-common.h (lookup_interface): Remove prototype.
3659         (is_class_name): Rename to objc_is_class_name.
3660         (lookup_objc_ivar): Rename to objc_lookup_ivar.
3661         (get_current_scope): Rename to objc_get_current_scope.
3662         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
3663         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
3664         (yylexname): Call objc_is_class_name() instead of is_class_name().
3665         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
3666         instead of lookup_objc_ivar().
3667         * stub-objc.c (lookup_interface): Remove stub.
3668         (is_class_name): Rename to objc_is_class_name.
3669         (lookup_objc_ivar): Rename to objc_lookup_ivar.
3670
3671 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
3672
3673         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
3674         * config/arm/lib1funcs.asm: Do not include supplemental .S files
3675         when compiling for Symbian.
3676         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
3677         (TARGET_OS_CPP_BUILTINS): Likewise.
3678         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
3679
3680 2004-08-31  Stan Shebs  <shebs@apple.com>
3681
3682         * toplev.c (process_options): Ensure debug_hooks is initialized.
3683
3684 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
3685
3686         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
3687         * target.h (cxx): Add export_class_data.
3688         * config/arm/arm.c (arm_cxx_export_class_data): New function.
3689         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
3690         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
3691
3692 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3693
3694         * config/sh/sh.c (output_branch): Check the insn length possibly
3695         in the delayed slot.
3696
3697 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3698
3699         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
3700         blank after ')'.
3701         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
3702
3703         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
3704         (c_sizeof_of_alignof_type): Likewise.
3705         * expr.c (array_ref_element_size): Likewise.
3706         (highest_pow2_factor_for_target): Likewise.
3707         * gimplify.c (canonicalize_addr_expr): Likewise.
3708         (gimplify_compound_lval): Likewise.
3709         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
3710         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
3711         * varasm.c (assemble_variable): Likewise.
3712         (output_constant_def_contents): Alignments are unsigned.
3713
3714 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3715             Jeff Law  <law@redhat.com>
3716
3717         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
3718         gets modified.
3719
3720 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
3721
3722         * hooks.c (hook_bool_void_true): New function.
3723         * hooks.h (hook_bool_void_true): Declare.
3724         * target-def.h (TARGET_CXX): Add
3725         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
3726         * target.h (struct cxx): Add key_method_may_be_inline.
3727         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
3728         function.
3729         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
3730         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
3731         __THUMB_INTERWORK.
3732
3733 2004-08-31  Denis Chertykov  <denisc@overta.ru>
3734
3735         PR target/15417
3736         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
3737         frame pointer register only in Pmode while reload in progress.
3738
3739 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
3740
3741         PR target/15334
3742         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
3743         because it breaks the 32-bit shift patterns that rely on a match_dup.
3744
3745 2004-08-31  Matt Austern  <austern@apple.com>
3746
3747         * config/darwin.c (darwin_make_decl_one_only): Allocate section
3748         names once per compilation, instead of once per symbol.
3749
3750 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
3751
3752         * Makefile.in (build_subdir): New substitution.
3753         (fixinc.sh): Simplify heavily since fixincludes is already built.
3754         (stmp-fixinc): Depend on specs.ready.
3755         (install-mkheaders): Use new location of fixincludes.
3756         (clean): Do not descend into fixinc.
3757         (FORBUILD): Replace with ../$(build_subdir).
3758         * configure.ac (build_subdir): Substitute.
3759         (FORBUILD): Do not set.
3760         (all_outputs): Remove fixinc/Makefile.
3761         (default commands): Do not create links in fixinc.
3762         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
3763         the fixincludes configuration steps and substituting
3764         @FIXINCL@ in fixinc.in.
3765         * fixinc.in: New, from fixinc/fixincl.sh.
3766
3767         * fixinc/*: Removed.
3768
3769 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
3770
3771         * attribs.c (strip_attrs): Remove.
3772         (split_specs_attrs): Move ...
3773         * c-decl.c: ... to here.
3774         * tree.h (split_specs_attrs, strip_attrs): Remove.
3775         * c-tree.h (split_specs_attrs): Declare.
3776
3777 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
3778
3779         * read-rtl.c: Disable RTL checking.
3780         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
3781
3782 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
3783
3784         * config/mips/mips.md (fcond): New code macro and attribute.
3785         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
3786         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
3787         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
3788
3789 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
3790
3791         Revert:
3792         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
3793         PR rtl-optimization/16590
3794         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
3795
3796 2004-08-30  Andrew Pinski  <apinski@apple.com>
3797
3798         * hard-reg-set.h:
3799         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
3800         * ChangeLog: Fix previous ChangeLog entry.
3801
3802         PR rtl-opt/13987
3803         * config.host (use_long_long_for_widest_fast_int): New, default is
3804         off.
3805         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
3806         * configure.ac: If use_long_long_for_widest_fast_int, then
3807         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
3808         * configure: Regenerate.
3809         * config.in: Regenerate.
3810         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
3811         New: widest integer type supported efficiently in hardware for the
3812         host.
3813         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
3814         HOST_BITS_PER_WIDEST_FAST_INT.
3815         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
3816         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
3817         HOST_WIDEST_FAST_INT
3818         instead of HOST_WIDE_INT.
3819         (HARD_REG_SET_LONGS): Likewise.
3820         (UHOST_BITS_PER_WIDE_INT): Likewise.
3821         Change the checks for the fast cases to be based on
3822         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
3823
3824 2004-08-30  Steven Bosscher  <stevenb@suse.de>
3825
3826         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
3827         not the pointers.
3828
3829 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
3830
3831         PR 12738
3832         PR 17205
3833         Radar 3460526
3834         Radar 3775729
3835         * c-decl.c (grokdeclarator): Produce error for 'static' on local
3836         function declaration.
3837
3838 2004-08-30  Richard Henderson  <rth@redhat.com>
3839
3840         * expr.c (array_ref_element_size): Force aligned_size back to
3841         sizetype.
3842         (component_ref_field_offset): Similarly for aligned_offset.
3843         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
3844         low-bound, element-size, field-offset fields rather than
3845         computed values.
3846
3847 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3848
3849         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
3850         redundant code.
3851
3852 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3853
3854         * c-tree.h (struct language_function): Add arg_info element.
3855         * c-decl.c (current_function_arg_info): New.
3856         (grokdeclarator, store_parm_decls): Use it instead of
3857         DECL_ARGUMENTS.
3858         (c_push_function_context, c_pop_function_context): Save and
3859         restore it.
3860
3861 2004-08-30  Richard Henderson  <rth@redhat.com>
3862
3863         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
3864         COMPONENT_REF to pointer arithmetic.
3865         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
3866         constant "c" as a valid constant initializer.  Allow narrowing of
3867         differences against the same base object, for any base object.
3868
3869 2004-08-30  Richard Henderson  <rth@redhat.com>
3870
3871         * expr.c (expand_expr_addr_expr): New.
3872         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
3873
3874 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
3875
3876         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
3877         (mips_fp_condition): New enum.
3878         (mips_fp_conditions): New array.
3879         (print_fcc_operand): Delete.
3880         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
3881         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
3882         (builtin_description): Add "cond" field.
3883         (DIRECT_BUILTIN): Initialize it.
3884         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
3885         into INSN and CODE.  Initialize the "cond" field.
3886         (CMP_BUILTINS): Update accordingly.
3887         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
3888         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
3889         mips_fp_condition as argument.  Make it the final operand of the
3890         comparison instruction.
3891         (mips_expand_builtin): Update accordingly.
3892         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
3893         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
3894         the gaps.
3895         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
3896         Don't use the 'Q' operand prefix; just print the operand normally.
3897         (mips_cabs_*, mips_c_*): Delete, replacing with...
3898         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
3899         patterns.  Split the 4s versions into 2 ps patterns after reload.
3900
3901 2004-08-30  Richard Henderson  <rth@redhat.com>
3902
3903         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
3904         assuming an ADDR_EXPR is non-null.
3905
3906 2004-08-30  Jason Merrill  <jason@redhat.com>
3907
3908         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
3909
3910 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3911
3912         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
3913         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
3914         gcc_assert and gcc_unreachable instead of abort.
3915         * alloc-pool.c (abort, fancy_abort): Remove.
3916         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
3917         gcc_assert or gcc_unreachable.
3918         * attribs.c (init_attributes, decl_attributes): Likewise.
3919         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
3920         mark_bb_for_unlikely_executed_section,
3921         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
3922         fix_crossing_unconditional_branches):  Likewise.
3923         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
3924         bitmap_operation):  Likewise.
3925         * bt-load.c (insn_sets_btr_p, augment_live_range,
3926         move_btr_def):  Likewise.
3927         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
3928         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
3929         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
3930         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
3931         expand_builtin_memcmp, expand_builtin_args_info,
3932         std_gimplify_va_arg_expr, expand_builtin_unop,
3933         expand_builtin_fputs, expand_builtin_profile_func,
3934         expand_builtin_fork_or_exec, fold_builtin_bitop,
3935         fold_builtin_classify, fold_builtin_fputs): Likewise.
3936
3937 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3938
3939         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
3940         * gcov.c (abort): Remove undef.
3941
3942         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
3943         (struct tree_binfo): Remove primary field.
3944
3945 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
3946
3947         * fixinc/Makefile.in (machname.h): Remove.
3948         (fixincl.x): Do not pass $@ to genfixes.
3949         * fixinc/genfixes: Remove code to produce machname.h.
3950         * fixinc/fixincl.sh: Move it here instead.
3951         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
3952         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
3953         return a bool indicating whether pz_mn_name_pat is NULL.
3954         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
3955         Declare extern C variables for the ENV_TABLE.
3956         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
3957         instead use the result of mn_get_regexps.
3958         * fixinc/fixtests.c: Likewise.
3959
3960 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
3961
3962         * configure.ac: Do not run fixincludes after stage1 during
3963         toplevel bootstrap.
3964         * configure: Regenerate.
3965
3966 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
3967
3968         * sched-deps.c (get_condition): Partially revert previous, by never
3969         trying to extract the condition from a condjump.
3970
3971 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3972
3973         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
3974         (handle_visibility_attribute, c_determine_visibility): Likewise.
3975         * c-common.h (my_friendly_assert): Remove.
3976
3977 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
3978
3979         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
3980         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
3981         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
3982         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
3983         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
3984
3985 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
3986
3987         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
3988         in COMPONENT_REF nodes.
3989
3990 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3991
3992         PR c++/15378
3993         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
3994         global_dc->warning_as_error_requested.
3995         * diagnostic.c (diagnostic_initialize): Tidy.
3996         * diagnostic.h (diagnostic_context::x_data): Remove
3997         (diagnostic_context::issue_warnings_are_errors_message): Rename
3998         from warnings_are_errors_message.
3999         (diagnostic_context::warning_as_error_requested): New.
4000
4001 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
4002
4003         * sched-deps.c (get_condition): Fix breakage in previous patch.
4004
4005 2004-08-30  Paul Brook  <paul@codesourcery.com>
4006
4007         * doc/install.texi: Fix broken mpfr link.
4008
4009 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
4010
4011         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
4012         other FreeBSD platforms.
4013
4014 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
4015
4016         * arm.h (REVERSE_CONDITION): Define.
4017         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
4018
4019 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
4020
4021         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
4022         just the codes, call reversed_comparison_code ().
4023         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
4024         (not_reg_cond): Use reversed_comparison_code.
4025         (and_reg_cond): Likewise.
4026         * ifcvt.c (cond_exec_process_if_block): Likewise.
4027         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
4028
4029 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
4030
4031         * sched-deps.c (get_condition): Rewrite using jump support functions.
4032         Use reversed_comparison_code.
4033         (conditions_mutex_p): Use reversed_comparison_code.
4034
4035 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4036
4037         * config/mips/mips.c (override_options): Disable hot/cold partitioning
4038         for MIPS16.
4039
4040 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4041
4042         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
4043         (mips_function_type): Move to mips.c.
4044         * config/mips/mips.c (mips_builtin_type): New enum.
4045         (builtin_description): Replace code and ftype with builtin_type
4046         and function_type.
4047         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
4048         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
4049         (CODE_FOR_mips_abs_ps): Define.
4050         (mips_bdesc): Use new macros.
4051         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
4052         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
4053         (mips_expand_builtin_direct): New function.
4054         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
4055         builtin.  Replace boolean parameter with builtin_type.
4056         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
4057         (mips_expand_4s_compare_builtin): Delete, replacing with...
4058         (mips_expand_builtin_compare): ...this new function.
4059
4060 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
4061
4062         PR rtl-optimization/16590
4063         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
4064
4065 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
4066
4067         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
4068         * tree-ssa-propagate.c: Fix documentation.
4069
4070 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4071
4072         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
4073         (mov[sd]fcc): Likewise.
4074
4075 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4076
4077         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
4078
4079 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4080
4081         * config/mips/mips.md (divide_condition): New mode attribute.
4082         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
4083         (sqrt[sd]f3): Redefine using SCALARF.
4084         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
4085         patterns.
4086
4087 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4088
4089         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
4090         (loadx, storex, fmt, UNITMODE): New mode attributes.
4091         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
4092         (mul[sd]f3): Redefine using :SCALARF.
4093         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
4094         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
4095         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
4096         Check TARGET_FUSED_MADD for V2SF too.
4097         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
4098         were already named.
4099         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
4100         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
4101
4102 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4103
4104         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
4105         V2SF_type_node if it will be needed.
4106
4107 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4108
4109         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
4110         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
4111         (mips_prepare_builtin_target): New function.
4112         (mips_expand_builtin): Use them.  Update calls to subroutines.
4113         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
4114         cmp_choice with a boolean argument to select between movt and movf.
4115         Take the comparison's icode as an argument, not the function's fcode.
4116         (mips_expand_compare_builtin): New function.  Rename existing function
4117         to mips_expand_scalar_compare_builtin.
4118         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
4119         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
4120         comparison's icode as an argument, not the builtin's fcode.
4121
4122 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4123
4124         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
4125         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
4126         registers are false and -1 if all registers are true.
4127         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
4128         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
4129         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
4130         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
4131         (bc1any2t, bc1any2f): Likewise CCV2.
4132         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
4133
4134 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4135
4136         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
4137         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
4138         UNSPEC rather than an IF_THEN_ELSE.
4139         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
4140         mips_cond_move_tf_ps by name.
4141
4142 2004-08-29  Chao-ying Fu  <fu@mips.com>
4143             James E Wilson  <wilson@specifixinc.com>
4144
4145         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
4146         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
4147         * config/mips/mips-ps-3d.md: New file.
4148         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
4149         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4150         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
4151         (mips_output_move): Emit "mov.ps" for V2SFmode.
4152         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
4153         MODE_VECTOR_FLOAT.
4154         (override_options): Check if TARGET_MIPS3D and there was an explicit
4155         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
4156         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
4157         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
4158         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
4159         and allow CCV2 and CCV4 to occupy two and four CC registers.
4160         (print_fcc_operand): New function.
4161         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
4162         %Z to call print_fcc_operand.
4163         (mips_function_value): Handle MODE_VECTOR_FLOAT.
4164         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
4165         (mips_vector_mode_supported_p): New function.
4166         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
4167         (builtin_description): New struct.
4168         (mips_bdesc): New array of struct builtin_description.
4169         (mips_expand_builtin, mips_init_builtins,
4170         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
4171         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
4172         functions.
4173         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
4174         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
4175         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
4176         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
4177         "-mips3d", and "-mno-mips3d".
4178         (ASM_SPEC): Map -mips3d to -mips3d in gas.
4179         (EXTRA_CONSTRAINT_Y): New macro.
4180         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
4181         multi-letter constraint 'Y'.
4182         (CONSTRAINT_LEN): New macro.
4183         (enum mips_builtins): New for MIPS builtin functions.
4184         (enum mips_function_type): New for the types of MIPS builtin functions.
4185         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
4186         * config/mips/mips.md: New constants for paired single and MIPS-3D
4187         instructions.  Include the new mips-ps-3d.md file.
4188         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
4189         movv2sf_hardfloat_64bit): New named patterns.
4190         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
4191         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
4192         sdxc1_v2sf_di): New unnamed patterns.
4193         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
4194         const_vector support.
4195         (const_0_or_1_operand): New predicate.
4196         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
4197
4198 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
4199
4200         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
4201         (tree-ssa-propagate.o): New rule.
4202         (GTFILES): Add tree-ssa-propagate.c.
4203         * tree-flow.h (struct stmt_ann_d): Remove field
4204         in_ccp_worklist.
4205         * tree-ssa-propagate.c: New file.
4206         * tree-ssa-propagate.h: New file.
4207         * tree-ssa-ccp.c: Re-write to use the routines from
4208         tree-ssa-propagate.c.
4209
4210 2004-08-28  Andrew Pinski  <apinski@apple.com>
4211
4212         * tree-ssa-loop.c: Remove extra include of basic-block.h.
4213
4214 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
4215
4216         * c-common.h: Update comments about ObjC/ObjC++ entry points.
4217         (objc_is_reserved_word): New prototype.
4218         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
4219         separate section; these are call-backs.
4220         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
4221         ObjC/ObjC++ "@" keywords.
4222         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
4223         prototypes; they already live in c-common.h.
4224         * stub-objc.c: Update copyright notice.
4225         (objc_is_reserved_word): New stub.
4226
4227 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
4228
4229         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
4230         even when not checking.
4231
4232 2004-08-27  Jason Merrill  <jason@redhat.com>
4233
4234         PR c++/13684
4235         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
4236         (gimple_push_cleanup): Add eh_only parm.
4237         (gimplify_target_expr): Pass it.
4238         * c.opt (-fno-threadsafe-statics): New option.
4239         * c-opts.c (c_common_handle_option): Handle it.
4240         * c-common.h (flag_threadsafe_statics): Declare it.
4241         * c-common.c (flag_threadsafe_statics): Record it.
4242         * doc/invoke.texi: Document it.
4243         * tsystem.h (_GNU_SOURCE): Define.
4244         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
4245         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
4246         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
4247         (__gthread_recursive_mutex_init_function): New fn.
4248         (__gthread_recursive_mutex_lock): New fn.
4249         (__gthread_recursive_mutex_trylock): New fn.
4250         (__gthread_recursive_mutex_unlock): New fn.
4251         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
4252         * gthr-win32.h, gthr-vxworks.h: Likewise.
4253         * gthr.h: Document.
4254
4255 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
4256
4257         * config/rs6000/rs6000.c (rs6000_override_options): Increase
4258         maximum skip to 15.  Set function alignment, jump alignment, and
4259         loop alignment to 16 for processors that form dispatch groups.
4260         (rs6000_rtx_costs): outer_code is used.
4261
4262 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
4263
4264         * stor-layout.c (sizetype_set): Remove.
4265         (set_sizetype): Don't test or set it.
4266
4267         * tree.h (size_int_type): Remove.
4268         * fold-const.c: Do not #include gt-fold-const.h.
4269         (size_htab_hash, size_htab_eq): Remove.
4270         (size_int_kind): Use build_int_cst.
4271         (new_const, size_htab): Remove.
4272         (size_int_type): Remove.
4273         (round_up): Use build_int_cst.
4274         (round_down): Likewise. Remove spurious constant build.
4275
4276 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
4277
4278         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
4279         Add is_release variable, use it for --enable-werror and
4280         --enable-checking defaults.
4281         * system.h (gcc_assert, gcc_unreachable): New.
4282         * doc/install.texi (--enable-checking): Update.
4283         * configure, config.in: Rebuilt.
4284
4285 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
4286
4287         * rtl.h (read_rtx): Change prototype.
4288         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
4289         line number.  Return true on success.
4290         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
4291         callers accordingly.
4292
4293 2004-08-26  Richard Henderson  <rth@redhat.com>
4294
4295         * c-typeck.c (build_offsetof): Remove.
4296         * c-tree.h (build_offsetof): Remove.
4297         * c-common.c (fold_offsetof_1, fold_offsetof): New.
4298         * c-common.h (fold_offsetof): Declare.
4299         * c-parse.in (offsetof_base): New.
4300         (offsetof_member_designator): Use it.  Build references, not just
4301         a tree list.
4302         (primary): Use fold_offsetof, not build_offsetof.
4303
4304 2004-08-26  Richard Henderson  <rth@redhat.com>
4305
4306         * tree.c (staticp): Return the static object.
4307         * tree.h (staticp): Update decl.
4308         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
4309         * langhooks.c (lhd_staticp): Return NULL_TREE.
4310         * langhooks-def.h (lhd_staticp): Update decl.
4311         * c-common.c (c_staticp): Return the static object.
4312         * c-common.h (c_staticp): Update decl.
4313
4314 2004-08-26  Richard Henderson  <rth@redhat.com>
4315
4316         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
4317         modes.
4318
4319 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
4320
4321         PR c/13801
4322         * c-decl.c (struct c_binding): Add type and inner_comp fields.
4323         (bind): Set type and inner_comp fields.
4324         (pop_scope): Restore type of decl to the correct type from an
4325         outer scope.  Give error when popping file scope for incomplete
4326         arrays completed incompatibly with default initialization in an
4327         inner scope.
4328         (diagnose_mismatched_decls): Handle externs with initializers at
4329         block scope.
4330         (pushdecl): Set type of external declaration at block scope based
4331         only on the visible declarations.  Save type when changing the
4332         type of a declaration.  Merge an external declaration at block
4333         scope with a visible static declaration at file scope.
4334         (implicitly_declare): Give recycled old declaration the new type
4335         except for incompatible declarations of built-in functions, saving
4336         the old type.
4337
4338 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
4339
4340         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
4341
4342 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
4343
4344         * tree-alias-common.c (gate_pta): New function.
4345         (pass_build_pta): Use it.
4346         (pass_del_pta): Use it.
4347         (delete_alias_vars): Don't check flag_tree_points_to.
4348
4349 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
4350
4351         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
4352         TFmode as additional register mode cloberred by call.
4353
4354 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
4355
4356         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
4357         parallel pattern for library call returning DImode in
4358         mixed mode.
4359
4360 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
4361
4362         * config/rs6000/rs6000.c (function_arg): Generate parallel
4363         pattern for more split args.
4364
4365 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
4366
4367         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
4368         either gen_movdi_di_update or gen_movdi_si_update depending on
4369         target mode.
4370         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
4371         to generate two versions.
4372
4373 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
4374
4375         * Makefile.in (lambda-code.o): New.
4376         (lambda-trans.o): Ditto.
4377         (TREE_DATA_REF_H): Ditto.
4378         (LAMBDA_H): Ditto.
4379         (lambda-mat.o): Use LAMBDA_H.
4380         (tree-data-ref.o): Ditto.
4381         * lambda-code.c: New file.  Lambda code generation algorithm.
4382         * lambda-trans.c: Ditto. Lambda transformation matrix support.
4383         * lambda.h: Add lambda loop structures.
4384         Add lambda loopnest structures.
4385         Add lambda body vector structure.
4386         Add lambda linear expression structures.
4387         Add prototypes for functions in new files.
4388         * lambda-mat.c: Include tree.h
4389
4390 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
4391             Sebastian Pop  <pop@cri.ensmp.fr>
4392
4393         * tree-data-ref.h: Include lambda.h
4394         (free_dependence_relation): Declared here.
4395         (free_dependence_relations): Ditto.
4396         (free_data_refs): Ditto.
4397         * tree-data-ref.c (free_dependence_relation): New function.
4398         (free_dependence_relations): Ditto.
4399         (free_data_refs): Ditot.
4400         (analyze_all_data_dependences): Free datarefs and dependence_relations.
4401         (build_classic_dist_vector): Store in the dependence_relations the
4402         information. Each arc in the dependence_relations graph is labelled
4403         with the distance and direction vectors.
4404         (build_classic_dir_vector): Ditto.
4405         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
4406         Now computes again the whole dependence graph including read-read
4407         relations.
4408         (compute_data_dependences_for_loop): Now dependence_relations contains
4409         all the data, and thus it doesn't need to initialize the classic_dir
4410         and classic_dist vectors.
4411         (analyze_all_data_dependences): Adjusted for using the new interface of
4412         compute_data_dependences_for_loop.  Remove the statistics dump.
4413
4414 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
4415
4416         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
4417         (xtensa_expand_block_move): Update comment.
4418         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
4419
4420 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
4421
4422         PR target/13506
4423         * toplev.c (crash_signal): If we crashed while emitting
4424         a user asm, then die more gracefully.
4425
4426 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4427
4428         PR target/17119.
4429         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
4430         checking for a valid constant, regardless of sign.
4431
4432 2004-08-25  Richard Henderson  <rth@redhat.com>
4433
4434         PR target/16974
4435         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
4436         if the constant satisfies add_operand.
4437
4438 2004-08-25  Richard Henderson  <rth@redhat.com>
4439
4440         PR debug/10695
4441         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
4442         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
4443         unwind info for >16-bit frames.
4444
4445 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
4446
4447         PR target/17171
4448         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
4449
4450 2004-08-25  Richard Henderson  <rth@redhat.com>
4451
4452         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
4453         (TARGET_CANNOT_FORCE_CONST_MEM): New.
4454
4455 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
4456
4457         * doc/tree-ssa.texi: Document new operand iterator.
4458
4459 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
4460
4461         PR target/16480
4462         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
4463         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
4464         as PLUS base regs.
4465
4466 2005-08-28  Paul Brook  <paul@codesourcery.com>
4467
4468         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
4469         -mfpu=vfp -march=armv5t
4470         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
4471
4472 2004-08-25  Richard Henderson  <rth@redhat.com>
4473
4474         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
4475         * target.h (struct gcc_target): Add scalar_mode_supported_p.
4476         * targhooks.c (default_scalar_mode_supported_p): New.
4477         * targhooks.h (default_scalar_mode_supported_p): Declare.
4478         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
4479
4480         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
4481         before attempting to create types.  Tidy.
4482         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
4483
4484         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
4485         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
4486
4487 2004-08-25  Richard Henderson  <rth@redhat.com>
4488
4489         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
4490         set REAL_MODE_FORMAT for TFmode.
4491
4492 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
4493
4494         * c-decl.c (grokparm): New function.
4495         * c-tree.h (grokparm): New prototype.
4496
4497 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
4498
4499         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
4500         iterator controlling structure.
4501         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
4502         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
4503         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
4504         iterator flags.
4505         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
4506         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
4507         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
4508         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
4509         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
4510         Empty operand pointers.
4511         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
4512         (op_iter_next_use): New.  Return next use_operand_p.
4513         (op_iter_next_def): New.  Return next def_operand_p.
4514         (op_iter_next_tree): New.  Return next operands as a tree.
4515         (op_iter_init): New.  Initialize an iterator structure.
4516         (op_iter_init_use): New.  Initialize structure and get the first use.
4517         (op_iter_init_def): New.  Initialize structure and get the first def.
4518         (op_iter_init_tree): New.  Initialize structure and get the first tree.
4519         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
4520         (op_iter_init_maydef): New.  Initialize structure and get the first
4521         V_MAY_DEF operands.
4522         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
4523         * tree-dfa.c (compute_immediate_uses_for_stmt,
4524         redirect_immediate_uses): Use new operand iterator.
4525         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
4526         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
4527         operands instead of using *_disappeared_p routines.
4528         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
4529         ssa_rewrite_stmt): Use new operand iterator.
4530         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
4531         rewrite_trees): Use new operand iterator.
4532         * tree-pretty-print.c (dump_vops): Use new operand iterator.
4533         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
4534         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
4535         dump_points_to_info): Use new operand iterator.
4536         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
4537         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
4538         operand iterator.
4539         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
4540         propagate_necessity): Use new operand iterator.
4541         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
4542         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
4543         a parameter instead of a stmt_ann_t.
4544         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
4545         build_tree_conflict_graph): Use new operand iterator.
4546         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
4547         rewrite_mem_refs): Use new operand iterator.
4548         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
4549         check_loop_closed_ssa_use): Use new operand iterator.
4550         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
4551         * tree-ssanames.c (release_defs): Use new operand iterator.
4552         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
4553
4554 2004-08-25  Adam Nemet  <anemet@lnxw.com>
4555
4556         * tlink.c (initial_cwd): New variable.
4557         (tlink_init): Initialize it.
4558         (recompile_files): Use tlink_execute() instead of system().  Don't
4559         duplicate verbose output of collect_execute.  Restore initial_cwd.
4560         Update comment before the function.
4561
4562 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
4563
4564         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
4565         accept) a cast from one Objective-C pointer type to another.
4566
4567 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
4568
4569         * doc/install.texi: Document that libstdc++-v3 requires
4570         now automake 1.9.1.
4571
4572 2004-08-25  Caroline Tice  <ctice@apple.com>
4573
4574         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
4575         to comments at start of function.
4576         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
4577         comment.
4578         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4579         merge_blocks_move_predecessor_nojumps,
4580         merge_blocks_move_successor_nojumps, merge_blocks_move,
4581         try_crossjump_to_edge, try_crossjump_bb): Likewise.
4582         * cfglayout.c (fixup_reorder_chain): Likewise.
4583         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
4584         cfg_layout_can_merge_blocks_p):  Likewise.
4585         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
4586         * passes.c (rest_of_compilation): Update comments for calling
4587         optimization that partitions hot/cold basic blocks.
4588         * doc/invoke.texi:  Update documentation of
4589         freorder-blocks-and-partition flag.
4590
4591 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
4592
4593         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
4594         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
4595
4596 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
4597
4598         * config/mips/mips.md (any_shift): New code macro.
4599         (optab, insn): New code attributes.
4600         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
4601         Use the standard rather than internal patterns for the MIPS16
4602         double-shift optimization.
4603         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
4604         Redefine using :GPR and any_shift.
4605         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
4606         to cover all three shifts.
4607         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
4608         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
4609         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
4610
4611 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
4612
4613         * gimplify.c (lookup_tmp_var): Separate temporaries when not
4614         optimizing.
4615
4616 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4617
4618         PR libstdc++/17005 (fix for HP-UX 11.11)
4619         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
4620         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
4621         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
4622         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
4623         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
4624         (LINK_SPEC): Handle march=1.0 option.
4625         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
4626         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
4627         (SUBTARGET_OPTIONS): New define.
4628         (LINK_SPEC): Handle march=1.0 option.
4629         (STARTFILE_SPEC): New define.
4630         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
4631         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
4632         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
4633         (SUBTARGET_OPTIONS): New define.
4634         (LINK_SPEC): Handle march=1.0 option.
4635         (STARTFILE_SPEC): New define.
4636         * config/pa/pa.c (override_options): Add code to process -munix= option.
4637         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
4638         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
4639         defines.
4640         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
4641         (SUBTARGET_OPTIONS): Provide default define.
4642         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
4643         STANDARD_STARTFILE_PREFIX_2): New defines.
4644         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
4645         (ENDFILE_SPEC): Use %O.
4646         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
4647         Mention issue caused by changing namespace and runtime to UNIX 95/98.
4648         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
4649         Document -munix=std option.
4650
4651 2004-08-25  Steven Bosscher  <stevenb@suse.de>
4652
4653         * cse.c (cse_around_loop, cse_check_loop_start,
4654         cse_set_around_loop): Remove.
4655         (cse_basic_block): Remove the around_loop argument.
4656         (cse_end_of_basic_block): Remove the after_loop argument.
4657         (cse_main): Likewise.
4658         * rtl.h (cse_main): Update prototype.
4659         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
4660         rest_of_handle_gcse): Update cse_main calls.
4661
4662 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
4663
4664         * tree.h  (build_int_cst): New, sign extended constant.
4665         (build_int_cstu): New, zero extended constant.
4666         (build_int_cst_wide): Renamed from build_int_cst.
4667         * tree.c (build_int_cst, build_int_cstu): New.
4668         (build_int_cst_wide): Renamed from build_int_cst.
4669         (make_vector_type, build_common_tree_nodes,
4670         build_common_tree_nodes_2): Adjust build_int_cst calls.
4671         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
4672         expand_builtin_strpbrk, expand_builtin_fputs,
4673         build_string_literal, expand_builtin_printf,
4674         expand_builtin_sprintf, fold_builtin_classify_type,
4675         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
4676         fold_builtin_toascii, fold_builtin_isdigit,
4677         simplify_builtin_strstr, simplify_builtin_strpbrk,
4678         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
4679         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
4680         DEF_ATTR_INT): Likewise.
4681         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
4682         Likewise.
4683         * c-lex.c (interpret_integer, lex_charconst): Likewise.
4684         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
4685         * c-pretty-print.c (pp_c_integer_constant): Likewise.
4686         * c-typeck.c (really_start_incremental_init, push_init_level,
4687         set_nonincremental_init_from_string): Likewise.
4688         * calls.c (load_register_parameters): Likewise.
4689         convert.c (convert_to_pointer): Likewise.
4690         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
4691         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
4692         build_gcov_info): Likewise.
4693         * except.c (init_eh, assign_filter_values): Likewise.
4694         * expmed.c (store_fixed_bit_field, extract_bit_field,
4695         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
4696         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
4697         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
4698         * expr.c (convert_move, emit_group_load, emit_group_store,
4699         expand_assignment, store_constructor, store_field,
4700         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4701         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
4702         invert_truthvalue, optimize_bit_field_compare,
4703         decode_field_reference, all_ones_mask_p, constant_boolean_node,
4704         fold_div_compare, fold, fold_read_from_constant_string,
4705         fold_negate_const, fold_abs_const, fold_not_const, round_up,
4706         round_down): Likewise.
4707         * function.c (assign_parm_setup_block): Likewise.
4708         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
4709         Likewise.
4710         * stor-layout.c (layout_type, initialize_sizetypes,
4711         set_min_and_max_values_for_integral_type): Likewise.
4712         * tree-chrec.c (chrec_fold_multiply_poly_poly,
4713         reset_evolution_in_loop): Likewise.
4714         * tree-chrec.h (build_polynomial_chrec): Likewise.
4715         * tree-complex.c (build_replicated_const): Likewise.
4716         * tree-eh.c (honor_protect_cleanup_actions,
4717         lower_try_finally_onedest, lower_try_finally_copy,
4718         lower_try_finally_switch): Likewise.
4719         * tree-mudflap.c (mf_build_string, mx_register_decls,
4720         mudflap_register_call, mudflap_enqueue_constant): Likewise.
4721         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
4722         * tree-pretty-print.c (dump_generic_node): Likewise.
4723         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
4724         Likewise.
4725         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
4726         * tree-ssa-loop-niter.c (number_of_iterations_cond,
4727         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
4728         Likewise.
4729         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
4730         canonicalize_loop_induction_variables): Likewise.
4731         * tree-vectorizer.c (vect_create_index_for_array_ref,
4732         vect_transform_loop_bound, vect_compute_data_ref_alignment):
4733         Likewise.
4734
4735         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
4736         alpha_gimplify_va_arg_1): Likewise.
4737         * config/arm/arm.c (arm_get_cookie_size): Likewise.
4738         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
4739         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
4740         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
4741         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
4742         mips_gimplify_va_arg_expr): Likewise.
4743         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
4744         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
4745         add_compiler_branch_island): Likewise.
4746         * config/s390/s390.c (s390_va_start): Likewise.
4747         * config/sh/sh.c (sh_va_start): Likewise.
4748         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
4749         Likewise.
4750         * config/xtensa/xtensa.c (xtensa_va_start,
4751         xtensa_gimplify_va_arg_expr): Likewise.
4752
4753         * objc/objc-act.c (build_objc_string_object,
4754         build_objc_symtab_template, init_def_list, init_objc_symtab,
4755         init_module_descriptor, generate_static_references,
4756         build_selector_translation_table, get_proto_encoding,
4757         build_typed_selector_reference, build_selector_reference,
4758         build_next_objc_exception_stuff,
4759         build_method_prototype_list_template, generate_descriptor_table,
4760         generate_protocols, build_protocol_initializer,
4761         build_ivar_list_template, build_method_list_template,
4762         build_ivar_list_initializer, generate_ivars_list,
4763         generate_dispatch_table, generate_protocol_list,
4764         build_category_initializer, build_shared_structure_initializer,
4765         generate_shared_structures, handle_impent,
4766         generate_objc_image_info): Likewise.
4767
4768 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
4769
4770         * cfglayout.c (duplicate_insn_chain): Remove references to
4771         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
4772         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
4773         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
4774         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
4775         and NOTE_INSN_LOOP_CONT.
4776         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
4777         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
4778         and NOTE_INSN_LOOP_CONT.
4779         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
4780         check_dbra_loop, loop_dump_aux): Remove references to removed notes
4781         and fields.
4782         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
4783         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
4784         references to removed notes and fields.
4785         (subtract_reg_term, ujump_to_loop_cont): Remove.
4786
4787 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
4788
4789         * doc/install.texi: Document that libcpp does not require
4790         Automake any longer.  Document that Automake 1.9.1 should
4791         work everywhere.
4792
4793 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
4794
4795         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
4796         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
4797         DWARF_DEBUGGING_INFO from choice-of-definition chain;
4798         restructure using C89 features (#elif, #error).
4799         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
4800         * config/sh/sh.h: Remove references to DWARF_DEBUG.
4801         * doc/invoke.texi: Remove references to DWARF version 1;
4802         clarify why -gdwarf-2<n> doesn't work.
4803
4804 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
4805
4806         * basic-block.h (BB_SET_PARTITION): Clear old value first.
4807         * cfg.c (clear_bb_flags): Don't clear partition setting.
4808         * ifcvt.c (find_if_case_1): Remove ??? comment.
4809
4810 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
4811
4812         PR target/17052
4813         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
4814         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
4815         current_function_stdarg in place of sysv_varargs_p.
4816         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
4817         sysv_varargs_p.
4818
4819 2004-08-24  Richard Henderson  <rth@redhat.com>
4820
4821         PR target/16298
4822         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
4823         random codes within CONST.
4824
4825 2004-08-24  James E Wilson  <wilson@specifixinc.com>
4826
4827         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
4828         -freorder-blocks-and-partition.
4829
4830 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4831
4832         PR middle-end/17044
4833         * tree-ssa-threadupdate.c (redirection_data): Make static.
4834         (thread_block): Use ggc_alloc_cleared to allocate struct
4835         redirection_data.  Don't free elements in redirection_data.
4836
4837 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4838
4839         * config/mips/predicates.md (small_data_pattern): Match prefetches.
4840
4841 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4842
4843         PR tree-optimization/17016
4844         * tree-ssa-loop-niter.c (number_of_iterations_cond,
4845         number_of_iterations_exit): Use POINTER_TYPE_P instead
4846         of testing for POINTER_TYPE.
4847
4848 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4849
4850         * tree-ssa-loop-ivcanon.c: New file.
4851         * tree-ssa-loop-manip.c (create_iv): New function.
4852         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
4853         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
4854         * cfgloop.c (mark_single_exit_loops): New function.
4855         (verify_loop_structure): Verify single-exit loops.
4856         * cfgloop.h (struct loop): Add single_exit field.
4857         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
4858         (mark_single_exit_loops): Declare.
4859         (tree_num_loop_insns): Declare.
4860         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
4861         (duplicate_loop_to_header_edge): Use it.
4862         * common.opt (fivcanon): New flag.
4863         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
4864         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
4865         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
4866         (bsi_insert_on_edge_immediate): New function.
4867         * tree-flow.h (bsi_insert_on_edge_immediate,
4868         canonicalize_induction_variables, tree_unroll_loops_completely,
4869         create_iv): Declare.
4870         * tree-optimize.c (init_tree_optimization_passes): Add
4871         pass_iv_canon and pass_complete_unroll.
4872         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
4873         * tree-scalar-evolution.c (get_loop_exit_condition,
4874         get_exit_conditions_rec, number_of_iterations_in_loop,
4875         scev_initialize): Use single_exit information.
4876         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
4877         missing assumptions.
4878         (loop_niter_by_eval):  Return number of iterations as unsigned
4879         int.
4880         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
4881         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
4882         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
4883         New passes.
4884         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
4885         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
4886         the defining statement is ready.
4887         * tree-vectorizer.c (vect_create_iv_simple): Removed.
4888         (vect_create_index_for_array_ref, vect_transform_loop_bound):
4889         Use create_iv.
4890         (vect_transform_loop_bound): Use single_exit information.
4891         (vect_analyze_loop_form): Cleanup bogus tests.
4892         (vectorize_loops): Do not call flow_loop_scan.
4893         * tree.h (may_negate_without_overflow_p): Declare.
4894         * fold-const.c (may_negate_without_overflow_p): Split out from ...
4895         (negate_expr_p): ... this function.
4896         (tree_expr_nonzero_p): Handle overflowed constants correctly.
4897         * doc/invoke.texi (-fivcanon): Document.
4898         * doc/passes.texi: Document canonical induction variable creation.
4899
4900 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4901
4902         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
4903         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
4904         using the mode of the operand to decide between them.
4905         * config/mips/mips.md (MOVECC): New mode macro.
4906         (ccreg): New mode attribute.
4907         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
4908         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
4909         (mov[sd]icc): Redefine using :GPR.
4910
4911 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4912
4913         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
4914         (mips_prefetch_cookie): New function.
4915         * config/mips/mips.c (print_operand_address): Fix handling of
4916         ADDRESS_CONST_INT.
4917         (mips_emit_prefetch): Delete.
4918         (mips_prefetch_cookie): New function.
4919         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
4920         mode of QImode for the address_operand.  Use mips_prefetch_cookie
4921         to calculate the first "pref" operand.
4922         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
4923         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
4924
4925 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
4926
4927         * arm.md: Include predicates.md.
4928         * predicates.md: New file.
4929         * arm.c (s_register_operand, arm_hard_register_operand)
4930         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
4931         (arm_immediate_operand, arm_neg_immediate_operand)
4932         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
4933         (arm_add_operand, arm_addimm_operand, arm_not_operand)
4934         (offsettable_memory_operand, alignable_memory_operand)
4935         (arm_reload_memory_operand, arm_float_rhs_operand)
4936         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
4937         (index_operand, shiftable_operator, logical_binary_operator)
4938         (shift_operator, equality_operator, arm_comparison_operator)
4939         (minmax_operator, cc_register, dominant_cc_register)
4940         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
4941         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
4942         (const_shift_operand, load_multiple_operation)
4943         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
4944         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
4945         (cirrus_register_operand, cirrus_fp_register)
4946         (cirrus_shift_const): Delete, replaced with equivalents in
4947         predicates.md.
4948         (shift_op): Handle ROTATE.
4949         * arm-protos.h: Delete declarations for above.
4950         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
4951         * t-arm (MD_INCLUDES): Add predicates.md.
4952         (s-preds): Depends on MD_INCLUDES.
4953
4954 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4955
4956         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
4957         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
4958         patterns.  Redefine using :GPR.  Give the match_operator a mode.
4959         Use '%2' rather than '%z2' for operand 2.
4960
4961 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4962
4963         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
4964         attribute.
4965
4966 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4967
4968         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
4969         of internal patterns.
4970         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
4971         Redefine using :P.
4972         (tablejump): Use expand_binop to calculate address.  Adjust names
4973         of internal patterns.
4974         (tablejump[sd]i): Renamed from tablejump_internal[12].
4975         Redefine using :P.
4976         (tablejump_mips16[12]): Delete.
4977
4978 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4979
4980         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
4981         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
4982         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
4983         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
4984         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
4985
4986 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4987
4988         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
4989         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
4990         using :GPR.
4991         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
4992         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
4993         (*branch_equality[sd]i_inverted): Likewise
4994         branch_equality{,_di}_inverted.
4995         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
4996         Redefine using :GPR.
4997
4998 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
4999
5000         * rtl.def: Reorganize, placing all codes used only in machine
5001         descriptions at the end.
5002
5003         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
5004         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
5005         rtx_name, rtx_format arrays by direct reference to rtl.def,
5006         first undefining GENERATOR_FILE.  Define enum insn_note and
5007         note_insn_name array by direct reference to insn-notes.def.
5008         (adjust_field_rtx_def): Remove local definition of rtx_name.
5009         Use symbolic names for insn notes.
5010         * Makefile.in (gengtype.o): Update dependencies.
5011
5012 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
5013
5014         * basic-block.h (struct basic_block_def): Reorder fields to
5015         eliminate interior padding.  Remove 'partition' field.
5016         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
5017         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
5018         (BB_COPY_PARTITION): New macros.
5019         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
5020         Replace all references to the 'partition' field of a basic
5021         block with new macros.
5022
5023         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
5024         * final.c (final_scan_insn): Don't handle it.
5025         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
5026         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
5027         * sched-rgn.c (sched_is_disabled_for_current_region_p):
5028         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
5029
5030 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
5031
5032         * c-decl.c (c_init_decl_processing): Adjust
5033         build_common_tree_nodes call.
5034         * expmed.c (const_mult_add_overflow_p): Use
5035         build_distinct_type_copy.
5036         * stor-layout.c (early_type_list): Remove.
5037         (layout_type): Don't append to early_type_list.
5038         (initialize_sizetypes): Add signed_p argument.
5039         (set_sizetype): Overwrite the stub type nodes directly.
5040         * tree.c (copy_node_stat): Clear a type's value cache here ...
5041         (build_distinct_type): ... not here.
5042         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
5043         * tree.h (initialize_sizetypes): Add signed_p argument.
5044         (build_common_tree_nodes): Likewise.
5045
5046         * objc/objc-act.c (get_static_reference): Use
5047         build_variant_type_copy.
5048         (get_protocol_reference): Likewise.
5049         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
5050
5051 2004-08-24  Richard Henderson  <rth@redhat.com>
5052             Andrew Pinski  <apinski@apple.com>
5053
5054         * gimplify.c (gimplify_array_ref_to_plus): Delete.
5055         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
5056         for ARRAY_REF.
5057
5058         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
5059         ARRAY_REF also to get to the STRING_CST.
5060
5061 2004-08-24  Paul Brook  <paul@codesourcery.com>
5062
5063         * config/arm/arm.c (arm_override_options): Update error message.
5064         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
5065         TARGET_HARD_FLOAT_ABI.
5066         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
5067         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
5068
5069 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
5070
5071         PR target/17093
5072         * config/m32r.md (movsi_sda): Add SI mode specification to
5073         UNSPEC.
5074
5075 2004-08-24  Nick Clifton  <nickc@redhat.com>
5076
5077         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
5078         of seth_add3_operand.
5079
5080 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
5081
5082         * Makefile.in (PROTO_OBJS): Add errors.o.
5083         * protoize.c (fancy_abort): Remove.
5084         * mips-tfile.c (fancy_abort): Add parameters.
5085
5086 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
5087
5088         * doc/trouble.texi (C++ misunderstandings): Fix example code.
5089
5090 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
5091
5092         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
5093         (host-default.o): Add dependency on HOOKS_H.
5094         * config/x-linux: Likewise.
5095         * config/x-solaris: Likewise.
5096         * config/i386/x-mingw32: Likewise.
5097         * config/rs6000/x-darwin: Likewise.
5098
5099 2004-08-23  James E Wilson  <wilson@specifixinc.com>
5100
5101         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
5102         DEF_REG_NOTE.
5103
5104 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
5105
5106         PR c/14492
5107         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
5108
5109 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
5110
5111         * cfg.c (check_bb_profile): Fix typos.
5112         * function.c (assign_parm_is_stack_parm): Likewise.
5113         * tree-nested.c: Likewise.
5114
5115 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
5116
5117         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
5118         Remove TYPECODE.
5119         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
5120
5121 2004-08-23  Eric Christopher  <echristo@redhat.com>
5122
5123         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
5124         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
5125         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
5126         * target.h: Ditto.
5127         * hooks.h: Include machmode.h.
5128         (hook_bool_mode_false): Declare.
5129         * hooks.c (hook_bool_mode_false): Define.
5130         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
5131         * stor-layout.c (layout_type): Ditto.
5132         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
5133         Define to target macro.
5134         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
5135         * config/arm/arm.c: Ditto. Use.
5136         * config/arm/arm.h: Ditto.
5137         * config/arm/arm-protos.h: Ditto.
5138         * config/i386/i386.c: Ditto.
5139         * config/i386/i386.h: Ditto.
5140         * config/rs6000/rs6000.c: Ditto.
5141         * config/rs6000/rs6000.h: Ditto.
5142         * config/sh/sh.c: Ditto.
5143         * config/sh/sh.h: Ditto.
5144         * config/sh/sh-protos.h: Ditto.
5145         * config/sh/sh.md: Use.
5146         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
5147         to TARGET_VECTOR_MODE_SUPPORTED_P.
5148
5149 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
5150
5151         * Makefile.in (BUILD_ERRORS): Set to build-errors.
5152         (errors.o): New target for host.
5153         (build-errors.o): New target for build.
5154         (genobjs): Replace errors.o with build-errors.
5155         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
5156         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
5157         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
5158         (fix-header.o): Add errors.h
5159         * collect2.c (fancy_abort): Add parameters.
5160         * collect2.h (fancy_abort): Don't declare.
5161         * errors.h (fancy_abort): Don't declare.
5162         * errors.c: Include either bconfig.h or config.h.
5163         (fancy_abort): Trim filename.
5164         * fix-header.c (v_fatal, fatal): Remove.
5165         (progname): Remove definition.
5166         (main): Set progname here.
5167         * gcc.c (fancy_abort): Add parameters.
5168         * gcc.h (fancy_abort): Remove declaration.
5169         * gcov.c (fancy_abort): Remove.
5170         * rtl.h (fancy_abort): Don't declare.
5171         (abort): Don't define.
5172         * tree.h (fancy_abort): Don't declare.
5173         (abort): Don't define.
5174         * system.h (fancy_abort): Declare.
5175         (abort): Define to fancy_abort.
5176         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
5177
5178         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
5179         (usize_type, ubitsizetype): Remove.
5180         * stor-layout.c (set_sizetype): Don't initialize usizetype,
5181         ubitsizetype.
5182         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
5183
5184         * tree.h (build_distinct_type_copy): New.
5185         (build_type_copy): ... here.  Rename to ...
5186         (build_variant_type_copy): ... here.
5187         * tree.c (build_qualified_type): Rename build_type_copy call.
5188         (build_distinct_type_copy): New, broken out of ...
5189         (build_type_copy): ... here.  Rename to ...
5190         (build_variant_type_copy): ... here.  Use
5191         build_distinct_type_copy.
5192         (build_common_tree_nodes_2): Rename build_type_copy call.
5193         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
5194         call.
5195         (handle_packed_attribute, handle_unused_attribute,
5196         handle_transparanet_union_attribute, handle_aligned_attribute,
5197         handle_deprecated_attribute): Likewise.
5198         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
5199         Likewise.
5200         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
5201         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
5202         build_distinct_type_copy.
5203
5204 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5205
5206         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
5207         attribute.
5208
5209 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5210
5211         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
5212         loads and stores.
5213         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
5214         formerly unnamed patterns.  Redefine using :P for the address.  Remove
5215         explicit length attributes.
5216
5217 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5218
5219         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
5220         New functions.
5221         (single_reachable_address): Use them.
5222         (schedule_sm): Add dump.
5223         (is_call_clobbered_ref): New function.
5224         (determine_lsm_reg): Check whether the reference is call clobbered.
5225         Only work for gimple_reg_type values.
5226
5227 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5228
5229         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
5230         $31 store insns.  Redefine using :GPR.
5231
5232 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5233
5234         * config/mips/mips.md (P): New mode macro.
5235         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
5236         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
5237         Add mode attributes.
5238
5239 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5240
5241         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
5242         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
5243         later constants to cover the gap.
5244         (load, store): New mode attributes.
5245         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
5246         Use new unspec constants.
5247
5248 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5249
5250         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
5251         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
5252         to use register_operand rather than uns_arith_operand as the predicate
5253         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
5254         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
5255         Redefine using :GPR.  Make same predicate change here.  Extend the
5256         commutativity of operands 1 and 2 from the SImode version to the
5257         DImode one.
5258         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
5259         but with no predicate changes.
5260         (*nor[sd]i3): Redefine using :GPR.
5261
5262 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5263
5264         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
5265         noreturn functions.
5266
5267 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5268
5269         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
5270         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
5271         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
5272         rather than "%z2" (with a fake const0_rtx for operand 2).
5273         (ffs[sd]i2): Redefine using :GPR.
5274         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
5275
5276 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5277
5278         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
5279
5280 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5281
5282         * config/mips/mips.md (any_extend): New code macro.
5283         (u, su): New code attributes.
5284         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
5285         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
5286         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
5287         (*{s,u}mul_acc_di): Redefine using any_extend.
5288         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
5289         to reflect real insn names.
5290         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
5291         with an any_extend template.
5292         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
5293         Add '*' to name.
5294
5295 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5296
5297         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
5298         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
5299         (mul[sd]i3_r4000): Redefine using :GPR.
5300         (mulsi3_mult3): Don't check TARGET_MAD separately.
5301         (muldi3_mult3): Moved after mulsi_mult3.
5302
5303 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5304
5305         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
5306         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
5307         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
5308         (TARGET_GAS, TARGET_MIPS_AS): Delete.
5309         (TARGET_GPWORD): Define to true for n32 on IRIX.
5310         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
5311         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
5312         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
5313         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
5314         (MDEBUG_ASM_SPEC): Delete, folding into...
5315         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
5316         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
5317         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
5318         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
5319         to define asm_abi_default_spec.
5320         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
5321         (TARGET_ASM_SELECT_SECTION): Delete.
5322         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
5323         for non-mips16 code, removing previous workaround for SGI assemblers.
5324         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
5325         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
5326         (override_options): Remove !TARGET_GAS and !have_named_sections code.
5327         (print_operand): Fold TARGET_GAS conditionals into asm strings.
5328         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
5329         ASM_STABS_OP and ASM_STABN_OP.
5330         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
5331         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
5332         (mips_output_function_prologue): Remove !TARGET_GAS code.
5333         (mips_select_rtx_section): Remove !have_named_sections code.
5334         (mips_select_section): Delete.
5335         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
5336         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
5337         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
5338         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
5339         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
5340         * config/mips/windiss.h (ASM_SPEC): Likewise.
5341
5342 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5343
5344         * read-rtl.c (map_value, mapping, macro_group): New structures.
5345         (BELLWETHER_CODE): New macro.
5346         (modes, codes, bellwether_codes): New variables.
5347         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
5348         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
5349         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
5350         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
5351         (add_map_value, initialize_macros): New functions.
5352         (def_hash, def_hash_eq_p): Generalize to anything that points to,
5353         or starts with, a char * field.
5354         (find_macro, read_mapping, check_code_macro): New functions.
5355         (read_rtx_1): New, split out from read_rtx.  Handle the new
5356         define_{mode,code}_{macro,attr} constructs.  Use find_macro
5357         to parse the name of a code or mode.  Use BELLWETHER_CODE to
5358         extract the format and to choose a suitable code for rtx_alloc.
5359         Modify recursive invocations to use read_rtx_1.
5360         (read_rtx): Call initialize_macros.  Apply code and mode macros
5361         to the rtx returned by read_rtx_1.  Cache everything after the
5362         first macro expansion for subsequent read_rtx calls.
5363         * doc/md.texi: Document new .md constructs.
5364         * config/mips/mips.md (GPR): New mode macro.
5365         (d, si8_di5): New mode attributes.
5366         (any_cond): New code macro.
5367         (add[sd]i3): Redefine using :GPR.
5368         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
5369         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
5370         previously unnamed MIPS16 patterns.
5371         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
5372         lines.  Don't match (plus (const_int 0) ...).
5373         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
5374         Use a define_split to generate the addition.
5375         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
5376         (subsi3_internal): Delete.
5377         (*subsi3_extended): Renamed from subsi3_internal_2.
5378         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
5379         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
5380         using an any_cond template.
5381
5382 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5383
5384         * read-rtl.c (read_rtx): Tidy use of format_ptr.
5385
5386 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
5387
5388         * read-rtl.c (string_obstack): New file-scope variable.
5389         (read_string, read_quoted_string, read_braced_string)
5390         (read_escape): Remove obstack parameter and use string_obstack instead.
5391         (read_rtx): Remove function-local rtl_obstack and initialize
5392         string_obstack instead.  Update call to read_string.
5393
5394 2004-08-22  Andrew Pinski  <apinski@apple.com>
5395
5396         PR c/15262
5397         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
5398         expression is not constant.
5399         (c_finish_return): Do not go through INDIRECT_REF when looking
5400         for the inner expression of an ADDR_EXPR for warning about.
5401
5402 2004-08-22  Richard Henderson  <rth@redhat.com>
5403
5404         PR 17075
5405         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
5406         create new blocks and fall through.
5407         (expand_gimple_basic_block): Update to match.
5408
5409 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
5410
5411         * reload.c (find_reloads_address): Make return value tri-state.
5412         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
5413         (find_reloads): Assume that reloaded addresses match 'o' or
5414         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
5415         returned 1 (not -1).  Omit optional reloads for address operands
5416         only if find_reloads_address returned 1 (not -1).
5417
5418         * config/s390/s390.c (legitimize_reload_address): New function.
5419         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
5420         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
5421         legitimize_reload_address.
5422
5423 2004-08-22  Richard Hendersion  <rth@redhat.com>
5424
5425         * tree.h (SAVE_EXPR_RESOLVED_P): New.
5426         * gimplify.c (gimplify_save_expr): Use it.
5427         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
5428         on the temporary variable.
5429
5430 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
5431
5432         * fold-const.c (rtl_expr_nonnegative_p): Delete.
5433         * tree.h (rtl_expr_nonnegative_p): Remove.
5434
5435 2004-08-22  Steven Bosscher  <stevenb@suse.de>
5436
5437         * config/i386/ppro.md (ppro_complex_insn): Add missing check
5438         for cpu==pentiumpro.
5439
5440         * combine.c (struct reg_stat): Fix comment typo.
5441
5442 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5443
5444         * c-tree.h (c_sizeof_nowarn): Remove.
5445
5446 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
5447
5448         * c-decl.c (set_array_declarator_type): Rename to
5449         set_array_declarator_inner.
5450         (build_c_parm, build_attrs_declarator, build_function_declarator):
5451         New functions.
5452         (make_pointer_declarator): Call build_attrs_declarator.
5453         * c-tree.h (set_array_declarator_type): Rename to
5454         set_array_declarator_inner.
5455         (build_c_parm, build_attrs_declarator, build_function_declarator):
5456         New prototypes.
5457         * c-parse.in (after_type_declarator,
5458         parm_declarator_starttypename, parm_declarator_nostarttypename,
5459         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
5460         firstparm): Use these functions
5461
5462 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
5463
5464         * c-decl.c (build_array_declarator, set_array_declarator_type,
5465         start_decl, grokdeclarator, grokparms): Change boolean parameters
5466         to type bool.
5467         * c-tree.h (build_array_declarator, set_array_declarator_type,
5468         start_decl): Update prototypes.
5469         * c-decl.c, c-parse.in: All callers changed.
5470
5471 2004-08-21  Mike Stump  <mrs@apple.com>
5472
5473         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
5474         (darwin_fix_and_continue): Likewise.
5475         (darwin_fix_and_continue_switch): Likewise.
5476         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
5477         (darwin_fix_and_continue): Likewise.
5478         (darwin_fix_and_continue_switch): Likewise.
5479
5480 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
5481
5482         PR  c++/16030
5483         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
5484         Remove, merging into ...
5485         (gen_stdcall_or_fastcall_suffix): New function, returning tree
5486         rather than const char*, and accepting additional parameter.
5487         Don't add suffix to '*'-prefixed symbols or variadic functions.
5488         (i386_pe_encode_section_info): Adjust for call to new function.
5489         Call change_decl_assembler_name.
5490
5491 2004-08-20  Mike Stump  <mrs@apple.com>
5492
5493         * config/darwin.c (machopic_indirect_data_reference): Mark
5494         stubs as defined.
5495         * config/386/386.c (darwin_local_data_pic): Add.
5496         (legitimate_constant_p): Reorder so that PLUS handling runs
5497         before darwin_local_data_pic to match the ordering in
5498         legitimate_pic_address_disp_p and so that MINUS runs after
5499         darwin_local_data_pic as otherwise the darwin_local_data_pic
5500         logic can be skipped, which would be very bad.
5501         (legitimate_pic_address_disp_p): Move from from here to
5502         darwin_local_data_pic so it can be reused.
5503
5504 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
5505
5506         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
5507         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
5508         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
5509         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
5510         (RS6000_ABI_NAME): Define as "linux".
5511         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
5512         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
5513         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
5514         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
5515         * config/rs6000/rs6000.c (dot_symbols): New global var.
5516         (rs6000_output_function_entry): New function, modified for
5517         !DOT_SYMBOLS..
5518         (print_operand <case 'z'>): ..extracted from here.
5519         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
5520         (rs6000_output_function_epilogue): Likewise.
5521         (rs6000_elf_declare_function_name): Likewise.
5522         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
5523         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
5524         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
5525         * configure: Regenerate.
5526         * config.in: Regenerate.
5527
5528 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
5529
5530         * reload.c (find_reloads_address): Fix thinko in previous change.
5531
5532         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
5533         a CONST_INT.
5534
5535 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
5536
5537         PR rtl-optimization/17099
5538         * combine.c (force_to_mode): Check if inner_mask has any bits set
5539         outside of GET_MODE (x) instead of op_mode.
5540
5541 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
5542
5543         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
5544         fragment.
5545         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
5546         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
5547         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
5548         architecture.
5549         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
5550         configurations.
5551         * config/arm/t-symbian: New file.
5552
5553 2004-08-20  Andrew Pinski  <apinski@apple.com>
5554
5555         * regrename.c (kill_value_regno): ANSIfy.
5556
5557 2004-08-20  Dale Johannesen  <dalej@apple.com>
5558
5559         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
5560
5561 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
5562
5563         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
5564         (kill_value_regno): New function, derived from kill_value.
5565         (kill_value): Update.
5566         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
5567
5568 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
5569
5570         Fix PR tree-optimization/17111
5571         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
5572         of non-value_handles.
5573         (bitmap_set_contains): All constants are in every set.
5574
5575 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
5576
5577         * fold-const.c (round_up, round_down): Use build_int_cst.
5578         Optimize common case.
5579
5580 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
5581             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5582
5583         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
5584         one_only_data_section): Rename to som_readonly_data_section,
5585         som_one_only_readonly_data_section and som_one_only_data_section.
5586         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
5587         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
5588         conditional defines.
5589         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
5590         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
5591         string values.
5592         (pa_select_section): Use renamed section functions.
5593         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
5594         SOM_READONLY_DATA_SECTION_FUNCTION,
5595         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
5596         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
5597         Define here ...
5598         * config/pa/som.h: ... not here.
5599         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
5600         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
5601         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
5602         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
5603         (READONLY_DATA_SECTION): Use som_readonly_data_section.
5604
5605 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
5606
5607         * fold-const.c (int_const_binop): Don't generate non-overflowing
5608         size-types specially.
5609         (fold_convert_const): Likewise.
5610
5611         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
5612         clear cache on copied sizetype.
5613
5614 2004-08-20  Ben Elliston  <bje@au.ibm.com>
5615
5616         * configure.ac: Don't escape apostrophe in --enable-coverage help.
5617         * configure: Regenerate.
5618
5619 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
5620
5621         PR 5620
5622         * gcc.c (struct stat input_stat): Don't define if
5623         HOST_LACKS_INODE_NUMBERS
5624         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
5625         than stat to determine if temp file is same as input file.
5626         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
5627         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
5628
5629 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
5630
5631         * configure.ac (mips*-*-*): Print an error if not using GAS.
5632         * configure: Regenerated.
5633         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
5634         comments about buggy MIPSpro assemblers.
5635         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
5636         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
5637         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
5638         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
5639         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
5640         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
5641         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
5642         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
5643         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
5644         of more general IRIX 6 definitions.
5645         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
5646         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
5647         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
5648         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
5649         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
5650         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
5651         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
5652         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
5653         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
5654         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
5655         (LINK_SPEC): Move most of definition to iris.h.
5656         (SUBTARGET_LINK_SPEC): New macro.
5657         (IRIX_STARTFILE_SPEC): Fold into...
5658         (STARTFILE_SPEC): ...here.
5659         (IRIX_ENDFILE_SPEC): Fold into...
5660         (ENDFILE_SPEC): ...here.
5661         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
5662         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
5663         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
5664         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
5665         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
5666         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
5667         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
5668         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
5669         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
5670         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
5671         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
5672         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
5673         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
5674         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
5675         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
5676         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
5677         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
5678         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
5679         (TARGET_IRIX6): Define to 1.
5680         (DRIVER_SELF_SPECS): Define.
5681         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
5682         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
5683         (SUBTARGET_LINK_SPEC): New macro.
5684         (IRIX_STARTFILE_SPEC): Fold into...
5685         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
5686         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
5687         (LIB_SPEC, LIBGCC_SPEC): Use them.
5688         (LIB_SPEC): Remove !mabi=* case.
5689         (IRIX_ENDFILE_SPEC): Fold into...
5690         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
5691         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
5692         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
5693         (TARGET_IRIX6): New macro.
5694         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
5695         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
5696         (LABEL_AFTER_LOC): Delete.
5697         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
5698         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
5699         (mips_build_builtin_va_list): Check TARGET_IRIX6.
5700         (override_options): Remove TARGET_SGI_O32_AS-related code.
5701         (irix_output_external_libcall): Make static.
5702         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
5703         LABEL_AFTER_LOC.
5704         (mips_file_start): Tidy guard for ABI sections.  Remove use of
5705         ABICALLS_ASM_OP; use .abicalls instead.
5706         (mips_output_aligned_decl_common, mips_declare_object_name)
5707         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
5708         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
5709         .globl foo .text directives.
5710         (irix_asm_named_section_1, irix_asm_named_section)
5711         (irix_section_align_entry, irix_section_align_htab)
5712         (irix_orig_asm_out_file, irix_section_align_entry_eq)
5713         (irix_section_align_entry_hash, irix_asm_output_align)
5714         (irix_file_start, irix_section_align_1, copy_file_data)
5715         (irix_file_end, irix_section_type_flags): Delete.
5716         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
5717         Use standard section syntax.  Remove protective "jr $31".
5718         (__gcc_fini): Likewise .gcc_fini.
5719         * config/mips/irix-crtn.asm: Adjust sections accordingly.
5720         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
5721         iris5gas.h.
5722         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
5723         from t-irix-gld.
5724         (EXTRA_MULTILIB_PARTS): Define.
5725         * config/mips/t-iris6: Remove bogus comment.
5726         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
5727         * config/mips/iris5gas.h, config/mips/iris5gld.h,
5728         config/mips/iris6gas.h, config/mips/iris6gld.h,
5729         config/mips/t-iris5-as, config/mips/t-iris5-gas
5730         config/mips/t-irix-gld: Delete.
5731         * config/mips/iris.h: New file.
5732         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
5733
5734 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
5735
5736         * postreload.c (reload_cse_move2add): Allow any condjump, but check
5737         that the implicit set isn't clobbered in the jump insn.
5738
5739 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
5740
5741         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
5742         * optabs.c (init_optabs): Don't check it.
5743         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
5744         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
5745
5746 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5747
5748         * config/s390/s390.md (s390_warn_framesize_string)
5749         (s390_warn_dynamic_string, s390_stack_size_string)
5750         (s390_stack_guard_string): New global string variables.
5751         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
5752         (s390_stack_guard): New global variables.
5753         (override_options): Added checks for the new options.
5754         (s390_emit_prologue): Emit stack check and trap code and perform
5755         compile time stack size checking.
5756
5757         * config/s390/s390.h (TARGET_OPTIONS): Added new options
5758         "warn-framesize", "warn-dynamicstack", "stack-size" and
5759         "stack-guard".
5760
5761         * doc/invoke.texi: Added documentation for the new options.
5762
5763 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
5764
5765         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
5766         to eliminate warning.
5767         (linear_search_fdes): Declare p as unsigned.
5768         (binary_search_mixed_encoding_fdes): Likewise.
5769         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
5770         to eliminate warning.
5771         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
5772         type cast.
5773
5774 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
5775
5776         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
5777         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
5778         instead of one.  Check for strictly legitimate address.
5779         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
5780         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
5781
5782 2004-08-19  Eric Christopher  <echristo@redhat.com>
5783
5784         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
5785         * langhooks.h (unsave_expr_now): Ditto.
5786         * tree.h (unsave_expr_1): Remove prototype.
5787         (lhd_unsave_expr_now): Rename to unsave_expr_now.
5788         * tree-inline.c (unsave_expr_1): Move here
5789         from tree.c. Make static.
5790         (unsave_expr_now): Rename from lhd_unsave_expr_now.
5791         * tree-sra.c: Fix up for rename.
5792         * tree-ssa-copy.c: Ditto.
5793         * tree-eh.c: Ditto.
5794         * tree.c (unsave_expr_1): Move to tree-inline.c.
5795
5796 2004-08-19  Caroline Tice  <ctice@apple.com>
5797
5798         * config/i386/cygming.h (switch_to_section):  Fix typo (change
5799         in_unlikely_text_section to in_unlikely_executed_text).
5800
5801 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
5802
5803         * vec.h (VEC_lower_bound): New macro.
5804
5805 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
5806
5807         PR target/16446
5808         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
5809         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
5810         treat each ABI separately.  Deal with n32/n64 complex float arguments.
5811         (function_arg): Add associated complex handling here.
5812
5813 2004-08-19  Richard Henderson  <rth@redhat.com>
5814
5815         * config/arm/arm.c (arm_gen_load_multiple): Use
5816         adjust_automodify_address.  Take base memory and offset instead
5817         of unchanging/struct/scalar bits.
5818         (arm_gen_store_multiple): Likewise.
5819         (arm_gen_movmemqi): Use adjust_automodify_address.
5820         * config/arm/arm-protos.h: Update decls.
5821         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
5822         (store_multiple): Similarly.
5823
5824 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
5825
5826         * regclass.c (globalize_reg): Update call_really_used_regs.
5827
5828 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
5829
5830         * doc/invoke.texi (integer-share-limit): Document.
5831
5832         * tree.h (TYPE_CACHED_VALUES_P): New.
5833         (TYPE_CACHED_VALUES): New.
5834         (TYPE_ORIG_SIZE_TYPE): Adjust.
5835         * tree.def (INTEGER_CST): Update documentation.
5836         * tree.c: Inlcude params.h.
5837         (build_int_cst): Cache small values.
5838         (build_type_copy): Do not copy the value cache.
5839         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
5840         unneeded zeroing.
5841         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
5842         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
5843         cache.
5844         * fold-const.c (force_fit_type): Copy value when setting
5845         overflows.
5846         (int_const_binop): Likewise.
5847         * stor-layout.c: Include params.h
5848         (set_sizetype): Create values cache.
5849         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
5850         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
5851         * params.h (INTEGER_SHARE_LIMIT): New.
5852         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
5853
5854 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
5855
5856         * gimplify.c (gimplify_minimax_expr): Remove.
5857         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
5858
5859 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
5860
5861         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
5862         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
5863
5864 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
5865
5866         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
5867
5868 2004-08-18  Andrew Pinski  <apinski@apple.com>
5869
5870         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
5871
5872 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
5873
5874         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
5875         (__aeabi_ul2f): Likewise.
5876
5877 2004-08-18  Richard Henderson  <rth@redhat.com>
5878
5879         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
5880         move to rtl completely.
5881         (struct meminsnbuf, xtensa_emit_block_move): Remove.
5882         (xtensa_find_mode_for_size): Remove.
5883         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
5884         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
5885
5886 2004-08-18  Richard Henderson  <rth@redhat.com>
5887
5888         * config/mcore/mcore.c (mode_from_align): Remove DImode.
5889         (block_move_sequence): Rewrite to use adjust_address.
5890         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
5891         Return boolean indicating success/failure.
5892         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
5893         * config/mcore/mcore.md (movmemsi): Update to match.
5894
5895 2004-08-18  Mike Stump  <mrs@apple.com>
5896
5897         * doc/invoke.texi (-mfix-and-continue): Add support for
5898         fast turn around debugging.
5899         (-ffix-and-continue): Likewise.
5900         (-mindirect-data): Likewise.
5901         (-findirect-data): Likewise.
5902         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
5903         (indirect_data): Likewise.
5904         (machopic_data_defined_p): Likewise.
5905         (machopic_output_indirection): Likewise.
5906         (darwin_encode_section_info): Likewise.
5907         (darwin_fix_and_continue): Likewise.
5908         (darwin_fix_and_continue_switch): Likewise.
5909         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
5910         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
5911         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
5912         (SUBTARGET_OPTIONS): Likewise.
5913         (darwin_fix_and_continue): Likewise.
5914         (darwin_fix_and_continue_switch): Likewise.
5915         (TARGET_FIX_AND_CONTINUE): Likewise.
5916         * config/rs6000.c (rs6000_emit_prologue): Likewise.
5917
5918 2004-08-19  Steven Bosscher  <stevenb@suse.de>
5919
5920         * basic-block.h (struct edge_def): Remove crossing_edge.
5921         (EDGE_CROSSING): New define.
5922         (EDGE_ALL_FLAGS): Update.
5923         * bb-reorder.c (find_traces_1_round, better_edge_p,
5924         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
5925         find_jump_block, fix_crossing_conditional_branches,
5926         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
5927         Replace all occurences of crossing_edge with an edge flag check
5928         or set/reset.
5929         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5930         try_crossjump_bb): Likewise.
5931         * cfglayout.c (fixup_reorder_chain): Likewise.
5932         * cfgrtl.c (force_nonfallthru_and_redirect,
5933         commit_one_edge_insertion): Likewise.
5934
5935         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
5936         * tree-flow.h (compute_dominance_frontiers): Move prototype...
5937         * basic-block.h:  ...here.
5938         * tree-cfg.c (compute_dominance_frontiers_1,
5939         compute_dominance_frontiers): Move from here...
5940         * cfganal.c: ...to here.  Include timevar.h.
5941
5942 2004-08-18  James E Wilson  <wilson@specifixinc.com>
5943
5944         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
5945         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
5946
5947         * config/mips/mips.md (type): Add frdiv.
5948         (divsf3+1, divsf3+2): Change type to frdiv.
5949         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
5950         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
5951
5952         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
5953         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
5954         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
5955         * config/mips/5000.md (r5k_fdiv_single): Likewise.
5956         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
5957         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
5958         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
5959         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
5960         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
5961         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
5962         Likewise.
5963         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
5964
5965 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
5966
5967         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
5968         get regression tester working again.
5969
5970 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
5971
5972         * insn-notes.def, reg-notes.def: New files.
5973         * rtl.h: Use them to define enum insn_note and enum reg_note.
5974         * rtl.c: Use them to define note_insn_name and reg_note_name.
5975         * Makefile.in (RTL_BASE_H): Update.
5976
5977         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
5978         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
5979
5980 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
5981
5982         * arm.c (arm_size_rtx_costs): New function.
5983         (arm_override_options): Use it if optimizing for space.
5984
5985 2004-08-18  Richard Henderson  <rth@redhat.com>
5986
5987         * emit-rtl.c (gen_const_mem): New.
5988         * rtl.h (gen_const_mem): Declare.
5989         * expr.c (do_tablejump): Use it.
5990         * varasm.c (force_const_mem): Likewise.
5991         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5992         (machopic_legitimize_pic_address): Likewise.
5993         * config/arm/arm.c (legitimize_pic_address): Likewise.
5994         * config/i386/i386.c (legitimize_pic_address): Likewise.
5995         (legitimize_tls_address): Likewise.
5996         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5997         * config/ia64/ia64.md (load_fptr): Likewise.
5998         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
5999         * config/pa/pa.c (legitimize_pic_address): Likewise.
6000         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
6001         (rs6000_emit_move): Likewise.
6002         * config/s390/s390.c (legitimize_pic_address): Likewise.
6003         (legitimize_tls_address): Likewise.
6004         * config/s390/s390.md (casesi): Likewise.
6005         * config/sh/sh.c (sh_reorg): Likewise.
6006         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
6007         * config/v850/v850.md (casesi): Likewise.
6008
6009         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
6010         * config/sh/sh.c (prepare_move_operands): Remove incorrect
6011         use of MEM_READONLY_P.
6012
6013 2004-08-18  Steven Bosscher  <stevenb@suse.de>
6014
6015         * Makefile.in (OBJS-common): Add postreload-gcse.c.
6016         Add new postreload-gcse.o.
6017         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
6018         (lookup_as_function, insert, rehash_using_reg, use_related_value,
6019         equiv_constant): Use SAFE_HASH instead of safe_hash.
6020         (exp_equiv_p): Export.  Add for_gcse argument when comparing
6021         for GCSE.
6022         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
6023         find_comparison_args, fold_rtx, cse_insn): Update callers.
6024         (hash_rtx): New function derived from old canon_hash and bits
6025         from gcse.c hash_expr_1.
6026         (canon_hash_string): Rename to hash_rtx_string.
6027         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
6028         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
6029         (cselib_lookup): Update this caller.
6030         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
6031         Make static.
6032         (hash_expr): Call hash_rtx.
6033         (ldst_entry): Likewise.
6034         (expr_equiv_p): Call exp_equiv_p.
6035         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
6036         reg_used_on_edge, reg_set_between_after_reload_p,
6037         reg_used_between_after_reload_p, get_avail_load_store_reg,
6038         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
6039         get_bb_avail_insn, hash_scan_set_after_reload,
6040         compute_hash_table_after_reload,
6041         eliminate_partially_redundant_loads, gcse_after_reload,
6042         get_bb_avail_insn, gcse_after_reload_main): Remove.
6043         * postreload-gcse.c: New file, reincarnating most of the above.
6044         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
6045         (gcse_after_reload_main): Update prototype.
6046         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
6047         * passes.c (rest_of_handle_gcse2): Use it.
6048
6049 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
6050
6051         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
6052         (pass_loop_done): Likewise.
6053
6054 2004-08-18  Andrew Pinski  <apinski@apple.com>
6055
6056         * config/rs6000/darwin.md: Delete the altivec patterns which are
6057         handled differently now.
6058         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
6059         (macho_correct_pic_di): Likewise.
6060         (call_indirect_nonlocal_darwin64): Likewise.
6061         Delete the save world/saveFP/saveVec patterns.
6062
6063         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
6064         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
6065         * config/rs6000/rs6000.md: Include darwin.md.
6066         (builtin_setjmp_receiver): Add DImode case.
6067         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
6068         Darwin bits.
6069
6070 2004-08-18  Matt Austern  <austern@apple.com>
6071
6072         Dead code stripping
6073         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
6074         * darwin.c (darwin_file_end): Mark file as potentially strippable.
6075
6076 2004-08-18  Richard Henderson  <rth@redhat.com>
6077
6078         * alias.c (readonly_fields_p): Remove.
6079         (objects_must_conflict_p): Don't call it.
6080         * tree.h (readonly_fields_p): Remove.
6081         * langhooks.h (struct lang_hooks): Remove honor_readonly.
6082         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
6083
6084 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
6085
6086         * tree-dfa.c (add_referenced_var): Only global variables are
6087         call-clobbered.
6088         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
6089         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
6090         all pointers dereferenced if the statement dereferences them.
6091         (create_name_tags): Do not create memory tags for pointers
6092         that have PT_ANYTHING set.
6093         Also check if PT_VARS is not empty before creating a name tag.
6094         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
6095         variables that share the same alias set with a pointer that
6096         may point anywhere.
6097         (add_may_alias): Add FIXME comment to remove clobbering
6098         aliased variables and tags.
6099         (replace_may_alias): Likewise.
6100         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
6101         (merge_pointed_to_info): If the original variable has not
6102         points-to information, call set_pt_anything.
6103         (add_pointed_to_var): Do not prevent adding a pointed-to
6104         variable if the pointers is PT_ANYTHING.
6105         If the variable is a global, set PT_GLOBAL_MEM.
6106         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
6107         pointer type only come in PTR+OFFSET flavours.
6108         Always call merge_pointed_to_info on PHI arguments that are
6109         SSA_NAMEs.
6110         (get_nmt_for): Mark call-clobbered tags whose pointer points
6111         to global memory.
6112         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
6113         values.
6114         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
6115         FLAGS.
6116         (add_stmt_operand): Abort if the caller tried to add a killing
6117         definition for a memory tag.
6118         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
6119         unnecessary checks.
6120
6121 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
6122
6123         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
6124         from call_used_regs.  Update call_really_used_regs.
6125         (CALL_REALLY_USED_REGISTERS): Define.
6126         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
6127         Replace call_used_regs with call_really_used_regs.
6128         (calc_live_regs, sh_media_register_for_return): Likewise.
6129         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
6130         * sh.md (return_media): Likewise.
6131
6132 2004-08-18  Andrew Pinski  <apinski@apple.com>
6133
6134         * config/darwin.c (machopic_legitimize_pic_address): Only set
6135         MEM_READONLY_P in the non TARGET_TOC case.
6136
6137 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
6138
6139         * rtl.def (NIL): Delete.
6140         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
6141         Tighten the syntax a little.
6142
6143         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
6144         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
6145         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
6146         * config/i386/predicates.md, config/m32r/m32r.h
6147         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
6148         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
6149         * config/sparc/sparc.h, doc/tm.texi:
6150         Replace all occurrences of NIL with UNKNOWN.
6151
6152 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
6153
6154         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
6155         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
6156         sequence inline.  Move drop_through_label code into this
6157         block, being the only place it is used.  Adjust comments.
6158
6159 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
6160
6161         * config/rs6000/altivec.md: Add new patterns for calls to
6162         save_world/rest_world functions.
6163
6164         * config/rs6000/rs6000-protos.h: (save_world_operation,
6165         restore_world_operation) new declarations.
6166
6167         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
6168         field added.
6169         (rs6000_stack_info): Set world_save_p field.
6170         (save_world_operation): New function.
6171         (restore_world_operation): New function.
6172         (compute_save_world_info): New function.
6173         (rs6000_stack_info): Call compute_save_world_info.
6174         (rs6000_emit_prologue): Check for world_save_p and generate
6175         pattern to call save_world for saving all non-volatile and
6176         special registers.
6177         (rs6000_emit_epilogue): Check for world_save_p and generate
6178         pattern to call rest_world to restore saved registers.
6179
6180         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
6181         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
6182         (rs6000_reg_names): New entries added for save_world_operation and
6183         restore_world_operation.
6184
6185 2004-08-18  Caroline Tice  <ctice@apple.com>
6186
6187         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
6188         "-freorder-blocks-and-partition" to the flags used in second
6189         stage of profiledbootstrap.
6190         * bb-reorder.c (push_to_next_round_p): Add new variable,
6191         next_round_is_last; set and use variable to make sure, when
6192         partitioning, that the last trace construction round consists
6193         of all (and only) cold basic blocks.
6194         (rotate_loop): Don't copy blocks that end in a section
6195         crossing jump.
6196         (copy_bb): Correctly initialize "partition" of duplicated bb.
6197         (add_unlikely_executed_notes): Add a comment.
6198         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
6199         to make sure, if function contains hot blocks, that the
6200         successors of ENTRY_BLOCK_PTR are hot; also, only look for
6201         crossing edges if the architecture supports named sections.
6202         (mark_bb_for_unlikely_executed_section): Modify to always
6203         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
6204         the basic block note insn.
6205         (fix_crossing_unconditional_branches): Remove extra space.
6206         (fix_edges_for_rarely_executed_code): Modify to only do
6207         partitioning work if the architecture supports named sections.
6208         (reorder_basic_blocks): Modify to only add
6209         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
6210         supports named sections.
6211         * c-common.c (handle_section_attribute): Initialize new global
6212         variable, user_defined_section_attribute, to true if user has
6213         specified one.
6214         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
6215         forward edges that cross section boundaries.
6216         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
6217         partitioning information if the architecture supports named
6218         sections.
6219         * cfgrtl.c (target.h): Add statement to include this.
6220         (rtl_split_block): Make sure newly created bb gets correct
6221         partition.
6222         (try_redirect_by_replacing_jump): Make sure redirection isn't
6223         attempting to cross section boundaries.
6224         (force_nonfallthru_and_redirect): Only do partition fix up if
6225         architecture supports named sections.
6226         (rtl_split_edge): Make sure newly created bb ends up in
6227         correct partition.
6228         (commit_one_edge_insertion): Remove code that incorrectly
6229         updated basic block partition; Make sure partition fix up only
6230         happens if architecture supports named sections and it's not
6231         already done.
6232         (rtl_verify_flow_info_1): Fix if-condition on test/error
6233         condition that fallthru edges are not allowed to cross section
6234         boundaries.
6235         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
6236         * final.c (final_scan_insn): Remove redundant test from if-statement;
6237         change calls to text_section into calls to function_section; add code
6238         to only to partitioning fix up if architecture supports named
6239         sections.
6240         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
6241         partition.
6242         (if_convert): Add targetm.have_named_sections to test.
6243         * output.h (unlikely_section_label): Extern declaration for new global
6244         variable.
6245         (unlikely_text_section_name): Likewise.
6246         * opts.c (decode_options): If both partitioning and DWARF debugging
6247         are turned on, issue a warning that this doesn't work, and change
6248         partitiong to basic block reordering (without hot/cold partitions).
6249         * passes.c (rest_of_handle_final): Re-set new global variable,
6250         user_defined_section_attribute, to false.
6251         (rest_of_compilation): Change options for calling partitioning
6252         function: Don't call if the user defined the section attribute, and
6253         don't call if DECL_ONE_ONLY is true for the current function.
6254         * predict.c (choose_function_section): Return immediately if we
6255         are doing hot/cold partitioning (i.e. let the basic block partitioning
6256         determine where the function belongs).
6257         * reg-stack.c (emit_swap_insn): Add condition to step over
6258         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6259         * toplev.c (user_defined_section_attribute): New global variable.
6260         * toplev.h (user_defined_section_attribute): Extern declaration
6261         for new global variable.
6262         * varasm.c (unlikely_section_label): New global variable.
6263         (unlikely_text_section_name): New global variable.
6264         (unlikely_text_section): Add code to initialize
6265         unlikely_text_section_name if necessary; modify to use
6266         unlikely_text_section_name and unlikely_section_label; also to use
6267         named_section properly.
6268         (in_unlikely_text_section):  Modify to work correctly with
6269         named_section and to use unlikely_text_section_name.
6270         (named_section):  Add code to work properly with cold section.
6271         (function_section): Clean up if-statement.
6272         * config/darwin.c (darwin_asm_named_section): Return to original
6273         code, removing use of SECTION_FORMAT_STRING.
6274         * config/arm/pe.h (switch_to_section):  Add case for
6275         in_unlikely_executed_text to switch statement.
6276         * config/i386/cygming.h (switch_to_section): Likewise.
6277         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
6278         (SECTION_FORMAT_STRING): Likewise.
6279         * config/mcore/mcore.h (switch_to_section): Likewise.
6280         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
6281         (SECTION_FORMAT_STRING): Remove.
6282
6283 2004-08-18  Roger Sayle  <roger@eyesopen.com>
6284
6285         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
6286         -ffixed-reg safe, by preserving the meanings of zero and one.
6287         (CALL_USED_REGISTERS): Likewise.
6288         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
6289
6290 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6291
6292         * config/sh/sh.c (split_branches): Check the result of
6293         next_active_insn.
6294         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
6295         Call rtl_register_cfg_hooks.
6296
6297 2004-08-18  Richard Henderson  <rth@redhat.com>
6298
6299         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
6300         * alias.c (true_dependence): Update to match new semantics.
6301         (canon_true_dependence, write_dependence_p): Likewise.
6302         (anti_dependence, output_dependence): Update write_dependence_p args.
6303         (unchanging_anti_dependence): Remove.
6304         * calls.c (purge_mem_unchanging_flag): Remove.
6305         (fixup_tail_calls): Don't call it.
6306         (expand_call): Don't add unchanging memory to function usage.
6307         * expr.c (emit_block_move_via_libcall): Likewise.
6308         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
6309         (get_subtarget): Don't use RTX_UNCHANGING_P.
6310         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
6311         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
6312         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
6313         * cse.c (insert): Don't use RTX_UNCHANGING_P.
6314         (cse_insn, canon_hash): Use MEM_READONLY_P.
6315         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
6316         instead of RTX_UNCHANGING_P.
6317         * explow.c (maybe_set_unchanging): Remove.
6318         * expr.h (maybe_set_unchanging): Remove.
6319         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
6320         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
6321         (assign_parm_setup_reg, expand_function_start): Likewise.
6322         * integrate.c (copy_rtx_and_substitute): Likewise.
6323         * ra-rewrite.c (emit_colors): Likewise.
6324         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
6325         (fixup_match_1): Likewise.
6326         * reload1.c (reload, alter_reg): Likewise.
6327         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
6328         not RTX_UNCHANGING_P.
6329         (equiv_init_varies_p): Likewise.
6330         * loop-invariant.c (check_maybe_invariant): Likewise.
6331         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
6332         * loop.c (note_addr_stored): Likewise.
6333         (prescan_loop): Likewise. Don't check function usage for clobbered
6334         unchanging memory.
6335         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
6336         not RTX_UNCHANGING_P.
6337         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
6338         * varasm.c (force_const_mem): Likewise.
6339         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
6340         * web.c (entry_register): Likewise.
6341         * tree-gimple.h (get_base_address): Move decl ...
6342         * tree.h: ... here.
6343         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
6344
6345         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
6346         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
6347         (alpha_set_memflags): Update to match.
6348
6349         * config/darwin.c (machopic_indirect_data_reference): Set
6350         MEM_READONLY_P instead of RTX_UNCHANGING_P.
6351         (machopic_indirect_call_target): Likewise.
6352         (machopic_legitimize_pic_address): Likewise.
6353         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
6354         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
6355         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
6356         * config/frv/frv.md (symGOT2reg): Likewise.
6357         * config/i386/i386.c (legitimize_pic_address,
6358         legitimize_tls_address, ix86_split_to_parts): Likewise.
6359         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
6360         * config/ia64/ia64.md (load_fptr): Likewise.
6361         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
6362         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
6363         * config/mcore/mcore.c (block_move_sequence): Likewise.
6364         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
6365         * config/pa/pa.c (legitimize_pic_address): Likewise.
6366         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
6367         (rs6000_emit_move): Likewise.
6368         * config/s390/s390.c (legitimize_pic_address): Likewise.
6369         (legitimize_tls_address): Likewise.
6370         * config/s390/s390.md (casesi): Likewise.
6371         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
6372         * config/sh/sh.md (symGOT2reg): Likewise.
6373         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
6374         * config/v850/v850.md (casesi): Likewise.
6375
6376         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
6377         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
6378         * config/mips/mips.c (mips_restore_gp): Likewise.
6379         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
6380         * config/sh/sh.c (sh_reorg): Likewise.
6381
6382 2004-08-18  Richard Henderson  <rth@redhat.com>
6383
6384         * tree.h (struct tree_decl): Add gimple_formal_temp.
6385         (DECL_GIMPLE_FORMAL_TEMP_P): New.
6386         * gimplify.c (pop_gimplify_context): Clear it.
6387         (lookup_tmp_var): Set it, if is_formal.
6388         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
6389         Use is_gimple_val for VECTOR.  Simplify return value.
6390         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
6391         (gimplify_expr): Likewise.
6392         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
6393         is_gimple_tmp_rhs for clarity.  Update all callers.
6394         (is_gimple_reg_rhs): Simplify logic.
6395         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
6396         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
6397         (is_gimple_formal_tmp_reg): Similarly.
6398         * tree-gimple.h: Update decls.
6399         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
6400         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
6401         * tree-ssa-live.c (var_union, type_var_init): Likewise.
6402
6403 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
6404
6405         * c4x.c (legitimize_operands): Remove calls to
6406         preserve_subexpressions_p.
6407
6408 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
6409
6410         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
6411         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
6412
6413 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
6414
6415         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
6416         Objective-C++ extensions.
6417         * gengtype.c (get_file_basename): Match entire subdirectory name
6418         ('cp', 'objc', 'objcp') rather than just its suffix.
6419         (get_base_file_bitmap): Allow for files to belong to more than one
6420         language.
6421         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
6422         used by more than one front-end.
6423
6424 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
6425
6426         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
6427         avoid use of preserve_subexpressions_p.
6428
6429 2004-08-17  Richard Henderson  <rth@redhat.com>
6430
6431         PR 17051
6432         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
6433
6434 2004-08-17  DJ Delorie  <dj@redhat.com>
6435
6436         * doc/extend.texi: Document new xstormy16 attribute.
6437
6438         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
6439         (xstormy16_splittable_below100_or_register): New.
6440         (combine_bnp): New.
6441         (xstormy16_reorg): New.
6442         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6443
6444         * config/stormy16/stormy16.md (movqi_internal): Make name public.
6445         (movhi_internal): Likewise.
6446         (cbhranchhi): Likewise.
6447         (cbhranchhi_neg): Likewise.
6448         (andhi3): Only allow splittable below100 operands.
6449         (iorhi3): Likewise.
6450         (peephole2): New and/zero_extend->and peephole.
6451         (peephole2): New load/ior/save->set1 peephole.
6452         (peephole2): New load/and/save->clr1 peephole.
6453         (bclrx, bclrx2, bclr7, bclr15): New.
6454         (bsetx, bsetx2, bset7, bset15): New.
6455
6456         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
6457         liberal about acceptable 'B' masks.
6458
6459         * config/stormy16/stormy16-protos.h
6460         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
6461         xstormy16_below100_operand, xstormy16_below100_or_register,
6462         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
6463         (PREDICATE_CODES): Add new predicates.
6464
6465         * config/stormy16/stormy16.c
6466         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
6467         xstormy16_below100_operand, xstormy16_below100_or_register,
6468         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
6469         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
6470         (xstormy16_legitimate_address_p): Allow below100 symbols.
6471         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
6472         (xstormy16_expand_move): Leave below100 operands as-is.
6473         (xstormy16_encode_section_info): Encode below100 symbols.
6474         (xstormy16_strip_name_encoding): New.
6475         (xstormy16_print_operand): Print 'b' as shift mask.
6476         (xstormy16_attribute_table): Add below100 attributes.
6477         (xstormy16_handle_below100_attribute): New.
6478
6479         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
6480         (XSTORMY16_SECTION_FUNCTION): New.
6481         (EXTRA_SECTION_FUNCTIONS): Define using the above.
6482         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
6483         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
6484         (ASM_OUTPUT_LABELREF): Define.
6485
6486         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
6487         (movhi_internal): Add below100 support.
6488         (andhi3): Add below100 support.
6489         (iorhi3): Add below100 support.
6490         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
6491
6492 2004-08-17  James E Wilson  <wilson@specifixinc.com>
6493
6494         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
6495         of VOIDmode for comparison code mode.
6496         * config/mips/mips.md: For conditional move patterns, use mode of
6497         first compare operand for comparison mode, instead of VOIDmode.
6498
6499         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
6500         normal and -ffast-math code.
6501
6502 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
6503
6504         PR c++/15871
6505         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
6506
6507 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
6508
6509         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
6510
6511 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
6512
6513         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
6514         for non Darwin targets.
6515         (*call_value_nonlocal_darwin64): Likewise.
6516
6517 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
6518
6519         * config/rs6000/rs6000.c (rs6000_function_value): Check for
6520         altivec mode for altivec return register.
6521
6522 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
6523
6524         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
6525         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
6526         * config/rs6000/rs6000.md: Include darwin.md.
6527         (builtin_setjmp_receiver): Add DImode case.
6528         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
6529         Darwin bits.
6530
6531 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
6532
6533         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
6534         trees.
6535         * tree-vectorizer.h: New File: Same.
6536         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
6537         * common.opt (ftree-vectorize): New flag to enable vectorization.
6538         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
6539         vectorization pass.
6540         * tree-data-ref.h (init_data_ref): Additional argument.
6541         (array_base_name_differ_p): Moved to tree-data-ref.c.
6542         * tree-data-ref.c (array_base_name_differ_p): Revised.
6543         (initialize_data_dependence_relation): Call array_base_name_differ_p
6544         with an extra argument.
6545         (analyze_all_data_dependences): Same.
6546         (init_data_ref): Additional argument is_read to set DR_IS_READ.
6547         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
6548         file.
6549         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
6550         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
6551         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
6552         vectorization pass.
6553         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
6554         (tree_ssa_loop_done): Call scev_finalize.
6555         (tree_vectorize): Define the new vectorization pass.
6556         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
6557         size of the vector they support (until support for multiple vector
6558         sizes is added to the vectorizer).
6559         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
6560         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
6561         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
6562         documentation.
6563
6564 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
6565
6566         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
6567         usage.
6568         (generate_protocol_list, handle_impent): Likewise.
6569
6570 2004-08-17  Roger Sayle  <roger@eyesopen.com>
6571
6572         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
6573         ensure that call_used_regs is a superset of both fixed_regs and
6574         call_really_used_regs.
6575
6576 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
6577
6578         PR target/17019
6579         * arm.md (addsi3_cbranch_scratch): Correct case labels.
6580
6581 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
6582
6583         PR middle-end/17036
6584         * fold-const.c (fold): Check for integer operand when
6585         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
6586         Pinski  <pinskia@physics.uc.edu>.
6587
6588 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
6589
6590         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
6591         No need to check if in a cross configuration.
6592         * configure: Regenerate.
6593
6594         * calls.c (precompute_register_parameters):
6595         Inline preserve_subexpressions_p ().
6596         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
6597         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
6598         Likewise.
6599         * expr.c (get_subtarget): Likewise.
6600         * rtl.h (preserve_subexpressions_p): Remove.
6601         * stmt.c (preserve_subexpressions_p): Remove.
6602
6603         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
6604         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
6605         Abort on gimplified cases.
6606
6607 2004-08-16  James E Wilson  <wilson@specifixinc.com>
6608
6609         * tree.h (VECTOR_FLOAT_TYPE_P): New.
6610         (FLOAT_TYPE_P): Use it.
6611         * c-typeck.c (build_binary_op): After convert calls, check for
6612         check for ERROR_MARK operands.
6613
6614 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
6615
6616         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
6617         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
6618         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
6619         (genobjs static pattern rule): Remove %.c dependency.
6620         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
6621         Rename rules; delete commands; fix dependencies.
6622         (mostlyclean): Do not delete temporary source copies.
6623         * configure.ac: Delete all references to BUILD_PREFIX and
6624         BUILD_PREFIX_1.
6625         * configure: Regenerate.
6626
6627         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
6628         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
6629         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
6630         with #ifndef GENERATOR_FILE so that nothing from those headers
6631         is used.
6632
6633         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
6634
6635 2004-08-16  Adam Nemet  <anemet@lnxw.com>
6636
6637         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
6638
6639 2004-08-16  Andrew Pinski  <apinski@apple.com>
6640
6641         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
6642         extraneous semicolon.
6643
6644 2004-08-16  Devang Patel  <dpatel@apple.com>
6645
6646         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
6647         * print-tree.c (print_node): Print DECL_PRESERVE_P.
6648         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
6649         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
6650         * target.h (struct gcc_target): New member, mark_decl_preserved.
6651         * hooks.c (hook_void_charptr): Rename to ...
6652         (hook_void_constcharptr): ... new name.
6653         * hooks.h (hook_void_charptr): Rename to ..
6654         (hook_void_constcharptr): ... new name.
6655         * tree.h (DECL_PRESERVE_P): New #define.
6656         (struct tree_decl): New member, preserve_flag.
6657         * varasm.c (assemble_start_function): Mark decl preserved.
6658         (assemble_variable): Same.
6659         * darwin.c (darwin_mark_decl_preserved): New function.
6660         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
6661         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
6662         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
6663
6664 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
6665
6666         * c-decl.c (grokdeclarator): Allow for function definition where
6667         innermost declarator has attributes.
6668
6669 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
6670
6671         * except.c (get_exception_filter, build_post_landing_pads,
6672         dw2_build_landing_pads): Use target-specific mode for 'filter'.
6673         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
6674         * target.h (eh_return_filter_mode): New field added.
6675         * targhooks.c (default_eh_return_filter_mode): Defined.
6676         * targhooks.h (default_eh_return_filter_mode): Declared.
6677         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
6678
6679 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6680
6681         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
6682         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
6683         * configure: Regenerate.
6684
6685 2004-08-16  Stan Shebs  <shebs@apple.com>
6686
6687         Basic support for 64-bit Darwin.
6688         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
6689         (machopic_legitimize_pic_address): Similarly, plus use Pmode
6690         instead of SImode.
6691         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
6692         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
6693         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
6694         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
6695         (PROCESSOR_DEFAULT64): Define.
6696         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
6697         Darwin.
6698         * config/rs6000/rs6000.md: Include darwin.md.
6699         (builtin_setjmp_receiver): Add DImode case.
6700         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
6701         Darwin.
6702         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
6703         (rs6000_emit_move): Add DImode case to Darwin bits.
6704         (machopic_output_stub): Use .quad if 64-bit.
6705         * invoke.texi: Document -m32 and -m64.
6706
6707 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
6708
6709         * doc/extend.texi (AltiVec builtins): Document additional differences
6710         from the Motorola AltiVec PIM.
6711
6712 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
6713
6714         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
6715         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
6716         (struct tree_common): Update public_flag documentation.
6717
6718 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6719
6720         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
6721         Check for artificial variables, not is_gimple_tmp_var.
6722         * tree-ssa-live.c (var_union): Likewise.
6723
6724 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
6725
6726         * calls.c (load_register_parameters): Remove spurious FIXME token.
6727
6728 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
6729
6730         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
6731         (c-lang.o): Depend on c-objc-common.h.
6732         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
6733         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
6734         * c-lang.c: Include c-objc-common.h.
6735         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
6736         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
6737         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
6738         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
6739         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
6740         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
6741         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
6742         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
6743         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
6744         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
6745         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
6746         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
6747         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
6748         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
6749         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
6750         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
6751         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
6752         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
6753         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
6754         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
6755         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
6756         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
6757         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
6758         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
6759         Move to c-objc-common.h.
6760         * c-objc-common.c: Include c-objc-common.h.
6761         * c-objc-common.h: New file.
6762
6763 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
6764             Andrew Pinski  <pinskia@physics.uc.edu>
6765
6766         PR target/14931
6767         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
6768         style.
6769
6770 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
6771
6772         * tree.h (build_int_cst): New.
6773         (build_int_2): Remove.
6774         * tree.c (build_int_2): Remove.
6775         (build_int_cst): New.
6776         (make_vector_type, build_common_tree_nodes,
6777         build_common_tree_nodes_2): Use build_int_cst.
6778         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
6779         expand_builtin_strpbrk, expand_builtin_fputs,
6780         build_string_literal, expand_builtin_printf,
6781         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
6782         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
6783         fold_builtin_isdigit, simplify_builtin_strstr,
6784         simplify_builtin_strpbrk, fold_builtin_fputs,
6785         simplify_builtin_sprintf): Use build_int_cst.
6786         * c-common.c (start_fname_decls, fix_string_type,
6787         c_common_nodes_and_builtins, c_init_attributes,
6788         shorten_compare): Likewise.
6789         * c-decl.c (complete_array_type,
6790         check_bitfield_type_and_width): Likewise.
6791         * c-lex.c (interpret_integer, lex_charconst): Likewise.
6792         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
6793         * c-pretty-print.c (pp_c_integer_constant): Likewise.
6794         * c-typeck.c (really_start_incremental_init, push_init_level,
6795         set_nonincremental_init_from_string): Likewise.
6796         * calls.c (load_register_parameters): Likewise.
6797         * convert.c (convert_to_pointer): Likewise.
6798         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
6799         build_fn_info_type, build_ctr_info_value, build_gcov_info):
6800         Likewise.
6801         * except.c (init_eh, assign_filter_values, assign_filter_values):
6802         Likewise.
6803         * expmed.c (store_fixed_bit_field, extract_bit_field,
6804         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
6805         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
6806         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
6807         * expr.c (convert_move, emit_group_load, emit_group_store,
6808         expand_assignment, store_constructor, store_field,
6809         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
6810         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
6811         invert_truthvalue, optimize_bit_field_compare,
6812         decode_field_reference, all_ones_mask_p, constant_boolean_node,
6813         fold_div_compare, fold, fold_read_from_constant_string,
6814         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
6815         * function.c (assign_parm_setup_block): Likewise.
6816         * stmt.c (shift_return_value, expand_end_case_type,
6817         estimate_case_costs): Likewise.
6818         * stor-layout.c (layout_type, initialize_sizetypes,
6819         set_min_and_max_values_for_integral_type): Likewise.
6820         * tree-chrec.c (chrec_fold_multiply_poly_poly,
6821         reset_evolution_in_loop): Likewise.
6822         * tree-chrec.h (build_polynomial_chrec): Likewise.
6823         * tree-complex.c (build_replicated_const): Likewise.
6824         * tree-eh.c (honor_protect_cleanup_actions,
6825         lower_try_finally_onedest, lower_try_finally_copy,
6826         lower_try_finally_switch): Likewise.
6827         * tree-mudflap.c (mf_build_string, mx_register_decls,
6828         mudflap_register_call, mudflap_enqueue_constant): Likewise.
6829         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
6830         * tree-pretty-print.c (dump_generic_node): Likewise.
6831         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
6832         Likewise.
6833         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
6834         * tree-ssa-loop-niter.c (number_of_iterations_cond,
6835         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
6836         Likewise.
6837
6838         * config/alpha/alpha.c (alpha_initialize_trampoline,
6839         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
6840         * config/arm/arm.c (arm_get_cookie_size): Likewise.
6841         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
6842         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
6843         * config/i860/i860.c (i860_va_start): Likewise.
6844         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
6845         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
6846         mips_gimplify_va_arg_expr): Likewise.
6847         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
6848         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
6849         add_compiler_branch_island): Likewise.
6850         * config/s390/s390.c (s390_va_start): Likewise.
6851         * config/sh/sh.c (sh_va_start): Likewise.
6852         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
6853         Likewise.
6854         * config/xtensa/xtensa.c (xtensa_va_start,
6855         xtensa_gimplify_va_arg_expr): Likewise.
6856
6857         * objc/objc-act.c (build_objc_string_object,
6858         build_objc_symtab_template, init_def_list, init_objc_symtab,
6859         init_module_descriptor, generate_static_references,
6860         build_selector_translation_table, get_proto_encoding,
6861         build_typed_selector_reference, build_selector_reference,
6862         build_next_objc_exception_stuff,
6863         build_method_prototype_list_template, generate_descriptor_table,
6864         generate_protocols, build_protocol_initializer,
6865         build_ivar_list_template, build_method_list_template,
6866         build_ivar_list_initializer, generate_ivars_list,
6867         generate_dispatch_table, generate_protocol_list,
6868         build_category_initializer, build_shared_structure_initializer,
6869         generate_shared_structures, handle_impent,
6870         generate_objc_image_info): Use build_int_cst.
6871
6872 2004-08-15  Ben Elliston  <bje@au.ibm.com>
6873
6874         * vec.h: Comment improvements.
6875
6876 2004-08-14  Roger Sayle  <roger@eyesopen.com>
6877
6878         * c-common.c (shorten_compare, pointer_int_sum,
6879         c_common_truthvalue_conversion, boolean_increment): Replace calls
6880         to build with calls to buildN.
6881         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
6882         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
6883         gimplify_switch_stmt): Likewise.
6884         * c-typeck.c (default_function_array_conversion,
6885         build_component_ref, build_array_ref, build_function_call,
6886         pointer_diff, build_unary_op, build_conditional_expr,
6887         build_compound_expr, build_modify_expr, c_finish_goto_label,
6888         c_finish_goto_ptr, c_finish_return, c_finish_loop,
6889         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
6890         build_binary_op): Likewise.
6891
6892 2004-08-15  Steven Bosscher  <stevenb@suse.de>
6893
6894         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
6895
6896 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6897
6898         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
6899         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
6900         * fixinc/fixincl.x: Rebuilt.
6901
6902 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
6903
6904         * config/mips/mips-protos.h (mips_symbolic_constant_p)
6905         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
6906         (mips_small_data_pattern_p): Declare.
6907         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
6908         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
6909         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
6910         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
6911         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
6912         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
6913         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
6914         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
6915         (pc_or_label_operand, call_insn_operand, move_operand)
6916         (consttable_operand, symbolic_operand, general_symbolic_operand)
6917         (global_got_operand, local_got_operand, stack_operand)
6918         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
6919         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
6920         (mips_small_data_pattern_p): Replace previous small_data_pattern
6921         predicate.  Turn into a bool () (rtx) function.
6922         * config/mips/predicates.md: New file.
6923         * config/mips/mips.md: Include it.  Use the target-independent
6924         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
6925         trap_comparison_operator and equality_op to equality_operator.
6926         Replace uses of small_int with the equivalent const_arith_operand.
6927         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
6928         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
6929         to fcc_reload_operand.
6930         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
6931
6932 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6933
6934         PR libstdc++/17005 partial fix.
6935         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
6936         except when generating ANSI/C89 code.
6937
6938 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
6939
6940         * c-common.c (shorten_compare): Use force_fit_type directly.
6941
6942 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
6943             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
6944             Dave Korn  <dk@artimi.com>
6945
6946         * doc/install.texi (Building): Avoid duplicate reference to GNU
6947         make requirement.
6948         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
6949
6950 2004-08-14  Richard Henderson  <rth@redhat.com>
6951
6952         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
6953         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
6954
6955 2004-08-13  Richard Henderson  <rth@redhat.com>
6956
6957         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
6958         for constant_call_address_operand.
6959         (call_value_pop_1, call_value_1): Likewise.
6960         (sibcall_value_1, call_value_1_rex64): Likewise.
6961
6962 2004-08-13  James E Wilson  <wilson@specifixinc.com>
6963
6964         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
6965         Correct mode from SFmode to DFmode.
6966
6967 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
6968
6969         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
6970         __cstring_object and __image_info sections with the no_dead_strip
6971         attribute.
6972
6973 2004-08-13  Roger Sayle  <roger@eyesopen.com>
6974             David Billinghurst  <David.Billinghurst@riotinto.com>
6975
6976         PR libgfortran/15930
6977         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
6978         * fixinc/fixincl.x: Regenerate.
6979         * fixinc/tests/base/internal/math_core.h: New file.
6980
6981 2004-08-13  Richard Henderson  <rth@redhat.com>
6982
6983         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
6984         (dbxout_function_end): Remove ifdefs for it.
6985         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
6986
6987 2004-08-13  Richard Henderson  <rth@redhat.com>
6988
6989         * Makefile.in (insn-preds.o): Depend on TREE_H.
6990         * genpreds.c (write_insn_preds_c): Include tree.h.
6991         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
6992         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
6993         const48_operand, and_operand, or_operand, mode_width_operand,
6994         mode_mask_operand, mul8_operand, const0_operand,
6995         hard_fp_register_operand, hard_int_register_operand,
6996         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
6997         samegp_function_operand, direct_call_operand, small_symbolic_operand,
6998         global_symbolic_operand, call_operand, symbolic_operand,
6999         dtp16_symbolic_operand, dtp32_symbolic_operand,
7000         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
7001         gottp_symbolic_operand, alpha_comparison_operator,
7002         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
7003         signed_comparison_operator, alpha_fp_comparison_operator,
7004         divmod_operator, fix_operator, aligned_memory_operand,
7005         unaligned_memory_operand, reg_or_unaligned_mem_operand,
7006         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
7007         reg_no_subreg_operand, addition_operation): Move to predicates.md.
7008         (reg_or_const_int_operand): Remove.  Replace all users with
7009         reg_or_cint_operand.
7010         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
7011         (resolve_reload_operand): Split out of aligned_memory_operand.
7012         * config/alpha/alpha-protos.h: Update for exports.
7013         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
7014         * config/alpha/alpha.md: Include predicates.md.
7015         * config/alpha/predicates.md: New file.
7016
7017 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
7018
7019         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
7020         fields with a pointer to the instruction definition.
7021         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
7022         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
7023         (write_attr_case, write_const_num_delay_slots): Update accordingly.
7024         (write_attr_case, write_const_num_delay_slots): Write the name of
7025         an insn next to its case statement.
7026         * genoutput.c (data): Add a filename field.
7027         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
7028         (output_insn_data): Print the location of each insn definition.
7029         * genrecog.c (write_action): Print the name of an insn above
7030         the statement that returns its code.
7031
7032 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
7033
7034         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
7035         * config/libgloss.h: Likewise.
7036         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
7037         * c4x/c4x-modes.def: Likewise.
7038         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
7039         (c4x_rptb_nop_p): Likewise.
7040         (c4x_rptb_valid_p): Likewise.
7041         (c4x_rptb_insert): Likewise.
7042         (c4x_address_conflict): Likewise.
7043         * config/c4x/c4x.md: Likewise.
7044         * config/frv/frv.md: Likewise.
7045         * config/i386/athlon.md: Likewise.
7046         * config/i386/i386.md: Likewise.
7047         * config/i386/predicates.md: Likewise.
7048         * config/ia64/ia64.c: Likewise.
7049         * config/ia64/itanium1.md: Likewise.
7050         * config/ia64/itanium2.md: Likewise.
7051         * config/iq2000/iq2000.md: Likewise.
7052         * config/mcore/mcore.c: Likewise.
7053         * config/mips/mips.c: Likewise.
7054         * config/mips/r3900.h: Likewise.
7055         * config/mips/sb1.md: Likewise.
7056         * config/pa/milli64.S: Likewise.
7057         * config/pa/pa.c: Likewise.
7058         * config/pa/pa.h: Likewise.
7059         * config/rs6000/8540.md: Likewise.
7060
7061 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
7062
7063         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
7064
7065 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
7066
7067         * sh.md (cbranch define_delay) Use cond_delay_slot for
7068         non-anulled condition too.
7069
7070 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
7071
7072         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
7073         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
7074         any_parallel_operand, lmw_operation, stmw_operation,
7075         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
7076         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
7077         any_parallel_operand.
7078         (return_and_restore_fpregs_{si,di}): Same.
7079
7080 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
7081
7082         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
7083         if pred->singleton != PARALLEL, issue a warning and pretend it was.
7084         Also issue a warning for any predicate we don't know about.
7085
7086 2004-08-12  Richard Henderson  <rth@redhat.com>
7087
7088         * config/i386/i386.c (internal_label_prefix): Export.
7089         (internal_label_prefix_len, struct ix86_address,
7090         ix86_decompose_address, maybe_get_pool_constant,
7091         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
7092         memory_address_length): Export.
7093         (any_fp_register_operand, fp_register_operand,
7094         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
7095         x86_64_general_operand, x86_64_szext_general_operand,
7096         x86_64_nonmemory_operand, x86_64_movabs_operand,
7097         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
7098         x86_64_zext_immediate_operand, const_int_1_31_operand,
7099         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
7100         tls_symbolic_operand, global_dynamic_symbolic_operand,
7101         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
7102         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
7103         constant_call_address_operand, const0_operand, const1_operand,
7104         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
7105         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
7106         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
7107         general_no_elim_operand, nonmemory_no_elim_operand,
7108         index_register_operand, q_regs_operand, flags_reg_operand,
7109         non_q_regs_operand, zero_extended_scalar_load_operand,
7110         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
7111         ix86_comparison_operator, ix86_carry_flag_operator,
7112         fcmov_comparison_operator, promotable_binary_operator,
7113         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
7114         mult_operator, div_operator, arith_or_logical_operator,
7115         memory_displacement_operand, cmpsi_operand, long_memory_operand,
7116         aligned_operand): Move to predicates.md as define_predicates.
7117         (tls_symbolic_operand_1): Remove.
7118         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
7119         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
7120         (legitimize_address): Merge tls_symbolic_operand contents.
7121         (ix86_expand_move): Likewise.
7122         * config/i386/i386-protos.h: Update for exports.
7123         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
7124         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
7125         * config/i386/i386.md: Include predicates.md.
7126         * config/i386/predicates.md: New file.
7127
7128 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
7129
7130         PR c++/16924
7131         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
7132         SYMBOL_REF_DECL.
7133         (i386_pe_mark_dllimport): Likewise.
7134         (i386_pe_encode_section_info): Likewise, when overriding
7135         dllimport attribute.
7136
7137 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
7138
7139         * configure.ac: When testing for flex, nm, ar, and bison, check
7140         that they will actually be built.
7141         * configure: Regenerate.
7142
7143 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
7144
7145         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
7146         (MOVE_MAX_PIECES): Define.
7147
7148 2004-08-12  Devang patel  <dpatel@apple.com>
7149
7150         * dbxout.c (dbxout_begin_prologue): New function.
7151         (dbx_debug_hooks): Use new begin prologue hook.
7152         (dbxout_function_end): Emit N_ENSYM.
7153         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
7154
7155 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
7156
7157         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
7158         argument is float*.
7159
7160         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
7161         for vec_dss.
7162
7163         * doc/extend.texi (AltiVec builtins): Fix description for recent
7164         changes.  Update operation list to match current support.
7165
7166 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7167
7168         * config/s390/s390.c (struct s390_frame_layout): New struct as element
7169         of struct machine_function.
7170         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
7171         changed all uses.
7172         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
7173         changed all uses.
7174         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
7175         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
7176         (s390_frame_area, s390_register_info): New functions.
7177         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
7178         for base register.
7179         (s390_return_addr_rtx, s390_return_address_offset)
7180         (s390_va_start, s390_gimplify_va_arg)
7181         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
7182         layouts.
7183         (s390_frame_info): Functionality partly moved to s390_register_info.
7184         Made adaptions for new stack layout.
7185         (save_gprs, restore_gprs): Changed meaning of second parameter and
7186         adapted all callers.
7187
7188         * config/s390/s390.h (s390_backchain_string): New global variable.
7189         (MASK_BACKCHAIN): Removed definition.
7190         (TARGET_BACKCHAIN): Changed check.
7191         (TARGET_KERNEL_BACKCHAIN): New macro.
7192         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
7193         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
7194         "kernel-backchain".
7195         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
7196
7197         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
7198         as condition.  Adjusted for new stack layout.
7199
7200         * doc/invoke.texi: Added documentation for new option
7201         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
7202         "-mno-backchain".
7203
7204 2004-08-12  Paul Brook  <paul@codesourcery.com>
7205
7206         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
7207         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
7208
7209 2004-08-12  David Daney  <ddaney@avtrex.com>
7210
7211         * java/gcj.texi:  Add subsection on signal usage.
7212
7213 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
7214
7215         * expr.c (move_by_pieces): Set alignment for move to minimum of
7216         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
7217         alignment, but not less than the original alignment.
7218         (move_by_pieces_ninsns): Same.
7219         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
7220         (store_by_pieces_1): Same.
7221
7222 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
7223
7224         PR tree-optimization/16867
7225         * tree.c (is_global_var): New function.
7226         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
7227         Call is_global_var.
7228         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
7229         Update all users.
7230         (is_global_var): Declare.
7231         * tree-dfa.c (dump_variable): Display global and addressable
7232         attributes.
7233         (add_referenced_var): Clarify documentation when marking
7234         variables call-clobbered.
7235         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
7236         instead of needs_to_live_in_memory.
7237         (mark_call_clobbered): If the variable is a tag, mark it
7238         DECL_EXTERNAL.
7239         * tree-gimple.c (is_gimple_reg): Don't check for
7240         TREE_ADDRESSABLE.
7241         (is_gimple_non_addressable): Likewise.
7242         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
7243         needs to be marked call-clobbered.
7244         (setup_pointers_and_addressables): Call is_global_var instead
7245         of needs_to_live_in_memory.
7246         * tree-ssa-dce.c (need_to_preserve_store): Remove.
7247         Update all users with is_global_var.
7248         (mark_stmt_if_obviously_necessary): Fix processing of aliased
7249         stores.  Don't check the virtual definitions.  Rather, check
7250         whether the store is going into global memory.
7251         (find_obviously_necessary_stmts): Get the symbol from the PHI
7252         result.
7253         * tree-ssa-operands.c (get_call_expr_operands): Do not add
7254         clobbering may-defs if the call does not have side effects.
7255
7256 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
7257
7258         PR c++/16276
7259         * output.h (default_function_rodata_section,
7260         default_no_function_rodata_section): New prototypes.
7261         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
7262         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
7263         (TARGET_ASM_OUT): Add it.
7264         * varasm.c (default_function_rodata_section,
7265         default_no_function_rodata_section): New functions.
7266         * final.c (final_scan_insn): Call
7267         targetm.asm_out.function_rodata_section instead of
7268         readonly_data_section.
7269         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
7270         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
7271         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
7272         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
7273         Likewise.
7274         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
7275         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
7276         Likewise.
7277         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
7278         Likewise.
7279         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
7280         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
7281         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
7282
7283 2004-08-12  Paul Brook  <paul@codesourcery.com>
7284
7285         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
7286         frame info.
7287         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
7288         DWARF2_UNWIND_INFO.
7289
7290 2004-08-12  Ben Elliston  <bje@au.ibm.com>
7291
7292         PR target/16286
7293         * config/rs6000/altivec.h: Change vector to __vector throughout.
7294         (Except for the `vector' macro itself).
7295
7296 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
7297
7298         * genpreds.c: Add capability to generate predicate bodies as
7299         well as function prototypes.  Write function prototypes for
7300         the generic predicates too.
7301         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
7302         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
7303         (write_match_code, write_predicate_expr, write_one_predicate_function)
7304         (parse_option): New functions.
7305         (output_predicate_decls): Delete.
7306         (main): Read the machine description, process DEFINE_PREDICATE or
7307         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
7308         as appropriate.
7309
7310         * genrecog.c (struct decision_test): Replace index with
7311         struct pred_data pointer.
7312         (next_index): Remove, unused.
7313         (pred_table, preds, special_mode_pred_table): Delete.
7314         (compute_predicate_codes, process_define_predicate): New functions.
7315         (validate_pattern, add_to_sequence, write_switch): Update for
7316         new data structures.
7317         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
7318         Check both error_count and have_error.
7319
7320         * gensupport.c (in_fname, first_predicate): New globals.
7321         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
7322         (predicate_table, last_predicate, old_pred_table)
7323         (old_special_pred_table): New statics.
7324         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
7325         (add_predicate, init_predicate_table): New functions.
7326         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
7327         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
7328         it or max_include_len.  Call init_predicate_table.
7329         (read_rtx): Run the predicate queue after the attribute queue
7330         but before all the others.
7331         * gensupport.h (in_fname, struct pred_data, first_predicate)
7332         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
7333         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
7334         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
7335         * dummy-conditions.c: Don't include bconfig.h, system.h,
7336         coretypes.h, tm.h, or system.h.  Do include stddef.h.
7337         Duplicate declaration of struct c_test from gensupport.h.
7338
7339         * Makefile.in (OBJS-common): Add insn-preds.o.
7340         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
7341         (insn-preds.c, insn-preds.o): New rules.
7342         (s-preds): Also generate insn-preds.c.
7343         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
7344         Update dependencies.
7345         (print-rtl.o, print-rtl1.o): Correct dependencies.
7346
7347         * recog.h: Delete prototypes of predicate functions.
7348
7349         * doc/md.texi (Predicates): New section with complete
7350         documentation of operand/operator predicates.  Remove some
7351         incomplete documentation of predicates from other places.
7352         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
7353         PREDICATE_CODES; indicate that both are deprecated in favor
7354         of define_predicate/define_special_predicate.
7355
7356         * config/ia64/ia64.c: All predicate function definitions moved
7357         to ia64.md, except
7358         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
7359         (ia64_expand_load_address, ia64_expand_move):
7360         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
7361
7362         * config/ia64/ia64.md: All predicates now defined here.
7363         (symbolic_operand): Is now a special predicate.
7364
7365         * config/ia64/ia64.h: Declare ia64_section_threshold.
7366         (PREDICATE_CODES): Delete.
7367
7368 2004-08-12  Richard Henderson  <rth@redhat.com>
7369
7370         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
7371         * c-semantics.c (add_stmt): Set it.
7372         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
7373         before instantiating a variable sized type.
7374
7375 2004-08-12  Richard Henderson  <rth@redhat.com>
7376
7377         * stor-layout.c (round_up, round_down): Move ...
7378         * fold-const.c (round_up, round_down): ... here.  Use
7379         multiple_of_p to avoid any arithmetic at all.
7380
7381 2004-08-12  Richard Henderson  <rth@redhat.com>
7382
7383         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
7384         (gimplify_init_ctor_preeval_1): New.
7385         (gimplify_init_ctor_preeval): New.
7386         (gimplify_init_ctor_eval): New.
7387         (gimplify_init_constructor): Use them.  Always gimplify the LHS
7388         object first.
7389
7390 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
7391
7392         (This patch is part of merge of objc-improvements-branch
7393         into mainline.)
7394
7395         * doc/frontends.texi: Mention Objective-C++ in addition to
7396         Objective-C.
7397         * doc/install.texi: Add 'obj-c++' to list of configurable
7398         languages.
7399         * doc/invoke.texi: Rename Objective-C option headings to
7400         indicate they also apply to Objective-C++.  List file
7401         extensions for Objective-C++ sources.  Mention that
7402         ObjC and ObjC++ compilations may also use C and C++ options,
7403         respectively.  Point users to doc/standards.texi for
7404         further info on ObjC and ObjC++.
7405         * doc/sourcebuild.texi: Mention the objcp/ directory and
7406         the Objective-C++ sources it contains.
7407         * doc/standards.texi: Update link to Apple ObjC site;
7408         add link to gcc readings.html WWW doc.
7409
7410 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
7411
7412         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
7413         and 2004-07-14 changes.
7414
7415 2004-08-12  Paul Brook  <paul@codesourcery.com>
7416
7417         * doc/invoke.texi: Fix typo.
7418
7419 2004-08-11 Devang Patel  <dpatel@apple.com>
7420
7421         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
7422         and -no_dead_strip_inits_and_terms.
7423         (LINK_SPEC): Same.
7424         * doc/invoke.texi (Darwin Options): Document -dead_strip and
7425         -no_dead_strip_inits_and_terms.
7426
7427 2004-08-11  Paul Brook  <paul@codesourcery.com>
7428
7429         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
7430         (arm_load_pic_register): ... to this.
7431         * config/arm/arm.c (arm_finalize_pic): Rename ...
7432         (arm_load_pic_register): ... to this.  Always output insns at the
7433         current location.  Load via low reg in thumb mode.
7434         (arm_expand_prologue): Call arm_load_pic_register.
7435         (thumb_expand_prologue): Ditto.
7436         * config/arm/arm.h (FINALIZE_PIC): Remove.
7437         * config/arm/arm.md (builtin_setjmp_receiver): Call
7438         arm_load_pic_register.
7439
7440 2004-08-11  Paul Brook  <paul@codesourcery.com>
7441
7442         * arm.c (thumb_force_lr_save): Add prototype.
7443         (thumb_compute_save_reg_mask): New function.
7444         (thumb_find_work_register): New function.
7445         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
7446         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
7447         Don't clobber r3 when removing pretend args.
7448         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
7449         (thumb_output_function_prologue): Use new functions.
7450         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
7451         * arm.h (THUMB_REG_PUSHED_P): Remove.
7452
7453 2004-08-11  James E Wilson  <wilson@specifixinc.com>
7454
7455         PR rtl-optimization/16490
7456         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
7457         global_live_at_end for new basic block if already set for other blocks.
7458
7459 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
7460
7461         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
7462
7463         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
7464         (mfcr rlwinm rlwinm patterns): Set length to 12.
7465
7466 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
7467
7468         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
7469         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
7470         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
7471         (start_ssa_stmt_operands): Delete.
7472         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
7473         struct stmt_operands_d.
7474         (build_ssa_operands): New extern entry point.
7475         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
7476         building code, replace with create_ssa_artficial_load_stmt().
7477         * tree-ssa-operands.c (struct voperands_d): Delete.
7478         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
7479         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
7480         (free_uses, free_defs, free_vuses, free_v_may_defs,
7481         free_v_must_defs): Remove dealloc parameter.
7482         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
7483         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
7484         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
7485         vector comparisons, ssa_name reuse, and allocations here.
7486         (verify_start_operands): Delete.
7487         (finalize_ssa_stmt_operands): Set new operands by calling finalize
7488         routines.
7489         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
7490         (append_def, append_usei): Simplify to simple accumulation.
7491         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
7492         duplicates and simple accumulation.
7493         (free_ssa_operands): Free vectors in a stmt_operand structure.
7494         (build_ssa_operands): New. Create a new stmt_operand structure from
7495         a stmt and an old set of stmt_operands.
7496         (get_stmt_operands): Simplify and call build_ssa_operands.
7497         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
7498         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
7499         add_call_read_ops): Don't pass prev_vops around anymore.
7500         (note_addressable): Return if no stmt annotation.
7501         (copy_virtual_operands): Access v_may_def operands through a struct.
7502         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
7503         hash tables without treating the stmt as a real stmt.
7504         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
7505         v_may_def def and use through a struct instead of 2 array elements.
7506         (struct v_may_def_optype_d): Use v_may_def_operand_type.
7507         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
7508
7509 2004-08-11  Nick Clifton  <nickc@redhat.com>
7510
7511         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
7512         this funciton's behaviour.  Return true when the current function
7513         has a section attribute and -mlong-calls is in effect.
7514         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
7515         short-call marker when -mlong-calls is in effect and the function
7516         has a section attribute.
7517
7518 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
7519
7520         * stmt.c (expand_return): If asked to return the RESULT_DECL,
7521         just call expand_value_return on result_rtl.
7522
7523 2004-08-10  Richard Henderson  <rth@redhat.com>
7524
7525         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
7526         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
7527         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
7528         (add_location_or_const_value_attribute): ... not here.  Use
7529         loc_descriptor_from_tree if possible.
7530         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
7531         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
7532         values specially.
7533         (loc_descriptor_from_tree): New.  Update callers.
7534         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
7535         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
7536         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
7537         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
7538         and BUILT_IN_STACK_RESTORE.
7539         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
7540         * stmt.c (expand_stack_alloc): Remove.
7541         * tree-mudflap.c (mx_register_decls): Don't look for
7542         BUILT_IN_STACK_ALLOC.
7543         * tree-nested.c (convert_local_reference): Likewise.
7544         * tree.h (DECL_VALUE_EXPR): New.
7545
7546 2004-08-10  Richard Henderson  <rth@redhat.com>
7547
7548         * stor-layout.c (round_up): Check for 0/1 before dividing.
7549         (round_down): Likewise.
7550
7551         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
7552
7553 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
7554
7555         * config.gcc (arm*-*-eabi*): New target.
7556         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
7557         (TARGET_LIB_INT_CMP_BIASED): Likewise.
7558         * expmed.c (expand_divmod): Try a two-valued divmod function as a
7559         last resort.
7560         * gthr.h: Remove bogus tokens at end of #pragma.
7561         * optabs.c (expand_twoval_binop_libfunc): New function.
7562         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
7563         (prepare_float_lib_cmp): Try reversing the condition.
7564         (debug_optab_libfuncs): New function.
7565         * optabs.h (expand_twoval_binop_libfunc): Declare.
7566         * config/arm/arm.c (arm_init_libfuncs): New function.
7567         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
7568         (TARGET_INIT_LIBFUNCS): Define it.
7569         * config/arm/arm.h (TARGET_BPABI): New macro.
7570         * config/arm/arm-protos.h
7571         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
7572         * config/arm/bpabi.S: New file.
7573         * config/arm/bpabi.c: Likewise.
7574         * config/arm/bpabi.h: Likewise.
7575         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
7576         (__aeabi_drsub): Likewise.
7577         (__aeabi_dsub): Likewise.
7578         (__aeabi_dadd): Likewise.
7579         (__aeabi_ui2d): Likewise.
7580         (__aeabi_i2d): Likewise.
7581         (__aeabi_f2d): Likewise.
7582         (__aeabi_dmul): Likewise.
7583         (__aeabi_ddiv): Likewise.
7584         (__aeabi_cdrcmple): Likewise.
7585         (__aeabi_cdcmpeq): Likewise.
7586         (__aeabi_cdcmple): Likewise.
7587         (__aeabi_dcmpeq): Likewise.
7588         (__aeabi_dcmplt): Likewise.
7589         (__aeabi_dcmple): Likewise.
7590         (__aeabi_dcmpge): Likewise.
7591         (__aeabi_dcmpgt): Likewise.
7592         (__aeabi_dcmpun): Likewise.
7593         (__aeabi_d2iz): Likewise.
7594         (__aeabi_d2uiz): Likewise.
7595         (__aeabi_d2f): Likewise.
7596         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
7597         (__aeabi_frsub): Likewise.
7598         (__aeabi_fsub): Likewise.
7599         (__aeabi_fadd): Likewise.
7600         (__aeabi_ui2f): Likewise.
7601         (__aeabi_i2f): Likewise.
7602         (__aeabi_fmul): Likewise.
7603         (__aeabi_fdiv): Likewise.
7604         (__aeabi_cfrcmple): Likewise.
7605         (__aeabi_cfcmpeq): Likewise.
7606         (__aeabi_cfcmple): Likewise.
7607         (__aeabi_fcmpeq): Likewise.
7608         (__aeabi_fcmplt): Likewise.
7609         (__aeabi_fcmple): Likewise.
7610         (__aeabi_fcmpge): Likewise.
7611         (__aeabi_fcmpgt): Likewise.
7612         (__aeabi_fcmpun): Likewise.
7613         (__aeabi_f2iz): Likewise.
7614         (__aeabi_f2uiz): Likewise.
7615         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
7616         (__aeabi_uidivmod): New function or alias.
7617         (__aeabi_idivmod): Likewise.
7618         (__aeabi_idiv0): Likewise.
7619         (__aeabi_ldiv0): Likewise.
7620         (__aeabi_llsr): Likewise.
7621         (__aeabi_lasr): Likewise.
7622         (__aeabi_llsl): Likewise.
7623         (bpabi.S): Include it.
7624         * config/arm/libgcc-bpabi.ver: New file.
7625         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
7626         (LINK_SPEC): Remove.
7627         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
7628         __aeabi_ulcmp.
7629         * config/arm/t-bpabi: New file.
7630         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
7631         (TARGET_LIB_INT_CMP_BIASED): Likewise.
7632
7633 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
7634
7635         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
7636         * config/rs6000/rs6000.md (clrmemsi): New pattern.
7637         * config/rs6000/rs6000.c (expand_block_clear): New function.
7638         (expand_block_move): Convert alignment to bits.  Use SImode and
7639         HImode for unaligned addresses if not STRICT_ALIGNMENT.
7640
7641 2004-08-10  Caroline Tice  <ctice@apple.com>
7642
7643         * varasm.c (unlikely_section_label): New global variable.
7644         (unlikely_text_section_name): New global variable.
7645         (text_section):  Remove alignment statement.
7646         (unlikely_text_section): Remove alignment statement; use
7647         unlikely_section_label rather than hard-coded string.
7648         (assemble_start_function): Initialize unlikely_section_label and
7649         unlikely_text_section_name;  make sure cold section is properly
7650         aligned at start of function; output unlikely_section_label if
7651         appropriate.
7652
7653 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
7654
7655         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
7656         * config/s390/s390.c (s390_canonicalize_comparison): New function.
7657         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
7658         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
7659         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
7660         ("*tmqi_mem"): Remove SUBREG from pattern.
7661         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
7662         ("*andsi3_cconly"): Likewise.
7663
7664 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
7665
7666         PR target/16909
7667         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
7668
7669 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
7670
7671         * doc/sourcebuild.texi (compat testing): Document available test
7672         framework commands.  Use the preferred spelling of DejaGnu.
7673
7674 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
7675
7676         * lambda.h: Add matrix type, and prototypes for remainder of
7677         matrix and vector functions.
7678         (lambda_vector_mult_const): New function.
7679         (lambda_vector_negate): Ditto.
7680         (lambda_vector_add): Ditto.
7681         (lambda_vector_add_mc): Ditto.
7682         (lambda_vector_copy): Ditto.
7683         (lambda_vector_zerop): Ditto.
7684         (lambda_vector_equal): Ditto.
7685         (lambda_vector_min_nz): Ditto.
7686         (lambda_vector_first_nz): Ditto.
7687         (lambda_vector_matrix_mult): Ditto.
7688         * lambda-mat.c: New file.
7689         * Makefile.in (lambda-mat.o): New.
7690
7691 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
7692
7693         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
7694         after linking stmt into the program.
7695         (bsi_remove): Don't call modify_stmt.
7696         * tree-complex.c (update_complex_assignment,
7697         expand_complex_comparison): Call modify_stmt after changing the stmt.
7698         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
7699         removing the stmt.
7700         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
7701         the stmt, and only if needed.
7702         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
7703         expression.
7704         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
7705         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
7706         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
7707         (eliminate_redundant_computations): Don't pass an annotation. Call
7708         modify_stmt rather than setting the annotation directly.
7709         (record_equivalences_from_stmt): Remove unused local 'j'.
7710         (cprop_operand): Take a stmt rather than an annotation as a parameter.
7711         Call modify_stmt.
7712         (cprop_into_stmt): Pass stmt rather than annotation.
7713         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
7714         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
7715         modify_stmt.
7716         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
7717
7718 2004-08-10  Jason Merrill  <jason@redhat.com>
7719
7720         PR middle-end/16948
7721         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
7722         the RESULT_DECL.
7723
7724 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
7725
7726         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
7727         hash function.
7728
7729 2004-08-10  Roger Sayle  <roger@eyesopen.com>
7730
7731         * config/mips/mips.md: New reciprocal square root patterns that
7732         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
7733
7734 2004-08-10  Paul Brook  <paul@codesourcery.com>
7735
7736         * config/arm/arm-protos.h (arm_set_return_address,
7737         thumb_set_return_address): Add prototypes.
7738         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
7739         * config/arm/arm.c (arm_compute_func_type,
7740         use_return_insn, arm_compute_save_reg0_reg12_mask,
7741         arm_compute_save_reg_mask, arm_output_function_prologue,
7742         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
7743         current_function_calls_eh_return.
7744         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
7745         old eh code.
7746         (arm_set_return_address, thumb_set_return_address): New functions.
7747         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
7748         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
7749         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
7750         (epilogue): Use the stackadj register.
7751         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
7752
7753 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
7754
7755         PR target/3144
7756         * expr.c (move_by_pieces_ninsns): Add max_size argument.
7757         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
7758         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
7759         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
7760         but using MOVE_RATIO.
7761         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
7762         (can_store_by_pieces): Change max_size type to unsigned int.
7763         (store_by_pieces_1): Likewise.  Pass max_size to
7764         move_by_pieces_ninsns.
7765         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
7766         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
7767         to move_by_pieces_ninsns.
7768         (STORE_BY_PIECES_P): Define.
7769         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
7770         to move_by_pieces_ninsns.
7771         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
7772
7773         * config/i386/i386.h (CLEAR_RATIO): Define.
7774
7775 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7776
7777         * expr.c (expand_expr_real_1): Add back code that was not dead.
7778
7779 2004-08-09  Andrew Pinski  <apinski@apple.com>
7780
7781         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
7782         which is found to be compatible before returning the aliasing set.
7783
7784 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
7785
7786         * ggc-zone.c (struct alloc_zone): Add statistics counters.
7787         (always_collect): New flag.
7788         (ggc_alloc_zone_1): Update statistics support.  Don't include
7789         overhead in allocated counter.
7790         (sweep_pages): Update allocated counter for large pages.  Don'y
7791         include overhead.
7792         (ggc_collect_1): Always collect.
7793         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
7794         whether to collect.
7795         (SCALE, LABEL): New macros.
7796         (ggc_print_statistics): Add statistics support.
7797
7798 2004-08-09  Roger Sayle  <roger@eyesopen.com>
7799
7800         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
7801         (init_expmed): Fix potential overrun problem with "all.reg".
7802         (expand_sdiv2_pow2): Add an alternate implementation for signed
7803         division, if the target provides a suitable conditional move insn.
7804
7805 2004-08-09  Paul Brook  <paul@codesourcery.com>
7806         Richard Henderson  <rth@redhat.com>
7807
7808         * unwind-dw2.c (uw_install_context_1): Update target saved stack
7809         pointer.
7810
7811 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
7812
7813         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
7814         Check DATA limit only if there's no AS limit.  Ignore insanely
7815         low DATA limits.
7816         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
7817         but take care that the AS limit isn't overrun.
7818         * doc/invoke.texi: Update documentation of min-heapsize parameter.
7819
7820 2004-08-09  Jeff Law  <law@redhat.com>
7821
7822         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
7823         (tree-ssa-threadupdate.o): Add dependencies.
7824         * tree-ssa-threadupdate.c: New file.
7825         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
7826         (rewrite_vars_out_of_ssa): Remove prototype.
7827         (cleanup_tree_cfg): Returns a bool.
7828         * tree.h (thread_through_all_blocks): Prototype.
7829         * tree-outof-ssa.c  (SSANORM_*): Move into here.
7830         (remove_ssa_form): Now static.
7831         (rewrite_vars_out_of_ssa): Kill.
7832         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
7833         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
7834         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
7835         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
7836         anything was changed.
7837         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
7838         from the PHI's annotation rather than the edge associated with
7839         the new argument.
7840         * tree-ssa-dom.c (redirection_edges): Kill.
7841         (redirect_edges_and_update_ssa_graph): Kill.
7842         (tree_ssa_dominator_optimize): Do not reset forwardable flag
7843         for blocks anymore.  Do not initialize redirection_edges.
7844         Call thread_through_all_blocks.  Simplify code for cleanup
7845         of the CFG and iterating.  No longer call cleanup_tree_cfg
7846         outside the iteration loop.
7847         (thread_across_edge): No longer mess with forwardable blocks.
7848
7849 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
7850
7851         * explow.c (memory_address): Use memory_address_p.
7852         * recog.c (general_operand): Likewise.
7853         * regrename.c: No need to define REG_OK_STRICT.
7854
7855 2004-08-09  Steven Bosscher  <stevenb@suse.de>
7856
7857         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
7858         New timers.
7859         * gcse.c: Include timevar.h.
7860         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
7861         and global_copy_prop_count.
7862         (local_const_prop_count, local_copy_prop_count): New static globals.
7863         (gcse_main): Set the right timevar for each pass.
7864         (cprop_jump): Increment global_const_prop_count when a constant is
7865         propagated.  Add "GLOBAL" to dump output.
7866         (cprop_insn): Increment global_const_prop_count when a constant is
7867         propagated, or global_copy_prop_count when a copy is propagated.
7868         (do_local_cprop): Likewise for local_const_prop_count and
7869         local_copy_prop_count.
7870         (one_cprop_pass): Initialize const/cprop counters to zero.
7871         Print out results of local and global const/cprop separately.
7872         (bypass_block): Break over-length line.
7873         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
7874         for bb-reorder.o and tracer.o.
7875
7876 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7877
7878         * Makefile.in (GTFILES): Remove stmt.c
7879         (stmt.o): Do not depend on gt-stmt.h.
7880         * emit-rtl.c (emit_line_note): Do not call
7881         set_file_and_line_for_stmt.
7882         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
7883         do everything.
7884         * function.c (free_after_parsing): Do not free STMT field.
7885         (allocate_struct_function): Do not call init_stmt_for_function.
7886         (assign_stack_temp_for_type): Do not accept values of keep
7887         other than 0 or 1.
7888         (init_temp_slots): Do not initialize removed variables.
7889         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
7890         and X_VAR_TEMP_SLOT_LEVEL fields.
7891         * rtl.h (set_file_and_line_for_stmt): Remove.
7892         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
7893         struct stmt_status, cond_stack, case_stack, nesting_stack,
7894         nesting_depth, emit_locus, set_file_and_line_for_stmt,
7895         same_case_target_p, init_stmt_for_function, emit_nop,
7896         expand_start_cond, expand_start_elseif, expand_start_else,
7897         expand_elseif, expand_end_cond): Remove.
7898         (preserve_subexpressions_p): Remove references to CFUN->STMT.
7899         (expand_start_case, expand_end_case_type): Remove, merge into...
7900         (expand_case): ... this one, including other bits from
7901         expand_expr_real_1.  Inline same_case_target_p.  Turn members
7902         of CASE_STACK into local variables.
7903         (emit_case_bit_tests): Inline same_case_target_p.
7904         (add_case_node): Add HEAD argument, return new head of the list,
7905         do not handle default label here.
7906         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
7907         expand_start_elseif, current_nesting_level, expand_start_case,
7908         expand_end_case_type, expand_end_case, add_case_node,
7909         init_stmt_for_function, expand_elseif): Remove prototypes.
7910         (expand_case): Add prototype.
7911
7912 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7913
7914         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
7915
7916 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7917
7918         * expr.c (var_rtx): Remove.
7919         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
7920         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
7921         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
7922         Abort.
7923         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
7924         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
7925         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
7926
7927 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
7928         Ayal Zaks <zaks@il.ibm.com>
7929
7930         * common.opt (freschedule-modulo-scheduled-loops): New flag.
7931         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
7932         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
7933         when -freschedule-modulo-scheduled-loops flag is not specified.
7934         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
7935         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
7936         More accurate placing of insn in row of partial schedule.
7937         (ps_insn_find_column): New function.
7938         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
7939         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
7940         (schedule_region): Use sched_is_disabled_for_current_region_p.
7941         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
7942
7943 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7944
7945         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
7946         change.
7947
7948 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7949
7950         * config/i386/i386.c (ix86_expand_clrmem): Properly call
7951         gen_strset for 64bit target.
7952
7953 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
7954
7955         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
7956
7957 2004-08-07  Jason Merrill  <jason@redhat.com>
7958
7959         Make return in memory explicit.
7960         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
7961         (assign_parm_find_data_types): Remove code for old front end
7962         invisible reference handling.
7963         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
7964         (expand_function_end): Likewise.
7965         * gimplify.c (gimplify_return_expr): Handle a dereferenced
7966         RESULT_DECL.
7967         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
7968         (declare_return_variable): Handle DECL_BY_REFERENCE.
7969         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
7970         (cp_genericize_r): Use convert_from_reference.
7971         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
7972         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
7973
7974         * c-common.c (c_warn_unused_result): Check TREE_USED before
7975         warning about a CALL_EXPR with an unused value.
7976
7977 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
7978
7979         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
7980         to the compiler.  Use -fshort-wchar by default.
7981
7982 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
7983
7984         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
7985         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
7986         threshhold.
7987         * doc/invoke.texi (param): Document min-crossjump-insns.
7988
7989 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
7990
7991         PR c/13282
7992         * c.opt (Wmissing-field-initializers): New option.
7993         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
7994         * c-typeck.c (pop_init_level): Guard the missing field warning with
7995         warn_missing_field_initializers rather than extra_warnings.
7996         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
7997         some of the explanation from...
7998         (-Wextra): ...here.  Say that the missing field warning can be
7999         seperately controlled by -Wmissing-field-initializers.
8000
8001 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
8002
8003         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
8004         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
8005         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
8006         * tree.def (ENTRY_VALUE_EXPR): Remove.
8007
8008 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
8009
8010         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
8011         the places where it is actually needed.  Don't use repz; stosb
8012         for -Os with sufficiently small constant sizes.
8013         For sufficiently small repz; stos{l,q} repeat counts use a sequence
8014         of stos{l,q} instructions instead.
8015
8016 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8017
8018         PR tree-optimization/16807
8019         * loop-iv.c (dump_iv_info): Dump invariants correctly.
8020         (iv_subreg, iv_extend): Express value of invariant purely in
8021         base field.
8022
8023 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
8024
8025         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
8026         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
8027
8028 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
8029
8030         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
8031         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
8032         pre_dec_operand.
8033         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
8034         pattern until reload is finished to allow better code generation
8035         and split them completely into separate instrunctions.
8036         (*andsi3_split): New pattern.
8037
8038 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
8039
8040         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
8041         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
8042         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8043         * tree.h (handle_dll_attribute): Declare.  Test
8044         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8045         * c-common.h (c_determine_visibility): Declare.
8046         * c-common.c (c_determine_visibility): New function.
8047         * c-decl.c (finish_decl): Use it.
8048         (finish_function): Likewise.
8049         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
8050         zero, by default.  Use #if, not #ifdef, to test it.
8051         * config/arm/arm.c (arm_attribute_table): Use
8052         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
8053         #if.
8054         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
8055         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
8056         to 1.
8057         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
8058         * config/i386/i386.c (ix86_attribute_table): Use
8059         handle_dll_attribute for dllimport/dllexport.  Test
8060         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8061         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
8062         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
8063         it to 1.
8064         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
8065         with #if.
8066         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
8067         it to 1.
8068         * doc/extend.texi (dllexport): Clarify and correct documentation.
8069         (dllimport): Likewise.
8070         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
8071         handle_dll_attribute.
8072
8073 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8074
8075         * tree-ssa-loop-manip.c: New file.
8076         * Makefile.in (tree-ssa-loop-manip.o): Add.
8077         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
8078         Declare.
8079         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
8080         form.
8081         (tree_ssa_loop_done): Verify loop closed ssa form.
8082         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
8083
8084 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8085
8086         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
8087         pa_asm_output_aligned_local): New functions.
8088         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
8089         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
8090         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
8091         pa_asm_output_aligned_common.
8092         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
8093         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
8094         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
8095         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
8096         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
8097         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
8098         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
8099         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
8100         common data.
8101
8102 2004-08-05  Andrew Pinski  <apinski@apple.com>
8103
8104         * objc/objc-act.c (build_objc_string_object): Mark the address
8105         expression as constant.
8106
8107 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
8108
8109         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
8110         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
8111         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
8112
8113 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8114
8115         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
8116         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
8117         out, and associated obsolete comments.
8118
8119 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
8120
8121         * tree.h (force_fit_type): Return a tree, take three flags.
8122         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
8123         TREE_CONSTANT_OVERFLOW here.
8124         (int_const_binop, const_binop): Adjust.
8125         (size_int_type): Do sign extension here.
8126         (fold_convert_const, optimize_bit_field_compare,
8127         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
8128         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
8129         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
8130
8131 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8132
8133         PR tree-optimization/16864
8134         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
8135         for ssa names without default_def.
8136
8137 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
8138
8139         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
8140         frame pointer, restore eax with an ebp-relative address.
8141
8142 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
8143
8144         PR 14516
8145         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
8146         * c-common.h (make_rtl_for_local_static): Delete.
8147         * c-decl.c (shadow_tag_warned): Clean up comment.
8148         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
8149         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
8150         * c-semantics.c (make_rtl_for_local_static): Delete.
8151         * expr.c (init_block_move_fn): Use set_user_assembler_name.
8152         (init_block_clear_fn): Likewise.
8153         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
8154         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
8155         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
8156         * tree.h (make_decl_rtl): Remove second parameter.
8157         (set_user_assembler_name): New.
8158         * varasm.c (set_user_assembler_name): New.
8159         (make_decl_rtl): Remove second parameter.  Update callers in many
8160         files.
8161
8162 2004-08-05  Adam Nemet  <anemet@lnxw.com>
8163
8164         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
8165         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
8166         to LynxOS 4.0.
8167         * gthr-lynx.h: New file.
8168         * config/lynx-ng.h: Remove file.
8169         * config/lynx.h: Update to LynxOS 4.0.
8170         * config/t-lynx: New file.
8171         * config/i386/lynx-ng.h: Remove file.
8172         * config/i386/lynx.h: Update to LynxOS 4.0.
8173         * config/rs6000/lynxbase.h: Remove file.
8174         * config/rs6000/lynx.h: Update to LynxOS 4.0.
8175         * config/rs6000/t-lynx: New file.
8176         * doc/install.texi (Options specification): Remove reference to
8177         LynxOS from systems where --with-gnu-as makes a difference.
8178
8179 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8180
8181         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
8182         __UINTMAX_TYPE__.
8183         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
8184         __INTMAX_MAX__.
8185         (c_cpp_builtins): Call it.
8186         * doc/cpp.texi: Update.
8187
8188 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
8189
8190         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
8191         cost.
8192
8193 2004-08-04  Jan Hubicka  <jh@suse.cz>
8194
8195         * basic-block.h (profile_staus): New global variable.
8196         * cfg.c (profile_status): Declare.
8197         (check_bb_profile): Break out from ....; use profile_status
8198         (dump_flow_info): ... here.
8199         * cfgbuild.c (find_basic_blocks): Set profile_status.
8200         * cfgexpand.c (tree_expand_cfg): Likewise.
8201         * predict.c (estimate_probability): Likewise.
8202         * profile.c (branch_prob): Likewise.
8203         * tree-cfg.c (build_tree_cfg): Likewise.
8204         (dump_function_to_file): Use check_bb_profile.
8205         * tree-pretty-print (dump_bb_header): Likewise.
8206         * tree-profile.c (do_tree_profiling): Cleanup.
8207
8208 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
8209
8210         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
8211         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
8212         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
8213         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
8214         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
8215         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
8216         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
8217         (ggc-none.o, errors.o): Move rule to generators section;
8218         correct dependencies.
8219         (min-insn-modes.o): Move rule to generators section; remove
8220         unnecessary explicit command; correct dependencies.
8221         (print-rtl.o, print-rtl1.o): Correct dependencies.
8222         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
8223         (mostlyclean): Update.
8224
8225         * errors.c: Include bconfig.h not config.h.  Correct comment.
8226         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
8227         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
8228         * print-rtl.c: Don't include tm_p.h.
8229
8230         * rtl.h: Move forward-decl of struct function down where it's
8231         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
8232         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
8233
8234 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8235             Jeff Law  <law@redhat.com>
8236
8237         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
8238         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
8239         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
8240         manipulate the duplicated ssa names.
8241         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
8242         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
8243         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
8244         New functions.
8245         (release_ssa_name): Do not release ssa names that may have multiple
8246         definitions.
8247         * tree.h (release_ssa_name_force, mark_for_rewrite,
8248         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
8249         marked_ssa_names): Declare.
8250         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
8251         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
8252         Update call to rewrite_ssa_into_ssa.
8253
8254 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
8255
8256         * defaults.h (TARGET_DECLSPEC): New macro.
8257         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
8258         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
8259         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
8260         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
8261         __declspec support.
8262         (TARGET_DECLSPEC): Define.
8263         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
8264         __declspec support.
8265         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
8266         __declspec support.
8267         (TARGET_DECLSPEC): Define.
8268         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
8269         __declspec support.
8270         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
8271         support.
8272         * doc/tm.texi (TARGET_DECLSPEC): Document.
8273
8274         * doc/extend.texi: Fix typo in comment.
8275
8276 2004-08-04  Paul Brook  <paul@codesourcery.com>
8277
8278         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
8279         (TARGET_CXX): Use it.
8280         * target.h (struct gcc_target): Add cdtor_returns_this.
8281         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
8282         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
8283         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
8284
8285 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
8286
8287         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
8288         low/high pair. Do range checking directly.
8289         (interpret_integer): Adjust.
8290
8291 2004-08-04  Nick Clifton  <nickc@redhat.com>
8292
8293         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
8294         GCC ABI.
8295         * doc/invoke.texi: Document this new switch and also the -mrenesas
8296         switch.
8297
8298 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
8299
8300         * cfglayout.c (insn_locators_initialize): Update the current
8301         location before initializing a location.
8302
8303 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
8304
8305         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
8306         (dbxout_function_end): Return after emitting the "Lscope" symbol
8307         under the same conditions that this function formerly wasn't called.
8308         Add explanatory comments.
8309
8310         PR 14860
8311         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
8312         on the new decl.
8313
8314         PR 13956
8315         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
8316         functions, broken out of dbxout_block.
8317         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
8318         stabs too, if it contains symbols.  Use the begin_label and
8319         the Lscope label (emitted by dbxout_function_end) for the
8320         range of this block.
8321
8322 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
8323
8324         * doc/install.texi: Update autoconf version requirements.
8325
8326 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
8327
8328         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
8329         * recog.c (general_operand, immediate_operand, nonmemory_operand)
8330         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
8331         * regclass.c (record_reg_classes): Likewise.
8332         * reload.c (find_reloads): Likewise.
8333         * reload1.c (reload): Likewise.
8334
8335 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
8336
8337         * gensupport.c (init_md_reader_args_cb): Renamed from
8338         init_md_reader_args.  Add third option, callback function for
8339         parsing program-specific options.  Add diagnosis of incorrect
8340         number of input files.
8341         (init_md_reader): Fold into init_md_reader_args_cb.
8342         (init_md_reader_args): Now a thin wrapper around
8343         init_md_reader_args_cb.
8344         * gensupport.h: Update prototypes.
8345
8346         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
8347         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
8348         * genrecog.c: No need to diagnose lack of an input file;
8349         init_md_reader_args will handle it.
8350         * genconditions.c: Likewise, and use init_md_reader_args.
8351         * genconstants.c: Likewise, and no need to call read_md_rtx.
8352
8353 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
8354
8355         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
8356         declarations.
8357
8358 2004-08-03  Mike Stump  <mrs@apple.com>
8359
8360         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
8361         for frameworks.
8362         * doc/invoke.texi (Darwin Options): Update to reflect above.
8363
8364 2004-08-03  Roger Sayle  <roger@eyesopen.com>
8365
8366         PR middle-end/16790
8367         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
8368         truncations, not just global truncations.
8369
8370 2004-08-03  Andrew Pinski  <apinski@apple.com>
8371
8372         PR bootstrap/16865
8373         * loop-iv.c (simplify_using_assignment): Initialize lhs.
8374
8375 2004-08-03  Paul Brook  <paul@codesourcery.com>
8376
8377         * gcc/doc/install.texi: Document MPFR requirement.
8378
8379 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
8380
8381         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
8382         and mmap() explicitly instead of relying on preset autoconf cache
8383         variables.
8384         * configure: Regenerate.
8385
8386 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
8387
8388         PR target/16570
8389         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
8390         to tmake_file.
8391         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
8392         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
8393         to tmake_file.
8394
8395         * config/i386/t-gmm_malloc: New file.
8396         * config/i386/t-pmm_malloc: Likewise.
8397
8398         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
8399
8400 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
8401             Tanguy Fautrà <tfautre@pandora.be>
8402
8403         * config/i386/pmm_malloc.h: New file.
8404
8405 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
8406
8407         * config/i386/gmm_malloc.h: New file.
8408
8409 2004-08-03  Dale Johannesen  <dalej@apple.com>
8410
8411         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
8412         * c-common.c: Include opts.h.
8413         (c_common_get_alias_set): Fix check for a single input file.
8414         * toplev.c: Remove current_file_decl.
8415         * tree.h: Ditto.
8416
8417 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
8418
8419         * config.gcc (arm*-*-symbianelf*): New target.
8420         * config/arm/symbian.h: New file.
8421
8422         * gthr-gnat.c: Add visibility #pragmas.
8423         * gthr-gnat.h : Likewise.
8424         * gthr.h: Likewise.
8425         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
8426         (__ffsDI2): Likewise.
8427         (__clzSI2): Likewise.
8428         (__ctzSI2): Likewise.
8429         (__ctzDI2): Likewise.
8430         (__popcountSI2): Likewise.
8431         (__popcountDI2): Likewise.
8432         (__paritySI2): Likewise.
8433         (__parityDI2): Likewise.
8434         * libgcc2.h: Add visibility #pragmas.
8435         (__clzDI2): Add prototype.
8436         (__clzSI2): Likewise.
8437         (__ctzSI2): Likewise.
8438         (__ffsDI2): Likewise.
8439         (__ffsSI2): Likewise.
8440         (__ctzDI2): Likewise.
8441         (__popcountSI2): Likewise.
8442         (__popcountDI2): Likewise.
8443         (__paritySI2): Likewise.
8444         (__parityDI2): Likewise.
8445         * unwind-dw2-fde.h: Add visibility #pragmas.
8446         * unwind.h: Likewise.
8447
8448 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
8449             Dale Johannesen  <dalej@apple.com>
8450             Roger Sayle  <roger@eyesopen.com>
8451
8452         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
8453         constants more accurately.  Adjust costs for FMA instructions.
8454         Add cases for most logical and float operations.  Recurse into
8455         most operands.
8456
8457 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
8458
8459         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
8460
8461 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
8462
8463         * ra-build.c (conflicts_between_webs): For webs that cross a call add
8464         conflicts to regs_invalidated_by_call.
8465
8466 2004-08-03  Paul Brook  <paul@codesourcery.com>
8467
8468         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
8469
8470 2004-08-03  Jan Hubicka  <jh@suse.cz>
8471
8472         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
8473         ARRAY_REF argument.
8474
8475 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
8476
8477         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
8478         arm968es, arm10e, arm1020e, arm1022e.
8479         * invoke.texi: Update list of ARM cores.
8480         * arm-tune.md: Regenerate.
8481
8482 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
8483
8484         * arm/gentune.sh: New file.
8485         * arm/t-arm: New file.
8486         * arm/arm-tune.md: New file (autogenerated).
8487         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
8488         * arm.md (attribute tune): Delete.  Include arm-tune.md.
8489
8490 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
8491
8492         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
8493         penultimate parameter.  All callers adjusted.
8494         (struct prefix_list): Remove used_flag_ptr.
8495         (find_a_file): Do not set *pl->used_flag_ptr.
8496         (warn_B, warn_std_ptr): Remove.
8497
8498 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
8499             Mostafa Hagog <mustafa@il.ibm.com>
8500
8501         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
8502
8503 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
8504
8505         * dwarf2out.c (output_call_frame_info): Don't change data format
8506         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
8507         label.  Use 'true' not '1'.
8508         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
8509         required.
8510
8511 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8512
8513         * gdbinit.in: Reflect previous changes to rtunion_def.
8514
8515 2004-08-02  Roger Sayle  <roger@eyesopen.com>
8516
8517         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
8518         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
8519
8520 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8521
8522         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
8523         vec_p_reserve.
8524         * langhooks.h (lang_hooks::builtin_function): Rename parameter
8525         from "class" to "bt_class".
8526
8527 2004-08-02  Paul Brook  <paul@codesourcery.com>
8528
8529         PR rtl-optimization/15068
8530         * flow.c (init_propagate_block_info): Check condition is reversible.
8531
8532 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8533
8534         * gengtype.h (options::info): Change type to const char *.
8535         (enum gc_used_enum): Move out of struct type scope.
8536         * gengtype.c (create_option): Convert initializer for option::info to
8537         appropiate type.
8538         (adjust_field_type, walk_type, write_func_for_structure,
8539         write_root, write_roots): Remove pointless cast.
8540
8541 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
8542
8543         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
8544
8545 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8546
8547         * rtl.h (union rtunion_def): Have all members  start with the
8548         prefix "rt_".
8549         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
8550         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
8551         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
8552         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
8553         access.
8554         * gengtype.c (adjust_field_rtx_def): Likewise.
8555         * rtlanal.c (loc_mentioned_in_p): Likewise.
8556
8557 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
8558
8559         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
8560         Replace uses of mips/elf64.h with mips/elf.h
8561         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
8562         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
8563         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
8564         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
8565         (HANDLE_SYSV_PRAGMA): Delete.
8566         (ASM_OUTPUT_DEF): Fix formatting.
8567         * config/mips/elf64.h: Delete.
8568
8569 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
8570
8571         * config/ia64/ia64.c (got_symbolic_operand): Do require a
8572         symbol+offset operand to have its offset be zero mod 0x3fff
8573         when GOT entries are in use.  Clarify logic in SYMBOL_REF
8574         case.  Clarify comments.
8575         (ia64_expand_load_address): Split a symbol+offset load when
8576         the offset is nonzero mod 0x3fff, not 0x1fff.
8577
8578 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
8579
8580         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
8581         if trying to *store* to a non-offsettable address.
8582         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
8583         a nonoffsettable address.
8584         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
8585         Clean up.
8586         (movti_string): Don't move GPRs to a nonoffsettable address.
8587         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
8588
8589 2004-08-02  Ben Elliston  <bje@au.ibm.com>
8590
8591         PR target/16155
8592         * config/rs6000/altivec.h: Replace typeof with __typeof__.
8593
8594 2004-08-01  Richard Henderson  <rth@redhat.com>
8595
8596         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
8597         variable sized types.
8598
8599 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
8600
8601         * doc/invoke.texi: In the MIPS options section, remove the passage
8602         saying that -mexplicit-relocs is usually disabled for -mabicalls
8603         -fno-unit-at-a-time.
8604         * config/mips/mips.c (override_options): Remove the code that enforced
8605         this rule.
8606
8607 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
8608
8609         * config/mips/mips.md (cprestore): Provide two alternatives, one for
8610         an in-range offset and one for an out-of-range offset.  Wrap the latter
8611         in .set macro/.set nomacro if it's inside a .set nomacro block.
8612
8613 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
8614
8615         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
8616         (mips_restore_gp): Declare.
8617         * config/mips/mips.c (mips_add_offset): Add a scratch register
8618         argument.  Reimplement in rtl only, reusing MIPS16 logic from
8619         mips_output_mi_thunk.
8620         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
8621         to mips_add_offset.
8622         (mips_gp_save_slot): Delete.
8623         (mips_restore_gp): New function.
8624         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
8625         * config/mips/mips.md (exception_receiver): Turn into a
8626         define_insn_and_split.  Use mips_restore_gp to do the split.
8627         (call_internal, call_value_internal, call_value_multiple_internal): Use
8628         mips_restore_gp to restore $gp.
8629
8630 2004-07-31  Andrew Pinski  <apinski@apple.com>
8631
8632         PR other/16842
8633         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
8634
8635 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
8636
8637         * c-decl.c (diagnose_mismatched_decls): Give error for external
8638         redeclaration of identifier declared with no linkage, not just
8639         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
8640         error for redeclaration with no linkage.
8641
8642 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
8643             Fariborz Jahanian <fjahanian@apple.com>
8644
8645         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
8646         non-offsettable addresses even for DImode.
8647         (rs6000_split_multireg_move): Cope with non-offsettable addresses
8648         being moved into multiple GPRs.
8649
8650         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
8651         to 64.
8652         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
8653         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
8654         to 128.
8655         * config/rs6000/darwin-ldouble.c (isless): New macro.
8656         (inf): New macro.
8657         (nonfinite): New macro.
8658         (FPKINF): Delete.
8659         (_xlqadd): Completely rewrite.
8660         (_xlqmul): Correct overflow handling.
8661         (_xlqdiv): Correct overflow handling.
8662         * config/rs6000/darwin-ldouble-format: New file.
8663
8664 2004-07-30  Roger Sayle  <roger@eyesopen.com>
8665             Richard Henderson  <rth@redhat.com>
8666
8667         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
8668         9 into the equivalent lea instruction.
8669
8670 2004-07-30  Richard Henderson  <rth@redhat.com>
8671
8672         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
8673         with DECL_INITIAL if fb_lvalue.
8674         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
8675         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
8676         with <Cxxx>.
8677         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
8678
8679 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
8680
8681         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
8682         pointer escapes through a function call, assume that the
8683         callee will dereference it.
8684         (add_pointed_to_var): Assume that VALUE is always an
8685         ADDR_EXPR.
8686         (collect_points_to_info_r): Only call add_pointed_to_var if
8687         the value is an ADDR_EXPR.
8688
8689 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
8690
8691         * tree-ssa-alias.c (create_alias_map_for): Do not get the
8692         alias set of the inner type of ARRAY_TYPEs.
8693
8694 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
8695
8696         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
8697         setting a non-register to UNDEFINED right before the call to
8698         set_lattice_value.
8699
8700 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8701
8702         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
8703
8704 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
8705
8706         * tree-ssa.c (verify_flow_sensitive_alias_info): When
8707         comparing points-to sets of different pointers, make sure the
8708         second pointer is actually referenced in the code.
8709
8710 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
8711
8712         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
8713         (got_symbolic_operand): Remove unreachable code.
8714         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
8715         setjmp_operand; add entry for tls_symbolic_operand.
8716         * config/ia64/ia64-protos.h: Remove all prototypes of
8717         predicate functions.
8718
8719 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
8720
8721         * c-common.h (lang_post_pch_load): New variable.
8722         * c-pch.c (lang_post_pch_load): Define it.
8723         (c_common_read_pch): Use it.
8724         * cgraphunit.c (record_call_1): Give the front end a chance to
8725         record additional needed entities when a variable is marked as
8726         needed.
8727         * tlink.c (recompile_files): Robustify.
8728         (scan_linker_output): If a symbol is assigned to a file,
8729         but after recompilation is not present there, issue an error
8730         message.
8731
8732 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8733
8734         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
8735         Take orig_loop argument and pass it to set_level.
8736         (schedule_sm): Pass the correct orig_loop to force_move_till.
8737
8738 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8739
8740         * cfgloop.c (update_latch_info): Update dominator of the new block.
8741         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
8742         info.
8743         * dominance.c (verify_dominators): Check that the dominance tree is
8744         connected.
8745         (recount_dominator): Ignore unreachable blocks.
8746         (iterate_fix_dominators): Cleanup old dominance information before
8747         recomputing it.
8748
8749 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
8750
8751         * tree-ssa-operands.c (get_expr_operands): Revert changes
8752         to ADDR_EXPR processing introduced by:
8753             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8754             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
8755
8756 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
8757
8758         * doc/implement-c.texi: Add C90 subclause references.  Point to
8759         preprocessor documentation instead of duplicating it.  Add points
8760         only present in C90.  Fill in documentation for all points.
8761
8762 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8763
8764         * pa.c (output_movb): Correct typo.
8765
8766 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
8767
8768         * ra.h (single_reg_in_regclass): Declare.
8769         * ra.c (single_reg_in_regclass): Define.
8770         (first_hard_reg): New.
8771         (init_ra): Initialize single_reg_in_regclass.
8772         * ra-colorize.c (ok_class): New.
8773         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
8774
8775 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
8776
8777         * gcov-io.h: Allow zero tag as EOF indicator.
8778         (gcov_is_eof): Remove.
8779         (gcov_truncate): Remove.
8780         * gcov-io.c (gcov_seek): Always SEEK_SET.
8781         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
8782         EOF tag.
8783         * coverage.c (read_counts_file): Don't use gcov_is_eof.
8784         * gcov-dump.c (dump_file): Likewise.
8785         * gcov.c (read_graph_file, read_count_file): Likewise.
8786
8787         * c-decl.c (complete_array_type): Don't gratuitously copy
8788         maxindex.  Check it always has a type.
8789
8790 2004-07-29  Steven Bosscher  <stevenb@suse.de>
8791
8792         * rtl.c (currently_expanding_to_rtl): New.
8793         * rtl.h (currently_expanding_to_rtl): Export it.
8794         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
8795
8796         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
8797         inliner hack.
8798         * config/sh/sh.c: Replace rtx_equal_function_value_matters
8799         with currently_expanding_to_rtl.
8800         * config/sh/sh.md: Likewise.
8801         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
8802
8803 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
8804
8805         Introduce sh2a support.
8806         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
8807         * config.gcc: Build multilibs for sh2a and sh2a-single by
8808         default.
8809         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
8810         default.  Split their tests out of the corresponding SH4
8811         multilibs.
8812         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
8813         multilibs for SH2a.
8814         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
8815         * config.gcc: Handle sh2a multilibs and cpu selection.
8816         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
8817         * config/sh/t-mlib-sh2a: New.
8818         * config/sh/t-mlib-sh2a-nofpu: New.
8819         * config/sh/t-mlib-sh2a-single: New.
8820         * config/sh/t-mlib-sh2a-single-only: New.
8821         2004-07-09  Nick Clifton  <nickc@redhat.com>
8822         Issue 43400
8823         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
8824         -ml and -m2a are used together.
8825         2004-03-23  DJ Delorie  <dj@redhat.com>
8826         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
8827         when we have a double-sized FPU.
8828         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
8829         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
8830         is set.
8831         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
8832         -msh2a-single and -msh2a-single-only
8833         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
8834         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
8835         is set.
8836         2004-02-20  DJ Delorie  <dj@delorie.com>
8837         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
8838         2004-02-20  Fred Fish <fnf@redhat.com>,
8839         Corinna Vinschen <vinschen@redhat.com>
8840         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
8841         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
8842         2004-02-18  DJ Delorie  <dj@redhat.com>
8843         * config/sh/sh.c (broken_move): Add support for movi20.
8844         * config/sh/sh.h: Likewise.
8845         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
8846         * config/sh/sh.md (udivsi3_sh2a): New.
8847         (udivsi3): Call it.
8848         (divsi3_sh2a): New.
8849         (divsi3): Call it.
8850         (mul_r): New.
8851         (ashlsi3_sh2a): New.
8852         (ashrsi3_sh2a): New.
8853         (lshrsi3_sh2a): New.
8854         (movsi_i): Disable for sh2a.
8855         (movsi_ie): Add movi20.
8856         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
8857         sh2a, for -m2a-nofpu mode.
8858         2004-02-13  DJ Delorie  <dj@redhat.com>
8859         * config/sh/lib1funcs.asm: Handle double vs single better.
8860         * config/sh/sh.h: Likewise.
8861         2004-02-09  DJ Delorie  <dj@redhat.com>
8862         * config/sh/crt1.asm: Add support for sh2a.
8863         * config/sh/elf.h: Likewise.
8864         * config/sh/lib1funcs.asm: Likewise.
8865         * config/sh/sh.c: Likewise.
8866         * config/sh/sh.md: Likewise.
8867         * config/sh/sh.h: Likewise.
8868         * config/sh/t-sh: Likewise.
8869
8870 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
8871
8872         * config/frv/frv.md (movqi_internal, movhi_internal,
8873         movsi_internal): Add backup alternatives for memory inputs.
8874
8875 2004-07-28  Matt Austern  <austern@apple.com>
8876
8877         * config/darwin.c (darwin_one_byte_bool): New global variable.
8878         * config/darwin.h (darwin_one_byte_bool): Declare.
8879         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
8880         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
8881         value of darwin_one_byte_bool.
8882         * doc/invoke.texi: Document -mone-byte-bool flag.
8883
8884 2004-07-28  Eric Christopher  <echristo@redhat.com>
8885
8886         * c-common.c (c_common_unsafe_for_reeval): Delete.
8887         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
8888         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
8889         * calls.c (fix_unsafe_tree): Delete.
8890         (expand_call): Delete code which used above.
8891         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
8892         * expr.c (expand_expr_real_1): Ditto.
8893         * fold-const.c (non_lvalue): Ditto.
8894         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
8895         (lhd_unsafe_for_reeval): Ditto.
8896         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
8897         * langhooks.h (unsafe_for_reeval): Ditto.
8898         (unsave_expr_now): Adjust comment.
8899         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
8900         (estimate_num_insns_1): Ditto.
8901         * tree-pretty-print.c (dump_generic_node): Ditto.
8902         * tree.c (expr_align): Ditto.
8903         (unsave_expr): Delete.
8904         (unsafe_for_reeval): Ditto.
8905         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
8906         * tree.def (UNSAVE_EXPR): Delete.
8907         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
8908
8909 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
8910
8911         * tree.h (enum tls_model): Move ...
8912         * coretypes.h: ... here.
8913
8914 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
8915
8916         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
8917
8918 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
8919
8920         * cse.c (validate_canon_reg): New function, split out from...
8921         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
8922
8923 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8924
8925         * tree-ssa-alias.c (maybe_create_global_var): Don't just
8926         return if .GLOBAL_VAR has been created.
8927
8928 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8929
8930         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
8931         every variable that may have aliases, not just tags.
8932
8933 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
8934
8935         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
8936         move_from_CR_eq_bit.
8937         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
8938
8939
8940         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
8941         e500_flip_eq_bit.
8942
8943         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
8944         output_e500_flip_eq_bit.
8945
8946         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
8947         output_e500_flip_eq_bit.
8948         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
8949         output_e500_flip_eq_bit.
8950         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
8951         (print_operand): case D.  Get to EQ bit.
8952
8953 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
8954
8955         * gcov.c (function_summary): Add missing \n.
8956
8957 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
8958
8959         Introduce sh4a support.
8960         * config.gcc: Handle sh4a multilibs and cpu selection.
8961         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
8962         * config/sh/t-mlib-sh4a: New.
8963         * config/sh/t-mlib-sh4al: New.
8964         * config/sh/t-mlib-sh4a-nofpu: New.
8965         * config/sh/t-mlib-sh4a-single: New.
8966         * config/sh/t-mlib-sh4a-single-only: New.
8967         2004-02-20  DJ Delorie  <dj@redhat.com>
8968         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
8969         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
8970         2003-08-22  Eric Christopher  <echristo@redhat.com>
8971         * config/sh/sh4a.md: Update for chip errata.
8972         2003-08-07  Eric Christopher  <echristo@redhat.com>
8973         * config/sh/sh4a.md: New file. sh4a processor description.
8974         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
8975         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
8976         of -m4a-nofpu.
8977         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
8978         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
8979         * doc/invoke.texi (SH Options): Document -m4al.
8980         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
8981         * config/sh/sh.c (expand_block_move): Remove commented-out code
8982         checked in by mistake.
8983         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
8984         single elements from SFmode vectors.
8985         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
8986         register.
8987         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
8988         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
8989         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
8990         sh_fsca_int2sf): Remove variable declarations.
8991         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
8992         sh_fsca_int2sf): New functions.
8993         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
8994         sh_fsca_int2sf_rtx): New static variables.
8995         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
8996         sh_fsca_int2sf): Declare.
8997         * config/sh/sh.md: Adjust.
8998         * doc/invoke.texi (SH Options): Document new options.
8999         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
9000         compatibility from SH4 code.
9001         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
9002         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
9003         early.
9004         (memory_movsrc_operand): Renamed to...
9005         (unaligned_load_operand): ... this.  Simplified.
9006         * config/sh/sh.h (PREDICATE_CODES): Adjust.
9007         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
9008         input operand to SImode, and adjust the others.  Introduce
9009         post-increment by peephole.
9010         * config/sh/sh.c (expand_block_move): Give the target address the
9011         same mode as the temp reg.
9012         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
9013         copying.
9014         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
9015         Introduce support for SH4a.
9016         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
9017         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
9018         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
9019         sh_fsca_int2sf): New.
9020         (sh_init_builtins): Initialize them.
9021         (print_operand): Support `d'.
9022         (expand_block_move): Use movua if src is misaligned.
9023         (memory_movsrc_operand): New.
9024         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
9025         and one of the SH4 macros.
9026         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
9027         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
9028         SELECT_SH4A_SINGLE): New.
9029         (TARGET_NONE): Add SH4A_BIT.
9030         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
9031         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
9032         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
9033         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
9034         (enum processor_type): Added PROCESSOR_SH4A.
9035         (PREDICATE_CODES): Add memory_movsrc_operand.
9036         * config/sh/sh.md: Removed unused variables.
9037         (attr cpu): Add sh4a.
9038         (attr type): Add movua, fsrra and fsca.
9039         (prefetch): New, for SH4.
9040         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
9041         (toggle_sz): Set type to fp.
9042         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
9043         (movua, extv, extzv): New.
9044         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
9045         and 4a-single-only.
9046
9047 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
9048
9049         * tree-optimize.c (init_tree_optimization_passes): Schedule
9050         pass_may_alias right after the program is renamed into SSA.
9051         * tree-pass.h (PROP_alias): Define.
9052         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
9053         * tree-sra.c (pass_sra): Likewise.
9054         * tree-ssa-ccp.c (pass_ccp): Likewise.
9055         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
9056         * tree-ssa-dce.c (pass_dce): Likewise.
9057         * tree-ssa-dom.c (pass_dominator): Likewise.
9058         * tree-ssa-dse.c (pass_dse): Likewise.
9059         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
9060         * tree-ssa-loop-ch.c (pass_ch): Likewise.
9061         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
9062         * tree-ssa-pre.c (pass_pre): Likewise.
9063         * tree-tailcall.c (pass_tail_recursion): Likewise.
9064         * tree-ssa.c (pass_redundant_phi): Likewise.
9065         * tree-ssa-alias.c (aliases_computed_p): Remove.
9066         Update all users.
9067         (init_alias_info): Do not mark all type tags for renaming
9068         unconditionally.
9069         Clear may_aliases from every symbol.
9070         (setup_pointers_and_addressables): If a pointer has not been
9071         dereferenced and it had a type tag, clear it and mark the old
9072         tag for renaming.
9073
9074 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
9075
9076         PR tree-optimization/16705
9077         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
9078         .GLOBAL_VAR.
9079
9080 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9081
9082         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
9083         check.
9084
9085         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
9086         don't make another one.
9087
9088         PR optimization/15077
9089         * function.h (struct function): Add field saved_static_chain_decl.
9090         Fix comment for static_chain_decl.
9091         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
9092         * tree-inline.h (save_body): Add new arg.
9093         * tree-optimize.c (tree_rest_of_compilation): Handle saving
9094         static_chain_decl.
9095
9096 2004-07-27  Richard Henderson  <rth@redhat.com>
9097
9098         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
9099         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
9100         is_gimple_addressable.
9101         * tree-gimple.c (is_gimple_addressable): Rename from
9102         is_gimple_addr_expr_arg; accept INDIRECT_REF.
9103         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
9104         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
9105         rename to is_gimple_addressable.
9106
9107 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
9108
9109         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
9110
9111 2004-07-27  Richard Henderson  <rth@redhat.com>
9112
9113         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
9114         before rounding.
9115
9116 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
9117
9118         * libgcc2.c: Change all conditionals testing
9119         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
9120         * libgcc2.h: Likewise.
9121         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
9122         TYPE_PRECISION of float80_type to 80.
9123         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
9124         of fpreg_type and float80_type to 80.
9125         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
9126         * config/m68k/netbsd-elf.h:
9127         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
9128         to evaluate to 80 whenever they would formerly have evaluated to 96.
9129         * config/i386/sco5.h: Remove unnecessary redefinition of
9130         LONG_DOUBLE_TYPE_SIZE.
9131         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
9132         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
9133         XFmode, with a bitsize of 80.  Update commentary.
9134         * config/ia64/ia64-modes.def: Likewise.
9135         * config/m68k/m68k-modes.def: Likewise.
9136
9137 2004-07-27  Steven Bosscher  <stevenb@suse.de>
9138
9139         * cfgexpand.c (tree_expand_cfg): Fix comment.
9140
9141         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
9142         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
9143         Remove.
9144         (prepare_function_start): Don't set rtx_equal_function_value_matters.
9145         * integrate.c (copy_rtx_and_substitute): Don't test for it.
9146         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
9147         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
9148         here again.  Update leading comment.
9149         * rtl.c (rtx_equal_function_value_matters): Remove.
9150         (rtx_equal_p): Don't test for it.
9151         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
9152         Likewise.
9153
9154         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
9155         * rtl.c (note_insn_name): Likewise.
9156         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
9157         * final.c (final_scan_insn): Likewise.
9158
9159         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
9160         * passes.c (rest_of_handle_eh): Do it here.
9161
9162         * stmt.c (struct nesting): Remove struct nesting block member.
9163         (struct stmt_status): Remove x_block_start_count field.
9164         (current_block_start_count): Remove.
9165
9166 2004-07-27  Brian Booth  <bbooth@redhat.com>
9167
9168         * tree-optimize.c (register_one_dump_file): Update condition that uses
9169         static_pass_number.
9170         (dup_pass_1): Replace with...
9171         (next_pass_1): This.
9172         (NEXT_PASS): Call next_pass_1.
9173         (DUP_PASS): Remove.
9174         (init_tree_optimization_passes): Remove uses of DUP_PASS.
9175         (execute_one_pass): Update condition that uses
9176         static_pass_number.
9177         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
9178         integer.
9179
9180 2004-07-27  Nick Clifton  <nickc@redhat.com>
9181
9182         * config/m32r/m32r.c: Include integrate.h in order to get the
9183         prototype for get_hard_reg_initial_val().
9184
9185         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
9186         and tidy up indentation.
9187         (final_presence_set): Use absence_set instead, so that if there is
9188         nothing in the "o" pipe the "s" pipe can be scheduled.
9189
9190 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
9191
9192         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
9193         don't have PT_VARS nor PT_MALLOC set.
9194         Clear name tag from pointers that have not been dereferenced.
9195         (set_pt_anything, set_pt_malloc): Forward declare.
9196         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
9197         not type compatibility when determining if a pointer can be
9198         copy propagated.
9199
9200 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
9201
9202         * expr.h (canonicalize_condition, get_condition): Add an int argument.
9203         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
9204         it to check whether the condition is still valid at the jump insn.
9205         * ifcvt.c (noce_get_condition): Likewise.
9206         (noce_get_alt_condition): Update call to canonicalize_condition.
9207         * loop-iv.c (simplify_using_initial_values): Update call to
9208         get_condition.  Remove FIXME.
9209         (check_simple_exit): Update call to get_condition.
9210         * loop-unswitch.c (may_unswitch_on): Likewise.
9211         * loop.c (check_dbra_loop): Likewise.
9212         (canonicalize_condition, get_condition): Add an argument to say whether
9213         the condition must still be valid at INSN.
9214         (get_condition_for_loop): Update call to get_condition.  Require that
9215         the condition be valid at INSN.
9216         * predict.c (estimate_probability): Update call to get_condition.
9217         Remove unused earliest parameter.
9218         (expected_value_to_br_prob): Update call to canonicalize_condition.
9219
9220 2004-07-26  Eric Christopher  <echristo@redhat.com>
9221
9222         * tree-dfa.c (add_referenced_var): Register initializers of global
9223         variables.
9224
9225 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
9226
9227         * config/i386/i386.c (function_arg): Always treat 8-
9228         and 16-byte wide vectors the same, even if MMX/SSE
9229         are disabled.
9230         (contains_128bit_aligned_vector_p): Add comment.
9231
9232 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
9233
9234         * ra.h (enum node_type): Rename to:
9235         (enum ra_node_type).
9236         * ra-colorize.c: Likewise.
9237
9238 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
9239
9240         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
9241         after simplifying the jump.
9242
9243 2004-06-26  Richard Henderson  <rth@redhat.com>
9244
9245         * calls.c (combine_pending_stack_adjustment_and_call): Make
9246         preferred_unit_stack_boundary argument unsigned.  Make
9247         unadjusted_alignment unsigned.
9248         (expand_call): Make preferred_stack_boundary and
9249         preferred_unit_stack_boundary variables unsigned.
9250         * function.c (assign_stack_local_1): Make alignment unsigned.
9251         * function.h (struct function): Make stack_alignment_needed,
9252         preferred_stack_boundary unsigned.
9253         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
9254         (ix86_compute_frame_layout): Make stack_alignment_needed,
9255         preferred_alignment variables unsigned.
9256         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
9257
9258 2004-07-26  Tom Tromey  <tromey@redhat.com>
9259
9260         * tree.h: Fix typo in comment.
9261
9262 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
9263
9264         PR bootstrap/12804
9265         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
9266         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
9267         (ggc_free): Remove incorrect freeing.
9268         (sweep_pages): Advance PP for large pages.  Fix indentation.
9269
9270 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
9271
9272         PR rtl-optimization/16643
9273         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
9274         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
9275         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
9276         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
9277         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
9278         * function.c (thread_prologue_and_epilogue_insns): Likewise.
9279         * rtl.h (tracer): Add a flags parameter.
9280         * tracer.c (tracer): Pass it to cfg_layout_initialise.
9281         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
9282         (rest_of_handle_reorder_blocks): Update calls to tracer and
9283         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
9284         (rest_of_handle_tracer): Pass 0 to tracer.
9285         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
9286
9287 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
9288
9289         PR target/16239
9290         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
9291         f->f.
9292
9293 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
9294
9295         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
9296         (BINFO_BASE_ACCESS): Adjust.
9297         (BINFO_BASE_ACCESS_APPEND): New.
9298         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
9299         * dbxout.c (dbxout_type): Adjust binfo access accessing.
9300         * dwarf2out.c (gen_member_die): Likewise.
9301         * tree-dump.c (deque_and_dump): Likewise.
9302
9303 2004-07-26  Falk Hueffner  <falk@debian.org>
9304
9305         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
9306         costs.
9307
9308 2004-07-25  Roger Sayle  <roger@eyesopen.com>
9309
9310         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
9311         value off of the stack if TARGET_USE_FFREEP.
9312
9313 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
9314
9315         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
9316         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
9317         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
9318         check on invocation of XRESIZEVEC ().
9319
9320 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
9321
9322         * c-common.c (disable_builtin_function): Rename variable n to
9323         new_disabled_builtin.
9324         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
9325         Rename local variable old to old_decl.
9326         * gensupport.c (shift_output_template): Rename parameter old to src.
9327         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
9328         old_rtx and newx to new_rtx.
9329
9330 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
9331
9332         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
9333         of c-pragma.h.
9334         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
9335         enum cpp_ttype.
9336         * c-lex.c: Likewise.
9337
9338 2004-07-25  Roger Sayle  <roger@eyesopen.com>
9339
9340         * fold-const.c (constant_boolean_node): Make extern.
9341         (make_range): Wrap long lines.
9342         (fold_cond_expr_with_comparison): Remove unnecessary call to
9343         pedantic_non_lvalue.  Add missing calls to fold_convert.
9344         (fold_truthop): Add missing calls to fold_convert.
9345         (fold): Likewise.
9346         * tree.h (constant_boolean_node): Add prototype here.
9347         * builtins.c (expand_builtin_strncmp): Add missing calls to
9348         fold_convert.
9349         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
9350         Call fold_convert and constant_boolean_node to correct types.
9351         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
9352         missing call to fold_convert to correct types.
9353
9354 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
9355             Brian Ryner  <bryner@brianryner.com>
9356
9357         PR c++/9283
9358         PR c++/15000
9359         * c-common.c (c_common_attribute_table): Allow
9360         handle_visibility_attribute to be called for types.
9361         (handle_visibility_attribute) When given a type, set the visibility
9362         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
9363         so that we can check later whether the attribute was present. Added
9364         warning if attribute applied to non class type.
9365         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
9366         decls and checking that they are consistent.
9367         * common.opt: Added -fvisibility.
9368         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
9369         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
9370         * flags.h, tree.h: Added assorted support defines for overall patch
9371         * opts.c: Added parsing support for -fvisibility.
9372         * tree.c (build_decl): Set visibility for all decls to be whatever
9373         is in force at that time.
9374         * varasm.c (default_binds_local_p_1): Reworked logic determining
9375         when to make a symbol locally bound.
9376         * doc/invoke.texi: Added documentation for -fvisibility and
9377         -fvisibility-inlines-hidden.
9378
9379 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9380
9381         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
9382         * c-common.c: Add missing casts from void * to other types.
9383         * c-decl.c: Likewise.
9384         * c-format.c: Likewise.
9385         * c-lex.c: Likewise.
9386         * c-pragma.c: Likewise.
9387         * c-typeck.c: Likewise.
9388         * defaults.h: Likewise.
9389         * genconstants.c: Likewise.
9390         * gengtype-lex.l: Likewise.
9391         * genmodes.c: Likewise.
9392         * read-rtl.c: Likewise.
9393         * rtl.c: Likewise.
9394
9395 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9396
9397         * bitmap.c: Use type-safe memory allocation macros from libiberty.
9398         * c-common.c: Likewise.
9399         * c-decl.c: Likewise.
9400         * c-lang.c: Likewise.
9401         * c-lex.c: Likewise.
9402         * c-opts.c: Likewise.
9403         * c-parse.in: Likewise.
9404         * c-typeck.c: Likewise.
9405         * genconditions.c: Likewise.
9406         * gengtype-lex.l: Likewise.
9407         * gengtype-yacc.y: Likewise.
9408         * gengtype.c: Likewise.
9409         * genmodes.c: Likewise.
9410         * gensupport.c: Likewise.
9411         * read-rtl.c: Likewise.
9412         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
9413         htab_find_slot().
9414
9415 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9416
9417         * c-decl.c (groktypename, groktypename_in_param_context): Rename
9418         variable typename to type_name.
9419         * c-lex.c (interpret_float): Likewise.
9420
9421 2004-07-25  Roger Sayle  <roger@eyesopen.com>
9422
9423         * convert.c (convert_to_real, convert_to_integer,
9424         convert_to_complex): Replace calls to build with calls to buildN.
9425         * coverage.c (tree_coverage_counter_ref): Likewise.
9426         * dojump.c (do_jump): Likewise.
9427         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
9428         * emit-rtl.c (component_ref_for_mem_expr,
9429         set_mem_attributes_minus_bitpos): Likewise.
9430         * explow.c (update_nonlocal_goto_save_area): Likewise.
9431         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
9432         expand_mult_add): Likewise.
9433         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
9434         store_constructor, get_inner_reference, expand_expr_real_1,
9435         try_casesi, try_tablejump): Likewise.
9436         * function.c (expand_function_start): Likewise.
9437         * stmt.c (emit_case_bit_tests, expand_end_case_type,
9438         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
9439         * stor-layout.c (place_union_field, layout_type): Likewise.
9440         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
9441         * varasm.c (copy_constant): Likewise.
9442
9443 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9444
9445         * c-common.c: Rename all identifiers named `new'.
9446         * c-decl.c: Likewise.
9447         * gensupport.c: Likewise.
9448         * simplify-rtx.c: Likewise.
9449         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
9450         with XNEW().
9451         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
9452         with XNEWVEC().
9453
9454 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9455
9456         PR c/15360
9457         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
9458         declarations until after calling pushdecl.
9459         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
9460         "extern" and not on whether the declaration is initialized.
9461
9462 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
9463
9464         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
9465         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
9466         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
9467         "cpplib.h", "c-pragma.h", "c-common.h".
9468         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
9469         (solaris_register_pragmas): New functions.
9470         * config/sol2-protos.h: New file.
9471         * config/sol2.c: New file.
9472         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
9473         (REGISTER_TARGET_PRAGMAS): New macros.
9474         (solaris_pending_aligns, solaris_pending_inits)
9475         (solaris_pending_finis): New variables.
9476         * config/t-sol2 (sol2-c.o): Update dependencies.
9477         (sol2.o): New rule.
9478         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
9479         SUBTARGET_INSERT_ATTRIBUTES.
9480         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
9481         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
9482         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
9483         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
9484         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
9485         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
9486         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
9487         * config/sparc/sparc.c (sparc_attribute_table): New.
9488         (TARGET_INSERT_ATTRIBUTES): Define in terms of
9489         SUBTARGET_INSERT_ATTRIBUTES.
9490         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
9491         is defined.
9492         * doc/extend.texi (Solaris Pragmas): New section.
9493
9494 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9495
9496         * c-common.c: Rename all identifiers named `class' to `cl'.
9497         * c-common.h: Likewise.
9498         * c-parse.in: Likewise.
9499         * c-typeck.c: Likewise.
9500         * genmodes.c: Likewise.
9501         * real.c: Likewise.
9502         * real.h: Likewise.
9503         * recog.c: Likewise.
9504         * recog.h: Likewise.
9505         * regrename.c: Likewise.
9506         * tree.h: Likewise.
9507         * c-common.c (builtin_function_2): Change type of 5th parameter from
9508         int to enum built_in_function. Change type of 8th parameter from int
9509         to bool.
9510         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
9511         with GGC_CNEW().
9512         * c-typeck.c (convert_arguments): Change type of formal_prec from
9513         int to unsigned int.
9514         * genmodes.c (blank_mode): Make a few negative constants unsigned.
9515         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
9516         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
9517         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
9518         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
9519         iterator to for_all_modes () instead of an enum because enums can't
9520         be incremented in C++.
9521
9522
9523 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
9524
9525         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
9526         hard registers.
9527
9528 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9529
9530         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
9531         Handle ARRAY_RANGE_REF like ARRAY_REF.
9532
9533 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9534
9535         * c-typeck.c (digest_init): Don't allow arrays of signed or
9536         unsigned variants of wchar_t to be initialized by wide string
9537         constants.  Do allow arrays of enumerated types compatible with
9538         wchar_t to be initialized by wide string constants.  Refine tests
9539         distinguishing wide and narrow strings and arrays.  Give specific
9540         error for arrays of other integer types initialized by string
9541         constants.
9542         (output_init_element, process_init_element): Check for
9543         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
9544         initializing with string constants.
9545
9546 2004-07-25  Richard Henderson  <rth@redhat.com>
9547
9548         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
9549         on the RESULT_DECL.
9550         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9551         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
9552         DECL_IGNORED_P to new decl.
9553
9554 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
9555
9556         * config/ia64/ia64.c (general_xfmode_operand)
9557         (destination_xfmode_operand): Delete.
9558         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
9559         * config/ia64/ia64.md (*movxf_internal): Use general_operand
9560         and destination_operand.
9561
9562 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
9563
9564         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
9565         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
9566
9567 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
9568             Zack Weinberg  <zack@codesourcery.com
9569
9570         PR 16684
9571         * c-decl.c (diagnose_mismatched_decls): Don't issue a
9572         redundant-declaration warning the first time a builtin is
9573         declared explicitly.
9574
9575 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9576
9577         * tree.h (staticp): Change return type to bool.
9578
9579 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9580
9581         * c-common.c (c_staticp): Last episode of the staticp saga.
9582
9583 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9584
9585         * c-common.h (c_staticp): Change return type from int to bool.
9586         * tree.c (staticp): Likewise.
9587         * langhooks.h (staticp): Likewise.
9588
9589 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9590
9591         * langhooks-def.h (lhd_staticp): Change return type from int to
9592         bool in prototype to match definition.
9593
9594 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9595
9596         * system.h (bool, true, false): Don't redefine as preprocessor macros
9597         in C++.
9598
9599 2004-07-24  Roger Sayle  <roger@eyesopen.com>
9600
9601         * expmed.c (init_expmed): A signed modulus by a power of two is
9602         considered cheap if its less than or equal to four instructions.
9603
9604 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9605
9606         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
9607         GGC_CNEWVAR): New macros.
9608
9609 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
9610
9611         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
9612         lists.
9613         * c-decl.c: Likewise.
9614         * c-format.c: Likewise.
9615         * c-lex.c: Likewise.
9616         * c-opts.c: Likewise.
9617         * c-pragma.c: Likewise.
9618         * c-typeck.c: Likewise.
9619         * gencheck.c: Likewise.
9620         * genconditions.c: Likewise.
9621         * genconfig.c: Likewise.
9622         * genflags.c: Likewise.
9623         * gengtype.c: Likewise.
9624         * gensupport.c: Likewise.
9625         * ggc-none.c: Likewise.
9626         * langhooks.c: Likewise.
9627         * statistics.h: Likewise.
9628         * stub-objc.c: Likewise.
9629         * java/decl.c: Likewise.
9630
9631 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
9632
9633         * config/m68k/m68k.c (output_scc_di): Fix coding style.
9634         (symbolic_operand): Fix prototype.
9635         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
9636         * config/m68k/m68k.md: Add constants for registers a0 and sp and
9637         use them, change from the "{...}" syntax to the simpler {...}
9638         syntax.
9639         (*cfv4_extendqisi2): Fix destination predicate.
9640         * config/m68k/m68k-protos.h: Remove various declarations also
9641         generated via PREDICATE_CODES.
9642
9643 2004-07-23  Mike Stump  <mrs@apple.com>
9644
9645         * c-typeck.c (convert_for_assignment): Tightened up pointer
9646         converstions that differ in signedness.
9647
9648 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
9649
9650         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
9651
9652 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9653
9654         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
9655         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
9656
9657         * gimplify.c (gimplify_compound_lval): Check for no handled
9658         operations, rather than checking for explicit list of nodes.
9659         (is_gimple_addr_expr_arg_or_indirect): New function.
9660         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
9661         redundant setting of TREE_INVARIANT.
9662         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
9663         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
9664
9665 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
9666
9667         PR tree-optimization/16688
9668         PR tree-optimization/16689
9669         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
9670         unnecessary initialization of 'tag'.
9671         (get_tmt_for): Check that the new type tag has the same alias
9672         set as the pointed-to type.
9673         (group_aliases): Only regular variables need to be removed
9674         from the alias set of a name tag.
9675         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
9676         propagation if the two types are not compatible.
9677         (merge_alias_info): Rename from replace_ssa_names_ann.
9678         Add more checking.
9679         (replace_exp_1): If both arguments are SSA_NAMEs, check that
9680         the propagation can be done.
9681         Only call merge_alias_info on pointers.
9682         (propagate_value): Likewise.
9683         * tree-ssa-copyrename.c: Include langhooks.h.
9684         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
9685         to do the merging.
9686         Do not coalesce variables with incompatible types.
9687         (rename_ssa_copies): Call replace_ssa_name_symbol.
9688         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
9689         the same type as the underlying _DECL.
9690         * tree-ssanames.c (replace_ssa_name_symbol): New function.
9691         * tree.h (replace_ssa_name_symbol): Declare.
9692
9693 2004-07-23  Richard Henderson  <rth@redhat.com>
9694
9695         PR c++/16277
9696         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
9697         unshare it properly.
9698         (gimplify_modify_expr_rhs): Push assignment from a conditional into
9699         the conditional for all non-register types.
9700
9701 2004-07-23  Richard Henderson  <rth@redhat.com>
9702
9703         * expr.c (expand_expr_real_1): Don't handle non-local variables.
9704         * expr.h (fix_lexical_addr): Remove.
9705         * function.c (NEED_SEPARATE_AP): Remove.
9706         (fix_lexical_addr): Remove.
9707         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
9708         not null decl_function_context.
9709         (create_alias_vars): Likewise.
9710         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
9711         (simple_goto_p): Likewise.
9712         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
9713         * tree-ssa-ccp.c (get_default_value): Likewise.
9714         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
9715         * tree.c (needs_to_live_in_memory): Likewise.
9716         * tree-flow-inline.h (may_be_aliased): Move...
9717         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
9718         when TREE_STATIC variables may be addressable.
9719
9720 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
9721
9722         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
9723
9724 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
9725
9726         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
9727         bitmap contents if GENERATOR_FILE is defined.
9728         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
9729         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
9730
9731 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
9732
9733         * c-decl.c (start_function): Form composite type of function types
9734         rather than copying type from previous prototype declaration.
9735
9736 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
9737
9738         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
9739         the const qualifier for the second argument in the C++ functions.
9740
9741         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
9742         specific pointer types.
9743
9744         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
9745         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
9746         for vector bool and/or vector pixel, add C++ and C missing support.
9747         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
9748         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
9749         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
9750         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
9751         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
9752         missing C++ and C support for vector bool and/or vector pixel.
9753         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
9754         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
9755         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
9756         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
9757         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
9758         C++ and C types used for vector bool and/or vector pixel.
9759         (vec_st, vec_stl): Add C++ support for vector pixel.
9760         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
9761         (vec_all_ne): Add C++ support for vector pixel.
9762
9763         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
9764         (vec_vmulesb): Add missing C++ function.
9765         (vec_perm): Fix type of third argument in C++ function.
9766         (vec_vsum4shs): Fix C++ function name.
9767         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
9768         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
9769         argument passed to the error handler in C macro.
9770         (vec_nmsub): Remove extra parens around argument names in C macro.
9771         (vec_packpx): Add missing parens in C macro.
9772
9773 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
9774
9775         * machmode.def: Remove vector modes.
9776         * config/alpha/alpha-modes.def: Add supported vector modes.
9777         * config/arm/arm-modes.def: Likewise.
9778         * config/frv/frv-modes.def: Likewise.
9779         * config/i386/i386-modes.def: Likewise.
9780         * config/rs6000/rs6000-modes.def: Likewise.
9781         * config/sh/sh-modes.def: Likewise.
9782
9783 2004-07-23  Matthias Klose  <doko@debian.org>
9784
9785         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
9786         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
9787         * config.h: Regenerate.
9788         * configure: Likewise.
9789
9790 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
9791
9792         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
9793         generated SYMBOL_REFs for labels.
9794         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
9795         Change prototype.
9796         (machopic_stub_name): Remove.
9797         (machopic_indirection_name): New function.
9798         (machopic_mcount_stub_name): Likewise.
9799         (machopic_classify_name): Remove.
9800         (machopic_function_base_sym): New function.
9801         (machpoic_classify_symbol): Likewise.
9802         (machopic_classify_ident): Remove.
9803         (machopic_define_ident): Likewise.
9804         (machopic_define_name): Likewise.
9805         (machopic_name_defined_p): Likewise.
9806         (machopic_ident_defined_p): Likewise.
9807         (darwin_strip_name_encoding): Likewise.
9808         (machopic_define_symbol): New function.
9809         * config/darwin.c (hashtab.h): Include.
9810         (machopic_defined_list): Remove.
9811         (machopic_classify_ident): Likewise.
9812         (machopic_classify_name): Likewise.
9813         (machopic_ident_defined_p): Likewise.
9814         (machopic_define_ident): Likewise.
9815         (machopic_define_name): Likewise.
9816         (machopic_symbol_defined_p): New function.
9817         (machopic_classify_symbol): Likewise.
9818         (machopic_data_defined_p): Use machopic_classify_symbol.
9819         (machopic_define_symbol): New function.
9820         (machopic_function_base_sym): New function.
9821         (machopic_non_lazy_pointers): Remove.
9822         (machopic_non_lazy_ptr_name): Likewise.
9823         (machopic_stubs): Likewise.
9824         (machopic_stub_name): Likewise.
9825         (NON_LAZY_POINTER_SUFFIX): New macro.
9826         (STUB_SUFFIX): Likewise.
9827         (machopic_indirection): New structure.
9828         (machopic_indirections): New variable.
9829         (machopic_indirection_hash): New function.
9830         (machopic_indirection_eq): Likewise.
9831         (machopic_indirection_name): Likewise.
9832         (machopic_mcount_stub_name): New function.
9833         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
9834         hash table.
9835         (machopic_indirect_data_reference): Rework to use new functions.
9836         (machopic_indirect_call_target): Likewise.
9837         (machopic_legitimize_pic_address): Likewise.
9838         (machopic_output_indirection): New function.
9839         (machopic_finish): Use it.
9840         (machopic_operand_p): Rework to use new functions.
9841         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
9842         (darwin_strip_name_encoding): Remove.
9843         (update_non_lazy_ptrs): Remove.
9844         (update_stubs): Likewise.
9845         (darwin_non_lazy_pcrel): Use new functions.
9846         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
9847         (ASM_OUTPUT_LABELREF): Likewise.
9848         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
9849         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
9850         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
9851         (TARGET_STRIP_NAME_ENCODING): Do not use
9852         darwin_strip_name_encoding.
9853         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
9854         darwin_strip_name_encoding.
9855         * config/i386/darwin.h (FUNCTION_PROFILER): Use
9856         machopic_mcount_stub_name.
9857         * config/i386/i386.c (x86_output_mi_thunk): Use
9858         machopic_indirection_name, not machopic_stub_name.
9859         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
9860         machopic_function_base_sym.
9861         (print_operand): Use machopic_classify_symbol.
9862         (rs6000_emit_prologue): Use machopic_function_base_sym.
9863         (output_profile_hook): Do not use machopic_stub_name.
9864         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
9865
9866 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9867
9868         PR c/7284
9869         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
9870         as multiplication.
9871
9872 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9873
9874         * doc/implement-c.texi: New file.
9875         * doc/extend.texi (C Implementation): Move to there.
9876         * doc/gcc.texi: Include implement-c.texi.
9877         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
9878
9879 2004-07-22  Jason Merrill  <jason@redhat.com>
9880
9881         * integrate.c (copy_decl_for_inlining): Remove invisible reference
9882         handling.
9883         * tree-inline.c (setup_one_parameter): Likewise.
9884
9885 2004-07-22  Brian Booth  <bbooth@redhat.com>
9886
9887         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
9888         (substitute_and_fold): Propigate into VUSE operands when possible.
9889         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
9890         (cp_lattice_meet): Handle merging of latticevalues when
9891         UNKNOWN_VAL is present.
9892         (visit_stmt): Visit assignments with V_MUST_DEFs.
9893         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
9894         (ccp_fold): Deal with RHS' that are constant and virtual.
9895         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
9896         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
9897         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
9898         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
9899         computing immediate uses.
9900         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
9901         transition.
9902         (replace_vuse_in): New function.
9903         (likely_value): Add check of vuse operands.
9904         (get_default_value): Set the default value of virtually defined
9905         variables to UKNOWN_VAL instead of VARYING.
9906
9907 2004-07-22  Richard Henderson  <rth@redhat.com>
9908
9909         * expr.c (emit_push_insn): Don't use set_mem_attributes.
9910
9911 2004-07-22  Richard Henderson  <rth@redhat.com>
9912
9913         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
9914         variables due to conditional compilation.
9915
9916 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
9917
9918         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
9919         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
9920         Release SSA names that have been re-renamed.
9921         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
9922         variable.
9923         * tree-ssa-alias.c (init_alias_info): If aliases have been
9924         computed before, clear existing alias information.
9925         (create_name_tags): Do no fixup PT_ANYTHING pointers.
9926         If the new name tag for a pointer is different than the one it
9927         had before, mark the old tag for renaming.
9928         (replace_may_alias): New function.
9929         (group_aliases): Call it.
9930         (setup_pointers_and_addressables): Always call get_tmt_for.
9931         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
9932         once.
9933         (set_pt_anything): New local function.
9934         (set_pt_malloc): New local function.
9935         (merge_pointed_to_info): Don't merge pointed-to variables from
9936         the original pointer if the destination is pointing to an
9937         unknown location.
9938         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
9939         (add_pointed_to_var): Do not add a variable to the points-to
9940         set if the pointer is already pointing to anywhere.
9941         (collect_points_to_info_r): If the defining statement is a PHI
9942         node, only merge pointed-to information if the argument has
9943         already been visited.
9944         (get_tmt_for): Only create a new tag if the pointer didn't
9945         have one already.
9946         (dump_alias_info): Emit more information.
9947         (dump_points_to_info_for): Likewise.
9948         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
9949         try to get the annotation of an SSA_NAME.
9950         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
9951         alias sets when checking is enabled.
9952         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
9953         (eliminate): Mark basic blocks that will need
9954         EH information cleaned up.
9955         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
9956         predecessor.
9957         Initialize need_eh_cleanup.
9958         (fini_pre): Call tree_purge_all_dead_eh_edges and
9959         cleanup_tree_cfg if needed.
9960         Free need_eh_cleanup.
9961         * tree-ssa.c (verify_ssa_name): New function.
9962         (verify_def): Call it.
9963         Re-arrange to avoid printing too many error messages.
9964         (verify_use): Likewise.
9965         (verify_phi_args): Likewise.
9966         (verify_flow_insensitive_alias_info): New function.
9967         (verify_flow_sensitive_alias_info): New function.
9968         (verify_alias_info): New function.
9969         (verify_ssa): Call verify_alias_info.
9970         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
9971         program.
9972         Re-arrange to avoid printing too many error messages.
9973         * tree-ssanames.c (make_ssa_name): Clear
9974         SSA_NAME_IN_FREE_LIST.
9975         (release_ssa_name): Never release a default definition.
9976         (release_defs): New function.
9977         * tree.h: Declare it.
9978         * tree-ssa-dce.c (remove_dead_stmt): Call it.
9979
9980 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
9981
9982         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
9983         If true, do a depth-first search.  Do a breadht-first search,
9984         otherwise.
9985         (walk_use_def_chains): Add new argument IS_DFS.
9986         Update all users.
9987         * tree-flow.h (walk_use_def_chains): Update prototype.
9988
9989 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
9990
9991         * config/cris/cris.md: Tweak formatting.
9992         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
9993         (mover2side, moverside, movemside, movei, op3, andu): Replace
9994         live define_peephole:s with define_peephole2 near-equivalents.
9995         Delete the rest.
9996         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
9997         word-size modes.
9998         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
9999         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
10000         "*mov_sidesi_mem" respectively.
10001
10002 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
10003
10004         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
10005         (gimplify_build1): Move from tree-complex.c do_unop.
10006         (gimplify_build2): Move from tree-complex.c do_binop.
10007         (gimplify_build3): New.
10008         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
10009         Adjust throughout to call the functions above.
10010         * tree-flow.h: Declare the functions above.
10011         * tree-nested.c (gimplify_val): Rename to...
10012         (tsi_gimplify_val): ... this.
10013
10014         * Makefile.in (tree_complex.o): Update dependencies.
10015         (stor-layout.o): Depend on regs.h.
10016         * c-common.c (handle_vector_size_attribute): Update for
10017         vector types without corresponding vector modes.
10018         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
10019         a corresponding vector mode is not available.
10020         * print-tree.c (print_node): Print nunits for vector types
10021         * regclass.c (have_regs_of_mode): New.
10022         (init_reg_sets_1): Initialize it and use it instead
10023         of allocatable_regs_of_mode.
10024         * regs.h (have_regs_of_mode): Declare it.
10025         * stor-layout.c (layout_type): Pick a mode for vector types.
10026         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
10027         build_replicated_const, do_unop, do_binop, do_plus_minus,
10028         do_negate, expand_vector_piecewise, expand_vector_parallel,
10029         expand_vector_addition, expand_vector_operations_1,
10030         expand_vector_operations, tree_lower_operations,
10031         pass_lower_vector_ssa, pass_pre_expand): New.
10032         (expand_complex_operations, pass_lower_complex): Remove.
10033         * tree-optimize.c (init_tree_optimization_passes): Adjust
10034         pass ordering for changes in tree-complex.c.
10035         * tree-pass.h: Declare new passes.
10036         * tree.c (finish_vector_type): Remove.
10037         (make_vector_type): New.
10038         (build_vector_type_for_mode, build_vector_type): Rewritten.
10039         * tree.def (VECTOR_TYPE): Document where the number of
10040         subparts is stored.
10041         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
10042         (make_vector): Remove declaration.
10043
10044 2004-07-21  Richard Henderson  <rth@redhat.com>
10045
10046         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
10047         TREE_THIS_VOLATILE, may_aliases, or optimization level.
10048         (remove_useless_vars): Dump debugging info.
10049         (expand_used_vars): Move ...
10050         * cfgexpand.c (expand_used_vars): ... here.  Make static.
10051         * tree-flow-inline.h (set_is_used): New.
10052         (set_default_def): Use get_var_ann.
10053         * tree-flow.h: Update decls.
10054         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
10055         (create_ssa_var_map): Use it.
10056         * tree-ssa.c (set_is_used): Remove.
10057
10058 2004-07-22  Ben Elliston  <bje@au.ibm.com>
10059
10060         * gdbinit.in: Set a breakpoint on internal_error.
10061
10062 2004-07-21  Richard Henderson  <rth@redhat.com>
10063
10064         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
10065         to create a new basic block.
10066
10067 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10068
10069         PR c/15052
10070         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
10071         return type on function definitions.  Move other warnings for
10072         qualified return type to -Wreturn-type.  Do not condition any such
10073         warnings on -pedantic.  Update comments.
10074         (start_function): Only copy function type from previous prototype
10075         declaration if return types are compatible.
10076         * c-typeck.c (function_types_compatible_p): Don't condition
10077         warning for incompatibility of volatile qualifiers on the return
10078         type on -pedantic.  Update comment.
10079         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
10080
10081 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10082
10083         * c-typeck.c (set_init_index): Require designator to be of integer
10084         type.
10085
10086 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10087
10088         PR c/11250
10089         * c-parse.in (init): Change to exprtype.
10090         (primary): Set original_code for STRING to STRING_CST.
10091         Call maybe_warn_string_init for compound literals.
10092         (initdcl, notype_initdcl): Call maybe_warn_string_init.
10093         (initval): Update.
10094         * c-tree.h (maybe_warn_string_init): New.
10095         (pop_init_level, process_init_element): Use struct c_expr.
10096         (struct c_expr): Update comment.
10097         * c-typeck.c (maybe_warn_string_init): New function.
10098         (digest_init): Call it.  Additional parameter strict_string.  All
10099         callers changed.
10100         (output_init_element): Likewise.
10101         (struct constructor_stack): Use struct c_expr for
10102         replacement_value.
10103         (really_start_incremental_init, push_init_level): Update.
10104         (pop_init_level): Update.  Return struct c_expr.
10105         (process_init_level): Update.  Take struct c_expr argument.
10106
10107 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
10108
10109         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
10110         commit.
10111
10112 2004-07-21  Eric Christopher  <echristo@redhat.com>
10113
10114         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
10115         removal.
10116         * c-decl.c (pop_scope): Ditto.
10117         * calls.c (expand_call): Remove call to current_nesting_level,
10118         update comment accordingly. Remove calls to expand_start_target_temps
10119         and expand_end_target_temps.
10120         * cfgexpand.c (construct_init_block): Remove call to
10121         expand_start_bindings_and_block.
10122         (construct_exit_block): Remove call to expand_end_bindings.
10123         * expr.c (safe_from_p): Remove BIND_EXPR handling.
10124         (expand_expr_real_1): Ditto. Fix formatting.
10125         (expand_vars): Delete.
10126         * stmt.c (POPSTACK): Remove block_stack.
10127         (stmt_status): Remove x_block_stack.
10128         (block_stack): Delete.
10129         (expand_start_bindings_and_block): Ditto.
10130         (expand_start_target_temps): Ditto.
10131         (expand_end_target_temps): Ditto.
10132         (current_nesting_level): Ditto.
10133         (warn_about_unused_variables): Ditto.
10134         (expand_end_bindings): Ditto.
10135         * tree.h: Remove declarations for above.
10136
10137 2004-07-21  Steven Bosscher  <stevenb@suse.de>
10138
10139         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
10140         * rtl.c (note_insn_name): Likewise.
10141         * print-rtl.c (print_rtx): Don't print it.
10142         * cfgrtl.h (can_delete_note_p): Don't handle it.
10143         (rtl_delete_block): Likewise.
10144         * passes.c (rest_of_handle_guess_branch_prob): Remove.
10145         (rest_of_compilation): Don't call it.
10146         * predict.c (process_note_predictions, process_note_prediction,
10147         note_prediction_to_br_prob): Remove.
10148         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
10149         * stmt.c (return_prediction): Remove.
10150         (expand_value_return): Don't call it.  Don't add prediction
10151         notes for return statements.
10152
10153 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
10154
10155         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
10156         once.
10157
10158 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
10159
10160         * c-common.c (vector_types_convertible_p): Use vector types'
10161         TYPE_SIZE and TREE_TYPE instead of their mode.
10162         * convert.c (convert_to_integer): Likewise.
10163         (convert_to_vector): Likewise.
10164         * fold-const.c (fold_convert): Likewise.
10165         * varasm.c (output_constant): Likewise.
10166         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
10167         Allow a VECTOR_TYPE initializer to be made of several vectors.
10168         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
10169         of cleared and need_to_clear, and use fold_convert.
10170         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
10171         integer vectors.
10172
10173 2004-07-20  Richard Henderson  <rth@redhat.com>
10174
10175         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
10176         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
10177
10178 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
10179
10180         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
10181         enormous cost if not TARGET_HARD_MUL.
10182
10183 2004-07-20  Andrew Pinski  <apinski@apple.com>
10184
10185         PR target/16557
10186         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
10187         (ASM_SPEC): here.
10188
10189 2004-07-21  Paul brook  <paul@codesourcery.com>
10190
10191         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
10192
10193 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10194
10195         * fold-const.c (operand_equal_p): Temporarily support NULL args.
10196         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
10197         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
10198
10199 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
10200
10201         * rtl.h (plus_constant): Delete.
10202         (plus_constant_wide): Rename to plus_constant.
10203         (plus_constant_for_output_wide): Delete vestigial prototype.
10204         (GEN_INT): Remove unnecessary cast.
10205         * tree.h (build_int_2, size_int_type): Delete.
10206         (build_int_2_wide): Rename to build_int_2.
10207         (size_int_wide): Rename to size_int_kind.
10208         (size_int_type_wide): Rename to size_int_type.
10209         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
10210         Remove unnecessary cast.
10211         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
10212         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
10213         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
10214         (size_int_type_wide): Rename size_int_type.
10215         (int_const_binop): Use size_int_type.
10216         * c-lex.c (interpret_integer): Use build_int_2.
10217         * final.c (split_double): Remove unnecessary casts.
10218         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
10219
10220 2004-07-20  Richard Henderson  <rth@redhat.com>
10221
10222         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
10223         (gimplify_compound_lval): Use is_gimple_tmp_reg.
10224         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
10225         (is_gimple_tmp_reg): New.
10226         * tree-gimple.h (is_gimple_tmp_reg): Declare.
10227
10228 2004-07-20  Richard Henderson  <rth@redhat.com>
10229
10230         * tree-pretty-print.c (dump_generic_node): Dump
10231         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
10232
10233 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
10234
10235         * tree-mudflap.c (mf_set_options_fndecl): New tree.
10236         (mudflap_init): Set it.
10237         (mudflap_register_call): Remove __mf_init call.
10238         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
10239         to pass "-ignore-reads" option to libmudflap if needed.
10240
10241 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
10242
10243         PR c++/14607
10244         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
10245         (MAKE_DECL_ONE_ONLY): Undefine.
10246         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
10247         readonly_data, one_only_data_section, forget_section): New prototypes.
10248         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
10249         functions.
10250         (pa_select_section): Add one-only (COMDAT) support.
10251         * pa.h (struct machine_function): Define.
10252         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
10253         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
10254         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
10255         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
10256         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
10257         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
10258         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
10259         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
10260         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
10261         for EXTRA_SECTION_FUNCTIONS.
10262         * doc/install.texi: Update binutils requirements.
10263
10264 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
10265
10266         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
10267         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
10268         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
10269         size_t.
10270         (struct VEC): Use unsigned for num and alloc.
10271         * vec.c (struct vec_prefix): Likewise.
10272         (vec_o_reserve): Adjust.
10273
10274         * dbxout.c (dbxout_type): Fix printf format.
10275
10276         * tree.h (binfo_member): Remove.
10277         * tree.c (binfo_member): Remove.
10278
10279 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
10280
10281         * tree.h: Include vec.h
10282         (DEF_VEC_P(tree)): New type.
10283         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
10284         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
10285         (BINFO_LANG_SLOT): Remove.
10286         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
10287         (struct tree_binfo): Turn base_binfos into a trailing
10288         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
10289         (binfo_lang_slots): Remove.
10290         * tree.c (binfo_lang_slots): Remove.
10291         (make_tree_binfo_stat): Take a base binfo count, not a
10292         lang slot count.  Adjust.
10293         * Makefile.in (TREE_H): Add vec.h
10294         * alias.c (record_component_aliases): Adjust BINFO access.
10295         * dbxout.c (dbxout_type): Likewise.
10296         * dwarf2out.c (gen_member_die): Likewise.
10297         * sdbout.c (sdbout_one_type): Likewise.
10298         * tree-dump.c (deque_and_dump): Likewise.
10299         * config/i386/i386.c (classify_argument,
10300         contains_128bit_aligned_vector_p): Likewise.
10301         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
10302         * doc/c-tree.texi (Classes): Update BINFO documentation.
10303
10304 2004-07-20  Steven Bosscher  <stevenb@suse.de>
10305
10306         * c-common.h (check_case_value): Remove prototype.
10307         (c_add_case_label): Adjust prototype.
10308         * c-common.c (check_case_value): Make static.
10309         (check_case_bounds): New function.
10310         (c_add_case_label): Use it.  Take new argument orig_type.
10311         * c-typeck.c (struct c_switch): New orig_type field.
10312         (c_start_case): Set it.
10313         (do_case): Pass it to c_add_case_label.
10314         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
10315         cases from here.  Add the labels in reverse order.
10316         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
10317         (add_case_node): Return nothing, don't check for duplicate cases.
10318         Insert new case nodes in a list, not in an AVL tree.
10319         (expand_end_case_type): Don't turn a case tree into a case list.
10320         (case_tree2list): Remove.
10321         * tree.h (add_case_node): Adjust prototype.
10322
10323 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
10324
10325         * genattr.c (struct range, struct function_unit,
10326         write_units, extend_range, init_range): Remove them.
10327         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
10328         Output "#define INSN_SCHEDULING" here.
10329         * genattrtab.c (struct range, struct function_unit_op,
10330         struct function_unit, struct dimension, enum operator,
10331         operate_exp, expand_units, simplify_knowing,
10332         encode_units_mask, simplify_by_exploding,
10333         find_and_mark_used_attributes, unmark_used_attributes,
10334         add_values_to_cover, increment_current_value,
10335         test_for_current_value, simplify_with_current_value,
10336         simplify_with_current_value_aux, gen_unit,
10337         write_unit_name, write_function_unit_info,
10338         write_complex_function, write_toplevel_expr,
10339         find_single_value, extend_range): Remove.
10340         (write_attr_get): Do not handle common_av->value
10341         being an FFS.
10342         (struct attr_desc): Remove func_units_p and blockage_p.
10343         (write_attr_valueq): Do not handle them.
10344         (find_attr): Do not clear them.
10345         (make_internal_attr): Do not initialize them.
10346         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
10347         * sched-vis.c (init_target_units, insn_print_units,
10348         init_block_visualization, print_block_visualization,
10349         visualize_scheduled_insns, visualize_no_unit,
10350         visualize_stall_cycles, visualize_alloc,
10351         visualize_free, target_units, get_visual_tbl_length,
10352         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
10353         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
10354         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
10355         * haifa-sched.c (blockage_range, clear_units,
10356         schedule_unit, actual_hazard, potential_hazard,
10357         insn_unit, unit_last_insn, unit_tick,
10358         actual_hazard_this_instance, potential_hazard,
10359         schedule_unit, max_insn_queue_index_value): Remove.
10360         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
10361         max_insn_queue_index.
10362         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
10363         * doc/md.texi (Processor pipeline description): Remove
10364         references to old pipeline descriptions.
10365         (Automaton pipeline description): Merge with the above.
10366         (Old pipeline description, Comparison of the two descriptions):
10367         Remove.
10368
10369         * bt-load.c (migrate_btr_def): Remove references to
10370         use_pipeline_interface.
10371         * haifa-sched.c (insn_cost, schedule_insn,
10372         schedule_block, advance_one_cycle, sched_init,
10373         queue_to_ready, sched_finish): Likewise.
10374         * modulo-sched.c (sms_schedule, advance_one_cycle,
10375         ps_has_conflicts): Likewise.
10376         * sched-rgn.c (init_ready): Likewise.
10377         (debug_dependencies): Likewise, and remove an "if (1)".
10378         * target.h (use_dfa_pipeline_interface): Remove.
10379         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10380         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10381         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10382         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10383         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10384         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10385         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10386         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10387         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10388         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10389         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10390         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10391         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10392         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10393         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10394         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10395         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10396         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10397         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
10398
10399 2004-07-19  Roger Sayle  <roger@eyesopen.com>
10400
10401         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
10402
10403 2004-07-19  Jeff Law  <law@redhat.com>
10404
10405         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
10406         (get_eq_expr_value): Use it.  Simplify slightly.
10407
10408 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
10409
10410         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
10411         (umulsidi3_32bit_r4000): Likewise.
10412
10413 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
10414
10415         * vec.h: Propagate location information properly.
10416         (VEC_T_iterate): Add result pointer parameter.
10417         (VEC_T_space): New.
10418         (VEC_T_reserve): Use it.
10419
10420 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
10421
10422         * Makefile.in (c-format.o): Depend on c-format.h.
10423         * c-format.h: New file.
10424         (struct format_char_info): Add CHAIN member.
10425         * c-format.c: Move some types and constants to c-format.h.
10426         (format_type_error): Set to -1.
10427         (struct function_format_info): Use an int for format_type.
10428         (decode_format_type): Return an int.  Return format_type_error
10429         on error.
10430         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
10431         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
10432         (scan_char_table, time_char_table, monetary_char_table): Initialize
10433         CHAIN to NULL.
10434         (n_format_types): New variable.
10435         (check_format_info_main): Handle CHAIN in format_char_info.
10436         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
10437         TARGET_N_FORMAT_TYPES.
10438         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
10439         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
10440         * config/sol2-c.c: New file.
10441         * config/t-sol2: New file.
10442         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
10443         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
10444         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
10445
10446         * doc/extend.texi (Target Format Checks): New section.
10447         (Function Attributes): Mention it.
10448         * doc/invoke.texi: Mention target format checks.
10449         * doc/sourcebuild.texi: Mention target format checks.
10450         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
10451         TARGET_FORMAT_TYPES.
10452
10453 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
10454
10455         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
10456         added.
10457         * config/s390/s390.c (regclass_map initializer): Register 35 added to
10458         ADDR_REGS.
10459         (load_multiple_operation, store_multiple_operation): Removed
10460         pointless sanity check.
10461         (s390_decompose_address): Added check for return_address_pointer_rtx.
10462         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
10463         (s390_return_address_offset): New function.
10464         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
10465         (FRAME_REGNO_P): Added check for register 35.
10466         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
10467         REG_ALLOC_ORDER): Appended entry for register 35.
10468         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
10469         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
10470         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
10471         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
10472         is eliminable using stack pointer or hard frame pointer.
10473         (REGISTER_NAMES): Added name for register 35.
10474         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
10475         pointless sanity check.
10476
10477 2004-07-19  Roger Sayle  <roger@eyesopen.com>
10478
10479         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
10480         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
10481         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
10482         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
10483         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
10484         (fold_relational_const): Tidy up handling of floating point
10485         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
10486         transformation; fold_relational_const assumes constant operands.
10487
10488 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
10489
10490         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
10491         directory.
10492
10493 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
10494
10495         * c-tree.h (struct c_expr): Define.
10496         (C_SET_EXP_ORIGINAL_CODE): Remove.
10497         (parser_build_binary_op, build_compound_expr): Update prototypes.
10498         * c-parse.in (%union): Add exprtype.
10499         (FUNC_NAME): Mark as ttype.
10500         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
10501         exprtype.
10502         (expr): Update.  Define directly in terms of expr_no_commas
10503         instead of using nonnull_exprlist.
10504         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
10505         offsetof_member_designator, typespec_nonreserved_nonattr, init,
10506         initval, designator, component_declarator,
10507         component_notype_declarator, enumerator, array_declarator,
10508         condition, exexpr, switch_statement, stmt_nocomp, stmt,
10509         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
10510         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
10511         where appropriate.
10512         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
10513         * c-common.c (c_common_truthvalue_conversion): Don't check
10514         C_EXP_ORIGINAL_CODE.
10515         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
10516         Don't use C_EXP_ORIGINAL_CODE.
10517         (default_conversion, default_function_array_conversion): Don't use
10518         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
10519         (internal_build_compound_expr): Merge into build_compound_expr.
10520         (build_compound_expr): Take two operands instead of a TREE_LIST.
10521         * objc/objc-act.c (get_super_receiver): Update calls to
10522         build_compound_expr.
10523
10524 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
10525
10526         * config/sh/sh.c (sh_use_dfa_interface): Remove.
10527         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
10528         hook_int_void_1.
10529         * config/sh/sh.md: Extract pipeline descriptions
10530         into separate files.
10531         * config/sh/sh1.md: New file, extracted from sh.md.
10532         * config/sh/sh4.md: New file, extracted from sh.md.
10533         * config/sh/shmedia.md: New file, extracted from sh.md
10534         and rewritten using new-style pipeline description.
10535
10536 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
10537
10538         * config/pa/pa.md: Delete the two remaining define_peephole
10539         patterns.
10540
10541 2004-07-18  Steven Bosscher  <stevenb@suse.de>
10542             Joseph S. Myers  <jsm@polyomino.org.uk>
10543
10544         * c-common.c (c_common_truthvalue_conversion): Don't warn if
10545         TREE_NO_WARNING is set.
10546
10547 2004-07-18  Roger Sayle  <roger@eyesopen.com>
10548
10549         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
10550         simplify_builtin_strncmp): Delete.
10551         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
10552         Change argument to accept an arglist instead of an "exp".  Assume
10553         that the return type is always integer_type_node.  Copy missing
10554         transformations from their now obsolete simplify_builtin_*
10555         equivalents.
10556         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
10557         fold_builtin_strcmp and fold_builtin_strncmp.
10558         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
10559         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
10560         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
10561
10562 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
10563
10564         * Makefile.in (tree-alias-common.o): Update dependencies.
10565
10566 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
10567
10568         * cfgloop.c (flow_loop_nested_p): Fix comment.
10569
10570 2004-07-17  Jason Merrill  <jason@redhat.com>
10571
10572         PR c++/16115
10573         * stor-layout.c (relayout_decl): New fn.
10574         * tree.h: Declare it.
10575         (DECL_BY_REFERENCE): New macro.
10576
10577 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
10578
10579         * libgcc2.c (__enable_execute_stack): New symbol.
10580         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
10581         and declare __enable_execute_stack.
10582         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
10583         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
10584         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
10585         ENABLE_EXECUTE_STACK.
10586         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
10587         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
10588         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
10589         ENABLE_EXECUTE_STACK.
10590         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
10591         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
10592         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
10593         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
10594         ENABLE_EXECUTE_STACK.
10595         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
10596         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
10597         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
10598         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
10599         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
10600         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
10601         (sparc64_initialize_trampoline): Likewise.
10602         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
10603
10604 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
10605
10606         * langhooks.h (builtin_function): New langhook.
10607         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
10608         (LANG_HOOKS_INITIALIZER): Update.
10609         * tree.h (builtin_function): Remove.
10610         * doc/tm.texi: Update.
10611         * c-tree.h (builtin_function): Declare.
10612         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
10613         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
10614         config/ia64/ia64.c, config/iq2000/iq2000.c,
10615         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
10616         config/stormy16/stormy16.c: All callers of builtin_function
10617         changed.
10618
10619 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
10620
10621         PR target/16556
10622         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
10623         Remove white space after the backslash.
10624
10625 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
10626
10627         PR rtl-optimization/16294
10628         * resource.c (return_insn_p): New predicate.
10629         (mark_target_live_regs): Use it.  Special-case return insns.
10630         (init_resource_info): Use it.  Don't scan the epilogue past
10631         a return.
10632
10633 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10634
10635         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
10636         destroy dominance information.
10637         * passes.c (rest_of_handle_loop2):  Free dominance information.
10638         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
10639         jump threading.
10640         (thread_jumps): Update dominance information and remove unreachable
10641         blocks.
10642         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
10643         information and remove the unreachable block.
10644
10645 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
10646
10647         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
10648
10649 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
10650
10651         * doc/sourcebuild.texi: Remove libf2c entry.
10652
10653 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
10654
10655         * config/i386/i386.md (movv16qi_internal): Fix typo.
10656
10657 2004-07-17  Steven Bosscher  <stevenb@suse.de>
10658
10659         * final.c (final_scan_insn): Fix broken commit from previous
10660         patch.
10661
10662 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
10663
10664         * c-typeck.c (parser_build_binary_op): Condition warnings for
10665         X<=Y<=Z on -Wparentheses instead of -Wextra.
10666         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
10667         supported for C only.
10668
10669 2004-07-17  Steven Bosscher  <stevenb@suse.de>
10670
10671         * cfgcleanup.c (try_simplify_condjump): Don't remove line
10672         notes to avoid unreachable code warnings.
10673         * toplev.c (backend_init): Don't emit line notes for
10674         unreachable code warnings.
10675
10676         * combine.c (distribute_notes): Don't distribute a
10677         REG_VTABLE_REF note.
10678         * final.c (final_scan_insn): Don't handle it.
10679         * rtl.c (reg_note_name): Remove it.
10680         * rtl.h (enum reg_node): Dito.
10681
10682         * emit-rtl.c (force_line_numbers, restore_line_number_status):
10683         Remove.
10684         * rtl.h (force_line_numbers, restore_line_number_status):
10685         Remove prototypes.
10686
10687         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
10688         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
10689         (using_eh_for_cleanups): Also moved here.
10690
10691         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
10692         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
10693         to expand_start_case and add_case_node.
10694         * stmt.c (struct nesting): Cleanup unused fields condition_code,
10695         last_unconditional_cleanup, nominal_type, printname, and
10696         line_number_status.
10697         (struct fixup_goto): Remove.
10698         (struct stmt_status): Remove x_goto_fixup_chain field.
10699         (goto_fixup_chain): Remove.
10700         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
10701         pushcase, pushcase_range): Remove.
10702         (expand_start_bindings_and_block): Don't set unused fields in
10703         the nesting stack.
10704         (expand_start_case, add_case_node): Cleanup unused formal arguments.
10705         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
10706         instead of emit_jump_if_reachable.
10707         (emit_case_nodes): Likewise.
10708         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
10709         static.
10710         (update_eh_label): Work around left-over exception handing regions.
10711         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
10712         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
10713         (pass_cleanup_cfg_post_optimizing): New pass.
10714         (init_tree_optimization_passes): Run the new pass after all
10715         optimizations.
10716         * tree.h (pushcase, pushcase_range): Remove prototypes.
10717         (expand_start_case, add_case_node): Update prototypes.
10718
10719 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
10720
10721         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
10722
10723 2004-07-16  Richard Henderson  <rth@redhat.com>
10724
10725         * builtins.c (std_expand_builtin_va_arg): Remove.
10726         (expand_builtin_va_arg): Remove.
10727         * expr.h: Don't declare them.
10728         * gimplify.c (mark_decls_volatile_r): Remove.
10729         (copy_if_shared_r): Don't call it.
10730         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
10731         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
10732         * gimple-low.c (lower_stmt): Likewise.
10733         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
10734         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
10735         * tree-ssa-operands.c (get_expr_operands): Likewise.
10736         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
10737         EXPAND_BUILTIN_VA_ARG.
10738         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
10739         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
10740         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
10741         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
10742
10743 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
10744
10745         * tree-ssa-pre.c (insert_aux): Break out if we hit
10746         a critical edge.
10747
10748 2004-07-16  Richard Henderson  <rth@redhat.com>
10749
10750         * basic-block.h (remove_fake_exit_edges): Declare.
10751         * cfganal.c (remove_fake_predecessors): Rename from
10752         remove_fake_successors; iterate over predecessors.
10753         (remove_fake_exit_edges): New.
10754         * cfgcleanup.c (try_optimize_cfg): Use it.
10755         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
10756         * predict.c (estimate_probability): Likewise.
10757         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
10758         * tree-cfg.c (make_edges): Likewise.
10759         * tree-ssa-pre.c (fini_pre): Likewise.
10760         * profile.c (instrument_edges): Don't remove_fake_edges.
10761         (branch_prob): Do it earlier here.
10762
10763 2004-07-16  Richard Henderson  <rth@redhat.com>
10764
10765         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
10766         switchification wrt CONSTRUCTOR.  Document the reason.
10767
10768 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
10769
10770         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
10771         that prevented descriptive __mf_check source location strings.
10772
10773 2004-07-16  Richard Henderson  <rth@redhat.com>
10774
10775         * tree-def (WITH_SIZE_EXPR): New.
10776         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
10777         * expr.c (expand_expr_real_1): Likewise.
10778         * gimplify.c (maybe_with_size_expr): New.
10779         (gimplify_arg, gimplify_modify_expr): Use it.
10780         (gimplify_modify_expr_to_memcpy): Take size parameter.
10781         (gimplify_modify_expr_to_memset): Likewise.
10782         (gimplify_expr): Handle WITH_SIZE_EXPR.
10783         * tree-alias-common.c (find_func_aliases): Likewise.
10784         * tree-eh.c (tree_could_trap_p): Likewise.
10785         (tree_could_throw_p): Likewise.
10786         * tree-gimple.c (is_gimple_lvalue): Likewise.
10787         (get_call_expr_in): Likewise.
10788         * tree-inline.c (estimate_num_insns_1): Likewise.
10789         (expand_calls_inline): Likewise.
10790         * tree-nested.c (convert_call_expr): Likewise.
10791         * tree-pretty-print.c (dump_generic_node): Likewise.
10792         * tree-sra.c (sra_walk_expr): Likewise.
10793         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
10794         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
10795         * tree-ssa-operands.c (get_expr_operands): Likewise.
10796         * tree-tailcall.c (find_tail_calls): Likewise.
10797
10798         * calls.c (expand_call): Reset old_stack_allocated after
10799         calling emit_stack_restore.
10800
10801 2004-07-16  Richard Henderson  <rth@redhat.com>
10802
10803         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
10804         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
10805         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
10806         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
10807         copy_res_decl_for_inlining.
10808
10809         * tree-inline.c (declare_return_variable): New modify_dest argument.
10810         Use it as the return value, when possible or manditory.  Handle
10811         TREE_ADDRESSABLE types.
10812         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
10813         replacement of CALL_EXPR.
10814
10815 2004-07-16  Richard Henderson  <rth@redhat.com>
10816
10817         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
10818         * gimple-low.c (expand_var_p): Don't check it.
10819         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
10820         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
10821         * tree-ssa-operands.c (add_stmt_operand): Likewise.
10822         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
10823         (find_referenced_vars): Don't call them.
10824         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
10825
10826 2004-07-16  Richard Henderson  <rth@redhat.com>
10827
10828         * function.c (pass_by_reference): True for all variable sized types.
10829
10830 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
10831
10832         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
10833         * tree-pretty-print.c: Include tree-chrec.h.
10834         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
10835         and POLYNOMIAL_CHREC nodes.
10836
10837 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
10838
10839         * builtins.c (expand_builtin_stpcpy): Do not create temporary
10840         reg with VOIDmode.
10841
10842 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
10843
10844         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
10845
10846 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
10847
10848         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
10849         to BASE_REGNUM.
10850         * config/s390/s390.c: Likewise.
10851         * config/s390/s390.h: Likewise.
10852
10853 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10854
10855         * config/mips/mips.md (addsi3, adddi3): Remove special handling
10856         of $sp adds.  Remove REGNO checks from mips16 patterns.
10857
10858 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10859
10860         * config/mips/mips.md: Delete outdated comment.
10861
10862 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10863
10864         * config/mips/mips.c (get_float_compare_codes): Delete.
10865         (mips_emit_compare): New function, mostly extracted from
10866         get_float_compare_codes and gen_conditional_branch.
10867         (gen_conditional_branch, gen_conditional_move): Use it.
10868
10869 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
10870
10871         * genautomata.c (add_vect): Speedup by using integers as
10872         bit-vectors for walking through the comb_vect and finding
10873         a match.
10874
10875 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10876
10877         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
10878         operand is an uns_arith_operand; use subtraction otherwise.
10879         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
10880         not just arith_operands.
10881
10882 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10883
10884         * config/mips/mips-protos.h (gen_int_relational): Delete.
10885         (mips_emit_scc): Declare.
10886         * config/mips/mips.c (internal_test): Delete.
10887         (sle_operand, sleu_operand): New functions.
10888         (map_test_to_internal_test, gen_int_relational): Delete.
10889         (mips_emit_binary, mips_relational_operand_ok_p)
10890         (mips_emit_int_relational, mips_zero_if_equal)
10891         (mips_emit_scc): New functions.
10892         (gen_conditional_branch): Rework to use mips_emit_int_relational.
10893         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
10894         sleu_operand.
10895         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
10896         (sltu, sleu): Use mips_emit_scc.
10897         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
10898         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
10899         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
10900
10901 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10902
10903         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
10904
10905 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10906
10907         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
10908         (*sne_[sd]i): Likewise sne_[sd]i_zero.
10909         (*sgt_[sd]i): ...and sgt_[sd]i.
10910         (*slt_[sd]i): ...and slt_[sd]i.
10911         (*sgtu_[sd]i): ...and sgtu_[sd]i.
10912         (*sltu_[sd]i): ...and sltu_[sd]i.
10913         (*sleu_[sd]i): ...and sleu_[sd]i_const.
10914         Name previously unnamed mips16 patterns.  Formatting fixes.
10915
10916 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10917
10918         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
10919         (branch_type): Delete.
10920         (gen_conditional_branch, gen_conditional_move)
10921         (mips_gen_conditional_trap): Update after name change.  Get the
10922         comparison mode from cmp_operands[0].
10923         * config/mips/mips.h (cmp_type, branch_type): Delete.
10924         (cmp_operands): Renamed from branch_cmp.
10925         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
10926         name change.  Don't set branch_type.
10927         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
10928         mode class of cmp_operands[0] rather than branch_type.  Update after
10929         name change.
10930
10931 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10932
10933         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
10934         of 0...255 to 0 when inside a SET.
10935
10936 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10937
10938         * config/mips/mips.md: Remove mips16 define_peepholes.
10939
10940 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
10941
10942         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
10943         (fini_pre): Remove fake edges.
10944
10945 2004-07-15  Richard Henderson  <rth@redhat.com>
10946
10947         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
10948         (get_indirect_ref_operands, get_call_expr_operands): ... these.
10949
10950 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
10951
10952         * vec.h (VEC_address): New function.
10953
10954 2004-07-14  Jason Merrill  <jason@redhat.com>
10955
10956         PR middle-end/15885
10957         * gimplify.c (gimplify_arg): New fn, split out from...
10958         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
10959
10960 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
10961
10962         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
10963         generate code which is generated by pushqi1 now
10964         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
10965
10966 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
10967
10968         * combine.c (simplify_set): match the mode of the constant 0 with
10969         the tested operand to match the compare behaviour and the
10970         simplify_relational_operation() expectation.
10971
10972 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
10973
10974         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
10975         ("bordered"): Same.
10976
10977 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
10978
10979         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
10980         unconditionally.
10981         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
10982
10983 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
10984
10985         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
10986         calls in mips16 code.
10987
10988 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
10989
10990         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
10991         the destination of the li as well as for the neg.
10992
10993 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
10994
10995         g++/15861
10996         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
10997         * cgraph.h: Update declaration.
10998         * c-decl.c (build_cdtor): Update call with default priority.
10999         * coverage.c (create_coverage): Ditto.
11000         * tree-mudflap.c (mf_init_fndecl): New tree.
11001         (mudflap_init): Set it.
11002         (mudflap_register_call): Arrange to call __mf_init before the first
11003         __mf_register call.
11004         (mudflap_finish_file): Mark the mudflap static initializer as extra
11005         high priority, to beat all C++ static constructors.
11006
11007 2004-07-15  Jeff Law  <law@redhat.com>
11008
11009         * loop.c (check_insn_for_givs): Restore check for code labels that was
11010         accidentally deleted by a recent checkin.
11011
11012 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
11013
11014         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
11015         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
11016
11017 2004-07-14  Richard Henderson  <rth@redhat.com>
11018
11019         * print-tree.c (print_node): Fix casts last change.
11020
11021 2004-07-15  Paul Brook  <paul@codesourcery.com>
11022
11023         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
11024         to TARGET_UNWIND_INFO.
11025         * except.c (output_function_exception_table): Ditto.
11026         * except.h: Ditto.
11027         * opts.c (decode_options): Ditto.
11028         * passes.c (rest_of_handle_final): Ditto.
11029         * final.c (final_start_function): Ditto.
11030         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
11031         target hook.
11032         * targhooks.h (default_unwind_emit): Declare.
11033         * targhooks.c (default_unwind_emit): New function.
11034         * target-def.h: Define and use TARGET_UNWIND_EMIT.
11035         * target.h (struct gcc_target): Add unwind_emit.
11036         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
11037         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
11038         Remove IA64_UNWIND_EMIT.
11039         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
11040
11041 2004-07-14  Richard Henderson  <rth@redhat.com>
11042
11043         * print-tree.c (print_node): Handle SSA_NAME.
11044
11045 2004-07-14  James E Wilson  <wilson@specifixinc.com>
11046
11047         PR target/16325
11048         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
11049         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
11050
11051 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
11052
11053         * expr.c (expand_assignment): Reenable bitfield += optimizations.
11054         Use alias set 0 for memory, do proper mode calculations and adjust
11055         address for memories.
11056
11057 2004-07-14  Per Bothner  <per@bothner.com>
11058
11059         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
11060         structure with extra column field.
11061         * tree.c (expand_location):  Also fill in column field.
11062         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
11063         gets confused by the two conditionally-compiled definitions.
11064
11065 2004-07-14  Eric Christopher  <echristo@redhat.com>
11066
11067         * calls.c (expand_call): Fix typo in comment.
11068
11069 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
11070
11071         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
11072         comparision of TFmode.
11073
11074 2004-07-14  Richard Henderson  <rth@redhat.com>
11075
11076         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
11077         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
11078         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
11079         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11080         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
11081         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11082         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
11083         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
11084         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
11085
11086 2004-07-14  Mike Stump  <mrs@apple.com>
11087
11088         * config/darwin.h (WINT_TYPE): Define to be int to match
11089         system header files.
11090
11091 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
11092
11093         * config/xtensa/xtensa.c (function_arg_advance): Check for args
11094         that must be passed in the stack.
11095         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
11096         arguments if the size is not a constant.
11097
11098 2004-07-14  Per Bothner  <per@bothner.com>
11099
11100         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
11101         instead of EXPR_LOCUS in a boolean context, which is always true
11102         if --enable-mapped-location.
11103         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
11104
11105 2004-07-14  Richard Henderson  <rth@redhat.com>
11106
11107         * dominance.c (struct dom_info): Add fake_exit_edge.
11108         (init_dom_info): Allocate it.
11109         (free_dom_info): Free it.
11110         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
11111         in two passes.
11112         (calc_idoms): Honor fake_exit_edge.
11113
11114 2004-07-13  Jason Merrill  <jason@redhat.com>
11115
11116         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
11117         (rhs_test_for): New fn.
11118         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
11119         * tree-gimple.h: Declare them.
11120         * gimplify.c (gimplify_modify_expr): Use the new fns.
11121
11122 2004-07-14  Richard Henderson  <rth@redhat.com>
11123
11124         * config/arm/arm-protos.h (arm_va_arg): Remove.
11125         * config/arm/arm.c (arm_va_arg): Remove.
11126         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
11127         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
11128
11129 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11130
11131         * pa.c (fix_range): New function to mark a range(s) of registers as
11132         fixed registers.
11133         (override_options): Call fix_range if the -mfixed-range option string
11134         is not empty.
11135         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
11136         * doc/invoke.texi (-mfixed-range): Document new option.
11137
11138 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
11139
11140         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
11141         for TARGET_64BIT.
11142         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
11143
11144 2004-07-14  Roger Sayle  <roger@eyesopen.com>
11145
11146         * expmed.c (expand_sdiv_pow2): New function to expand signed division
11147         by a positive power of two, split out from expand_divmod.  Provide
11148         an alternate implementation when shifts are expensive.  Lower the
11149         threshold for using a branchless implementation to BRANCH_COST >= 2.
11150         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
11151
11152 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
11153
11154         * tree-dfa.c (make_rename_temp): *Really* work just
11155         like create_tmp_var if called while outside SSA form.
11156
11157 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
11158
11159         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
11160         for division by zero.
11161         ("umodsi3"): Likewise.
11162
11163 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
11164
11165         * config/mips/mips.c (mips_output_move): When generating mips16 code,
11166         force loads of negative constants to be split.
11167         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
11168         Generalize SImode li/neg splitter to cope with other modes.
11169
11170 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
11171
11172         * expmed.c: Remove more references to QUEUED in the comments.
11173         * expr.c: Likewise.
11174
11175 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
11176
11177         Revert:
11178         2004-07-13  Richard Henderson  <rth@redhat.com>
11179         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
11180         correctly.
11181
11182 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
11183
11184         * tree-dfa.c (make_rename_temp): Work just like
11185         create_tmp_var if called while outside SSA form.
11186
11187 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
11188
11189         * expr.c (enqueue_insn, finish_expr_for_function,
11190         protect_from_queue, queued_subexp_p, mark_queue,
11191         emit_insns_enqueued_after_mark, emit_queue,
11192         expand_increment): Remove.
11193         (store_constructor): Expand increment as an assignment.
11194         (expand_expr_real_1 <case PREINCREMENT_EXPR,
11195         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
11196         case POSTDECREMENT_EXPR>): Abort.
11197         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
11198         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
11199         protect_from_queue, emit_queue, queued_subexp_p): Remove.
11200         * function.h (pending_chain, x_pending_chain): Remove.
11201         * rtl.def (QUEUED): Remove.
11202
11203         * emit-rtl.c (copy_insn_1, copy_most_rtx,
11204         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
11205         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
11206         encode_units_mask): Likewise.
11207         * local-alloc.c (equiv_init_varies_p): Likewise.
11208         * rtl.c (copy_rtx): Likewise.
11209         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
11210         * simplify-rtx.c (simplify_gen_subreg): Likewise.
11211         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
11212
11213         * builtins.c (expand_builtin, expand_builtin_apply,
11214         expand_builtin_mathfn, expand_builtin_mathfn_2,
11215         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
11216         Remove calls to emit_queue and protect_from_queue.
11217         * calls.c (expand_call, precompute_arguments,
11218         precompute_register_parameters, rtx_for_function_call,
11219         store_one_arg): Likewise.
11220         * dojump.c (do_compare_and_jump, do_jump): Likewise.
11221         * explow.c (memory_address): Likewise.
11222         * expmed.c (clear_by_pieces_1, clear_storage,
11223         clear_storage_via_libcall, emit_group_load,
11224         emit_group_store, emit_store_flag,
11225         expand_expr_real_1, store_by_pieces,
11226         store_constructor, store_expr, try_casesi,
11227         try_tablejump): Likewise.
11228         * function.c (expand_pending_sizes): Likewise.
11229         * optabs.c (emit_cmp_and_jump_insns,
11230         emit_conditional_add, emit_conditional_move,
11231         expand_fix, expand_float, prepare_cmp_insn): Likewise.
11232         * stmt.c (emit_case_bit_tests,
11233         expand_asm_expr, expand_computed_goto,
11234         expand_decl_init, expand_end_case_type,
11235         expand_end_stmt_expr, expand_expr_stmt_value,
11236         expand_return, expand_start_case,
11237         optimize_tail_recursion): Likewise.
11238         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
11239         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
11240
11241 2004-07-14  Ben Elliston  <bje@au.ibm.com>
11242
11243         * vec.h: Comment fix.
11244
11245 2004-07-13  Richard Henderson  <rth@redhat.com>
11246
11247         * target.h (struct gcc_target): Add calls.pass_by_reference.
11248         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
11249         * function.c (pass_by_reference): Use the hook.
11250         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
11251         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
11252         (hook_pass_by_reference_must_pass_in_stack): New.
11253         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
11254         (alpha_pass_by_reference): New.
11255         (TARGET_PASS_BY_REFERENCE): New.
11256         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11257         * config/arc/arc.c (arc_pass_by_reference): New.
11258         (TARGET_PASS_BY_REFERENCE): New.
11259         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11260         (FUNCTION_ARG_CALLEE_COPIES): True.
11261         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
11262         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
11263         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
11264         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11265         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11266         * config/cris/cris.c (cris_pass_by_reference): New.
11267         (TARGET_PASS_BY_REFERENCE): New.
11268         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
11269         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
11270         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11271         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
11272         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11273         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
11274         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
11275         (frv_function_arg_pass_by_reference): Remove.
11276         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11277         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
11278         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
11279         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
11280         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11281         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
11282         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
11283         (ia64_pass_by_reference): Rename from
11284         ia64_function_arg_pass_by_reference.
11285         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11286         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11287         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
11288         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
11289         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
11290         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11291         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
11292         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
11293         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
11294         (m32r_pass_by_reference): Adjust prototype.  Make static.
11295         Handle mode sizes correctly.
11296         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11297         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
11298         (m68hc11_function_arg_pass_by_reference): Remove.
11299         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11300         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
11301         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
11302         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11303         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
11304         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
11305         (mips_va_arg): Use pass_by_reference.
11306         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
11307         Handle mode sizes correctly.
11308         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11309         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
11310         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
11311         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
11312         (mmix_pass_by_reference): Rename from
11313         mmix_function_arg_pass_by_reference.
11314         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11315         (FUNCTION_ARG_CALLEE_COPIES): True.
11316         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
11317         (mn10300_pass_by_reference): New.
11318         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11319         (FUNCTION_ARG_CALLEE_COPIES): True.
11320         * config/pa/pa.c (pa_pass_by_reference): New.
11321         (TARGET_PASS_BY_REFERENCE): New.
11322         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11323         (FUNCTION_ARG_CALLEE_COPIES): True.
11324         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
11325         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
11326         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
11327         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11328         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
11329         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
11330         (s390_pass_by_reference): Rename from
11331         s390_function_arg_pass_by_reference.
11332         (s390_function_arg_advance): Don't query pass-by-ref.
11333         (s390_function_arg): Likewise.
11334         (s390_gimplify_va_arg): Use pass_by_reference.
11335         (s390_call_saved_register_used): Likewise.
11336         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11337         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
11338         (shcompact_byref, sh_pass_by_reference): New.
11339         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11340         (SHCOMPACT_BYREF): Remove.
11341         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
11342         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
11343         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
11344         (sparc_gimplify_va_arg): Use pass_by_reference.
11345         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11346         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11347         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
11348         (v850_pass_by_reference): New.
11349         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11350         (FUNCTION_ARG_CALLEE_COPIES): True.
11351         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
11352         FUNCTION_ARG_PASS_BY_REFERENCE docs.
11353
11354 2004-07-14  Richard Henderson  <rth@redhat.com>
11355             Richard Sandiford  <rsandifo@redhat.com>
11356
11357         * config/mips/mips-protos.h (mips_va_arg): Delete.
11358         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
11359         * config/mips/mips.c: Include tree-gimple.h.
11360         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
11361         (mips_arg_info): Remove special handling of must_pass_in_stck args.
11362         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
11363         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
11364
11365 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
11366
11367         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
11368         arguments for COND_EXPR in big-endian adjustment code.
11369
11370 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11371
11372         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
11373         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
11374         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
11375         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
11376
11377 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
11378
11379         PR tree-optimization/16443
11380         * tree-ssa-alias.c: Add more description for
11381         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
11382         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
11383         clobbering of call-clobbered and addressable variables.  If
11384         there are any before aliases have been computed, add them.
11385
11386 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
11387
11388         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
11389         verification.
11390
11391 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
11392
11393         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
11394         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
11395         to the same type.
11396
11397 2004-07-13  Per Bothner  <per@bothner.com>
11398
11399         * collect2.c (main):  Handle --no-demangle and --demangle flags.
11400
11401 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
11402
11403         * Makefile.in (OBJS-common): Add tree-data-ref.o.
11404         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
11405         (tree-data-ref.o): New rule.
11406         * lambda.h: New file.
11407         * tree-data-ref.c: New file.
11408         * tree-data-ref.h: New file.
11409         * tree.c (int_cst_value, tree_fold_gcd): New functions.
11410         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
11411
11412 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11413
11414         PR target/13926
11415         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
11416         * config/sparc/sparc.c (output_ubranch): New function.
11417         * config/sparc/sparc.md (jump pattern): Use it.
11418
11419 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11420
11421         PR target/16494
11422         * config/sparc/sparc.c (output_cbranch): Properly guard
11423         the code handling far branches with TARGET_V9.
11424         * config/sparc/sparc.md (length attribute): Document the
11425         side-effect of having a length greater or equal to 3.
11426
11427 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11428             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
11429
11430         PR target/15186
11431         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
11432         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
11433
11434 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11435             Martin Sebor  <sebor@roguewave.com>
11436
11437         PR target/12602
11438         * doc/invoke.texi (SPARC options): Document -threads
11439         and -pthreads on Solaris.
11440
11441 2004-07-13  Richard Henderson  <rth@redhat.com>
11442
11443         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
11444         by reference.
11445         (ind_gimplify_va_arg_expr): Remove.
11446         * tree.h (ind_gimplify_va_arg_expr): Remove.
11447         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
11448         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
11449         argsp to be null.
11450
11451         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
11452         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
11453         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
11454         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
11455         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
11456
11457 2004-07-13  Richard Henderson  <rth@redhat.com>
11458
11459         * function.c (pass_by_reference): New.
11460         (assign_parm_find_data_types): Use it.
11461         * calls.c (initialize_argument_information): Likewise.
11462         (emit_library_call_value_1): Likewise.
11463         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
11464         * function.h (pass_by_reference): Declare.
11465
11466 2004-07-13  Richard Henderson  <rth@redhat.com>
11467
11468         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
11469         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
11470         * expr.h (MUST_PASS_IN_STACK): Remove.
11471         * system.h (MUST_PASS_IN_STACK): Poison.
11472         * tree.h (must_pass_in_stack_var_size): Declare.
11473         (must_pass_in_stack_var_size_or_pad): Declare.
11474         * calls.c (must_pass_in_stack_var_size): New.
11475         (must_pass_in_stack_var_size_or_pad): Rename from
11476         default_must_pass_in_stack.
11477         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
11478         (TARGET_MUST_PASS_IN_STACK): New.
11479         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
11480         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
11481         (TARGET_MUST_PASS_IN_STACK): New.
11482         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
11483         * config/frv/frv.c (frv_must_pass_in_stack): New.
11484         (TARGET_MUST_PASS_IN_STACK): New.
11485         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
11486         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
11487         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
11488         (ix86_must_pass_in_stack): Make static.
11489         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
11490         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
11491         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
11492         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
11493         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
11494         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
11495         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
11496         (mcore_must_pass_on_stack): Remove.
11497         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
11498         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
11499         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
11500         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
11501         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
11502         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
11503         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
11504         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
11505         (TARGET_MUST_PASS_IN_STACK): New.
11506         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
11507         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
11508         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
11509         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
11510         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
11511         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
11512         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
11513         MUST_PASS_IN_STACK.
11514
11515         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
11516         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
11517         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
11518         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
11519         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
11520         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
11521         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
11522         config/xtensa/xtensa.c: Use target hook.
11523
11524 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
11525
11526         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
11527         * configure: Rebuilt.
11528
11529 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
11530
11531         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
11532         * config/mips/mips.h (mips_reg_names): Don't declare.
11533         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
11534         (TARGET_NAME_REGS): Delete.
11535         (TARGET_SWITCHES): Remove -mrnames.
11536         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
11537         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
11538         in REGISTER_NAMES.
11539         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
11540         (override_options): Remove handling of TARGET_NAME_REGS.
11541
11542 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
11543
11544         * config/mips/mips.h (TARGET_*): Boolify.
11545
11546 2004-07-12  Nick Clifton  <nickc@redhat.com>
11547
11548         * config.gcc: Add sh-*-symbianelf target.
11549         * config/sh/sh.c: Add new target macros:
11550         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
11551         TARGET_CXX_IMPORT_EXPORT_CLASS.
11552         (sh_file_start): Create a definition of the .directive section.
11553         (sh_attribute): Add dllimport and dllexport attributes.
11554         * config/sh/symbian-pre.h: New file.
11555         * config/sh/symbian-post.h: New file.
11556         * config/sh/symbian.c: New file. Contains Symbian specific
11557         functions.
11558         * config/sh/sh-protos.h: Add prototypes for new functions
11559         provided by symbian.c.
11560         * config/sh/t-symbian: New file.
11561         * doc/extend.texi: Document support for dllimport and dllexport
11562         attributes by the sh-symbianelf target.
11563
11564 2004-07-12  James E Wilson  <wilson@specifixinc.com>
11565
11566         * Makefile.in (AR): Use @AR@ not ar.
11567         (NM): New.
11568         (AR_FOR_TARGET): Use $(AR) not ar for native.
11569         (NM_FOR_TARGET): Use $(NM) not nm for native.
11570         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
11571         * configure: Regenerate.
11572
11573 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
11574
11575         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
11576         special case.
11577         (ashldi3_sp64): Likewise.
11578
11579 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11580
11581         PR target/16477
11582         * pa.c (function_arg): Update comment.
11583         * pa.h (BLOCK_REG_PADDING): Define.
11584
11585 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11586
11587         PR tree-optimization/16461
11588         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
11589         arguments of phi nodes.
11590
11591 2004-07-12  Devang Patel  <dpatel@apple.com>
11592
11593         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
11594
11595 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
11596
11597         * function.c (expand_function_start): Ensure r_save is in Pmode.
11598         * calls.c (prepare_call_address): Ensure static_chain_value is
11599         in Pmode.
11600         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
11601         r_save_area are in Pmode.
11602         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
11603         fnaddr, and static_chain are in Pmode.
11604
11605 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
11606
11607         PR target/16445
11608         * config/ia64/ia64.c (bundling): Don't count ignored insns.
11609
11610 2004-07-12  Richard Henderson  <rth@redhat.com>
11611
11612         * target.h (struct gcc_target): Move gimplify_va_arg_expr
11613         next to build_builtin_va_list.
11614         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
11615         * builtins.c (gimplify_va_arg_expr): Likewise.
11616         * gimplify.c (copy_if_shared_r): Likewise.
11617
11618 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
11619
11620         * passes.c (rest_of_decl_compilation): Don't defer call of
11621         assemble_variable if its DECL_RTL is already set.
11622
11623 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
11624
11625         * cfgloop.h (struct loop): Add nb_iterations field.
11626         (current_loops): Declare.
11627         * tree-chrec.c (chrec_not_analyzed_yet,
11628         chrec_dont_know, chrec_known, count_ev_in_wider_type,
11629         chrec_contains_symbols_defined_in_loop): Remove the temporary
11630         hooks.
11631         * tree-flow-inline.h (loop_containing_stmt): New function.
11632         * tree-scalar-evolution.c: Add implementation.
11633         * tree-scalar-evolution.h: Add declarations.
11634
11635 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
11636
11637         PR rtl-optimization/15921
11638         * Makefile.in (global.o): Add recog.h.
11639
11640         * global.c (recog.h): Add the include-clause.
11641         (bb_info): New member earlyclobber.
11642         (allocate_bb_info, free_bb_info): Initialize/finish the new
11643         member.
11644         (earlyclobber_regclass, earlyclobber_regclass_length): The new
11645         global variables.
11646         (check_earlyclobber, regclass_intersect,
11647         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
11648         New functions.
11649         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
11650         (make_accurate_live_analysis): Modify pavin.
11651
11652 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
11653
11654         * tree-cfg.c (find_taken_edge): Statically compute the truth
11655         value of a predicate comparing an SSA_NAME to itself.
11656
11657 2004-07-12  Roger Sayle  <roger@eyesopen.com>
11658
11659         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
11660         rs6000 doesn't have shift-and-add or shift-and-sub instructions
11661         by returning the cost of a multiplication plus an addition.
11662
11663 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
11664
11665         PR tree-optimization/14107
11666         * gimplify.c (gimplify_return_expr): Accept a
11667         RETURN_EXPR with an error argument.
11668         * tree-optimize.c (init_tree_optimization_passes):
11669         Run pass_warn_function_return at -O0.
11670
11671 2004-07-12  Roger Sayle  <roger@eyesopen.com>
11672
11673         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
11674         index entry.
11675
11676 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
11677
11678         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
11679         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
11680         * config/mips/3000.md: Add copyright notice.  Remove automota and
11681         function units; use generic ones instead.  Only define reservations
11682         for things that are different from generic.md.  Extend each clause
11683         to include r3900.
11684         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
11685         * config/mips/mips.md: Include them. Remove define_function_units.
11686         (alu, imuldiv): New automata and units.
11687
11688 2004-07-12  Ben Elliston  <bje@au.ibm.com>
11689
11690         * doc/invoke.texi (Optimize Options): Document -frename-registers
11691         not being enabled by default at -O3.
11692
11693 2004-07-11  Roger Sayle  <roger@eyesopen.com>
11694
11695         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
11696         floating point additions, to keep real immediate constant positive.
11697         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
11698         into X + C, and leave positive real constants as X - C.
11699
11700 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11701
11702         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
11703
11704 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11705
11706         PR tree-optimization/15654
11707         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
11708
11709 2004-07-11  Roger Sayle  <roger@eyesopen.com>
11710
11711         * builtins.c (fold_builtin_fputs): Don't bother converting the
11712         return type to integer_type_node, as we've already checked that
11713         the result will be ignored.
11714
11715         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
11716         that signed addition, subtraction, multiplication, division,
11717         remainder, negation and absolute value may potentially trap.
11718
11719         * fold-const.c (fold_ignored_result): New function to strip
11720         non-side-effecting tree nodes from an expression whose result
11721         is ignored.
11722         (fold_convert): Call fold_ignored_result when casting a value
11723         to VOID_TYPE.
11724         (omit_one_operand):  Call fold_ignored_result on the "omitted"
11725         operand when building a COMPOUND_EXPR.
11726         (pedantic_omit_one_operand): Likewise.
11727         * tree.h (fold_ignored_result): Prototype here.
11728         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
11729         when we're going to ignore the result.
11730
11731 2004-07-11  Richard Henderson  <rth@redhat.com>
11732
11733         PR tree-opt/16383
11734         * tree-ssa-ccp.c (fold_stmt_r): Split out...
11735         * tree.c (fields_compatible_p, find_compatible_field): ... new.
11736         * tree.h (fields_compatible_p, find_compatible_field): Declare.
11737         * tree-sra.c (sra_hash_tree): Hash fields by offset.
11738         (sra_elt_eq): Use fields_compatible_p.
11739         (generate_one_element_ref): Use find_compatible_field.
11740
11741 2004-07-11  Richard Henderson  <rth@redhat.com>
11742
11743         PR tree-opt/16422
11744         * tree-sra.c (generate_one_element_init): New.
11745         (generate_element_init): Use it.
11746         (scalarize_init): Push/pop gimplify context around it.
11747         (find_new_referenced_vars_1, find_new_referenced_vars): New.
11748         * gimplify.c (gimplify_expr): Allow SSA_NAME.
11749
11750 2004-07-11  Roger Sayle  <roger@eyesopen.com>
11751
11752         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
11753         combine.c's combine_insn_cost.
11754         * rtl.h (insn_rtx_cost): Prototype here.
11755         * combine.c (combine_insn_cost): Delete function.
11756         (combine_validate_cost): Update callers of combine_insn_cost to
11757         call insn_rtx_cost instead.
11758         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
11759         requesting the rtx_cost of call and/or jump instructions.
11760
11761         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
11762         rtx_cost directly.  Don't request/use the cost of call or jump
11763         instructions.  Return -1 if the cost of any instruction can't be
11764         determined (or the BB contains a function call).
11765         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
11766         -1 (i.e. can't determine the cost of any instruction or the basic
11767         block contains a subroutine call).
11768         (find_if_case_2): Likewise.
11769
11770 2004-07-11  Roger Sayle  <roger@eyesopen.com>
11771
11772         * rs6000.c (struct processor_costs): Change semantics of fields to
11773         include the COST_N_INSNS scaling, and update all initializers.
11774         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
11775         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
11776         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
11777         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
11778
11779 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11780
11781         * LANGUAGES: Remove obsolete information.
11782
11783 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
11784
11785         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
11786         SIGBUS signal frames, the PSW address points *to* the faulting
11787         instruction, not after it.
11788
11789 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
11790
11791         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
11792         added to TLS symbol addresses.
11793
11794 2004-07-11  Richard Henderson  <rth@redhat.com>
11795
11796         * expmed.c (init_expmed): Use stack-local structures for
11797         temporary rtl.  Don't recognize shifts.
11798
11799 2004-07-11  Richard Henderson  <rth@redhat.com>
11800
11801         * expr.c (store_expr): Don't fiddle subreg promotion for types
11802         with precision smaller than the mode.
11803
11804 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11805
11806         * tree.h (all_types_permanent): Remove.
11807
11808 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11809
11810         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
11811         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
11812         * langhooks.c (lhd_clear_binding_stack): Remove.
11813         * langhooks-def.h (lhd_clear_binding_stack,
11814         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
11815         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
11816         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
11817         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
11818         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
11819         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
11820         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
11821         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
11822         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
11823         * tree.h (poplevel): Don't declare.
11824         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
11825         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
11826         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
11827         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
11828         Remove.
11829
11830 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11831
11832         PR tree-optimization/16437
11833         * c-common.c (shorten_compare): Don't mark result of conversion to
11834         narrower signed type as overflowing.
11835         * fold-const.c (decode_field_reference): Determine whether
11836         signedness comes from outer type using precision rather than size.
11837
11838 2004-07-11  Phil Edwards  <phil@codesourcery.com>
11839
11840         * configure.ac:  Alphabetize --enable-checking list, add
11841         missing valgrind entry.
11842         * configure:  Regenerate.
11843
11844 2004-07-11  Phil Edwards  <phil@codesourcery.com>
11845
11846         * doc/install.texi (Testing):  Fix syntax in "make check" example.
11847
11848 2004-07-10  James E Wilson  <wilson@specifixinc.com>
11849
11850         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
11851
11852 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11853
11854         PR rtl-optimization/16001
11855         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
11856         niter_expr.
11857
11858 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
11859
11860         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
11861
11862 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
11863             James Morrison  <phython@gcc.gnu.org>
11864
11865         * doc/contrib.texi (Contributors): Add gfortran contributors and
11866         fix a couple of typos.
11867
11868 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11869
11870         PR rtl-optimization/15387
11871         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
11872         to incoming args space correctly.
11873
11874 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11875
11876         * pa.c (output_indirect_call): Only use %r2 as the link register in
11877         indirect calls with the long PA 2.0 pc-relative branch.
11878
11879 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
11880
11881         * config/i386/i386.c (override_options): Pick a 64-bit CPU
11882         for the default tuning if TARGET_64BIT.
11883
11884 2004-07-10  Richard Henderson  <rth@redhat.com>
11885
11886         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
11887         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
11888
11889 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
11890
11891         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
11892         * expmed.c (store_bit_field, extract_bit_field): Remove last
11893         argument.
11894         * builtins.c (expand_builtin_signbit): Adjust callers.
11895         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
11896         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
11897         * ifcvt.c (noce_emit_move_insn): Likewise.
11898         * stmt.c (expand_return): Likewise.
11899         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
11900         store_field, expand_expr_real_1): Likewise.
11901
11902 2004-07-10  Richard Henderson  <rth@redhat.com>
11903
11904         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
11905
11906 2004-07-09  Mike Stump  <mrs@apple.com>
11907
11908         * config/darwin.c (no_dead_strip): Add.
11909         (HAVE_DEAD_STRIP): Add.
11910         (darwin_emit_unwind_label): Ensure that we don't dead code strip
11911         the .eh label.
11912
11913 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11914
11915         * tree-ssa-loop-im.c: New file.
11916         * Makefile.in (tree-ssa-loop-im.o): Add.
11917         * cfgloop.c (superloop_at_depth): New function.
11918         * cfgloop.h (superloop_at_depth): Declare.
11919         * common.opt (ftree-lim): New flag.
11920         * expr.c (array_ref_up_bound): New function.
11921         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
11922         * timevar.def (TV_LIM): New timevar.
11923         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
11924         computing immediate uses of a phi node.
11925         * tree-flow.h (struct tree_ann_common_d): Add aux field.
11926         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
11927         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
11928         * tree-pass.h (pass_lim): Declare.
11929         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
11930         functions.
11931         (pass_lim): New pass structure.
11932         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
11933         * tree.c (in_array_bounds_p): New function.
11934         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
11935         (in_array_bounds_p, array_ref_up_bound): Declare.
11936         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
11937         * doc/passes.texi (tree-ssa-loop-im.c): Document.
11938
11939 2004-07-09  Richard Henderson  <rth@redhat.com>
11940
11941         * builtins.c (expand_builtin_stpcpy): Don't modify len.
11942
11943         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
11944         with prejudice.
11945
11946 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
11947
11948         * flags.h: Delete redundant prototypes that are being generated
11949         in options.h from common.opt.
11950         * common.opt: Add in the expository comments formerly in flags.h.
11951
11952 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11953
11954         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
11955         available for use only when TARGET_MMX/_SSE is set, and check for
11956         variable argument function if any register count is non-zero.
11957         (function_arg): Correctly suppress repeated warnings for passing SSE
11958         vectors are arguments without SSE enabled.
11959         (ix86_function_arg_boundary): Without SSE enabled, the use of what
11960         would be SSE register modes does no longer influence the alignment.
11961
11962 2004-07-09  Richard Henderson  <rth@redhat.com>
11963
11964         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
11965         Always align upward to arg boundary.  Use size_in_bytes/round_up.
11966         Maintain type-correctness of constants.
11967         * stor-layout.c (round_up, round_down): Special-case powers of 2.
11968
11969 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
11970
11971         * config/sparc/sparc.c (*_costs): Scale instruction costs
11972         by COSTS_N_INSNS.
11973         (sparc_rtx_costs): Adjust as appropriate.
11974
11975 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11976
11977         * config/i386/mm3dnow.h: New.
11978         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
11979
11980 2004-07-09  Richard Henderson  <rth@redhat.com>
11981
11982         * simplify-rtx.c (simplify_const_relational_operation): Only
11983         look at bounds of scalar integers.
11984
11985 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11986
11987         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
11988
11989 2004-07-09  Andrew Pinski  <apinski@apple.com>
11990
11991         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
11992         always referenced.
11993         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
11994         UOBJC_METACLASS_decl.
11995
11996 2004-07-09  James E Wilson  <wilson@specifixinc.com>
11997
11998         PR target/16364
11999         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
12000         do return a parallel if hfa_mode == XFmode and mode == TImode.
12001
12002 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12003
12004         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
12005         permissible for unary plus.
12006
12007 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12008
12009         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
12010         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
12011         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
12012         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
12013         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
12014         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
12015         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
12016         (BUILTIN_xxxIMAX): New.
12017         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
12018         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
12019         BUILT_IN_PARITYIMAX.
12020
12021 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
12022
12023         * config/sparc/sparc.h (processor_costs): Define.
12024         (sparc_costs): Declare.
12025         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
12026         hypersparc_costs, sparclet_costs, ultrasparc_costs,
12027         ultrasparc3_costs): New.
12028         (sparc_override_options): Set sparc_costs as appropriate.
12029         (sparc_rtx_costs): Use sparc_costs instead of messy
12030         conditionals.
12031
12032 2004-07-09  Steven Bosscher  <stevenb@suse.de>
12033
12034         * doc/md.texi (Processor pipeline description): Mention that
12035         the old pipeline description is deprecated.
12036
12037         * config/rs6000/7450.md (automaton ppc7450): Split up, move
12038         mciu_7450 function unit to...
12039         (automaton ppc7450mciu): ...new automaton.
12040
12041         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
12042         (schedule_block): Don't consider inserting bubbles.
12043         (sched_init): Don't initialize DFA bubbles.
12044         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
12045         TARGET_SCHED_DFA_BUBBLE): Remove.
12046         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
12047         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
12048         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
12049
12050         * stmt.c (conditional_context): Remove prototype.
12051         * tree.h (conditional_context): Remove.
12052         * tree-cfg.c (pre_insert_on_edge): Remove.
12053
12054         * c-common.h (c_expand_asm_operands): Remove prototype.
12055         * c-typeck.c (c_expand_asm_operands): Remove.
12056
12057 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12058
12059         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
12060         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
12061         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
12062         and V8QI are class SSE. All sufficiently small remaining vector modes
12063         must be passed in one or two integer registers.
12064         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
12065         returned in memory.
12066         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
12067         __builtin_ia32_pmuludq128 have non-uniform argument and return types
12068         and must thus be handled explicitly.
12069         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
12070         MMX and XMM regs.
12071         (movv8qi_internal, movv4hi_internal, movv2si_internal,
12072         movv2sf_internal): Permit moving between MMX and XMM registers (since
12073         MMX areguments and return values are passed in XMM registers).
12074         (sse2_umulsidi3): Correct type and mode.
12075
12076 2004-07-09  Richard Henderson  <rth@redhat.com>
12077
12078         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
12079
12080 2004-07-09  Eric Christopher  <echristo@redhat.com>
12081
12082         * config/rs6000/40x.md: Split into two automatons.
12083
12084 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
12085             Andrew Pinski  <apinski@apple.com>
12086
12087         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
12088         on when we have more than one input file.
12089         (c_common_parse_file): Restore loop over all input files.
12090         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
12091
12092         * c-decl.c (set_type_context): New function.
12093         (pop_scope): Use it to set context of types.  When we
12094         encounter a TYPE_DECL, set the context of the attached type too.
12095         (pop_file_scope): Don't call cpp_undef_all here.
12096         (diagnose_mismatched_decls): Do not complain about a second
12097         definition of an 'extern inline' function if it's not in the
12098         same translation unit.  Do not complain about inline
12099         declaration after use if the use was in a different
12100         translation unit.
12101         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
12102         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
12103         the external scope.
12104         (pushdecl_top_level): Likewise.
12105         (grokdeclarator): Clarify what is going on with setting
12106         DECL_EXTERNAL on function types, a little.
12107         (c_write_global_declarations): Don't do anything if
12108         -fsyntax-only or errors have been encountered.
12109
12110 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
12111
12112         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
12113
12114 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12115
12116         PR target/16459
12117         * pa.c (output_indirect_call): Use %r2 as the link register when
12118         calling $$dyncall with a pc-relative branch.
12119
12120 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
12121
12122         * doc/install.texi (Binaries): Mention OpenPKG.
12123
12124 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
12125
12126         Fix PR tree-optimization/15555
12127         * tree-dfa.c (dump_variable): If the variable is a pointer
12128         SSA_NAME, also dump its points-to information.
12129         * tree-flow.h (struct ptr_info_def): Add field
12130         is_dereferenced.
12131         (dump_points_to_info_for): Declare.
12132         (debug_points_to_info_for): Declare.
12133         * tree-optimize.c (init_tree_optimization_passes): Add a
12134         second alias analysis pass after DOM2.
12135         Move pass_del_pta to a later spot.
12136         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
12137         create a name tags when we find a dereferenced pointer.  Just
12138         mark the pointer dereferenced.
12139         (collect_points_to_info_for): Move code to clear points-to
12140         information to create_name_tags.
12141         (create_name_tags): New function.
12142         (compute_flow_sensitive_aliasing): Call it.
12143         (setup_pointers_and_addressables): Mark type tags for renaming
12144         here instead of ...
12145         (create_memory_tag): ... here.
12146         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
12147         (dump_points_to_info_for): Declare extern.
12148         (debug_points_to_info_for): New function.
12149
12150 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
12151
12152         * config/arc/arc.md: Switch to DFA-based scheduler description.
12153         * config/arc/arc.c: Switch to DFA-based scheduler description.
12154
12155 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
12156
12157         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
12158         pointer.
12159
12160 2004-07-09  Richard Henderson  <rth@redhat.com>
12161
12162         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
12163         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12164         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
12165         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
12166
12167         * config/v850/v850-protos.h (v850_va_arg): Remove.
12168         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12169         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
12170         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
12171         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
12172         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
12173
12174 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
12175
12176         PR target/12133
12177         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
12178         and DImode to use +/-4k offset.
12179
12180 2004-07-09  Richard Henderson  <rth@redhat.com>
12181
12182         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
12183         Remove.
12184         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12185         (xstormy16_gimplify_va_arg_expr): Rewrite from
12186         xstormy16_expand_builtin_va_arg.
12187         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
12188
12189         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
12190         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
12191
12192         * config/sh/sh-protos.h (sh_va_arg): Remove.
12193         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12194         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
12195         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
12196
12197         * config/pa/pa-protos.h (hppa_va_arg): Remove.
12198         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12199         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
12200         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
12201
12202         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
12203         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12204         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
12205         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
12206
12207 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
12208
12209         * config/sparc/sparc.md (return): Rewrite length formula.
12210         * config/sparc/sparc.c (output_return): Pass 1 as 5th
12211         argument to final_scan_insn when in a delay slot.
12212         (output_sibcall): Likewise.
12213
12214 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
12215
12216         * arm.c (arm_cpp_interwork): New variable.
12217         (arm_override_options): Set it if TARGET_INTERWORK was on the command
12218         line.
12219         * arm.h (arm_cpp_interwork): Declare it.
12220         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
12221         __THUMB_INTERWORK__ in the preprocessor.
12222
12223 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
12224
12225         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
12226
12227 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
12228
12229         PR target/16416
12230         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
12231         Override default settings to account for -m32 and -m64.
12232
12233 2004-07-08  Randolph Chung  <tausq@debian.org>
12234
12235         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
12236
12237 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
12238
12239         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
12240         before comparing it as such.
12241
12242 2004-07-08  Richard Henderson  <rth@redhat.com>
12243
12244         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
12245         temporary.  Use bit arithmetic to align.
12246
12247 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
12248
12249         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
12250         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
12251         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
12252         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
12253         add_labels_and_missing_jumps, find_jump_block,
12254         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
12255         Likewise.
12256         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
12257         link_btr_uses, move_btr_def): Likewise.
12258         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
12259         expand_builtin_expect_jump): Likewise.
12260         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
12261         * calls.c (expand_call, emit_library_call_value_1): Likewise.
12262         * cfganal.c (forwarder_block_p): Likewise.
12263         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
12264         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
12265         find_bb_boundaries): Likewise.
12266         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
12267         merge_blocks_move_predecessor_nojumps,
12268         merge_blocks_move_successor_nojumps, insns_match_p,
12269         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
12270         try_optimize_cfg): Likewise.
12271         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
12272         * cfglayout.c (skip_insns_after_block, label_for_bb,
12273         record_effective_endpoints, insn_locators_initialize,
12274         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
12275         * cfgmainloop.c (create_loop_notes): Likewise.
12276         * cfgrtl.c (delete_insn, delete_insn_chain,
12277         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
12278         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
12279         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
12280         redirect_branch_edge, force_nonfallthru_and_redirect,
12281         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
12282         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
12283         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
12284         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
12285         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
12286         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
12287         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
12288         * combine.c (combine_instructions, can_combine_p, try_combine,
12289         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
12290         distribute_notes, distribute_links, insn_cuid): Likewise.
12291         * cse.c (fold_rtx, cse_insn, cse_around_loop,
12292         invalidate_skipped_block, cse_set_around_loop,
12293         cse_end_of_basic_block, cse_main, cse_basic_block,
12294         cse_condition_code_reg): Likewise.
12295         * cselib.c (cselib_process_insn): Likewise.
12296         * ddg.c (create_ddg): Likewise.
12297         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
12298         Likewise.
12299         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
12300         gen_label_die, dwarf2out_var_location): Likewise.
12301         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
12302         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
12303         last_call_insn, active_insn_p, next_label, prev_label,
12304         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
12305         add_insn_before, remove_insn, add_function_usage_to,
12306         reorder_insns, find_line_note, remove_unnecessary_notes,
12307         emit_insn_after_1, classify_insn): Likewise.
12308         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
12309         connect_post_landing_pads, sjlj_mark_call_sites,
12310         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
12311         can_throw_internal, can_throw_external, set_nothrow_function_flags,
12312         convert_to_eh_region_ranges): Likewise.
12313         * explow.c (optimize_save_area_alloca): Likewise.
12314         * expr.c (expand_expr_real): Likewise.
12315         * final.c (insn_current_reference_address, compute_alignments,
12316         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
12317         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
12318         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
12319         propagate_block_delete_insn, propagate_one_insn,
12320         init_propagate_block_info, propagate_block, libcall_dead_p,
12321         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
12322         Likewise.
12323         * function.c (instantiate_virtual_regs, reorder_blocks_1,
12324         expand_function_start, expand_function_end, contains,
12325         thread_prologue_and_epilogue_insns,
12326         reposition_prologue_and_epilogue_notes): Likewise.
12327         * gcse.c (constprop_register, bypass_conditional_jumps,
12328         insert_insn_end_bb, gcse_after_reload): Likewise.
12329         * genemit.c (gen_expand, gen_split): Likewise.
12330         * genpeep.c (gen_peephole, main): Likewise.
12331         * global.c (build_insn_chain): Likewise.
12332         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
12333         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
12334         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
12335         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
12336         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
12337         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
12338         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
12339         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
12340         dead_or_predicable): Likewise.
12341         * integrate.c (try_constants): Likewise.
12342         * jump.c (rebuild_jump_labels, cleanup_barriers,
12343         purge_line_number_notes, init_label_info, mark_all_labels,
12344         squeeze_notes, get_label_before, get_label_after,
12345         reversed_comparison_code_parts, simplejump_p, pc_set,
12346         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
12347         delete_barrier, delete_prior_computation, delete_computation,
12348         delete_related_insns, delete_for_peephole, redirect_jump):
12349         Likewise.
12350         * lcm.c (optimize_mode_switching): Likewise.
12351         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
12352         Likewise.
12353         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
12354         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
12355         * loop-iv.c (simplify_using_assignment): Likewise.
12356         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
12357         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
12358         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
12359         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
12360         check_insn_for_givs, check_final_value, update_giv_derive,
12361         basic_induction_var, product_cheap_p, check_dbra_loop,
12362         loop_insn_first_p, last_use_this_basic_block,
12363         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
12364         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
12365         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
12366         sms_schedule_by_order): Likewise.
12367         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
12368         * postreload.c (reload_cse_simplify_operands, reload_combine,
12369         reload_cse_move2add): Likewise.
12370         * predict.c (can_predict_insn_p, estimate_probability,
12371         expected_value_to_br_prob, process_note_predictions): Likewise.
12372         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
12373         * profile.c (branch_prob): Likewise.
12374         * ra-build.c (live_out_1, livethrough_conflicts_bb,
12375         detect_webs_set_in_cond_jump): Likewise.
12376         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
12377         ra_print_rtl_with_bb): Likewise.
12378         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
12379         * recog.c (next_insn_tests_no_inequality, find_single_use,
12380         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
12381         * reg-stack.c (next_flags_user, record_label_references,
12382         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
12383         compensate_edge, convert_regs_1): Likewise.
12384         * regclass.c (scan_one_insn): Likewise.
12385         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12386         regmove_optimize, fixup_match_1, single_set_for_csa,
12387         combine_stack_adjustments_for_block): Likewise.
12388         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
12389         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
12390         find_equiv_reg): Likewise.
12391         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
12392         reload_as_needed, emit_input_reload_insns, do_output_reload,
12393         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
12394         Likewise.
12395         * reorg.c (find_end_label, emit_delay_sequence,
12396         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
12397         get_jump_flags, rare_destination, mostly_true_jump,
12398         try_merge_delay_insns, redundant_insn, own_thread_p,
12399         fill_simple_delay_slots, fill_slots_from_thread,
12400         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
12401         dbr_schedule): Likewise.
12402         * resource.c (find_basic_block, next_insn_no_annul,
12403         find_dead_or_set_registers, mark_target_live_regs): Likewise.
12404         * rtl.h (RTX_PREV): Likewise.
12405         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
12406         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
12407         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
12408         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
12409         tablejump_p, computed_jump_p, insns_safe_to_move_p,
12410         find_first_parameter_load, can_hoist_insn_p): Likewise.
12411         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
12412         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
12413         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
12414         schedule_ebbs): Likewise.
12415         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
12416         is_conditionally_protected, can_schedule_ready_p,
12417         add_branch_dependences, debug_dependencies): Likewise.
12418         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
12419         Likewise.
12420         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
12421         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
12422         set_dominates_use, ujump_to_loop_cont): Likewise.
12423         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
12424         * varasm.c (output_constant_pool_1): Likewise.
12425
12426 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12427
12428         * tree-scalar-evolution.c: New file.
12429         * tree-scalar-evolution.h: New file.
12430         * tree-ssa-loop-niter.c: New file.
12431         * Makefile.in (SCEV_H): New.
12432         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
12433         * cfgloop.h (struct loop): Add bounds field.
12434         * tree-flow.h (struct tree_niter_desc): New type.
12435         (number_of_iterations_cond, number_of_iterations_exit,
12436         loop_niter_by_eval, find_loop_niter_by_eval,
12437         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
12438         free_numbers_of_iterations_estimates): Declare.
12439         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
12440         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
12441         * doc/invoke.texi (max-iterations-to-track): Document.
12442
12443 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
12444
12445         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
12446         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
12447         (MODE_AFTER): Add cast appropriately.
12448         * config/sh/sh.md (movdi splitter): Likewise.
12449         (casesi_worker_2): Add const qualifier appropriately.
12450         (eh_return): Remove unused variable.
12451         (insv): Initialize v;
12452
12453 2004-07-08  Richard Henderson  <rth@redhat.com>
12454
12455         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
12456         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12457         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
12458         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
12459         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
12460
12461         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
12462         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12463         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
12464         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
12465
12466         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
12467         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12468         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
12469         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
12470
12471         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
12472         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12473         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
12474         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
12475
12476         * config/i860/i860-protos.h (i860_va_arg): Remove.
12477         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12478         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
12479         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
12480
12481 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
12482
12483         * system.h: Prototype getpagesize if missing.
12484         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
12485         * configure: Regenerate.
12486         * config.in: Regenerate.
12487
12488 2004-07-08  Richard Henderson  <rth@redhat.com>
12489
12490         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
12491         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12492         (fr30_gimplify_va_arg_expr): New.
12493         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
12494         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
12495
12496 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
12497
12498         PR target/16414
12499         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
12500         of asm_noperands result.
12501
12502 2004-07-08  Richard Henderson  <rth@redhat.com>
12503
12504         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
12505         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12506         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
12507         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
12508
12509 2004-07-08  Richard Henderson  <rth@redhat.com>
12510
12511         * builtins.c (ind_gimplify_va_arg_expr): New.
12512         * tree.h (ind_gimplify_va_arg_expr): Declare.
12513         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
12514
12515 2004-07-08  Jan Beulich  <jbeulich@novell.com>
12516
12517         * expmed.c (extract_bit_field): Correct condition to use vec_extract
12518         patterns also on vector elements other than the first one.
12519         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
12520         break statements.
12521
12522 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
12523
12524         * config/rs6000/darwin-ldouble.c: Correct reference
12525         to the Linnainmaa paper.
12526
12527 2004-07-08  Richard Henderson  <rth@redhat.com>
12528
12529         * config/arc/arc-protos.h (arc_va_arg): Remove.
12530         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12531         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
12532         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
12533
12534         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
12535         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
12536         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
12537         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
12538
12539 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12540
12541         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
12542
12543 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
12544
12545         * c-decl.c (static_ctors, static_dtors): Make static.
12546         (pop_file_scope): Call c_common_write_pch and
12547         cgraph_finalize_compilation_unit here.
12548         (build_cdtor): Moved here from c-objc-common.c; simplify.
12549         (c_write_global_declarations_1): Clarify comment.
12550         (c_write_global_declarations): Close the external scope before
12551         doing anything else.  Call build_cdtor, cgraph_optimize, and
12552         mudflap_finish_file here.
12553         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
12554         Clarify comment.
12555         * c-objc-common.c: No need to include cgraph.h.
12556         (build_cdtor): Moved to c-decl.c.
12557         (c_objc_common_finish_file): Delete.
12558         * c-tree.h: Update to match.
12559         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
12560         (generate_static_references): Set TREE_USED before calling finish_decl.
12561         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
12562         on the static_instances_decl.
12563
12564 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
12565
12566         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
12567         decls when there is only one input translation unit.
12568         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
12569         change of 2004-07-05; do not treat declarations with
12570         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
12571         * opts.c (cur_in_fname): Delete.
12572         * opts.h: Likewise.
12573         * tree.c: Revert changes of 2004-07-05; no special treatment
12574         for TRANSLATION_UNIT_DECLs.
12575         * Makefile.in (tree.o): Update dependencies.
12576
12577 2004-07-08  Roger Sayle  <roger@eyesopen.com>
12578
12579         * builtins.c (fold_builtin_strcpy): Merge functionality from
12580         simplify_builtin_strcpy.  Add additional len argument.  No longer
12581         static.  Remove function prototype.
12582         (fold_builtin_strncpy): Likewise integrate functionality from
12583         simplify_builtin_strncpy.  Add additional slen argument.  No
12584         longer static.  Remove function prototype.
12585         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
12586         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
12587         types of "ignore" and "unlocked" parameters to bool.
12588         (fold_builtin_1):  Add additional ignore argument.  Call renamed
12589         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
12590         builtins.  Update arguments to fold_builtin_strncpy and
12591         fold_builtin_strcpy.  Add function prototype.
12592         (fold_builtin): Add additional Boolean ignore argument to pass
12593         to fold_builtin_1.
12594         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
12595         and fold_builtin_strncpy instead of simplify_builtin_fputs,
12596         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
12597
12598         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
12599         simplify_builtin_strncpy): Delete function prototypes.
12600         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
12601         fold_builtin_strncpy): Add function prototypes here.
12602         (fold_builtin): Update function prototype with new "bool ignore".
12603
12604         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
12605         (ccp_fold_builtin):  Update call to fold_builtin.  Call
12606         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
12607         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
12608         simplify_builtin_strncpy respectively.
12609         * fold-const.c (fold): Update call to fold_builtin.
12610
12611 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
12612
12613         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
12614         to strcpy.
12615
12616         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
12617         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
12618         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
12619         * calls.c: Remove ifdefs of macros above.
12620         * functions.c: Likewise.
12621         * expr.c: Likewise.
12622
12623 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12624
12625         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
12626         (arch attribute): Delete.
12627         (current_function_calls_alloca attribute): Rename into calls_alloca.
12628         (calls_eh_return): New attribute.
12629         (leaf_function): Likewise.
12630         (length attribute): Fix formula for sibcalls.
12631         (return insn): Correctly compute the 'length' attribute.
12632         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
12633
12634 2004-07-08  Richard Henderson  <rth@redhat.com>
12635
12636         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
12637         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
12638         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
12639         * tree-eh.c (lower_eh_constructs_1): Likewise.
12640         * tree-sra.c (sra_walk_modify_expr): Likewise.
12641         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12642         (eliminate_unnecessary_stmts): Likewise.
12643         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
12644         * tree-tailcall.c (optimize_tail_call): Likewise.
12645         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
12646
12647 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
12648             Jakub Jelinek  <jakub@redhat.com>
12649
12650         * config/i386/i386.c (override_options): Enable
12651         SSE prefetches with -mtune, as long as we are
12652         compiling for i686 or higher.  All i686 processors
12653         accept SSE prefetches as NOPS, some i586's don't.
12654
12655 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12656
12657         PR target/10567
12658         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
12659
12660 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
12661
12662         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
12663         the handling of clobbering ASM_EXPRs.
12664
12665 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12666
12667         PR target/16430
12668         * config/sparc/sparc.c (function_value): In 64-bit mode,
12669         return the aggregates larger than 16 bytes like unions.
12670
12671 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12672
12673         PR target/16199
12674         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
12675         'temp' is zero, generate new pseudos as needed and emit the
12676         sequence of insns in single-assignment form.  Resync comments
12677         with code.
12678         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
12679         function before reload.
12680
12681 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
12682
12683         * vec.c (vec_assert_fail): Remove duplicate 'function'.
12684
12685         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
12686
12687         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
12688         Allocation is signed.
12689         (VEC_reserve): Return flag, allocation is signed.
12690
12691 2004-07-08  Richard Henderson  <rth@redhat.com>
12692
12693         * tree-ssa-ccp.c (fold_stmt): Get type directly from
12694         OBJ_TYPE_REF_OBJECT.
12695
12696 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12697             Neil Booth  <neil@daikokuya.co.uk>
12698
12699         PR c/2511
12700         PR c/3325
12701         * c-decl.c (finish_struct): Ensure bit-fields are given the
12702         correct type.
12703         * c-common.c (c_common_signed_or_unsigned_type): For C, require
12704         the precision to match as well as the mode.
12705         * expr.c (reduce_to_bit_field_precision): New function.
12706         (expand_expr_real_1): Reduce expressions of bit-field type to
12707         proper precision.
12708         * langhooks.h (reduce_bit_field_operations): New hook.
12709         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
12710         Define.
12711         * c-lang.c, objc/objc-lang.c
12712         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
12713         * objc/objc-act.c (check_ivars): Convert types to bit-field types
12714         before checking.
12715         * tree.c (build_nonstandard_integer_type): New function.
12716         * tree.h (build_nonstandard_integer_type): New prototype.
12717         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
12718         conversions between integer and boolean types as useless.
12719
12720 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
12721
12722         * c-common.c (c_common_nodes_and_builtins): Do not
12723         create __builtin_ptrdiff_t and __builtin_size_t.
12724
12725 2004-07-08  Andrew Pinski  <apinski@apple.com>
12726
12727         * Makefile.in (libbackend.o): Add -combine to the gcc
12728         command line.
12729
12730 2004-07-08  Nick Clifton  <nickc@redhat.com>
12731
12732         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
12733         Set to -Os.
12734
12735 2004-07-08  Richard Henderson  <rth@redhat.com>
12736
12737         * except.c (expand_eh_region_start, expand_eh_region_end,
12738         expand_eh_handler, expand_eh_region_end_cleanup,
12739         expand_start_all_catch, expand_start_catch, expand_end_catch,
12740         expand_end_all_catch, expand_eh_region_end_allowed,
12741         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
12742         expand_eh_region_end_fixup): Remove.
12743         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
12744         cleanups, outer_cleanups, label_chain, exception_region.
12745         (struct goto_fixup): Remove stack_level, cleanup_list_list.
12746         (struct label_chain): Remove.
12747         (struct stmt_status): Remove x_stack_block_stack.
12748         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
12749         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
12750         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
12751         end_cleanup_deferral, last_cleanup_this_contour,
12752         containing_blocks_have_cleanups_or_stack_level,
12753         any_pending_cleanups): Remove.
12754         (expand_null_return_1): Take no arguments.
12755         (expand_label, expand_naked_return, expand_return,
12756         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
12757         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
12758         expand_end_case_type): Don't use any of them.
12759         * calls.c (expand_call): Likewise.
12760         * dojump.c (do_jump): Likewise.
12761         * function.c (expand_function_end): Likewise.
12762         * expr.c (store_expr, expand_expr_real_1): Likewise.
12763         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
12764         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
12765         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
12766         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
12767         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
12768         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
12769         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
12770         for WITH_CLEANUP_EXPR.
12771         (gimple_push_cleanup): Likewise.
12772         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
12773         * print-tree.c (print_node): Likewise.
12774         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
12775         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
12776         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
12777         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
12778         (GOTO_SUBROUTINE_EXPR): Remove.
12779         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
12780         (DECL_TOO_LATE): Remove.
12781         * except.h, tree.h: Update decls.
12782
12783 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
12784
12785         * explow.c (optimize_save_area_alloca): Do not accept parameters.
12786         * passes.c (rest_of_handle_final): Handle symout.
12787         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
12788         Push timevar here.
12789         (rest_of_handle_sched): Break out SMS.  Remove ifs for
12790         flag_schedule_insns and flag_modulo_sched.
12791         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
12792         collect at the end.
12793         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
12794         (rest_of_handle_partition_blocks, rest_of_handle_sms,
12795         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
12796         rest_of_handle_mode_switching, rest_of_handle_jump,
12797         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
12798         rest_of_handle_jump2, rest_of_handle_postreload,
12799         rest_of_handle_flow2, rest_of_clean_state,
12800         rest_of_handle_shorten_branches,
12801         rest_of_handle_prologue_epilogue,
12802         rest_of_handle_branch_target_load_optimize): New.
12803         (rest_of_compilation): Call the above.  Remove ggc_collect
12804         calls moved to rest_of_handle_*.
12805         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
12806
12807         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
12808         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
12809         * except.h (set_nothrow_function_flags): Update comment.
12810         * function.c (current_function_nothrow): Remove.
12811         * output.h (current_function_nothrow): Remove.
12812         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
12813         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
12814
12815 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12816
12817         PR bootstrap/16326
12818         * reorg.c: Revert 2004-06-30 change.
12819         (find_end_label): If HAVE_epilogue and !HAVE_return,
12820         return 0 instead of creating a label at the end of the insn chain.
12821         (optimize_skip): Account for the failure mode of find_end_label.
12822         (fill_simple_delay_slots): Likewise.
12823         (fill_slots_from_thread): Likewise.
12824         (relax_delay_slots): Likewise.
12825
12826 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
12827
12828         * tree-flow.h (addressable_vars): Declare.
12829         * tree-ssa-alias.c (addressable_vars): Define.
12830         (setup_pointers_and_addressables): Add addressable variables
12831         to addressable_vars.
12832         * tree-ssa-operands.c (get_stmt_operands): Move
12833         handling of ASM_EXPRs ...
12834         (get_asm_expr_operands): ... here.
12835         When the ASM_EXPR clobbers memory, also clobber addressable
12836         variables.
12837         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
12838         (delete_tree_ssa): Reset addressable_vars.
12839
12840 2004-07-07  Jan Beulich  <jbeulich@novell.com>
12841             Richard Henderson  <rth@redhat.com>
12842
12843         * varasm.c (assemble_variable): Use assemble_zeros for
12844         zero-initialized variables.
12845         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
12846         for SECCAT_BSS and SECCAT_TBSS.
12847
12848 2004-07-07  Jan Beulich  <jbeulich@novell.com>
12849
12850         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
12851
12852         * expmed.c (emit_store_flag): Also special-case double-word
12853         (in-)equality comparison against -1.
12854
12855         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
12856         passing arguments the containers for which are registers.
12857
12858         * calls.c (emit_library_call_value_1): Use mode of function parameter
12859         rather than that of argument since constants have none.
12860
12861 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
12862
12863         Introduce H8SX support.
12864         * expr.c (expand_strcpy): Renamed and moved to...
12865         * builtins.c (expand_movstr): ... here.  Tweak.
12866         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
12867         computed or has side effects.
12868         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
12869         unused, or if mempcpy fails.  Adjust the return value in the
12870         latter case.  Use movstr if everything else fails.
12871         * doc/md.texi (movstr): Document.
12872         (movmemM, clrmemM): Fix explanation of memory block operands.
12873         * config/h8300/h8300.md (stpcpy): Renamed to...
12874         (movstr): ... this.  Adjust.
12875         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
12876         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
12877         movmem* and clrstr* to clrmem*.
12878         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
12879         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
12880         GENERAL_REGS, always.
12881         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
12882         getting the stack pointer as addr.
12883         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
12884         from general_operand_dst.
12885         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
12886         variant of...
12887         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
12888         instead of requiring it to match only before reload.
12889         (stpcpy_internal_normal): New, normal-mode variant of...
12890         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
12891         `D' instead of requiring it to match only before reload.
12892         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
12893         mode argument.
12894         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
12895         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
12896         h8300_get_index.
12897         * config/h8300/h8300.md (attr type): Add call.
12898         (attr can_delay): If type is call, set it no.
12899         (call, call_value): Set type to call.
12900         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
12901         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
12902         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
12903         * tree.c (get_narrower): Don't narrow integral types into
12904         non-integral types.
12905         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
12906         frame_size *before* the first use.
12907         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
12908         on input.
12909         (peephole2): Don't widen instructions that push SP.  Move
12910         decrement of SP to the end of all stm-generating peepholes.
12911         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
12912         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
12913         and OR to set it to all ones.
12914         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
12915         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
12916         (call, call_value): Set can_delay to "no".
12917         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
12918         * config/h8300/h8300.md (extzv): Make subreg check more robust.
12919         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12920         * config/h8300/h8300.md (*brabit): Remove.
12921         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
12922         zero_extract.  Use bit_memory_operand as the predicate for
12923         operand 1 and 'WU' as the constraint.  Check the difference
12924         between the base length and the final one when deciding which
12925         type of branch to use.
12926         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12927         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
12928         Use convert_move to extend the result for TARGET_H8300SX.  Check
12929         for QImode memory references.  Optimize the case where the
12930         destination is a paradoxical subreg.
12931         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12932         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
12933         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
12934         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12935         * config/h8300/h8300.md: Include mova.md
12936         (length_table): Add mova and mova_zero.
12937         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
12938         after all constant addresses for '%R', '%X', '%T' and '%S'.
12939         (h8300_mova_length): New function.
12940         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
12941         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
12942         dependencies for s-config, etc.
12943         * config/h8300/gemova.sh: New file.
12944         * config/h8300/mova.md: Generated.
12945         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
12946         * config/h8300/h8300.c (h8300_bitfield_length): New.
12947         (nibble_operand): Adjust.
12948         (h8300_binary_length): Handle conditional binary op.
12949         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
12950         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
12951         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
12952         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
12953         constraints.  WU is introduced as a variant of U that requires a
12954         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
12955         * config/h8300/h8300.md (attr type): Added bitbranch.
12956         (attr length_table): Added bitfield and bitbranch.
12957         (attr length): Compute bitbranch length.
12958         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
12959         least-significant bit of a byte.
12960         (brabit, brabc, brabs): New.
12961         (insv, extzv): Emit bfst and bfld on H8300SX.
12962         (bfld, bfst, seq, sne): New.
12963         (bstzhireg, cmpstz, bstz, bistz): New.
12964         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
12965         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
12966         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
12967         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
12968         (h8sx_unary_memory_operator): New function.
12969         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
12970         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
12971         * config/h8300/h8300.md: Add peepholes to combine reloads and
12972         arithmetic insns.
12973         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
12974         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
12975         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
12976         (and?i, ior?i, xor?i): Likewise.
12977         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
12978         * config/h8300/h8300.c: Move enums and prototypes to head of file.
12979         Various whitespace fixes.
12980         (h8300_constant_length): New function, split out from...
12981         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
12982         (h8300_classify_operand): Use IN_RANGE.
12983         (h8300_classify_operand): Use h8300_constant_length.
12984         (h8300_short_move_mem_p): Tighten size check.
12985         (h8sx_mergeable_memrefs_p): Tighten equality check.
12986         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
12987         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
12988         for -msx.
12989         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
12990         * config/h8300/crtn.asm: Likewise.
12991         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
12992         if __H8300SX__ is defined.
12993         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
12994         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
12995         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
12996         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
12997         addresses as mode-dependent.
12998         * config/h8300/h8300.c (print_operand_address): Update call to
12999         h8300_get_index.
13000         (h8300_get_index): Take a mode argument.  Rework to fix an
13001         earlier misunderstanding.
13002         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
13003         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
13004         into a register if TARGET_H8300SX.
13005         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
13006         TARGET_H8300SX.  Also disable related define_splits.
13007         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
13008         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
13009         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
13010         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
13011         * config/h8300/h8300.h (OK_FOR_Z): New macro.
13012         (EXTRA_CONSTRAINT_STR): Check it.
13013         * config/h8300/h8300.c (h8300_classify_operand): Accept null
13014         class arguments.
13015         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
13016         * config/h8300/h8300.md (length_table): Add mov_imm4.
13017         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
13018         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
13019         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
13020         be a label.
13021         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
13022         * config/h8300/h8300.c (h8300_reorg): New function.
13023         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13024         * config/h8300/h8300.md (length): Subtract the length of the
13025         delay slot from (pc) when checking the range of forward branches.
13026         (delay_slot, can_delay): New attributes.
13027         (define_delay): Add bra/s handling.
13028         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
13029         (jump): Add delayed-branch handling.
13030         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
13031         * expr.c (expand_strcpy): New function.
13032         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
13033         (expand_builtin_stpcpy): Likewise.
13034         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
13035         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
13036         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
13037         handling to improve register allocation for -fno-omit-frame-pointer.
13038         (h8sx_split_movmd): Delete, moving er6 handling into...
13039         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
13040         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
13041         (movmd): Add calls to copy_rtx.
13042         (movmd_internal): In the second alternative, allow the initial and
13043         final destination registers to be different .  Update the splitter
13044         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
13045         instead of h8sx_split_movmd.
13046         (stpcpy, movsd): New expanders.
13047         (movsd_internal): New define_insn.
13048         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
13049         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
13050         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
13051         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
13052         and DESTINATION_REGS.
13053         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
13054         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
13055         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
13056         (h8300_move_ratio): Declare.
13057         (MOVE_RATIO): Use it.
13058         * config/h8300/h8300.c (h8300_move_ratio): New variable.
13059         (h8300_init_once): Initialize it.
13060         (h8300_reg_class_from_letter): New function.
13061         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
13062         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
13063         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
13064         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
13065         (movstrsi, movmd): New expanders.
13066         (movmd_internal): New insn.
13067         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
13068         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
13069         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
13070         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
13071         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
13072         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
13073         * config/h8300/h8300.c (nibble_operand): Fix warning.
13074         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
13075         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
13076         (movsf_h8300h): Disable for TARGET_H8300SX.
13077         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
13078         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
13079         h8300_stm_parallel and h8300_return_parallel.
13080         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
13081         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
13082         h8300_stm_parallel, h8300_return_parallel): New functions.
13083         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
13084         if TARGET_H8300SX.  Use h8300_push_pop.
13085         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
13086         and final pop when generating h8sx code.  Always emit some form
13087         of return insn.
13088         * config/h8300/h8300.md: Don't enforce register alignment in
13089         stm peepholes if TARGET_H8300SX.
13090         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
13091         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
13092         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
13093         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
13094         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
13095         (MULTILIB_DIRNAMES): Add a directory for it.
13096         (MULTILIB_MATCHES): Delete.
13097         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
13098         * final.c (walk_alter_subreg): Handle addresses with subregs
13099         inside a ZERO_EXTEND or AND.
13100         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
13101         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
13102         if TARGET_H8300SX.
13103         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
13104         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
13105         @(dd,Rn.w) and @(dd,ERn.L).
13106         (h8300_displacement_size): Take the whole address as argument.
13107         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
13108         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
13109         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
13110         (h8sx_mergeable_memrefs_p): Declare.
13111         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
13112         (HAVE_PRE_INCREMENT): Likewise.
13113         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
13114         addresses for TARGET_H8300SX,
13115         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
13116         and POST_DEC.
13117         (movb_length_table, movl_length_table): New tables.
13118         (movw_length_table): Define to movb_length_table.
13119         (h8300_displacement_size): New, split out from...
13120         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
13121         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
13122         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
13123         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
13124         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
13125         (compute_plussi_length, compute_plussi_cc): Update accordingly.
13126         (h8sx_unary_shift_operator): Get the mode from the operator.
13127         (binary_shift_operator): Likewise.
13128         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
13129         a memory reference, check whether the reference is offsettable.
13130         (length_table): Add movb, movw and movl.
13131         (movqi): Add new h8sx pattern.  Don't force one operand to be a
13132         register when generating h8sx code.
13133         (movhi, movsi, movsf): Likewise.
13134         (movstrictqi): Use the length_table attribute.
13135         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
13136         (addqi3): Split into a define_expand and define_insn.  Don't accept
13137         memory operands in the expander.  Use h8300_operands_match_p to
13138         check for matching operands in the define_insn.
13139         (subqi3, negqi2, one_cmplqi2): Likewise.
13140         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
13141         in any patterns that are unused in h8sx code.  In the h8sx patterns,
13142         use h8300_operands_match_p to check whether operands match.
13143         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
13144         one_cmpl[hs]i3): Likewise.
13145         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
13146         in the expander.
13147         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
13148         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
13149         (h8300_insn_length_from_table): Add a second parameter.
13150         (output_h8sx_shift): Declare.
13151         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
13152         (EXTRA_CONSTRAINT): Replace with...
13153         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
13154         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
13155         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
13156         and h8sx_binary_shift_operator.
13157         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
13158         for TARGET_H8300SX.
13159         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
13160         (bit_memory_operand, fix_bit_operand): Likewise.
13161         (h8300_length_table_for_insn): Remove.
13162         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
13163         instructions.
13164         (h8300_short_immediate_length, h8300_binary_length): New functions.
13165         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
13166         (output_plussi): Use sub to add negative constants.
13167         (compute_plussi_length): Adjust accordingly.
13168         (h8sx_single_shift_type): New enum.
13169         (h8sx_single_shift, h8sx_unary_shift_operator,
13170         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
13171         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
13172         single h8sx instruction.  Return false in this case.
13173         * config/h8300/h8300.md (length_table): Add short_immediate.
13174         (length): Pass the operand array to h8300_insn_length_from_table.
13175         (adjust_length): Assume "no" for insns with a length_table attribute.
13176         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
13177         (*addhi3_h8300hs): Don't use for h8sx.
13178         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
13179         and sub.w #xx:3.
13180         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
13181         1's predicate to nonimmediate_operand.  Only skip default expansion
13182         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
13183         for single h8sx shift instructions.
13184         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
13185         * config/h8300/h8300.c (nibble_operand): Split out of...
13186         (reg_or_nibble_operand): ... this.
13187         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
13188         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
13189         umulhisi3): Introduce expand, and introduce separate insns for
13190         sign- or zero-extended REG and already-extended CONST_INT.
13191         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
13192         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
13193         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
13194         (subhi3): Likewise.  Don't accept immediates for operand 1.
13195         Remove the early clobber from second alternative of the h8300s pattern.
13196         (subsi3): Generalize for h8sx.  Force operand 2 into a register
13197         on plain h8300 targets.
13198         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
13199         (subsi3_h8300h): Generalize for h8sx.
13200         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
13201         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
13202         * config/h8300/h8300.c (reg_or_nibble_operand): New.
13203         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
13204         (TARGET_H8300SXMUL): New.
13205         (CONST_OK_FOR_P): New.
13206         (CONST_OK_FOR_LETTER_P): Adjust.
13207         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
13208         umulhisi3): Accept 4-bit immediate on H8SX.
13209         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
13210         (udivsi3, divhi3, udivsi3, divsi3): New.
13211         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
13212         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
13213         * config/h8300/h8300.h (OK_FOR_Q): New macro.
13214         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
13215         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
13216         Add ADDRESSOF to the bit_operand entry.
13217         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
13218         (h8300_src_operand): Likewise.
13219         (bit_operand): Check nonimmediate_operand rather than general_operand.
13220         Accept any nonimmediate_operand in h8sx code.
13221         (h8300_and_costs): Initialize operands[1].
13222         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
13223         (h8300_operand_class): New enum.
13224         (h8300_length_table): New typedef.
13225         (addb_length_table, addw_length_table, addl_length_table,
13226         logicl_length_table): New tables.
13227         (logicb_length_table, logicw_length_table): New macros.
13228         (h8300_classify_operand, h8300_length_from_table,
13229         h8300_length_table_for_insn, h8300_unary_length,
13230         h8300_insn_length_from_table): New functions.
13231         (output_plussi): Only use adds and subs for register destinations.
13232         Disable redundant clause.
13233         (compute_plussi_cc): Likewise.
13234         (compute_plussi_length): Likewise.  Use h8300_length_from_table
13235         to work out the length of an insn.
13236         (output_logical_op): Only use narrower immediate instructions
13237         if the destination is a register.
13238         (compute_logical_op_cc): Likewise.
13239         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
13240         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
13241         * config/h8300/h8300.md (length_table): New attribute.
13242         (length): When an instruction has a length_table attribute, use
13243         h8300_insn_length_from_table to calculate its default length.
13244         (cmpqi): Use h8300_dst_operand for the first operand and
13245         h8300_src_operand for the second.
13246         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
13247         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
13248         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
13249         iorsi3, xorhi3, xorsi3): Likewise.
13250         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
13251         so that it allows any combination of operands for TARGET_H8300SX.
13252         (iorqi3, xorqi3): Likewise.
13253         (cmpqi): Use the length_table attribute.
13254         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
13255         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
13256         (cmpqi): Add 'Q' constraint.
13257         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
13258         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
13259         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
13260         * config/h8300/h8300.h (MASK_H8300SX): New macro.
13261         (TARGET_H8300S): True for both -ms and -msx.
13262         (TARGET_H8300SX): New macro.
13263         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
13264         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
13265         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
13266         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
13267         [Temporary change.]
13268         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
13269         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
13270         16-bit pointers and 32-bit ints.
13271         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
13272         CONST_DOUBLE with mode no wider than SImode.
13273         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
13274         output operand.
13275         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
13276         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
13277         or SUBREG thereof.
13278         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
13279         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
13280         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
13281
13282 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
13283
13284         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
13285
13286 2004-07-07  Per Bothner  <per@bothner.com>
13287
13288         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
13289
13290 2004-07-07  Mike Stump  <mrs@apple.com>
13291
13292         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
13293         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
13294         (machopic_finish): Likewise.
13295
13296 2004-07-07  Richard Henderson  <rth@redhat.com>
13297
13298         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
13299         through any value-preserving cast.
13300
13301 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
13302
13303         * function.c (assign_parm_find_data_types): Call
13304         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
13305
13306 2004-07-07  Steven Bosscher  <stevenb@suse.de>
13307
13308         * tree-cfg.c (group_case_labels): Remove case labels that have
13309         the same target as the default case.
13310
13311 2004-07-07  Steven Bosscher  <stevenb@suse.de>
13312
13313         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
13314         regardless of DECL_LANG_SPECIFIC being present or not.
13315         * tree.h (DECL_NUM_STMTS): Purge.
13316
13317 2004-07-07  Andrew Pinski  <apinski@apple.com>
13318
13319         * configure: Regenerate with the right autoconf.
13320
13321 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
13322
13323         * ifcvt.c (total_bb_rtx_cost): New function.
13324         (find_if_case_1): Compare rtx_cost of basic block to cost of
13325         BRANCH_COST insns.
13326         (find_if_case_2): Same.
13327
13328 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
13329
13330         PR target/10567
13331         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
13332         (output_return): Likewise.
13333         (output_sibcall): Abort if !flag_delayed_branch.
13334         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
13335         (emit_and_preserve): New function.
13336         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
13337         indirect jump to the thunked-to function if !flag_delayed_branch.
13338         * config/sparc/sparc.md (delayed_branch): New attribute.
13339         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
13340         attribute to compute the length of the insn.
13341         (goto_handler_and_restore): Likewise.
13342
13343 2004-07-07  Andrew Pinski  <apinski@apple.com>
13344
13345         PR tree-optimization/15777
13346         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
13347
13348         * expr.c (expand_expr_real_1): Fix formating.
13349         BUFFER_REF and IN_EXPR are dead.
13350         * fold-const.c (non_lvalue): BUFFER_REF is dead.
13351         * tree-inline.c (estimate_num_insns_1): Likewise.
13352         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
13353         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
13354         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
13355
13356 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
13357
13358         * collect2.c (dump_file): Don't call cplus_demangle if
13359         HAVE_LD_DEMANGLE is defined.
13360         (main): Pass "--demangle" to ld if no_demangle is not 0 and
13361         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
13362         if HAVE_LD_DEMANGLE is defined.
13363
13364         * configure.ac (--with-demangler-in-ld): Added
13365         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
13366         --with-demangler-in-ld is used.
13367         * config.in: Regenerated.
13368         * configure: Likewise.
13369
13370 2004-07-07  Roger Sayle  <roger@eyesopen.com>
13371
13372         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
13373         for simple floating point operations "fp", double precision
13374         multiplication "dmul", and single and double precision division
13375         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
13376         (ppc630_cost): New table split from ppc620_cost, to distinguish
13377         differences in floating point latencies.
13378         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
13379         (rs6000_rtx_costs): Add support for single and double precision
13380         floating point addition, subtraction, multiplication, division,
13381         fused-multiply-add, fused-multiply-sub, negation, absolute value
13382         and negative absolute value.  Tweak MEM case to use prefered idiom.
13383
13384 2004-07-07  Richard Henderson  <rth@redhat.com>
13385
13386         * tree-flow-inline.h (may_propagate_copy): Move...
13387         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
13388         attempt to copy between types requiring conversion.
13389         * tree-flow.h (may_propagate_copy): Update decl.
13390         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
13391
13392 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
13393
13394         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
13395         from -mtune= option.
13396
13397 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
13398
13399         * builtins.c: Rename movstr*, except for movstrict*, to
13400         movmem* and clrstr* to clrmem*.
13401         * expr.c: Likewise.
13402         * expr.h: Likewise.
13403         * genopinit.c: Likewise.
13404         * integrate.c: Likewise.
13405         * local-alloc.c: Likewise.
13406         * optabs.c: Likewise.
13407         * optabs.h: Likewise.
13408         * config/alpha/alpha.h: Likewise.
13409         * config/alpha/alpha.md: Likewise.
13410         * config/arm/arm-protos.h: Likewise.
13411         * config/arm/arm.c: Likewise.
13412         * config/arm/arm.md: Likewise.
13413         * config/avr/avr.md: Likewise.
13414         * config/c4x/c4x.c: Likewise.
13415         * config/c4x/c4x.md: Likewise.
13416         * config/frv/frv.md: Likewise.
13417         * config/i386/i386-protos.h: Likewise.
13418         * config/i386/i386.c: Likewise.
13419         * config/i386/i386.h: Likewise.
13420         * config/i386/i386.md: Likewise.
13421         * config/i860/i860.c: Likewise.
13422         * config/i860/i860.md: Likewise.
13423         * config/ip2k/ip2k.md: Likewise.
13424         * config/ip2k/libgcc.S: Likewise.
13425         * config/ip2k/t-ip2k: Likewise.
13426         * config/m32r/m32r.c: Likewise.
13427         * config/m32r/m32r.md: Likewise.
13428         * config/mcore/mcore.md: Likewise.
13429         * config/mips/mips.c: Likewise.
13430         * config/mips/mips.md: Likewise.
13431         * config/ns32k/ns32k.c: Likewise.
13432         * config/ns32k/ns32k.h: Likewise.
13433         * config/ns32k/ns32k.md: Likewise.
13434         * config/pa/pa.c: Likewise.
13435         * config/pa/pa.md: Likewise.
13436         * config/pdp11/pdp11.h: Likewise.
13437         * config/pdp11/pdp11.md: Likewise.
13438         * config/rs6000/rs6000.c: Likewise.
13439         * config/rs6000/rs6000.md: Likewise.
13440         * config/s390/s390-protos.h: Likewise.
13441         * config/s390/s390.c: Likewise.
13442         * config/s390/s390.md: Likewise.
13443         * config/sh/lib1funcs.asm: Likewise.
13444         * config/sh/sh.c: Likewise.
13445         * config/sh/sh.md: Likewise.
13446         * config/sh/t-sh: Likewise.
13447         * config/sparc/sparc.h: Likewise.
13448         * config/vax/vax.md: Likewise.
13449         * config/xtensa/xtensa.c: Likewise.
13450         * config/xtensa/xtensa.md: Likewise.
13451         * doc/invoke.texi: Likewise.
13452         * doc/md.texi: Likewise.
13453         * doc/rtl.texi: Likewise.
13454
13455 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
13456
13457         PR target/16407
13458         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
13459         * config/mips/mips.c (mips_declare_common_object): New function,
13460         mostly split out from...
13461         (mips_output_aligned_decl_common): ...here.
13462         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
13463         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
13464         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
13465         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
13466
13467 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13468
13469         PR c/16392
13470         * function.c (assign_parms): Fix typo from previous change.
13471
13472 2004-07-07  Jason Merrill  <jason@redhat.com>
13473
13474         PR c++/15815
13475         * doc/extend.texi (C++ Interface): Correct information and
13476         discourage use.
13477
13478 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
13479
13480         PR target/16130
13481         PR target/16142
13482         PR target/16143
13483         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
13484         insn.
13485
13486 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13487
13488         PR target/1679.
13489         * config/m32r/m32r.c (m32r_function_symbol): New function:
13490         Generate a symbol name RTX with the correct m32r specific flags
13491         set.
13492         (block_move_call): Use new function to generate correct symbol.
13493         * config/m32r/m32r-protos.h: Add prototype for new funcion.
13494         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
13495         function.
13496
13497 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
13498
13499         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
13500         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
13501         TYPE_BINFO_BASETYPE): Remove.
13502         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
13503         to ...
13504         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
13505         here.
13506         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
13507         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
13508         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
13509         (struct tree_binfo): Rename base_types to base_binfos.
13510         * alias.c (record_component_aliases): Adjust BINFO macros.
13511         * dbxout.c (dbxout_type): Likewise.
13512         * dwarf2out.c (gen_member_die): Likewise.
13513         * sdbout.c (sdbout_one_type): Likewise.
13514         * tree-dump.c (deque_and_dump): Likewise.
13515         * config/i386/i386.c (classify_argument,
13516         contains_128bit_aligned_vector_p): Likewise.
13517
13518 2004-07-07  Nick Clifton  <nickc@redhat.com>
13519
13520         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
13521         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
13522
13523 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
13524
13525         * vec.h: Fix the example use.
13526
13527 2004-07-06  Richard Henderson  <rth@redhat.com>
13528
13529         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
13530         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
13531         * tree-inline.c (copy_body_r, setup_one_parameter,
13532         initialize_inlined_parameters, expand_call_inline,
13533         declare_inline_vars): Don't check it.
13534         (expand_calls_inline): Remove old version, rename new version
13535         from gimple_expand_calls_inline.
13536         * tree-optimize.c (execute_gimple): Remove.
13537         (pass_gimple): Don't run anything.
13538
13539 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
13540
13541         * doc/sourcebuild.texi: Use semicolons instead of commas in
13542         section title.
13543
13544 2004-07-06  Richard Henderson  <rth@redhat.com>
13545
13546         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
13547         (sra_walk_modify_expr, scan_init): Likewise.
13548         (generate_element_zero): Check visited before scanning children.
13549         (generate_element_init): Set visited on error.
13550         (scalarize_init): Handle generate_element_init failure similar
13551         to use_block_copy.
13552
13553 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
13554
13555         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
13556         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
13557
13558 2004-07-06  Richard Henderson  <rth@redhat.com>
13559
13560         * config/i386/i386.c (legitimize_pic_address): Make static.
13561         (legitimize_address): Handle CONST with TLS operand.
13562         (ix86_expand_move): Don't call legitimize_pic_address directly.
13563         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
13564
13565 2004-07-06  Roger Sayle  <roger@eyesopen.com>
13566
13567         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
13568         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
13569         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
13570         is currently executed unconditionally, i.e. not in "else_bb".
13571
13572 2004-07-06  Steven Bosscher  <stevenb@suse.de>
13573
13574         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
13575         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13576         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
13577         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13578         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
13579         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13580         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
13581         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13582         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
13583         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13584         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
13585         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13586         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
13587         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13588         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
13589         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
13590
13591 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
13592
13593         * dojump.c (do_jump): REFERENCE_EXPR is dead.
13594         * expr.c (expand_expr_real_1): Ditto.
13595         * tree-inline.c (estimate_num_insns_1): Ditto.
13596         * tree-pretty-print.c (dump_generic_node): Ditto.
13597         (op_symbol): Ditto.
13598         * tree.def: Ditto.
13599
13600 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
13601
13602         * tree-ssa-pre.c (reference_node_pool): New pool.
13603         (find_or_generate_expression): Class 'r' is okay too.
13604         (create_value_expr_from): Ditto.
13605         (add_to_sets): LHS should not include vuses.
13606         (eliminate): Ditto.
13607         (compute_avail): Reverse ordering of tests.
13608         Valuize INDIRECT_REF as well.
13609
13610 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
13611
13612         PR rtl-optimization/16380
13613         * loop.c (check_dbra_loop): Sink comparison instructions if they
13614         do something other than set cc0.
13615
13616 2004-07-06  James E Wilson  <wilson@specifixinc.com>
13617
13618         * doc/interface.texi (longjmp and automatic variables): Delete
13619         paragraph recommending taking the address of a variable.
13620
13621 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
13622
13623         * vec.h (VEC_embedded_alloc): Remove.
13624         (VEC_embedded_size, VEC_embedded_init): New.
13625         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
13626         MEM_STAT_INFO.
13627         (VEC_truncate): New.
13628         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
13629         (vec_embedded_alloc): Remove.
13630         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
13631         (vec_embedded_alloc): Remove.
13632
13633 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
13634
13635         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
13636         (gt-langhooks.h): Remove.
13637
13638 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
13639
13640         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
13641
13642 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
13643
13644         * config/sparc/sparc.c (get_pc_symbol): Rename into
13645         add_pc_to_pic_symbol.
13646         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
13647         (load_pic_register): Account for previous changes.
13648         Use reg_names.  Don't create the label twice.
13649         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
13650         UNSPEC_LOAD_PCREL_SYM.
13651         (get_pc): Rename into load_pcrel_sym.  Add predicate to
13652         operands.  Remove condition.
13653
13654 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
13655
13656         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
13657         RECORD, UNION & QUAL_UNION is actually a binfo.
13658
13659         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
13660         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
13661         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
13662         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
13663         * dwarf2out.c (add_data_member_location_attribute): Likewise.
13664         (gen_inheritance_die): Likewise.
13665         * tree-dump.c (deque_and_dump): Likewise.
13666         * doc/c-tree.texi (Binfos): Add under reconstruction note.
13667
13668 2004-07-06  Steven Bosscher  <stevenb@suse.de>
13669
13670         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
13671         Define.
13672         * config/mcore/mcore.md: Model memory latency with a simple DFA
13673         pipeline description instead of a define_function_unit.
13674
13675 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13676
13677         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
13678         * langhooks.h (var_mod_type_p): Likewise.
13679         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
13680         * expr.c (count_type_elements): Properly handle return from
13681         array_type_nelts and properly test for overflow.
13682         * gimplify.c (gimplify_init_constructor): Properly handle return
13683         from array_type_nelts.
13684         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
13685         * integrate.c (copy_decl_for_inlining): Correct comments.
13686         * tree-inline.c (remap_decl): Update comments, remove dead code,
13687         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
13688         (remap_type): Only remap if variably modified by vars in function
13689         being inlined.
13690         (copy_body_r): Use compatible_type langhooks to see when can fold.
13691         (setup_one_parameter): Don't remap type.
13692         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
13693         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
13694         compute TREE_INVARIANT for decl case.
13695         (find_var_from_fn): New function.
13696         (variably_modified_type_p): Add arg and call new function.
13697         * tree.h (variably_modified_type_p): Add extra arg.
13698
13699 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
13700
13701         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
13702         (goto_handler_and_restore_v9): Delete disabled insn.
13703         (goto_handler_and_restore_v9_sp64): Likewise.
13704
13705 2004-07-05  Roger Sayle  <roger@eyesopen.com>
13706
13707         * calls.c (load_register_parameters): Call expand_shift instead
13708         of expand_binop with ashl_optab (or other shift optab) directly.
13709         * expr.c (emit_group_load, emit_group_store): Likewise.
13710         * function.c (assign_parm_setup_block): Likewise.
13711         * stmt.c (shift_return_value): Likewise.
13712
13713 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
13714
13715         * expr.c (expand_assignment): Disable the bitfield += optimizations.
13716
13717 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13718
13719         * doc/sourcebuild.texi: Revert previous patch.
13720
13721 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13722
13723         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
13724         TARGET_MEM_FUNCTIONS.
13725         * system.h: Poison TARGET_MEM_FUNCTIONS.
13726         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
13727         bcmp_libfunc, bzero_libfunc): Remove.
13728         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
13729         bzero_libfunc.
13730         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
13731         * doc/standards.texi: Don't mention calling BSD string functions.
13732         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
13733         * config/vax/t-memfuncs: New.
13734         * config/memcmp.c, config/memcpy.c, config/memmove.c,
13735         config/memset.c: New.
13736         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
13737         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
13738         vax/t-memfuncs.
13739         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
13740         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
13741         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
13742         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
13743         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
13744         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
13745         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
13746         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
13747         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13748         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
13749
13750 2004-07-05  Richard Henderson  <rth@redhat.com>
13751
13752         * function.c (assign_parm_setup_reg): Properly rename variables in
13753         FUNCTION_ARG_CALLEE_COPIES section.
13754
13755 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
13756
13757         * tree-mudflap.c: Include cgraph.h.
13758         (mf_init_extern_trees): Rename to mudflap_init.  Export.
13759         Rewrite to create synthetic declarations instead of looking
13760         up declarations from mf-runtime.h.
13761         (mf_make_builtin, mf_make_cache_struct_type): New functions.
13762         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
13763         Correct commentary.
13764         (execute_mudflap_function_decls, mudflap_register_call):
13765         Don't call mf_init_extern_trees.
13766         (mudflap_finish_file): Use cgraph_build_static_cdtor.
13767
13768         * tree-mudflap.h: Update prototypes.
13769         * c-mudflap.c: Delete file.
13770         * c-common.c: Include tree-mudflap.h.
13771         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
13772         * Makefile.in: Remove all references to c-mudflap.o.
13773         Update dependencies.
13774
13775 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13776
13777         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
13778         displacements with the spatial-locality cache-control completer.
13779
13780 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
13781
13782         * langhooks.c: Don't include gt-langhooks.h.
13783         (var_labelno): Delete.
13784         (lhd_set_decl_assembler_name): Do not append a distinguishing
13785         number to file-scope internal-linkage declarations for the first
13786         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
13787         the declaration itself (if at block scope), or its containing
13788         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
13789         number.
13790
13791         * opts.c (cur_in_fname): New global.
13792         * opts.h: Declare it.
13793         * tree.c: Include opts.h.
13794         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
13795         DECL_UID equal to cur_in_fname.
13796         (copy_node_stat): Do not change DECL_UID when copying a
13797         TRANSLATION_UNIT_DECL.
13798         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
13799         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
13800
13801         * c-decl.c (c_static_assembler_name): Delete.
13802         * c-tree.h (c_static_assembler_name): Delete prototype.
13803         * c-lang.c, objc/objc-lang.c: Don't override
13804         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
13805
13806         * Makefile.in (tree.o): Update dependencies.
13807         (GTFILES): Remove langhooks.c.
13808
13809 2004-07-05  Roger Sayle  <roger@eyesopen.com>
13810
13811         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
13812         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
13813         Normalize "X % C" as "X % -C" for signed modulus and negative C.
13814         Optimize "X % -Y" as "X % Y" for signed modulus.
13815         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
13816         into "((unsigned) X % Y) == 0".
13817
13818 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13819
13820         * sourcebuild.texi (Config Fragments): Use @comma{} in
13821         cross-reference to section title.
13822
13823 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13824
13825         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
13826         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
13827         (gimplify_target_expr, gimplify_expr): Likewise.
13828         (copy_if_shared_r): No longer need special case for BIND_EXPR.
13829         (unshare_body, unvisit_body): Only look at nested if BODY_P is
13830         whole function.
13831         (gimplify_compound_lval): See if we can strip any useless conversion.
13832         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
13833         from RHS, not LHS.
13834         (gimplify_modify_expr_to_memset): Likewise.
13835         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
13836         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
13837         (declare_inline_vars): Likewise.
13838         (walk_type_fields): New function.
13839         (walk_tree): Use it.
13840         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
13841
13842         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
13843         (sra_walk_modify_expr): Allow init function to fail.
13844         (scan_init): Now returns bool.
13845         (generate_element_init): If can't understand INIT, return false.
13846         (scalarize_init): Return false if generate_element_init does.
13847
13848         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
13849         print bounds.
13850
13851         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
13852         bounds if bounds aren't constant.
13853
13854         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
13855
13856         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
13857         to type hooks; remove bogus PARAMS.
13858
13859 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
13860
13861         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
13862         * dwarf2out.c (add_data_member_location_attribute): Check for
13863         TREE_BINFO.
13864         * tree.c (tree_node_kinds): Add "binfos".
13865         (binfo_lang_slots): New.
13866         (make_node_stat): Add TREE_BINFO.
13867         (make_tree_binfo_stat): New.
13868         (tree_node_structure): Add TREE_BINFO.
13869         * tree.def (TREE_BINFO): New.
13870         * tree.h (REC_OR_UNION_CHECK): Rename to ...
13871         (RECORD_OR_UNION_CHECK): ... here.
13872         (NOT_RECORD_OR_UNION_CHECK): New.
13873         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
13874         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
13875         RECORD_OR_UNION_CHECK.
13876         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
13877         (TYPE_LANG_SLOT_1): New.
13878         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
13879         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
13880         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
13881         (BINFO_ELTS): Remove.
13882         (BINFO_LANG_SLOT): New.
13883         (struct tree_binfo): New.
13884         (binfo_lang_slots): Declare.
13885         (enum tree_node_structure_enum): Add TS_BINFO.
13886         (union tree_node): Add binfo.
13887         (make_tree_binfo_stat): Declare.
13888         (make_tree_binfo): New.
13889         (enum tree_node_kind): Add binfo_kind.
13890
13891         * objc/objc-act.c (start_class, objc_declare_protocols,
13892         start_protocols): Use TYPE_LANG_SLOT_1.
13893         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
13894         to ...
13895         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
13896         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
13897         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
13898         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
13899
13900 2004-07-05  Steven Bosscher  <stevenb@suse.de>
13901
13902         * rtl.h (struct rtx_def): Remove the integrated flag.
13903         Use the return_val flag for MEM_SCALAR_P.
13904         Reshuffle and update flags in CLEAR_RTX_FLAGS.
13905
13906 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
13907
13908         PR target/16357
13909         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
13910         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
13911         move_by_pieces.
13912
13913 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
13914
13915         * var-tracking.c: Fix some comments.
13916         (frame_stack_adjust): New.
13917         (vt_stack_adjustments): Init stack_adjust of entry block to
13918         minus stack adjustment of function prologue.
13919         (adjust_stack_reference): Do not adjust if adjustment == 0.
13920         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
13921         (emit_notes_in_bb): Likewise.
13922         (vt_add_function_parameters): Do not adjust locations of
13923         function arguments.
13924         (vt_initialize): Compute the stack adjustment of function
13925         prologue and offset the initial "location" of frame_base_decl
13926         from the stack pointer after prologue.
13927
13928 2004-07-04  Richard Henderson  <rth@redhat.com>
13929
13930         * function.c (struct assign_parm_data_all): New.
13931         (struct assign_parm_data_one): New.
13932         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
13933         assign_parm_find_data_types, assign_parms_setup_varargs,
13934         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
13935         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
13936         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
13937         assign_parm_setup_block, assign_parm_setup_reg,
13938         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
13939         (assign_parms): ... here.
13940
13941 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
13942
13943         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
13944         now are bitmap_set_t's.
13945         (bitmap_insert_into_set): No point in inserting the value if
13946         it's invariant.
13947         (bitmap_set_contains): New function.
13948         (bitmap_set_replace_value): Add comment on why we do it
13949         this way.
13950         (set_contains): Removed.
13951         (bitmap_set_subtract_from_value_set): New name of
13952         set_subtract now that it's arguments are two different
13953         types of sets.
13954         Update callers.
13955         (bitmap_find_leader): Change algorithm used.
13956         (find_or_generate_expression): Update use of functions for new
13957         bitmap sets.
13958         (create_expression_by_pieces): Ditto.
13959         (insert_aux): Ditto.
13960         (insert): Ditto.
13961         (add_to_sets): Ditto.
13962         (init_pre): Ditto.
13963         (execute_pre): Ditto.
13964         (compute_avail): Ditto.
13965         Also ignore virtual phis.
13966
13967 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
13968
13969         * combine.c (simplify_comparison): Fix comment typo.
13970
13971 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13972
13973         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
13974         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
13975         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
13976         (output_restore): Change parameter from 'insn' to 'pat'.
13977         (output_return): Adjust call to output_restore.
13978         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
13979         Adjust call to output_restore.
13980
13981 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
13982
13983         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
13984         and assert system is bsd.
13985
13986 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
13987
13988         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
13989         (TARGET_SWITCHES): Remove -mdebugc.
13990         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
13991         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
13992         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
13993         (sle_[sd]i_reg): Delete.
13994
13995 2004-07-04  Steven Bosscher  <stevenb@suse.de>
13996
13997         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
13998         Define.
13999         * config/iq2000/iq2000.md: Translate old pipeline description to an
14000         equivalent new one.
14001
14002 2004-07-04  Roger Sayle  <roger@eyesopen.com>
14003
14004         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
14005         Ensure the replacement rhs is valid gimple before performing
14006         the substitution.  Return false if these sanity checks fail.
14007         (fold_stmt): Only set changed to true, if set_rhs returns true.
14008         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
14009         succeeds.
14010
14011 2004-07-04  Richard Henderson  <rth@redhat.com>
14012
14013         PR c/16348
14014         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
14015
14016 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
14017
14018         * configure.ac (ranlib_flags): New variable.
14019         * Makefile.in (RANLIB_FLAGS): New variable.
14020         (libbackend.a): Use it.
14021         * configure: Regenerated.
14022
14023 2004-07-04  Roger Sayle  <roger@eyesopen.com>
14024
14025         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
14026         a "sign mask" instead of using ashr_optab directly.
14027
14028 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
14029
14030         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
14031         * doc/cppopts.texi: Clarify processing of command-line defines.
14032
14033 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
14034
14035         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
14036
14037 2004-07-04  Richard Henderson  <rth@redhat.com>
14038
14039         * rtl.def (ADDRESSOF): Remove.
14040         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
14041         (find_base_term, memrefs_conflict_p): Likewise.
14042         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
14043         (fold_rtx, cse_insn, set_live_p): Likewise.
14044         * dwarf2out.c (mem_loc_descriptor): Likewise.
14045         (add_location_or_const_value_attribute): Likewise.
14046         * emit-rtl.c (copy_insn_1): Likewise.
14047         * explow.c (memory_address): Likewise.
14048         * expmed.c (store_split_bit_field): Likewise.
14049         * expr.c (expand_expr_real_1): Likewise.
14050         * function.c (instantiate_decl
14051         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
14052         * genrecog.c (preds, validate_pattern): Likewise.
14053         * integrate.c (copy_rtx_and_substitute): Likewise.
14054         * recog.c (general_operand, register_operand): Likewise.
14055         (memory_address_p): Likwise.
14056         * reload1.c (eliminate_regs, elimination_effects): Likewise.
14057         * rtl.c (copy_rtx): Likewise.
14058         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
14059         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
14060         * rtlhooks.c (gen_lowpart_general): Likewise.
14061         * stmt.c (expand_asm_operands): Likewise.
14062         * web.c (entry_register, replace_ref, web_main): Likewise.
14063         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
14064         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
14065         * config/arm/arm.c (thumb_rtx_costs): Likewise.
14066         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
14067         * config/frv/frv.c (move_destination_operand, move_source_operand,
14068         condexec_dest_operand, condexec_source_operand,
14069         condexec_memory_operand): Likewise.
14070         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
14071         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
14072         (destination_xfmode_operand): Likewise.
14073         * config/mips/mips.h (PREDICATE_CODES): Likewise.
14074         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
14075         * config/s390/s390.c (general_s_operand): Likewise.
14076         * config/s390/s390.md (mov*): Likewise.
14077         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
14078
14079         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
14080         * expr.c (expand_expr_real_1): Likewise.
14081         * stmt.c (expand_decl): Likewise.
14082         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
14083
14084         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
14085         postponed_insns, put_var_into_stack, put_reg_into_stack,
14086         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
14087         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
14088         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
14089         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
14090         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
14091         purge_bitfield_addressof_replacements, purge_addressof_replacements,
14092         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
14093         struct insns_for_mem_walk_info, insns_for_mem_walk,
14094         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
14095         setjmp_protect_args): Remove.
14096         (push_function_context_to): Don't handle var_refs_queue.
14097         (pop_function_context_from, free_after_compilation): Likewise.
14098         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
14099         (assign_parms, allocate_struct_function): Likewise.
14100         (use_register_for_decl): New.
14101         (expand_function_end): Don't setjmp_protect.
14102         * function.h (struct emit_status): Update commentary.
14103         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
14104         (max_parm_reg, parm_reg_stack_loc): Remove.
14105         * passes.c (DFI_addressof): Remove.
14106         (dump_file_info): Remove addressof.
14107         (rest_of_handle_addressof): Remove.
14108         (rest_of_compilation): Don't call it.
14109         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
14110         * stmt.c (expand_decl): Use use_register_for_decl.
14111         * tree.h: Update decls.
14112         * web.c (mark_addressof): Remove.
14113         * doc/invoke.texi (-dF): Remove.
14114
14115 2004-07-03  Richard Henderson  <rth@redhat.com>
14116
14117         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
14118         instead of gen_mem_addressof.
14119         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
14120         TImode output register.
14121
14122 2004-07-03  Richard Henderson  <rth@redhat.com>
14123
14124         PR tree-optimization/16341
14125         * tree-sra.c (sra_walk_function): Increment to next stmt before
14126         processing the current stmt.
14127         (sra_insert_after): Always use BSI_SAME_STMT.
14128
14129 2004-07-03  Richard Henderson  <rth@redhat.com>
14130
14131         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
14132         fp plus with minus.
14133
14134 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
14135
14136         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
14137         with tree_int_cst_equal.
14138
14139 2004-07-03  Andreas Schwab  <schwab@suse.de>
14140
14141         * config/ia64/ia64.md: Define new attribute "empty".
14142         (prologue_use, nop_x, insn_group_barrier): Set it.
14143
14144         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
14145         skip over "empty" insns.
14146
14147 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14148
14149         * tree-inline.c (initialize_inlined_parameters): Pass proper function
14150         context to gimplify_body.
14151         (walk_tree): Don't walk into types twice.
14152         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
14153
14154         * tree-sra.c (generate_element_init): Remove any useless conversions.
14155
14156         * gimplify.c (gimplify_conversion): Remove stripping useless
14157         conversions from here.
14158         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
14159         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
14160         Unshare before substituting PLACEHOLDER_EXPR.
14161         (gimplify_modify_expr_to_memset): Likewise.
14162         Pass address of TO to memset, not TO itself.
14163         (gimplify_init_constructor): Make copy of OBJECT so we have it each
14164         time we make an expression (to match a PLACEHOLDER_EXPR).
14165
14166         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
14167         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
14168         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
14169         * tree-ssa-dom.c (local_fold): Likewise.
14170
14171         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
14172         * langhooks.h (strct lang_hooks): New field type_max_size.
14173         * function.c (assign_temp): Call it.
14174
14175 2004-07-03  Steven Bosscher  <stevenb@suse.de>
14176
14177         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
14178         * config/sh/sh.md: Convert the SH1 pipeline description to
14179         a DFA model.
14180
14181 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
14182
14183         * c-decl.c (struct c_binding): Remove contour field; add
14184         depth, invisible, nested fields.
14185         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
14186         (B_IN_EXTERNAL_SCOPE): New convenience macros.
14187         (bind): Add invisible and nested arguments. Initialize
14188         new fields of struct c_binding; adjust loop scanning for
14189         insertion point.
14190         (free_binding_and_advance): Clear structure with memset.
14191         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
14192         in file scope, even if it's in external scope too.
14193         (pushdecl): Adjust to match.  Create invisible file-scope
14194         declarations for block-scope forward declarations of static functions.
14195         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
14196         (undeclared_variable, lookup_label, declare_label, define_label)
14197         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
14198         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
14199         (store_parm_decls_oldstyle): Adjust to match.
14200         (diagnose_mismatched_decls): Correct handling of linkage clashes.
14201         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
14202
14203         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
14204         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
14205
14206 2004-07-02  Richard Henderson  <rth@redhat.com>
14207
14208         * c-decl.c (grokdeclarator): Don't frob current_function_decl
14209         around variable_size.
14210         (set_decl_nonlocal): Remove.
14211         (store_parm_decls): Add stmts for pending sizes.
14212         * calls.c (calls_function, calls_function_1): Remove.
14213         (precompute_arguments): Don't call it.
14214         * cfgexpand.c (set_save_expr_context): Remove.
14215         (tree_expand_cfg): Don't call it.
14216         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
14217         (dwarf2out_finish): Likewise.
14218         * expr.c (emit_block_move): Adjust addresses to BLKmode.
14219         (store_constructor): Don't pre-evaluate SAVE_EXPR.
14220         (safe_from_p): Don't queue SAVE_EXPRs.
14221         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
14222         or build plain VAR_DECLs.
14223         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
14224         (fold): Likewise.
14225         (fold_checksum_tree): Don't special-case SAVE_EXPR.
14226         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
14227         (put_var_into_stack): Don't handle SAVE_EXPR.
14228         (gen_mem_addressof): Likewise.
14229         * function.h (struct function): Remove x_save_expr_regs.
14230         (save_expr_regs): Remove.
14231         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
14232         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
14233         * stor-layout.c (variable_size): Don't set it.
14234         (force_type_save_exprs, force_type_save_exprs_1): Remove.
14235         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
14236         all callers.  Don't set SAVE_EXPR_CONTEXT.
14237         * tree-inline.h (remap_save_expr): Update decl.
14238         * tree.c (save_expr): Update build size.
14239         (first_rtl_op): Don't handle SAVE_EXPR.
14240         (unsave_expr_1, contains_placeholder_p): Likewise.
14241         (decl_function_context): Likewise.
14242         * tree.def (SAVE_EXPR): Remove args 1 and 2.
14243         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
14244         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
14245
14246 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
14247
14248         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
14249         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
14250         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
14251         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
14252         some first-person references and patronizing comments.  Based on
14253         printed manual.
14254         * doc/invoke.texi: Don't reference fortran@gnu.org.
14255         * doc/trouble.texi (Warning when a non-void function value is
14256         ignored): Rewrite.  From Russ Allbery and Chris Devers.
14257
14258 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
14259
14260         * tree-ssa-pre.c (bitmap_set_t): New.
14261         (bb_value_sets): avail_out is now a bitmap_set_t.
14262         (bitmap_find_leader): New function.
14263         (bitmap_value_insert_into_set): Ditto.
14264         (bitmap_set_copy): Ditto.
14265         (bitmap_value_replace_in_set): Ditto.
14266         (bitmap_set_contains_value): Ditto.
14267         (bitmap_set_new): Ditto.
14268         (bitmap_set_pool): New pool.
14269         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
14270         (insert_aux): Ditto.
14271         (add_to_sets): Ditto.
14272         (compute_avail): Ditto
14273         (eliminate): Ditto.
14274         (init_pre): Ditto.
14275         (fini_pre): Ditto.
14276         (execute_pre): Ditto.
14277
14278 2004-07-02  Roger Sayle  <roger@eyesopen.com>
14279
14280         * config/rs6000/rs6000.c (struct processor_costs): New structure
14281         used to hold instruction latencies/sizes for processor types.
14282         (rs6000_cost): New global variable pointing to current CPU's costs.
14283         (rs6000_override_options): Initialize rs6000_cost to point to the
14284         appropriate cost table based upon rs6000_cpu and optimize_size.
14285         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
14286         timings inline.
14287
14288 2004-07-02  Richard Henderson  <rth@redhat.com>
14289
14290         * expmed.c (make_tree): Don't use SET_DECL_RTL.
14291
14292 2004-07-02  Steven Bosscher  <stevenb@suse.de>
14293
14294         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
14295
14296 2004-07-01  Richard Henderson  <rth@redhat.com>
14297
14298         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
14299         (alpha_gp_save_rtx): Use assign_stack_local instead of
14300         gen_mem_addressof.
14301
14302 2004-07-01  Richard Henderson  <rth@redhat.com>
14303
14304         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
14305         (alpha_rtx_cost_data): Update to match.
14306         (alpha_rtx_cost_size): New.
14307         (alpha_rtx_costs): Honor optimize_size.
14308
14309 2004-07-01  Richard Henderson  <rth@redhat.com>
14310
14311         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
14312         * cfgexpand.c (tree_expand_cfg): Do it here.
14313         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
14314         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
14315         * config/mips/mips.c (mips_output_mi_thunk): And here.
14316         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
14317         * config/sh/sh.c (sh_output_mi_thunk): And here.
14318         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
14319
14320 2004-07-01  Richard Henderson  <rth@redhat.com>
14321
14322         * tree.def (RTL_EXPR): Remove.
14323         * c-typeck.c (lvalue_p): Don't handle it.
14324         * expr.c (safe_from_p): Likewise.
14325         (expand_expr_real_1): Likewise.
14326         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
14327         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
14328         * gengtype.c (adjust_field_tree_exp): Likewise.
14329         * stmt.c (warn_if_unused_value): Likewise.
14330         * tree-gimple.c (recalculate_side_effects): Likewise.
14331         * tree-pretty-print.c (dump_generic_node): Likewise.
14332         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
14333         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
14334         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
14335
14336         * stmt.c (struct stmt_status): Remove x_last_expr_type,
14337         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
14338         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
14339         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
14340         all the bits that tracked last_expr.
14341         (expand_end_bindings): Don't track last_expr.
14342         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
14343         (clear_last_expr): Remove.
14344         (expand_asm): Don't call it.
14345         (expand_asm_operands, expand_end_cond): Likewise.
14346         (expand_naked_return, expand_null_return_1): Likewise.
14347         * c-typeck.c (c_begin_compound_stmt): Likewise.
14348         * cfgexpand.c (expand_block): Use expand_expr_stmt.
14349         * expr.c (expand_expr_real_1): Likewise.
14350         * tree.h: Update prototypes.
14351
14352         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
14353         (struct emit_status): Remove sequence_rtl_expr.
14354         (struct function): Remove x_rtl_expr_chain.
14355         (seq_rtl_expr, rtl_expr_chain): Remove.
14356         * function.c (struct temp_slot): Remove rtl_expr.
14357         (assign_stack_temp_for_type): Don't set it.
14358         (free_temp_slots, pop_temp_slots): Don't check it.
14359         (free_after_compilation): Don't clear x_rtl_expr_chain.
14360         (fixup_var_refs): Don't search it.
14361         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
14362         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
14363         or seq_rtl_expr.
14364         (push_topmost_sequence): Likewise.
14365         (end_sequence, init_emit): Likewise.
14366         (start_sequence_for_rtl_expr): Remove.
14367         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
14368         * rtl.h (preserve_rtl_expr_result): Remove.
14369
14370 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
14371
14372         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
14373         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
14374         typos.
14375
14376 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
14377
14378         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
14379         (STANDARD_STARTFILE_PREFIX_2): Define.
14380         (standard_startfile_prefix_1): Initialize to
14381         STANDARD_STARTFILE_PREFIX_1.
14382         (standard_startfile_prefix_2): Initialize to
14383         STANDARD_STARTFILE_PREFIX_2.
14384         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
14385         (STANDARD_STARTFILE_PREFIX_1): Define.
14386         (STANDARD_STARTFILE_PREFIX_2): Define.
14387         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
14388         (STANDARD_STARTFILE_PREFIX_2): Document.
14389
14390 2004-07-01  Richard Henderson  <rth@redhat.com>
14391
14392         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
14393         in order to disable scalarization.  Instead set a flag and wait
14394         for a candidate decl.
14395
14396 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
14397
14398         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
14399         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
14400         Use terminology "testsuite" and "enumerated".
14401
14402 2004-07-01  Richard Henderson  <rth@redhat.com>
14403
14404         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
14405         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
14406         (initial_return_save): Likewise.
14407         (flush_queued_reg_saves): Remap register numbers.
14408         (dwarf2out_return_reg): Likewise.
14409
14410 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14411
14412         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
14413
14414         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
14415         access functions for lower bound and element size and only output
14416         if lower bound nonzero or element size not same as that of type.
14417         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
14418
14419 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
14420
14421         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
14422
14423 2004-07-01  Per Bothner  <per@bothner.com>
14424
14425         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
14426
14427 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
14428
14429         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
14430         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
14431         first operand.  Don't optimize if the bitfield is volatile.
14432
14433 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
14434
14435         * c-pretty-print.c (pp_c_postfix_expression): Handle
14436         floating-point comparison operators.
14437         (pp_c_expression): Pass floating-point comparison
14438         operators to pp_c_postfix_expression.
14439
14440 2004-07-01  Roger Sayle  <roger@eyesopen.com>
14441
14442         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
14443         rtx_cost instead of "had_mult" to determine whether the transformed
14444         expression is cheaper than the original.
14445
14446 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
14447
14448         * alias.c (get_alias_set, canon_rtx, get_addr,
14449         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
14450         Use MEM_P.
14451         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
14452         expand_builtin): Likewise.
14453         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
14454         Likewise.
14455         * combine.c (can_combine_p, combinable_i3pat, try_combine,
14456         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
14457         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
14458         record_dead_and_set_regs_1, get_last_value_validate,
14459         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
14460         * cse.c (check_dependence, canon_hash, equiv_constant,
14461         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
14462         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
14463         count_reg_usage): Likewise.
14464         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
14465         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
14466         cselib_record_sets): Likewise.
14467         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
14468         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
14469         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
14470         * df.c (df_uses_record): Likewise.
14471         * dojump (do_jump): Likewise.
14472         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
14473         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
14474         decl_start_label): Likewise.
14475         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
14476         operand_subword, change_address_1, make_safe_from): Likewise.
14477         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
14478         stabilize, force_not_mem): Likewise.
14479         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
14480         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
14481         * expr.c (convert_move, convert_modes, emit_block_move,
14482         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
14483         emit_move_insn_1, expand_assignment, store_expr,
14484         store_constructor_field, store_constructor, store_field,
14485         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
14486         Likewise.
14487         * final.c (cleanup_subreg_operands, alter_subreg,
14488         get_mem_expr_from_op): Likewise.
14489         * flow.c (notice_stack_pointer_modification_1,
14490         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
14491         Likewise.
14492         * function.c (mark_temp_addr_taken, preserve_temp_slots,
14493         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
14494         optimize_bit_field, flush_addressof, purge_addressof_1,
14495         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
14496         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
14497         keep_stack_depressed): Likewise.
14498         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
14499         noce_process_if_block, find_memory): Likewise.
14500         * integrate.c (subst_constants, allocate_initial_values): Likewise.
14501         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
14502         update_equiv_regs): Likewise.
14503         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
14504         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
14505         * optabs.c (expand_abs, emit_unop_insn): Likewise.
14506         * passes.c (rest_of_handle_final): Likewise.
14507         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
14508         move2add_note_store): Likewise.
14509         * ra-build.c (detect_remat_webs): Likewise.
14510         * ra-debug.c (dump_static_insn_cost): Likewise.
14511         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
14512         * recog.c (validate_change, apply_change_group, cancel_changes,
14513         validate_replace_rtx_1, general_operand, register_operand,
14514         nonmemory_operand, push_operand, pop_operand, memory_operand,
14515         indirect_operand, asm_operand_ok, offsettable_memref_p,
14516         offsettable_nonstrict_memref_p, constrain_operands,
14517         store_data_bypass_p): Likewise.
14518         * reg-stack.c (subst_stack_regs_pat): Likewise.
14519         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
14520         copy_cost, reg_scan_mark_refs): Likewise.
14521         * regmove.c (optimize_reg_copy_3, stack_memref_p,
14522         combine_stack_adjustments_for_block): Likewise.
14523         * regrename.c (copyprop_hardreg_forward_1): Likewise.
14524         * reload.c (can_reload_into, push_reload, decompose, immune_p,
14525         find_reloads, find_reloads_address, find_reloads_address_1,
14526         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
14527         find_equiv_reg): Likewise.
14528         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
14529         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
14530         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
14531         delete_address_reloads): Likewise.
14532         * resource.c (mark_referenced_resources): Likewise.
14533         * rtlanal.c (get_jump_table_offset, count_occurrences,
14534         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
14535         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
14536         num_sign_bit_copies1): Likewise.
14537         * rtlhooks.c (gen_lowpart_general): Likewise.
14538         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14539         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
14540         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
14541         sdbout_global_decl): Likewise.
14542         * simplify-rtx.c (simplify_subreg): Likewise.
14543         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
14544         expand_anon_union_decl, expand_end_case_type): Likewise.
14545         * unroll.c (calculate_giv_inc): Likewise.
14546         * var-tracking.c (stack_adjust_offset_pre_post,
14547         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
14548         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
14549         vt_add_function_parameters): Likewise.
14550         * varasm.c (make_var_volatile, notice_global_symbol,
14551         assemble_external, decode_addr_const, mark_weak,
14552         default_encode_section_info): Likewise.
14553
14554 2004-07-01  Steven Bosscher  <stevenb@suse.de>
14555
14556         * stmt.c (check_seenlabel): Remove.
14557         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
14558
14559 2004-07-01  Richard Henderson  <rth@redhat.com>
14560
14561         * function.h (struct function): Remove x_function_call_count.
14562         (function_call_count): Remove.
14563         * calls.c (expand_call): Don't set it.
14564         * integrate.c (copy_rtx_and_substitute): Likewise.
14565
14566         * function.h (struct function): Remove x_cleanup_label.
14567         (cleanup_label): Remove.
14568         * stmt.c (expand_value_return): Don't use it.
14569         * function.c (free_after_compilation): Don't set it.
14570         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
14571         * cfgexpand.c (tree_expand_cfg): Update call.
14572         * tree.h (expand_function_start): Update decl.
14573
14574 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
14575
14576         PR c/1027
14577         * c-lang.c (c_initialize_diagnostics): Move from here ...
14578         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
14579         (c_tree_printer): Use pretty-printer to format %T.
14580         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
14581         before '*' if not C++.
14582         (pp_c_direct_abstract_declarator): Don't try to print array upper
14583         bound for flexible array members.
14584         * c-tree.h: Include "diagnostic.h".
14585         (c_initialize_diagnostics): Declare.
14586         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
14587         * c-format.c (format_type_warning): New function.  Improve
14588         diagnostics for incorrect format argument types.
14589         (check_format_types): Use it.  Add two parameters.  Use the
14590         TYPE_MAIN_VARIANT of wanted_type.
14591         (check_format_info_main): Pass new parameters to
14592         check_format_types.
14593         (struct format_wanted_type): Update comment.
14594
14595 2004-07-01  Nick Clifton  <nickc@redhat.com>
14596
14597         * target.h (struct gcc_target): Add new field to struct cxx:
14598         import_export_class.
14599         * target-def.h (TARGET_CXX): Initialise the new field.
14600         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
14601         the new field.
14602         * doc/tm.texi: Document the new target hook.
14603
14604 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
14605
14606         * builtins.c (fold_builtin_classify): Fix typo.
14607
14608 2004-07-01  Richard Henderson  <rth@redhat.com>
14609
14610         * function.c (identify_blocks, identify_blocks_1): Remove.
14611         * function.h (identify_blocks): Remove.
14612         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
14613
14614 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
14615
14616         * builtins.c (fold_builtin_classify): New.
14617         (fold_builtin_unordered_cmp): Fix commentary.
14618         (fold_builtin): Use it.
14619         * builtins.def: Define builtins for isnan,
14620         isnanf, isnanl, finite, finitef, finitel,
14621         isinf, isinff, isinfl.
14622
14623 2004-07-01  Richard Henderson  <rth@redhat.com>
14624
14625         * function.h (struct function): Remove dont_emit_block_notes.
14626         * gimple-low.c (lower_function_body): Don't set it.
14627         * cfgexpand.c (expand_block): Don't check it.
14628         * cfglayout.c (insn_locators_initialize): Likewise.
14629         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
14630         * passes.c (rest_of_compilation): Likewise.
14631         * stmt.c (expand_start_bindings_and_block): Likewise.
14632         (expand_end_bindings): Likewise.
14633
14634 2004-07-01  Richard Henderson  <rth@redhat.com>
14635
14636         * cgraph.h (cgraph_build_static_cdtor): Declare.
14637         * cgraphunit.c (cgraph_build_static_cdtor): New.
14638         * c-objc-common.c (build_cdtor): Use it.
14639         * coverage.c (create_coverage): Likewise.
14640         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
14641         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
14642
14643 See ChangeLog.11 for earlier changes.