OSDN Git Service

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