OSDN Git Service

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