OSDN Git Service

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