OSDN Git Service

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