OSDN Git Service

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