OSDN Git Service

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