OSDN Git Service

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