OSDN Git Service

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