OSDN Git Service

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