OSDN Git Service

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