OSDN Git Service

* config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2
3         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
4         * config/s390/s390.c (s390_back_chain_rtx): New function.
5         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
6         Call anti_adjust_stack.
7         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
8         only if compiling with back chain.
9         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
10         back chain only if back chain enabled.  Use s390_back_chain_rtx.
11         
12 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
13
14         * doc/trouble.texi: Remove obsolete information.  Update
15         information on how to regenerate fixincluded headers.
16
17 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
18
19         PR c/12951
20         * doc/invoke.texi: Document that
21         -Wno-error-implicit-function-declaration is not accepted.
22
23 2004-09-24  Richard Henderson  <rth@redhat.com>
24
25         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
26         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
27         on TARGET_MAX.
28         (alpha_expand_mov): Allow unaligned vectors.
29         (alpha_expand_unaligned_store): Use CONST0_RTX.
30         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
31
32 2004-09-24 Jeff Law  <law@redhat.com>
33
34         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
35         aliasing rules.
36         (simplify_cond_and_lookup_avail_expr): Likewise.
37
38 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
39
40         PR c/12802
41         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
42         title.  Document interaction with -fms-extensions.
43         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
44         section.
45
46 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
47
48         PR c/12713
49         * doc/extend.texi: Document interaction of attribute noreturn and
50         longjmp.
51
52 2004-09-24  Richard Henderson  <rth@redhat.com>
53
54         PR rtl-opt/17503
55         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
56         (som_hash, som_eq): New.
57         (init_subregs_of_mode, record_subregs_of_mode): New.
58         (cannot_change_mode_set_regs): Rewrite for htab implementation.
59         (invalid_mode_change_p): Likewise.
60         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
61         * flow.c (mark_used_regs): Likewise.
62         (life_analysis): Use init_subregs_of_mode.
63         * regs.h (subregs_of_mode): Remove.
64         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
65
66 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
67
68         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
69         type with the copy of the conditional.
70
71 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
72
73         PR tree-opt/16954
74         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
75         Prevent renaming if the aliasing sets of the type which the
76         pointer points to are different.
77
78 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
79
80         PR c/17188
81         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
82         declarations of enumerators.
83         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
84         for redefinition.  Check for nested redefinition.
85         (finish_struct): Don't check for nested redefinition.
86         (start_enum): Check for nested redefinition.
87
88 2004-09-24  Devang Patel  <dpatel@apple.com>
89
90         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
91         only when necesssary.
92         (combine_blocks): Combine loop header and exit block.
93         
94 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
95
96         * hooks.c (hook_tree_tree_bool_null): New.
97         * hooks.h (hook_tree_tree_bool_null): Declare it.
98         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
99         * targhooks.c (default_fold_builtin): Remove.
100         * targhooks.h (default_fold_builtin): Remove.
101
102 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
103
104         PR rtl-optimization/17625
105         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
106
107 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
108
109         PR tree-opt/17624
110         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
111         Reject if any of the operands occur in an abnormal PHI.
112
113 2004-09-24  Andreas Schwab  <schwab@suse.de>
114
115         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
116         rules.
117
118 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
119
120         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
121         if the GNU assembler is used.
122         (sparc-*-solaris2*): Likewise.
123         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
124         (dbxout_function_end): Protect N_ENSYM with it.
125         (dbxout_begin_prologue): Protect N_BNSYM with it.
126         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
127         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
128         * config/sparc/sol2-gas.h: New file.
129
130 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
131
132         PR bootstrap/17369
133         * Makefile.in (@set_gcc_lib_path@): Added.
134
135         * configure.ac: Include ../config/gcc-lib-path.m4. Use
136         TL_AC_GNU_MAKE_GCC_LIB_PATH.
137         * configure: Regenerated.
138
139 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
140
141         PR c/6980
142         * c-typeck.c (build_c_cast): Improve wording of
143         -Wbad-function-cast diagnostic.
144
145 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
146
147         PR target/17626
148         * config/cris/cris.md (moverside, movemside): Rename variable
149         "reg" to "otherop".  To generate canonical RTX, check that otherop
150         isn't constant instead of checking that operand 1 is a register.
151
152 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
153
154         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
155
156 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
157             Jakub Jelinek  <jakub@redhat.com>
158
159         * tree-flow.h (find_new_referenced_vars): Add prototype.
160         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
161         Move to...
162         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
163         ... here.
164         (mark_new_vars_to_rename): Walk through all operands.
165         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
166         (execute_fold_all_builtins): Use it.
167         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
168
169 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
170
171         * gthr-tpf.h: New file.
172         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
173         * gthr.h: Use gthr-tpf.h on TPF OS.
174
175 2004-09-23 Jeff Law  <law@redhat.com>
176
177         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
178         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
179         (substitute_and_fold):  Likewise.
180         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
181         except invariants from SSA_NAME_VALUE.
182         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
183         and SET_SSA_NAME_EQUIV.
184         (restore_vars_to_original_value, record_const_or_copy): Likewise.
185         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
186         (record_equality, cprop_into_successor_phis): Likewise.
187         (record_equivalences_from_stmt, cprop_operand): Likewise.
188         (lookup_avail_expr): Likewise.
189         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
190         from SSA_NAME_VALUE.
191         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
192         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
193         annotation from the VALUE_HANDLE field.
194
195 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
196
197         PR c++/13989
198         PR c++/9844
199         * tree.c (reconstruct_complex_type): Remove extra "this".
200         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): 
201         Add V4SFmode to case statement.
202
203 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
204
205         PR c/16833
206         * doc/extend.texi, doc/invoke.texi: Document interaction of
207         -fno-builtin with format checks.  Note that built-in functions
208         have effects beyond generating code that avoids calls to those
209         functions.
210
211 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
212
213         PR tree-optimization/17533
214         * dominance.c (verify_dominators): Tolerate even more incorrect
215         dominance data during error message printing.
216         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
217         and edges more correctly.
218         
219 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
220
221         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
222         New tree-codes.
223         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
224         MISALIGNED_INDIRECT_REF.
225         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
226         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
227         Likewise.
228         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
229         (find_interesting_uses_address): Likewise.
230         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
231         (build_fold_addr_expr_with_type): Likewise.
232         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
233         * print-rtl.c (print_mem_expr): Likewise.
234         * tree-dump.c (dequeue_and_dump): Likewise.
235         * tree-eh.c (tree_could_trap_p): Likewise.
236         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
237         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
238         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
239         Likewise.
240         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
241         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
242         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
243         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
244         (add_address_candidates, rewrite_address_base): Likewise.
245         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
246         Likewise.
247         * tree.c (staticp, build1_stat): Likewise.
248
249         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
250         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
251         * tree-ssa-operands.c (get_expr_operands): Likewise.
252         * expr.c (expand_expr_real_1): Likewise.
253
254         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
255         optabs.
256         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
257         for the new optabs.
258         (expand_ternary_op): New function.
259         * genopinit.c (optabs): Handle the new optabs.
260         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
261         (init_optabs): Initialize vec_realign_load_optab.
262         (expand_ternary_op): New functions.
263
264         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
265         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
266         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
267         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
268         * target.h (struct vectorize): New member for struct gcc_target.
269         (misaligned_mem_ok): New member for targetm.vectorize.
270         (builtin_mask_for_load): Likewise.
271         (builtin_mask_for_store): Likewise.
272         * targethooks.c (default_vect_misaligned_mem_ok): New function.
273         * targethooks.h (default_vect_misaligned_mem_ok): New function.
274
275         * config/rs6000/altivec.md (build_vector_mask_for_load): New
276         define_expand.
277         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
278         (vec_realign_load_v16qi): New define_insn.
279         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
280         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
281         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
282         (altivec_builtin_mask_for_store): New variables.
283         (rs6000_builtin_mask_for_load): New function. Implements
284         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
285         (rs6000_builtin_mask_for_store): New function. Implements
286         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
287         (rs6000_expand_builtin): Expand the target builtins
288         builtin_mask_for_load and builtin_mask_for_store.
289         (altivec_init_builtins): Initialize the new target builtins.
290         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
291         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
292
293         * tree-vectorizer.c (vect_create_data_ref): Renamed to
294         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
295         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
296         (vectorizable_store): Call vect_create_data_ref_ptr with additional
297         arguments, and create an indirect_ref with its return value data_ref.
298         Check aligned_access_p.
299         (vectorizable_load): Handle misaligned loads, using software-pipelined
300         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
301         vec_realign_load_optab is supported, or using a scheme without
302         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
303         misaligned_mem_ok is supported.
304
305         (vect_finish_stmt_generation): Typo.
306         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
307         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
308         presence of misaligned loads.
309         (vect_analyze_data_ref_access): Add check for constant init.
310         (vect_get_symbl_and_dr): Remove duplicate line.
311         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
312
313 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
314
315         * builtins.c: Fix a comment typo.
316
317 2004-09-23  Jan Hubicka  <jh@suse.cz>
318
319         * profile.c (branch_prob): Do not verify flow info in the middle of the
320         pass.
321
322 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
323
324         * cfgloop.h (update_single_exits_after_duplication): Declare.
325         (loopify, split_loop_bb): Declaration changed.
326         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
327         of rtx.
328         (loopify): Added redirect_all_edges argument.
329         (update_single_exits_after_duplication): Export.
330         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
331         * tree-flow.h (tree_duplicate_loop_to_header_edge,
332         tree_ssa_loop_version): Declare.
333         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
334         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
335         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
336         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
337
338         * tree-ssa-loop-unswitch.c: New file.
339         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
340         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
341         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
342         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
343         * tree-pass.h (pass_unswitch): Declare.
344         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
345         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
346         * doc/passes.texi: Documen tree level loop unswitching.
347
348 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
349
350         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
351
352 2004-09-22  Eric Christopher  <echristo@redhat.com>
353
354         * builtins.c (simplify_builtin_va_start): Remove.
355         (simplify_builtin): Ditto.
356         (fold_builtin_strchr): Ditto.
357         (simplify_builtin_*): Rename remainders to fold_builtin_*.
358         (expand_builtin): Fix up for above changes.
359         (fold_builtin_1): Add new folders. Change for above.
360         (expand_builtin_va_start): Call fold_builtin_next_arg.
361         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
362         * tree.h: Remove prototype for simplify_builtin.
363
364 2004-09-23  Jan Hubicka  <jh@suse.cz>
365
366         PR debug/17389
367         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
368         of fully inlined functions.
369         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
370         inlined.
371
372         * cfgexpand.c (add_reg_br_prob_note): New function.
373         (expand_gimple_cond_expr): Use it.
374         (tree_expand_cfg): No longer kill the profile.
375         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
376         only if it is present.
377         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
378         * predict.c (combine_predictions_for_insn): Set the probabilities
379         based on REG_BR_PROB note if present.
380         * predict.c (branch_prob): Profile is read only with
381         flag_branch_probabilities.
382
383 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
384
385         * aclocal.m4: Add in gettext's m4 includes.
386         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
387         * configure.ac: Add in check for iconv.h
388         * configure: Regenerate.
389
390 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
391
392         * aclocal.m4: Update for rename of gettext-sister.m4.
393
394 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
395
396         Fix PR tree-optimization/17587
397         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
398         (insert_aux): Instead of here.
399
400 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
401
402         PR tree-optimization/16721
403         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
404         * tree-ssa-alias.c (create_memory_tag): Move setting of
405         TREE_THIS_VOLATILE ...
406         (get_tmt_for): ... here.
407
408 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
409
410         * config/sparc/sparc.md (cmove splitter): Fix formatting.
411         (conditional_trap expander): Reject inappropriate CCmodes.
412         (conditional trap insn): Use V9 syntax if possible.
413
414 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
415
416         PR c/16566
417         * c-typeck.c (build_component_ref): Don't special-case
418         COMPOUND_EXPR.
419
420 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
421
422         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
423         returns NULL.
424
425 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
426
427         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
428         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
429         TRUTH_XOR_EXPR): Mention the restriction on types.
430
431 2004-09-22  Matt Austern  <austern@apple.com>
432
433         * config/darwin.c (darwin_make_decl_one_only):
434         Allow coalesced symbol to appear in static archive's table of contents
435
436 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
437
438         PR tree-optimization/17512
439         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
440         special cases.
441
442 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
443
444         * dbxout.c (get_lang_number): Do not define if
445         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
446
447 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
448
449         PR target/15583
450         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
451         builtin_define ("__USE_INIT_FINI__").
452
453 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
454
455         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
456         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
457         * config/s390/s390.h (TARGET_TPF): New macro.
458         * config/s390/s390.md ("eh_return"): New expander.
459         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
460         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
461         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
462         * config/s390/tpf.h (TARGET_TPF): Define to 1.
463         (STACK_POINTER_OFFSET): Increase to 448.
464         (TARGET_DEFAULT): Set -mtpf-trace on as default.
465         (TPF_LOC_DIFF_OFFSET): New macro.
466         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
467         encoding.
468         (__isPATrange): Add prototype.
469         (MD_FALLBACK_FRAME_STATE_FOR): Define.
470         * config/s390/tpf-eh.c: New file.
471
472 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
473
474         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
475         operands in an integer comparison.
476         * tree-cfg.c (find_taken_edge): Call fold() to determine
477         whether the predicate is known.
478
479 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
480
481         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
482         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
483         Create build and doc directories along with the language directories.
484         Don't create doc directory separately.
485         * configure: Regenerate.
486         * Makefile.in: Create all object and executables files built
487         with the build compiler in a build/ directory.
488         (genobjnames): Add missing build objects.
489         (STAGESTUFF): Don't stage the gen* programs.
490         (ggc-none.o): Define dependencies for the target compiler.
491         (build-print-rtl.o): Rename to build/print-rtl.o.
492         (build-errors.o): Rename to build/errors.o.
493         (build-varray.o): Rename to build/varray.o.
494         (maintainerclean): Delete the contents of the build directory.
495         ($(genobjs): %.o): Explicitly use -o.
496         (build/insn-conditions.o): Delete specfic rule to use generic rule.
497         (build/gengtype-lex.o): Likewise.
498         (build/gengtype-yacc.o): Likewise.
499         (build/gcov-iov.o): Likewise.
500
501 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
502
503         * vec.h (VEC_space): Return true if there _is_ space.
504         (VEC_reserve): Adjust.
505
506 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
507
508         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
509         use FPRs for scalar, complex and vector types only.
510
511 2004-09-21 Jeff Law  <law@redhat.com>
512
513         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
514         the opt_stats_d structure.
515         (vrp_data): Change from a varray into a hash table.
516         (vrp_hash_elt): New structure for elements in the vrp hash table.
517         (vrp_hash, vrp_eq):New functions for hashing and testing equality
518         in the vrp hash table.
519         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
520         initialization slightly to make it easier to read.  No longer need
521         to grow/clear the varray.  Instead empty and delete the hash table.
522         (dom_opt_finalize_block): Update due to change of VRP_DATA from
523         a varray to a hash table.
524         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
525
526         * tree-ssa-ccp.c (get_default_value): If we have a constant
527         value recorded for an SSA_NAME, then use that constant as
528         the initial lattice value.
529         (substitute_and_fold): Transfer equivalences discovered into
530         SSA_NAME_EQUIV.
531
532         * tree.h (SSA_NAME_EQUIV): Add comments.
533         (SET_SSA_NAME_EQUIV): Similarly.
534
535 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
536
537         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
538
539         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
540
541 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
542
543         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
544         (finish_decl): Likewise.
545
546 2004-09-21  Devang Patel  <dpatel@apple.com>
547
548         * tree.def (VEC_COND_EXPR): New tree node.
549         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
550
551 2004-09-21  Stan Shebs  <shebs@apple.com>
552
553         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
554         * config/rs6000/darwin-world.asm: Likewise.
555
556 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
557
558         * tree-ssa.c (verify_def): Use print_generic_stmt,
559         not debug_generic_stmt.
560         (verify_use): Ditto.
561         (verify_phi_args): Ditto.
562         (verify_ssa): Ditto.
563
564 2004-09-21  Paul Brook  <paul@codesourcery.com>
565
566         * varasm.c (default_assemble_integer): Return false for values wider
567         than the target word size.  Works around GAS bug.
568
569 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
570
571         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
572         gets value 0.
573         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
574         if it has value 0.
575
576 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
577
578         * c-typeck.c (build_function_call): Give name of object
579         we are attempting to call in error message.
580         * c-objc-common.c (c_tree_printer): Call pp_expression,
581         not return false, for 'E' case.
582
583 2004-09-21  Steven Bosscher  <stevenb@suse.de>
584
585         PR rtl-optimization/17482
586         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
587         load_killed_in_block_p): Clarify comments.
588         (record_last_reg_set_info): Make static inline.
589         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
590         (record_opr_changes): New function to replace the above.
591         (compute_hash_table): Clarify comments.  Use record_opr_changes.
592         (reg_set_between_after_reload_p): Clean up.
593         (reg_used_between_after_reload_p): Likewise.
594         (eliminate_partially_redundant_load): Clarify comments.
595
596 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
597
598         PR rtl-optimization/17266
599         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
600
601 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
602
603         PR rtl-optimization/14851
604         * rtlanal.c (commutative_operand_precedence): Calculate
605         precedence of stripped constant.
606
607 2004-09-20 Jeff Law  <law@redhat.com>
608            Jan Hubicka  <jh@suse.cz>
609
610         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
611         initialize key elements here.
612         (release_ssa_name): Zero the released SSA_NAME here.
613         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
614         (struct tree_ssa_name): Add new "equiv" field.
615         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
616         (tree_ssa_dominator_optimize): No longer allocate, resize or
617         clear CONST_AND_COPIES.
618         (get_value_for, set_value_for): Kill.
619         (thread_across_edge): Get/set the equivalency using
620         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
621         (restore_vars_to_original_value): Likewise.
622         (record_equivalences_from_phis): Likewise.
623         (record_dominating_conditions): Likewise.
624         (record_const_or_copy, record_equality): Likewise.
625         (lookup_avail_expr): Likewise.
626         (record_equivalences_from_stmt, cprop_operand): Likewise.
627         (cprop_into_successor_phis): No longer need to pass around
628         CONST_AND_COPIES.  Callers updated. Get equivalences via
629         SSA_NAME_EQUIV.
630         (cprop_into_phis): Likewise.
631
632 2004-09-20  Matt Austern <austern@apple.com>
633             Zack Weinberg  <zack@codesourcery.com>
634
635         * c-common.c (fix_string_type): Build the unqualified array
636         type unconditionally, then use c_build_qualified_type to get
637         the proper const-qualified variant, and set its
638         TYPE_MAIN_VARIANT to refer to the unqualified type.
639         * c-lex.c (c_lex_return_raw_string): New global.
640         (c_lex_with_flags): Honor it.
641         * c-pragma.h: Declare it.
642
643 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
644
645         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
646
647 2004-09-21  Jan Hubicka  <jh@suse.cz>
648
649         PR middle-end/17126
650         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
651         (tree_rest_of_compilation): Cleanup.
652
653 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
654
655         * config/s390/s390.c (s390_select_rtx_section): Remove.
656         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
657
658 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
659
660         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
661         note to pretend a direct save from the original register when an
662         intermediate register is used for the save.
663
664 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
665
666         * tsystem.h (alloca): Provide a default definition.
667
668         Revert:
669         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
670             * unwind-dw2.c: Call __builtin_alloca, not alloca.
671
672 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
673
674         PR tree-opt/17558
675         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
676         aliasing sets are the same rather than just conflicting.
677
678 2004-09-20  Jan Hubicka  <jh@suse.cz>
679
680         PR middle-end/16460
681
682         * cgraph.c (cgraph_unnest_node): New function.
683         (c_finalize): Rename to ....
684         (c_warn_unused_result_recursivly): ... this one; do only the warning
685         (finish_function): Finalize the toplevel function; do not lower nested tree.
686         * cgraph.h (cgraph_unnest_node): Declare.
687         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
688         nestedness datastructure.
689         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
690         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
691         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
692
693 2004-09-20  Richard Henderson  <rth@redhat.com>
694
695         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
696         from some_small_symbolic_operand_1; export.
697         (some_small_symbolic_operand): Remove.
698         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
699         extra C check.
700         * config/alpha/predicates.md (some_small_symbolic_operand): New.
701
702 2004-09-20  Jan Hubicka  <jh@suse.cz>
703
704         * predict.c (return_prediction): New function.
705         (apply_return_prediction): Likewise.
706         (tree_bb_level_predictions): Likewise.
707         (tree_estimate_probability): Add noreturn exit edges; call
708         bb_level_predictions; fix logic of return heuristics.
709         (predict_paths_leading_to):  Rescuesce from old CVS version of
710         process_note_prediction function.
711         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
712
713 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
714
715         * config/s390/s390.c (s390_frame_info): Added alignment statement for
716         floating point register area on stack.
717
718 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
719
720         * predict.c (expr_expected_value): Use *_CLASS_P macros.
721
722 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
723
724         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
725         generating useless garbage.
726
727 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
728
729         * builtins.c (fold_builtin): Call the new omonymous
730         target hook for machine-dependent built-ins.
731         * target-def.h (TARGET_FOLD_BUILTIN): New.
732         * target.h (struct gcc_target): Add the fold_builtin hook.
733         * targhooks.c (default_fold_builtin): New.
734         * targhooks.h (default_fold_builtin): Declare it.
735
736 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
737
738         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
739         comment typos.
740
741 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
742
743         PR target/17565
744         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
745
746 2004-09-20  Jan Hubicka  <jh@suse.cz>
747
748         * predict.c (estimate_probability): Remove unnecesary code.
749
750 2004-09-19  Ira Rosen  <irar@il.ibm.com>
751
752         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
753         (STMT_VINFO_VECT_DR_BASE): Declare.
754         (VECT_SMODULO): Declare.
755         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
756         (vect_compute_array_base_alignment): New function.
757         (vect_analyze_data_ref_access): Check array indices. Remove one
758         dimensional arrays restriction.
759         (vect_get_ptr_offset): New function.
760         (vect_get_symbl_and_dr): New function.
761         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
762         (former name vect_get_base_decl_and_bit_offset).
763         (vect_create_index_for_array_ref): Removed.
764         (vect_create_index_for_vector_ref): New function.
765         (vect_create_addr_base_for_vector_ref): New function.
766         (vect_create_data_ref): Handle additional data refs. Call
767         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
768         (vect_compute_data_ref_alignment): Support the changes. Call
769         vect_get_base_and_bit_offset.
770         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
771         data refs. Store vect_dr_base.
772         (vect_analyze_data_ref_accesses): Support nonconstant init.
773         (new_stmt_vec_info): Initialize vect_dr_base field.
774         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
775         (get_vectype_for_scalar_type): Check for BLKmode.
776         * tree-chrec.h (initial_condition_in_loop_num): Declare.
777         * tree-chrec.c (initial_condition_in_loop_num): New function.
778         (chrec_component_in_loop_num): New function.
779         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
780         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
781         to be pointer to varray_type.
782
783 2004-09-19  Jan Hubicka  <jh@suse.cz>
784
785         * basic-block.h (update_bb_profile_after_threading): Declare.
786         * cfg.c (update_bb_profile_after_threading): Break out from ...
787         * cfgcleanup.c (try_forward_edges): ... here; use it.
788         * tree-ssa-dom.c (thread_across_edge): Use it.
789         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
790         profile of the new BB.
791
792 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
793
794         * tree-ssa-pre.c (insert_into_set): Don't put
795         is_gimple_min_invariant values into the set.
796
797 2004-09-19  Andreas Jaeger  <aj@suse.de>
798
799         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
800         prototype.
801
802 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
803
804         * config/cris/cris.h: Preserve the original spelling in a
805         quote.
806
807 2004-09-18 Jeff Law  <law@redhat.com>
808
809         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
810         global varrays to replace the block local varrays.
811         (struct dom_walk_block_data): Remove, no longer used.
812         (get_eq_expr_value): No longer need to pass around pointers to local
813         varrays.  Callers updated.  Unused markers added to unused parameters.
814         (record_range, record_equivalences_from_stmt): Likewise.
815         (record_equivalences_from_incoming_edge): Likewise.
816         (record_var_is_nonzero): Likewise.  Update now that we have a
817         single global varray of SSA_NAMEs that need restoring.
818         (dom_opt_initialize_block_local_data): Kill, no longer used.
819         (tree_ssa_dominator_optimize): Initialize new global varrays.
820         Update callbacks in dominator walker structure.
821         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
822         VRP_VARIABLES_STACK.
823         (restore_nonzero_vars_to_original_value): Update now that we have
824         a single global varray of SSA_NAMEs that need restoring.
825         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
826         Remove unused variables.
827         (optimize_stmt): Remove unused variable.
828
829 2004-09-18  Jan Hubicka  <jh@suse.cz>
830
831         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
832
833         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
834         verify_cgraph call.
835
836 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
837
838         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
839         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
840         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
841         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
842         tree-ssa-operands.c, tree-ssa-phiopt.c,
843         tree-ssa-threadupdate.c: Fix comment typos.
844
845 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
846
847         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
848         config/arm/README-interworking, config/arm/arm-cores.def,
849         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
850         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
851         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
852         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
853         config/frv/frv.md, config/i386/winnt.c,
854         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
855         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
856         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
857         config/mcore/mcore.c, config/mips/mips.h,
858         config/mn10300/mn10300.md, config/pa/pa.c,
859         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
860         config/rs6000/rs6000.c, config/sh/symbian.c,
861         config/sparc/sparc.h: Fix comment typos.  Follow spelling
862         conventions.
863
864 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
865
866         PR c/17424
867         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
868
869 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
870
871         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
872         remove TREE_ADDRESSABLE from RESULT_DECL.
873
874 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
875
876         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
877
878 2004-09-18  Jan Hubicka  <jh@suse.cz>
879
880         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
881         NULL.
882         * tree-ssa-alias.c (init_alias_info): Likewise.
883         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
884         (verify_ssa): Likewise.
885         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
886
887 2004-09-18  Jan Hubicka  <jh@suse.cz>
888
889         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
890         huge offset.
891
892 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
893
894         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
895         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
896         DW_EH_PE_sdata* for data.
897         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
898
899 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
900
901         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
902         shared anyway.
903
904         PR pch/13361
905         * c-typeck.c (constructor_asmspec): Delete.
906         (struct initializer_stack): Delete field 'asmspec'.
907         (start_init): Delete saving of asmspec.
908         (finish_init): Don't update constructor_asmspec.
909         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
910         * stmt.c (expand_asm): Duplicate strings from tree.
911         (expand_asm_operands): Likewise.
912         * tree.c (tree_size): Update computation of size of STRING_CST.
913         (make_node): Don't make STRING_CST nodes.
914         (build_string): Allocate string with tree node.
915         (tree_code_size): Clean up assertions, don't allow requests
916         for "the size of a STRING_CST".
917         * tree.def (STRING_CST): Update comment.
918         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
919         (tree_string): Place contents of string in tree node.
920         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
921         from tree.
922
923 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
924
925         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
926         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
927
928 2004-09-17  Jones Desougi  <jones@ingate.com>
929
930         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
931         * configure, config.in: Regenerate.
932
933 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
934
935         * tree.c, tree.h (tree_class_strings): Make array const.
936         Reindent per coding convention.  Move asterisk to proper place
937         per coding convention.
938
939 2004-09-18  Andreas Schwab  <schwab@suse.de>
940
941         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
942         (tree-vectorizer.o): Likewise.
943         (targhooks.o): Likewise.
944
945 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
946             Zack Weinberg  <zack@codesourcery.com>
947
948         * alias.c (find_base_decl): Remove unreachable case '3' block.
949         * expr.c (safe_from_p): Abort if passed a type.
950         * tree-gimple.c (recalculate_side_effects): Abort if passed
951         anything other than an expression.
952         * tree-ssa-pre.c (phi_translate): Return expr immediately if
953         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
954         Abort on un-handled tree classes.
955         (valid_in_set): Likewise.
956         * tree.c (tree_code_class_strings): New static data.
957
958         * tree.h (enum tree_code_class): New.
959         (tree_code_class_strings): Declare.
960         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
961         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
962         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
963         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
964         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
965
966         * tree.def, c-common.def, objc/objc-tree.def: Use
967         tree_code_class enumeration constants instead of code letters.
968
969         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
970         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
971         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
972         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
973         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
974         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
975         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
976         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
977         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
978         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
979         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
980         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
981         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
982         Update to match.
983
984         * LANGUAGES: Add note about change.
985
986 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
987
988         PR tree-optimization/17319
989         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
990         examine pointers on the LHS of an assignment.
991         (collect_points_to_info_r): Handle RETURN_EXPR.
992
993 2004-09-17 Jeff Law  <law@redhat.com>
994
995         * tree-ssa-dom.c (const_and_copies_stack): New.
996         (dom_walk_block_data): Remove const_and_copies field.
997         (record_const_or_copy): No longer need to pass in varray_type *.
998         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
999         Callers updated.
1000         (record_equality): Similarly.
1001         (restore_vars_to_original_value): Similarly.  Revamp to use new
1002         single global stack rather than per-block stacks.
1003         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
1004         (thread_across_edge): Remove now unused parameters.
1005         (dom_opt_initialize_block_local_data): No longer test the block
1006         local CONST_AND_COPIES.
1007         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
1008
1009 2004-09-17  Jan Hubicka  <jh@suse.cz>
1010
1011         PR tree-optimization/17509
1012         * tree-optimize.c (update_inlined_to_pointers): New function.
1013         (tree_rest_of_compilation): Use it.
1014
1015 2004-09-17  Devang Patel  <dpatel@apple.com>
1016
1017         * dbxout.c (get_lang_number): New.
1018         (dbxout_init): Include lang number in N_SO  stab.
1019         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
1020         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
1021
1022 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
1023
1024         PR tree-optimization/17273
1025         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
1026         replacement is a constant.
1027
1028 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1029
1030         * c-tree.h (enum c_typespec_keyword): New.
1031         (struct c_declspecs): Adjust description of "type".  Remove
1032         specbits, explicit_int_p and explicit_char_p.  Rename
1033         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
1034         short_p, signed_p, unsigned_p and complex_p.
1035         (finish_declspecs): New.
1036         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
1037         typename): Call finish_declspecs.
1038         * c-decl.c (finish_declspecs): New.
1039         (declspecs_add_type): Check for combinations which cannot occur in
1040         valid specifier lists.  Update comments.
1041         (shadow_tag_warned): Remove checks done in finish_declspecs.
1042         Don't report useless type name if type defaulted to int.
1043         (grokdeclarator): Remove checks and actions done in
1044         finish_declspecs.  Don't allow for type being NULL.  Update for
1045         datastructures changes.  Initialize decl_attr.
1046         (build_null_declspecs, quals_from_declspecs): Update for
1047         datastructures changes.
1048
1049 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
1050
1051         * doc/extend.texi: Fix duplicated word.
1052
1053 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
1054
1055         * doc/invoke.texi: Remove stray explanation on
1056         -freduce-all-givs and -fmove-all-movables.
1057
1058 2004-09-17  James Morrison  <phython@gcc.gnu.org>
1059
1060         * doc/cfg.texi: Use @smallexample.
1061         * doc/md.texi: Likewise.
1062         * doc/tree-ssa.texi: Likewise.
1063         * doc/extend.texi: Likewise.  Use @r{} in comments.
1064         * doc/trouble.texi: Use @r{} in comments.
1065
1066 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
1067
1068         * configure.ac (gcc_cv_gld_version): Handle whitespace before
1069         "VERSION=".
1070         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
1071         * configure: Regenerate.
1072
1073 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
1074
1075         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
1076         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
1077         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
1078         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
1079         slashes in substitutions.
1080         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
1081
1082 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
1083
1084         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
1085         gimplify.c, lambda-code.c, optabs.c, predict.c,
1086         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
1087         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
1088         conventions.
1089
1090 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
1091
1092         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
1093         doc/extend.texi, doc/install.texi, doc/invoke.texi,
1094         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
1095         doc/trouble.texi: Use @option around options.
1096
1097 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
1098
1099         * Makefile.in (gen-protos.o): Depend on errors.h.
1100
1101 2004-09-17  Steven Bosscher  <stevenb@suse.de>
1102
1103         PR tree-optimization/17513
1104         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
1105         for successors of the entry block.
1106
1107 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
1108
1109         PR rtl-optimization/15187
1110         * ifcvt.c (noce_try_cmove_arith): Exit early if total
1111         insn_rtx_cost of both branches > BRANCH_COST
1112
1113 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
1114
1115         PR tree-optimization/17528
1116         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
1117         erase the may-alias set for a tag when merging it with
1118         another.
1119
1120 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1121
1122         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
1123         for 32-bit TARGET_SHMEDIA.
1124         (call_value): Likewise.
1125
1126 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
1127
1128         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
1129         test apply only to TREE_STATIC and DECL_EXTERNAL.
1130
1131 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1132
1133         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
1134         * basic-block.h (get_dominated_by_region): Declare.
1135         * dominance.c (get_dominated_by_region): New function.
1136         * tree-cfg.c: Include cfglayout.h.
1137         (tree_duplicate_bb): Duplicate also phi nodes.
1138         (struct ssa_name_map_entry): New type.
1139         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
1140         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
1141         allocate_ssa_names, rewrite_to_new_ssa_names_def,
1142         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
1143         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
1144         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
1145         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
1146         rewrite_to_new_ssa_names, allocate_ssa_names,
1147         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
1148         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
1149         (copy_loop_headers): Use tree_duplicate_sese_region.
1150
1151 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
1152
1153         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
1154
1155 2004-09-16 Jeff Law  <law@redhat.com>
1156
1157         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
1158         (rewrite_block_data): Remove, no longer used.
1159         (rewrite_initialize_block_local_data): Remove, no longer used.
1160         (rewrite_initialize_block): Mark parameters as unused as needed.
1161         Change references to the block local block_defs to be block_defs_stack.
1162         Push a marker onto the block_defs_stack.
1163         (ssa_rewrite_initialize_block): Similarly.
1164         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
1165         (ssa_register_new_def): No longer needs varray argument.  Use
1166         block_defs_stack instead.  No longer handle possibly null block_defs
1167         varray.  Reverse order of items we push on the stack to make it
1168         easier to identify our marker.
1169         (register_new_def): No longer handle possibly null block_defs
1170         varray.
1171         (rewrite_finalize_block): Revamp to look for markers in the global
1172         block_defs_stack varray rather than wiping a block local varray.
1173         Mark arguments as unused as needed.
1174         (ssa_rewrite_finalize_block): Similarly.
1175         (rewrite_into_ssa): Update initialization of dom walker structure
1176         to reflect that we don't need block local data anymore.  Initialize
1177         the block_defs_stack varray.
1178         (rewrite_ssa_into_ssa): Similarly.
1179         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
1180         (struct dom_walk_data): Kill block_defs field.
1181         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
1182         (thread_across_edge): Use the global block_defs_stack instead of
1183         the old block_defs varray.
1184         (dom_opt_initialize_block_local_data): Update now that we don't have
1185         block_defs field to check anymore.
1186         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
1187         (restore_currdefs_to_original_value): Use the new block_defs_stack
1188         instead of a block local varray.
1189         (dom_opt_finalize_block): Similarly.
1190         (record_equivalencs_from_phis): Similarly.
1191         (optimize_stmt, register_definitions_for_stmt): Similarly.
1192
1193 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
1194
1195         PR tree-optimization/17517
1196         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
1197         coalesce same-root variables without checking for abnormal PHI usage.
1198
1199 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
1200
1201         * cfgloop.h (duplicate_loop):  Add prototype.
1202         * cfgloopmanip.c (duplicate_loop): Make non-static.
1203         * lambda-code.c (perfect_nestify): Factor out test whether
1204         we can handle this loop into separate function.
1205         Call it.
1206         (can_convert_to_perfect_nest): New function.
1207         (replace_uses_of_x_with_y): Add modify_stmt call.
1208         * tree-loop-linear.c (linear_transform_loops): Call
1209         rewrite_into_loop_closed_ssa and free_df.
1210
1211 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
1212
1213         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
1214         loop invariant as well.
1215         (perfect_nestify): new function.
1216         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
1217         upper bounds, and steps.
1218         Set outerinductionvar properly.
1219         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
1220         parameters.
1221         Return NULL if we need a perfect loop and can't make one.
1222         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
1223         (not_interesting_stmt): New function.
1224         (phi_loop_edge_uses_def): Ditto.
1225         (stmt_uses_phi_result): Ditto.
1226         (stmt_is_bumper_for_loop): Ditto.
1227         (perfect_nest_p): Ditto.
1228         (nestify_update_pending_stmts): Ditto.
1229         (replace_uses_of_x_with_y): Ditto.
1230         (stmt_uses_op): Ditto.
1231         (perfect_nestify): Ditto.
1232         * lambda-mat.c (lambda_matrix_id_p): New function.
1233         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
1234         * lambda.h: Update prototypes.
1235         * tree-loop-linear (linear_transform_loop): Use new
1236         perfect_nest_p. Detect and ignore identity transform.
1237         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
1238
1239 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
1240
1241         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
1242         Gather also strides of accessed data.  Pass in the data references
1243         array.
1244         (try_interchange_loops): Add a new heuristic for handling the temporal
1245         locality.  Pass in the data references array.
1246         (linear_transform_loops): Pass the data references array to
1247         try_interchange_loops.
1248
1249 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
1250
1251         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
1252
1253 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
1254
1255         * doc/c-tree.texi (Classes): Remove index entries for
1256         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
1257
1258 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1259
1260         * fold-const.c (fold): Fold difference of addresses.
1261         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
1262         get_inner_reference.
1263         * tree-ssa-loop-ivopts.c (peel_address): Removed.
1264         (ptr_difference_const): Moved to fold-const.c.
1265         (split_address_cost): Use get_inner_reference instead of peel_address.
1266         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
1267         * tree.h (ptr_difference_const): Export.
1268
1269         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
1270         variable type to the dump.  Fix indentation.
1271         (idx_find_step): Handle nonconstant array_ref_element_size and
1272         array_ref_low_bound.
1273         (idx_record_use): Handle array_ref_element_size and
1274         array_ref_low_bound.
1275         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
1276         statements correctly.
1277         (get_computation_at, iv_value): Do not unshare expressions here.
1278         (rewrite_use_outer): Unshare the expression before it is emitted
1279         to code.
1280         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
1281         Moved to tree.c.
1282         * tree.c (unsigned_type_for, signed_type_for): Moved from
1283         tree-ssa-loop-niter.c.  Use langhooks.
1284         * tree.h (signed_type_for): Export.
1285
1286 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
1287
1288         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
1289         prototype.
1290
1291 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
1292
1293         PR target/11572
1294         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
1295         Add two parameters to extra_includes.
1296         (C_INCPATH_INIT): Remove.
1297         * c-incpath.c (register_include_chains): Call extra_pre_includes
1298         before adding the standard include directory.
1299         Update call to extra_includes.
1300         (!defined TARGET_EXTRA_INCLUDES): Update
1301         hook_void_charptr_charptr_int and add !define
1302         TARGET_EXTRA_PRE_INCLUDES.
1303         (!define TARGET_EXTRA_INCLUDES): Define as
1304         hook_void_charptr_charptr_int.
1305         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
1306         (target_c_incpath): Always declare.
1307         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
1308         empty function.
1309         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
1310         * config/darwin.h: (darwin_register_frameworks): Update for
1311         the two new parameters.
1312         (darwin_register_objc_includes): Add prototype.
1313         (TARGET_EXTRA_PRE_INCLUDES): Define.
1314         * config/darwin-c.c (darwin_register_objc_includes): New function.
1315         (darwin_register_frameworks): Update for the two new parameters.
1316         (target_c_incpath): Remove.
1317         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
1318         the compile line.
1319         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
1320         parameters.
1321         (TARGET_EXTRA_PRE_INCLUDES): Document.
1322
1323         * gcc.c (spec_function): Add replace-outfile.
1324         (replace_outfile_spec_function): New function.
1325         * config/darwin.h (LINK_SPEC): Add replace
1326         -lobjc with -lobjc-gnu if -fgnu-runtime is
1327         supplied.
1328         * invoke.texi (replace-outfile): Document.
1329
1330 2004-09-13  Jan Hubicka  <jh@suse.cz>
1331
1332         * predict.c (expr_expected_value, strip_builtin_expect): New function.
1333         (tree_predict_by_opcode): Use it.
1334         (tree_estimate_probability): Add, for now disabled,
1335         strip_builtin_expect call.
1336
1337 2004-09-15  James E Wilson  <wilson@specifixinc.com>
1338
1339         PR target/17455
1340         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
1341         if current_function_decl is a sibcall.
1342
1343 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
1344
1345         * varasm.c (default_function_rdodata_section): Make sure to pass
1346         along a decl for a link-once section.
1347
1348 2004-09-15  Richard Henderson  <rth@redhat.com>
1349
1350         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
1351         warning with code disable.  Fix formatting.
1352
1353 2004-09-15  Steven Bosscher  <stevenb@suse.de>
1354
1355         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
1356         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
1357         after propagating into an ADDR_EXPR.
1358
1359 2004-09-15  Andrew Pinski  <apinski@apple.com>
1360
1361         PR rtl-opt/17427
1362         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
1363         Move it out of gcc_assert.
1364
1365 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1366
1367         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
1368         except.c, fold-const.c, function.c, langhooks.c, params.c,
1369         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
1370         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
1371         for quoting in diagnostics going through pretty-print.c.  Use ''
1372         for quoting in other diagnostic text.
1373         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
1374         translation.
1375         * Makefile.in (langhooks.o): Update dependencies.
1376         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
1377         formats.
1378
1379 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
1380
1381         * configure.ac: Check for COMDAT support.  Robustify check for
1382         SHF_MERGE support.
1383         * configure: Regenerated.
1384         * config.in: Likewise.
1385         * langhooks-def.h (lhd_comdat_group): New function.
1386         (LANG_HOOKS_COMDAT_GROUP): New macro.
1387         (LANG_HOOKS_DECLS): Use it.
1388         * langhooks.c (lhd_comdat_group): Define.
1389         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
1390         * output.h (named_section_flags): Make it a macro.
1391         (named_section_real): New function.
1392         (default_no_named_section): Add decl parameter.
1393         (default_elf_asm_named_section): Likewise.
1394         (default_coff_asm_named_section): Likewise.
1395         (default_pe_asm_named_section): Likewise.
1396         * target.h (gcc_target): Adjust type of named_section.
1397         * varasm.c (named_section_flags): Rename to named_section_real.
1398         Add decl parameter.
1399         (default_no_named_section): Add decl parameter.
1400         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
1401         with the case that ASM_COMMENT_START is "@".
1402         (default_coff_asm_named_section): Add decl parameter.
1403         (default_pe_asm_named_section): Likewise.
1404         * config/alpha/alpha.c (vms_asm_named_section): Add decl
1405         parameter.
1406         (unicosmk_asm_named_section): Likewise.
1407         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
1408         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
1409         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
1410         * config/cris/cris-protos.h (cris_target_asm_named_section):
1411         Likewise.
1412         * config/cris/cris.c (cris_target_asm_named_section):
1413         Likewise.
1414         * config/darwin/darwin-protos.h (darwin_asm_named_section):
1415         Likewise.
1416         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
1417         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
1418         * config/i386/i386-protos.h (i386_pe_asm_named_section):
1419         Likewise.
1420         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
1421         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
1422         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
1423         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
1424         Likewise.
1425         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
1426         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
1427         * cp/cp-tree.h (cxx_comdat_group): Declare.
1428         * cp/decl.c (cxx_comdat_group): New function.
1429
1430 2004-09-15  Jan Hubicka  <jh@suse.cz>
1431
1432         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
1433         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
1434
1435         * tree-cfg.c (remove_bb): Release SSA defs.
1436
1437 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
1438
1439         * doc/tm.texi: Follow spelling conventions.
1440
1441 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
1442
1443         * tree-ssa-dom.c: Fix comment typos.
1444
1445 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
1446
1447         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
1448         include ccr.
1449         (ppc_fallback_frame_state): Save location of CR.
1450
1451 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
1452
1453         * expr.c (string_constant): Handle also read-only variables
1454         initialized to string literals.
1455
1456         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
1457         into memcpy (x, y, 1) if memcpy can be expanded inline.
1458
1459 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1460
1461         PR tree-optimization/17468
1462         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
1463         definition inside a block precede uses.
1464         * tree-tailcall.c (adjust_return_value): Emit statements in the
1465         correct order.
1466
1467 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
1468
1469         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
1470
1471 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1472
1473         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
1474
1475 2004-09-14 Jeff Law  <law@redhat.com>
1476
1477         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
1478         (struct dom_walk_block_data): Remove avail_exprs member.
1479         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
1480         (lookup_avail_expr): No longer need to pass in address of
1481         the block local available exprs stack.  All callers changed.
1482         (simplify_cond_and_lookup_avail_expr): Similarly.
1483         (simplify_switch_and_lookup_avail_expr): Similarly.
1484         (get_eq_expr_value, record_cond): Likewise.
1485         (record_dominating_conditions): Likewise.
1486         (update_rhs_and_lookup_avail_expr): Likewise.
1487         (record_equivalences_from_stmt): Likewise.
1488         (dom_opt_initialize_block_local_data): No longer test state of
1489         block local avail_exprs.
1490         (dom_opt_initialize_block): Mark unwind point in the global
1491         avail_expr stack.
1492         (remove_expressions_from_table): Update to unwind to the
1493         most recent unwind marker in the global avail_expr stack.
1494         All callers changed.
1495         (dom_opt_finalize_block): Mark unwind point in the global
1496         avail_expr stack as needed.
1497         (record_cond): Push elements into the global avail_exprs stack.
1498
1499         * tree-dfa.c (free_df_for_stmt): No longer static.
1500         (free_df): Update comments.
1501         * tree-flow.h (free_df_for_stmt): Prototype.
1502         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
1503         call release_defs.
1504
1505 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
1506
1507         PR tree-optimization/17252
1508         * tree-ssa-alias.c (may_alias_p): Don't assume that a
1509         pointer may not point to itself when using relaxed
1510         aliasing rules.
1511
1512 2004-09-14  Richard Henderson  <rth@redhat.com>
1513
1514         PR middle-end/17397
1515         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
1516         while folding <ADDR_EXPR <INDIRECT_REF X>>.
1517
1518 2004-09-14  Andrew Pinski  <apinski@apple.com>
1519
1520         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
1521         sets of the pointers but the aliasing sets of what they point to.
1522
1523 2004-09-14  Roger Sayle  <roger@eyesopen.com>
1524
1525         PR rtl-optimization/9771
1526         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
1527         conditional compilation in init_reg_sets_1.
1528         (init_reg_sets_1): Let global_regs[i] take priority over the frame
1529         (but not stack) pointer exceptions to regs_invalidated_by_call.
1530         (globalize_reg): Globalizing a fixed register may need to update
1531         regs_invalidated_by_call.
1532
1533 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
1534
1535         PR tree-optimization/15262
1536         * tree-dfa.c (dump_variable): Also print the type of the
1537         variable.
1538         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
1539         memory tags are of conflicting alias sets but have no aliased
1540         symbols in common, add one tag to the alias set of the other.
1541         (setup_pointers_and_addressables): Remove hack to deal with
1542         programs with no aliased symbols.
1543         (may_alias_p): Don't special case aggregate types.
1544
1545 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
1546
1547         PR c/15498
1548         * doc/invoke.texi (Environment Variables): Correct example locale.
1549
1550 2004-09-14  Jan Hubicka  <jh@suse.cz>
1551
1552         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
1553
1554 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
1555
1556         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
1557
1558 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
1559
1560         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
1561         restrict_p.
1562         (struct c_declarator): Change u.array.quals and pointer_quals to
1563         int.  Add u.array.attrs.
1564         (quals_from_declspecs): New.
1565         * c-decl.c (quals_from_declspecs): New.
1566         (shadow_tag_warned): Give more specific message for useless type
1567         qualifiers.
1568         (build_array_declarator, set_array_declarator_inner,
1569         grokdeclarator, make_pointer_declarator, build_null_declspecs,
1570         declspecs_add_qual): Update for changed structures.
1571
1572 2004-09-14  Jeff Law  <law@redhat.com>
1573
1574         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
1575         to a global varray.
1576         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
1577         (dom_opt_initialize_block_local_data): No longer test state
1578         of stmts_to_rescan.
1579         (dom_opt_finalize_block): Update due to change in scope of
1580         stmts_to_rescan.
1581         (optimize_stmt): Similarly.
1582
1583 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1584
1585         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
1586         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
1587         comment typos.  Follow spelling conventions.
1588
1589 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1590
1591         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
1592         config/i386/predicates.md, config/sparc/sparc.c: Follow
1593         spelling conventions.
1594
1595 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1596             Steven Bosscher  <stevenb@suse.de>
1597
1598         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
1599         * basic-block.h (struct reorder_block_def): Add copy_number field.
1600         * cfgloop.h (biv_p): Declare.
1601         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
1602         * common.opt (fsplit-ivs-in-unroller): New flag.
1603         * loop-iv.c (biv_p): New function.
1604         * loop-unroll.c: Include hashtab.h and recog.h.
1605         (struct iv_to_split, struct split_ivs_info): New types.
1606         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
1607         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
1608         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
1609         insert_base_initialization, split_iv): New functions.
1610         (peel_loop_completely, unroll_loop_constant_iterations,
1611         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1612         Use them.
1613         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
1614
1615 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1616
1617         * tree-cfg.c (thread_jumps): Update dominators correctly in
1618         case destination of threaded edge dominates its source.
1619
1620 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1621
1622         * unroll.c: Removed.
1623         * loop.h: Removed.
1624         * Makefile.in (LOOP_H, unroll.o): Removed.
1625         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
1626         dependency.
1627         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
1628         reference.
1629         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
1630         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
1631         * loop.c: Do not include loop.h.
1632         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
1633         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
1634         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
1635         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
1636         struct loop_regs, struct loop_movables, struct loop_info): Moved
1637         from loop.h.
1638         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
1639         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
1640         find_common_reg_term, loop_iterations, final_giv_value): Moved
1641         from unroll.c.
1642         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
1643         loop_dump_stream, for_each_insn_in_loop, express_from,
1644         extend_value_for_giv, loop_iv_add_mult_emit_before,
1645         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
1646         loop_insn_first_p, get_condition_for_loop,
1647         loop_insn_emit_before, loop_insn_hoist,
1648         loop_insn_sink): Made static.
1649         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
1650         reference.
1651         (strength_reduce): Do not call unroller.
1652         (record_giv): Do not initialize unrolled field.
1653         (prescan_loop): Do not set loop_info->preconditioned.
1654         * passes.c: Do not include loop.h.
1655         (rest_of_handle_loop_optimize): Do not call unroller.
1656         * predict.c: Do not include loop.h.
1657         * rtl.h (NOTE_PRECONDITIONED): Removed.
1658         * stmt.c: Do not include loop.h.
1659         * toplev.c: Do not include loop.h.
1660         (process_options): Do not handle flag_old_unroll_loops.
1661
1662         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
1663         Documentation removed.
1664         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
1665
1666 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
1667
1668         * Makefile.in (STAGE1_CHECKING): New variable.
1669         (stage1_build): Use it.
1670         * tree-ssa.c (verify_ssa): Preserve state of dominance
1671         information.
1672
1673 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
1674
1675         * config/i386/i386.c (output_fp_compare): Add generation
1676         of ftst instruction.
1677         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
1678         Use output_fp_compare () function.
1679         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
1680         (fix_truncdi_memory): Remove operands[5] copy.
1681
1682 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1683
1684         * config/m32r/m32r.md, config/m68k/m68kelf.h,
1685         config/mcore/mcore.md, config/rs6000/linux64.h,
1686         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
1687         typos.
1688
1689 2004-09-13  James E Wilson  <wilson@specifixinc.com>
1690
1691         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
1692         * gen-protos.c: Include errors.h.
1693         (progname): Delete.
1694
1695 2004-09-14  Jan Hubicka  <jh@suse.cz>
1696
1697         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
1698         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
1699         (predict_loops): Use number_of_iterations_exit to predict
1700         number of iterations on trees.
1701
1702 2004-09-13  Dale Johannesen  <dalej@apple.com>
1703
1704         PR 17408
1705         PR 17409
1706         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
1707         objects declared extern.
1708
1709 2004-09-14  Paul Brook  <paul@codesourcery.com>
1710
1711         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
1712         HOST_WIDE_INT.
1713
1714 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
1715
1716         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
1717         Only use TYPE_BINFO for aggregates.
1718
1719 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
1720
1721         * expmed.c (synth_mult): Initialize latency.  Check cost before
1722         checking ops count.
1723
1724 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
1725
1726         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
1727         add_call_clobber_ops and add_call_read_ops.
1728         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
1729         the number of vdefs and vuses inserted based on analysis of global
1730         variables across calls.  * tree-dfa.c (find_referenced_vars):
1731         Needed to reset static var maps before each function is compiled.
1732         * cgraphunit.c:
1733         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
1734         static_vars_info,functions_to_static_vars_info,module_statics_escape,
1735         all_module_statics,searchc_env,dfs_info): New fields to support
1736         analysis of static global variables.
1737         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
1738         cgraph_reset_static_var_maps, get_global_static_vars_info,
1739         get_global_statics_not_read, get_global_statics_not_written,
1740         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
1741         check_rhs_var, check_lhs_var, get_asm_expr_operands,
1742         process_call_for_static_vars, scan_for_static_refs,
1743         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
1744         clear_static_vars_maps, cgraph_propagate_bits,
1745         cgraph_characterize_statics): New. Functions to support analysis
1746         of static global variables.
1747         (cgraph_mark_local_and_external_functions): Renamed from:
1748         (cgraph_mark_local_functions)
1749         (cgraph_expand_all_functions): Remove call to
1750         cgraph_mark_local_and_external_functions.
1751         (cgraph_optimize): Added driver to analyze static variables whose
1752         scope is within the compilation unit.  * cgraph.h (struct
1753         cgraph_local_info, GTY): Added statics_read, statics_written,
1754         local, calls_read_all, calls_write_all, for_functions_valid.
1755         (struct cgraph_node): Added next_cycle.  * cgraph.c
1756         (dump_cgraph_node): Added print routines for new fields.  *
1757         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
1758         list.
1759
1760 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1761
1762         * c-decl.c (grokdeclarator): Correct comments about where storage
1763         class specifiers are rejected by grammar and add corresponding
1764         asserts.  Diagnose typedefs and parameters declared inline.
1765         Change warning for inline main to a pedwarn.  Only diagnose inline
1766         main if hosted.
1767         (declspecs_add_scspec): Allow duplicate "inline".
1768
1769 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
1770
1771         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
1772         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1773
1774 2004-09-13  Richard Henderson  <rth@redhat.com>
1775
1776         PR 17436
1777         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
1778         (tree_type): Replace spare with contains_placeholder_bits.
1779         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
1780         make static.  Remove seen_types list.
1781         (type_contains_placeholder_p): New.
1782
1783 2004-09-13  James E Wilson  <wilson@specifixinc.com>
1784
1785         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
1786         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
1787         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
1788         bdesc_arrays instead of mips_bdesc.
1789         (mips_init_builtins): Likewise.
1790         * config/mips/mips.h (TARGET_SB1): New.
1791         (HAVE_SQRT_P): Delete.
1792         * config/mips/mips.md (divide_condition): Support V2SF.
1793         (sqrt_condition, recip_condition): New.
1794         (div<mode>3): Use ANYF instead of SCALARF.
1795         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
1796         MODE.
1797         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
1798         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
1799         instead of MODE.
1800         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
1801         instead of SCALARF.  Use UNITMODE instead of MODE.
1802
1803 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
1804
1805         * config.in: Regenerate after removal of libbanshee.
1806
1807 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
1808
1809         PR tree-optimization/17400
1810         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
1811         coalesce partitions when one occurs in an abnormal PHI.
1812
1813 2004-09-13  Andrew Pinski  <apinski@apple.com>
1814
1815         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
1816         name to _new_size.
1817
1818 2004-09-13  Richard Henderson  <rth@redhat.com>
1819
1820         PR inline-asm/6806
1821         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
1822         (cselib_invalidate_rtx_note_stores): New.
1823         (cselib_record_sets, cselib_process_insn): Update to match.
1824         * cselib.h (cselib_invalidate_rtx): Declare.
1825         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
1826
1827 2004-09-13  Richard Henderson  <rth@redhat.com>
1828
1829         PR tree-opt/10528
1830         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
1831         after copying its argument.
1832
1833 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1834
1835         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
1836         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
1837         in diagnostics.  Use %' for English apostrophes.
1838         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
1839         (pedwarn_c90, pedwarn_c99): Use it.
1840         * c-decl.c (lookup_label): Quote label name in diagnostic.
1841         * c-parse.in (yyprint): Use ' instead of ` for left quote.
1842         * c-typeck.c (warn_for_assignment): Likewise.
1843
1844 2004-09-13  Jan Hubicka  <jh@suse.cz>
1845
1846         * i386.c (x86_schedule): New global variable.
1847         (override_options): Disable scheduling when not supported.
1848         * i386.h (x86_schedule): Declare.
1849         (TARGET_SCHEDULE): New macro.
1850
1851 2004-09-12  Richard Henderson  <rth@redhat.com>
1852
1853         PR c++/16254
1854         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
1855         * tree.c, tree.h (has_cleanups): Remove.
1856
1857 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1858
1859         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
1860         arguments of the phi nodes correctly.
1861
1862 2004-09-12  Jan Hubicka  <jh@suse.cz>
1863
1864         * ggc-common.c (cmp_statistics): Fix sorting.
1865
1866 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
1867
1868         PR target/16795
1869         * expmed.c (expand_divmod): If cheap power of 2 divide is
1870         available, use it for negative constant as well.
1871
1872 2004-09-12  Andrew Pinski  <apinski@apple.com>
1873
1874         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
1875         size of 0.
1876
1877         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
1878
1879 2004-09-12  Richard Henderson  <rth@redhat.com>
1880
1881         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
1882         or minus one.
1883         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
1884         post-reload, and scratch NULL.
1885         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
1886         (x86_shift_adj_2): Use ix86_expand_clear.
1887         (ashldi3): Remove CMOVE expansion difference.
1888         (ashldi3_1): Remove.
1889         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
1890         add constraints for immediates.  New peephole for split-with-temp.
1891         Run splitter after peep2 pass.
1892         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
1893         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
1894         (setcc_2): Rename with *.
1895         * config/i386/predicates.md (reg_or_pm1_operand): New.
1896         (ashldi_input_operand): New.
1897
1898 2004-09-12  Richard Henderson  <rth@redhat.com
1899
1900         * print-rtl.c (print_decl_name): New.
1901         (print_mem_expr): Use it.
1902
1903 2004-09-12  Richard Henderson  <rth@redhat.com
1904
1905         PR 17186, part deux
1906         * except.c (sjlj_emit_function_exit): Fix logic locating
1907         sjlj_exit_after in final block.
1908
1909 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
1910
1911         * common.opt: Remove flags -fmove-all-movables and
1912         -freduce-all-givs.
1913         * loop-invariant.c (find_invariants_to_move):
1914         Remove all uses of flag_move_all_movables.
1915         * loop.c (move_movables): Remove all uses of
1916         flag_move_all_movables.
1917         (strength_reduce): Remove all uses of
1918         flag_reduce_all_givs.
1919         * doc/invoke.texi: Remove documentation of flags
1920         -fremove-all-movables and -freduce-all-givs.
1921
1922 2004-09-11  Roger Sayle  <roger@eyesopen.com>
1923
1924         PR middle-end/17411
1925         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
1926         change. elt->type may be a floating point type, so use fold_convert.
1927
1928 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
1929
1930         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
1931         the thing referenced as used, not the stub itself.
1932
1933 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1934
1935         * c-tree.h (enum c_storage_class): New.
1936         (struct c_declspecs): Add storage_class, inline_p and thread_p.
1937         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
1938         declarations and "auto" or "register" in file scope empty
1939         declarations.  Give more specific warnings for other cases of
1940         storage class specifiers in empty declarations.
1941         (grokdeclarator): Update for new structures.  Don't check for
1942         multiple storage classes.  Diagnose file-scope "register" if
1943         pedantic.
1944         (build_null_declspecs): Update.
1945         (declspecs_add_scspec): Update.  Diagnose multiple storage class
1946         specifiers and invalid uses of "__thread".
1947
1948 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
1949
1950         * tree.c (tree_code_size): New function, bulk of code from tree_size.
1951         (tree_size, make_node): Use it.
1952         * tree-ssa-pre.c (init_pre): Use it.
1953         * tree.h: Prototype it.
1954
1955 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1956
1957         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
1958         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
1959         redirect_immediate_use): Use PHI_DF.
1960         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
1961         (bb_for_stmt): Use PHI_BB.
1962         (get_immediate_uses): Use PHI_DF.
1963         * tree-ssa-dse.c (max_stmt_uid): New variable.
1964         (get_stmt_uid): New function.
1965         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
1966         node annotations.
1967         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
1968         (max_uid): Renamed to max_stmt_uid.
1969         (get_stmt_uid): New function.
1970         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
1971         phi node annotations.
1972         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
1973         * tree.h (PHI_BB, PHI_DF): New accessor functions.
1974         (struct tree_phi_node): Add bb and df fields.
1975
1976 2004-09-11  Richard Henderson  <rth@redhat.com>
1977
1978         PR middle-end/17416
1979         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
1980         in conflict loop.
1981
1982 2004-09-11  Jan Hubicka  <jh@suse.cz>
1983
1984         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
1985         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
1986         * i386.md (i387_cw): Add 'uninitialized' mode.
1987
1988         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
1989         (output_location): Break out from ....
1990         (branch_prob): ... here; handle gcov output on trees.
1991         * toplev.c (process_options): No longer be sorry about coverage for
1992         trees.
1993
1994 2004-09-11  Steven Bosscher  <stevenb@suse.de>
1995
1996         PR c++/17412
1997         * fold-const.c (fold): Do not try to fold the operand of a
1998         CLEANUP_POINT_EXPR if that operand does itself not have any
1999         operands.
2000
2001         PR middle-end/17417
2002         * langhooks.c (lhd_decl_printable_name): Make sure that this
2003         function is called with is a decl node that has an identifier.
2004         * tree-pretty-print.c (dump_function_name): New function to
2005         wrap PRINT_FUNCTION_NAME and dump_decl_name.
2006         (print_call_name): Use it.
2007
2008 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
2009
2010         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
2011         "config.h" if not.
2012
2013 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
2014
2015         * tree-ssa-alias.c (collect_points_to_info_r): Handle
2016         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
2017         to OFFSET.
2018
2019 2004-09-11  Richard Henderson  <rth@redhat.com>
2020
2021         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
2022         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
2023         operand of the ADDR_EXPR.
2024         (expand_expr_real_1): Update to match.
2025
2026 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
2027
2028         PR target/17277
2029         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
2030         choose 64-bit version.
2031
2032 2004-09-11  Richard Henderson  <rth@redhat.com>
2033
2034         PR c/17396
2035         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
2036
2037 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
2038
2039         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
2040         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
2041         Insert @: after i.e. or e.g.
2042
2043 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
2044
2045         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
2046         D.xxx rather than <Dxxx>.
2047
2048 2004-09-10  Adam Nemet  <anemet@lnxw.com>
2049
2050         * configure.ac (AC_MSG_CHECKING(what linker to use)):
2051         in_tree_ld_is_elf should be true for LynxOS.
2052         * configure: Regenerate.
2053
2054 2004-09-10  Adam Nemet  <anemet@lnxw.com>
2055
2056         * Makefile.in (all.cross): Add srcextra.
2057
2058 2004-09-10  Roger Sayle  <roger@eyesopen.com>
2059
2060         PR middle-end/17024
2061         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
2062         floating point comparison operators.  Change aborts to gcc_asserts.
2063
2064 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
2065
2066         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
2067
2068 2004-09-10  James E Wilson  <wilson@specifixinc.com>
2069
2070         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
2071         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
2072
2073         * convert.c (convert_to_vector): Replace recursive call with
2074         error_mark_node.
2075
2076         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
2077         Add integer argument named constant.  Use const_tiny_rtx instead of
2078         CONST0_RTX.
2079         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
2080         and CONST1_RTX.
2081         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
2082         vector types.
2083         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
2084         of gen_rtx_raw_CONST_VECTOR.
2085
2086 2004-09-10  Eric Christopher  <echristo@redhat.com>
2087
2088         PR c/16046
2089         * c-parse.in (attribute): Add NULL_TREE for error case
2090         for error recovery.
2091
2092 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
2093
2094         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
2095         (extract_interface_info): Delete prototype.
2096         * c-decl.c (extract_interface_info): Delete stub.
2097         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
2098         it's not already been done ...
2099         (init_c_lex): ... not here.
2100         (fe_file_change): Don't call extract_interface_info.
2101
2102 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2103
2104         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
2105         typedef_p and typedef_signed_p.
2106         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
2107         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
2108         Check typedef_p and typedef_signed_p, not typedef_decl.
2109         (grokfield): Check typedef_p, not typedef_decl.
2110         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
2111         not typedef_decl.
2112         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
2113         typedef_decl.
2114
2115 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
2116
2117         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
2118
2119 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
2120
2121         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
2122         temporary variables.
2123
2124         * dbxout.c (dbxout_block): Update for
2125         current_function_func_begin_label a string.
2126         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
2127         * except.c (dw2_output_call_site_table): Likewise.
2128         * toplev.c (current_function_func_begin_label): Likewise.
2129         * tree.h (current_function_func_begin_label): Likewise.
2130         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
2131
2132         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
2133         loop.
2134
2135         * config/darwin.c: Include target.h.
2136         (struct machopic_indirection): Make ptr_name a string.
2137         (machopic_indirection_hash): Update for ptr_name a string.
2138         (machopic_indirection_eq): Likewise.
2139         (machopic_indirection_name): Likewise.
2140         (machopic_output_indirection): Likewise.
2141         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
2142         string.  Don't expect stub names to be in the identifier hash table.
2143         Do call strip_name_encoding before looking up entry in ID hash table.
2144         * config/t-darwin (darwin.o): Add target.h to dependencies.
2145
2146         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
2147         of fprintf for register names.
2148
2149         * output.h (unlikely_section_label): Delete declaration.
2150         (unlikely_text_section_name): Likewise.
2151         * varasm.c (unlikely_section_label_printed): Make static.
2152         (unlikely_section_label): Likewise.
2153         (unlikely_text_section_name): Likewise.
2154         (assemble_start_function): Use reconcat.
2155
2156         * rtl.def (REG): Add comment to describe third field.
2157
2158 2004-09-10  Andrew Pinski  <apinski@apple.com>
2159
2160         * config/darwin.c (machopic_mcount_stub_name): Call
2161         machopic_indirection_name instead of making the string
2162         ourselves.
2163
2164 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
2165
2166         Revert
2167
2168         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
2169
2170             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
2171             memory tag is call clobbered, so are its aliases.
2172             (group_aliases): When two memory tags being grouped, if one is
2173             call clobbered, so are the other and its aliases.
2174             (add_may_alias): Remove call-clobbering stuff.
2175             (replace_may_alias): Likewise.
2176             (merge_pointed_to_info): Merge pt_global_mem
2177
2178 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
2179
2180         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
2181         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
2182         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
2183         tree-scalar-evolution.c, tree-ssa-copyrename.c,
2184         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
2185
2186 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
2187
2188         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
2189         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
2190         pair.  Remove match_dup from inputs.  Remove masaccs handling.
2191         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
2192         (masaccs, mdasaccs): Turn into define_insns.
2193
2194 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
2195
2196         * tree-tailcall.c (process_assignment): Only do accumulator transforms
2197         for floating-point types if flag_unsafe_math_optimizations.
2198
2199 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
2200
2201         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
2202         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
2203         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
2204         config/h8300/h8300.md, config/i386/gmm_malloc.h,
2205         config/ia64/ia64.md, config/ip2k/libgcc.S,
2206         config/mips/mips-ps-3d.md, config/mips/mips.c,
2207         config/rs6000/rs6000.c, config/s390/s390.c,
2208         config/sh/symbian.c: Fix comment typos.
2209
2210 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2211
2212         * config/s390/s390.c (s390_emit_prologue): Added missing
2213         "{}" brackets.
2214
2215 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
2216
2217         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
2218         typos.  Follow spelling conventions.
2219
2220 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2221
2222         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
2223         in diagnostic.  Don't dereference NULL TYPE_NAME.
2224
2225 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
2226
2227         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
2228         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
2229         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
2230         value-prof.c: Fix comment typos.  Follow spelling conventions.
2231
2232 2004-09-10  Jan Hubicka  <jh@suse.cz>
2233
2234         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
2235         * tree-split_edge.c (tree_split_edge): Likewise.
2236         (thread_jumps): Likewise.
2237
2238 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
2239
2240         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
2241         typos.
2242
2243 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
2244
2245         * cgraph.h (cgraph_dump_file): Do not declare.
2246         * cgraphunit.c (cgraph_dump_file): Declare as static.
2247         (init_cgraph): New.
2248         * toplev.c (cgraph_dump_file): Do not declare.
2249         (compile_file): Call init_cgraph.
2250         * tree-dump.c (dump_files): Add IPA dump file, remove
2251         XML dump of call graph.
2252         (get_dump_file_name): Support IPA dump file naming scheme.
2253         * tree.h (enum tree_dump_index): Add IPA dump file, remove
2254         XML dump of call graph.
2255         * doc/invoke.texi (Debugging Options): Document the new options.
2256
2257 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
2258
2259         * doc/extend.texi: Document the FR-V built-in functions.
2260
2261 2004-09-09  James E Wilson  <wilson@specifixinc.com>
2262
2263         * doc/sourcebuild.texi: Delete libbanshee reference.
2264
2265 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
2266
2267         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
2268
2269 2004-09-09  James E Wilson  <wilson@specifixinc.com>
2270
2271         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
2272         before calling vector_types_convertible_p.
2273         (digest_init): Check that inside_init has VECTOR_TYPE before calling
2274         vector_types_convertible_p.  Don't give another error if
2275         convert_for_assignment returns error_mark_node.
2276
2277 2004-09-09  Roger Sayle  <roger@eyesopen.com>
2278
2279         PR middle-end/17055
2280         * fold-const.c (build_zero_vector): New function to construct a
2281         vector (either floating point or integer) of zeros.
2282         (fold_convert): Internally, enable conversions of integer zero
2283         to arbitrary vector types, using the new build_zero_vector.
2284
2285 2004-09-09  Roger Sayle  <roger@eyesopen.com>
2286
2287         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
2288         expand a left shift by an immediate constant as either an ashl or
2289         a sequence of additions.
2290         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
2291         instead of calling gen_ashlsi3 with a constant directly.
2292
2293 2004-09-09  Roger Sayle  <roger@eyesopen.com>
2294
2295         * config/i386/i386.c (ix86_split_long_move): When optimizing for
2296         size, and the low and high parts of a DImode constant are equal,
2297         copy one register to another instead of loading the same immediate
2298         value twice.
2299
2300 2004-09-09  Richard Henderson  <rth@redhat.com>
2301
2302         PR middle-end/17367
2303         * function.c (assign_parm_setup_block): Only put PARALLELs into
2304         a register if use_register_for_decl.
2305
2306 2004-09-09  Eric Christopher  <echristo@redhat.com>
2307
2308         * ra-colorize.c (reset_lists): Move variable declaration inside
2309         ENABLE_CHECKING to avoid unused variable warnings when
2310         not --enable-checking.
2311         (check_colors): Ditto.
2312
2313 2004-09-09  Mike Stump  <mrs@apple.com>
2314
2315         * version.c (version_string): Bump to 4.0.0.
2316         * doc/include/gcc-common.texi (version-GCC): Likewise.
2317
2318 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
2319
2320         * doc/extend.texi (nothrow attribute): The attribute is not
2321         implemented in 3.2 and earlier.
2322
2323 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
2324
2325         * genrecog.c (compute_predicate_codes): Use op0_codes
2326         instead of codes.
2327
2328 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
2329
2330         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
2331         implementation changes.
2332
2333 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
2334
2335         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
2336         a PARALLEL instead of a SET due to added clobbers.
2337
2338 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
2339
2340         * reload.c (find_reloads_address): Pass correct operand to
2341         maybe_memory_address_p.
2342
2343 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
2344
2345         * Makefile.in: Remove libbanshee, tree-alias-*.
2346         Remove tree-alias-common.h dependencies.
2347         * common.opt: Remove -ftree-points-to.
2348         * configure.ac: Remove libbanshee.
2349         * flags.h: Remove pta_type, flag_tree_points_to.
2350         * gengtype.c (open_base_files): Remove tree-alias-type.h.
2351         * opts.c (OPT_ftree_points_to): Remove.
2352         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
2353         * tree-dfa.c: Remove tree-alias-common.h
2354         * tree-into-ssa.c: Ditto.
2355         * tree-outof-ssa.c: Ditto.
2356         * tree-ssa-copyrename.c: Ditto.
2357         * tree-ssa-live.c: Ditto.
2358         * tree-optimize.c: Ditto.
2359         * tree-ssa.c: Ditto.
2360         Remove pass_build_pta, pass_del_pta.
2361         * tree-pass.h: Ditto.
2362         * tree-ssa-alias.c: Remove tree-alias-common.h.
2363         (struct alias_stats_d): Remove pta_queries, pta_resolved.
2364         (pass_may_alias): Remove PROP_pta requirement.
2365         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
2366         (get_tmt_for): Ditto.
2367         (dump_alias_stats): Ditto.
2368         * doc/passes.texi: Remove blurb about points-to analysis.
2369         * fortran/Make-lang.in: Remove tree-alias-*.o.
2370
2371 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
2372
2373         * genattrtab.c (write_insn_cases): New function, split out from
2374         write_attr_case.  Correctly handle define_peepholes when printing
2375         the instruction name.
2376         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
2377
2378 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
2379
2380         PR target/17377
2381         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
2382         * config/cris/cris.c (cris_return_address_on_stack): New function.
2383         * config/cris/cris.md ("return"): For location of return address,
2384         also check cris_return_address_on_stack.
2385
2386 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
2387
2388         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
2389         calling phi_ssa_name_p.
2390
2391 2004-09-09  Richard Henderson  <rth@redhat.com>
2392
2393         PR c/17322
2394         * c-typeck.c (valid_compound_expr_initializer): Use only
2395         initializer_constant_valid_p, and not TREE_CONSTANT.
2396         (digest_init): Likewise.
2397         (output_init_element): Likewise.
2398
2399 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2400
2401         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
2402         live_out_1, prune_hardregs_for_mode, init_one_web_common,
2403         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
2404         record_conflict, compare_and_free_webs, init_webs_defs_uses,
2405         parts_to_webs_1, parts_to_webs, reset_conflicts,
2406         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
2407         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
2408         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
2409         put_move, remove_move, combine, select_spill, colorize_one_web,
2410         try_recolor_web, insert_coalesced_conflicts, check_colors,
2411         break_precolored_alias, restore_conflicts_from_coalesce,
2412         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
2413         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
2414         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
2415         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
2416         check_df): Likewise.
2417         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
2418         real_arithmetic, real_compare, real_exponent, real_ldexp,
2419         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
2420         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
2421         real_digit, real_nan, real_maxval, round_for_format, real_convert,
2422         real_to_target, real_from_target, real_hash, encode_ieee_single,
2423         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
2424         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
2425         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
2426         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
2427         extract_insn, peep2_next_insn, peep2_reg_dead_p,
2428         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
2429         if_test_bypass_p): Likewise.
2430         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
2431         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
2432         emit_swap_insn, swap_to_top, move_for_stack_reg,
2433         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
2434         compensate_edge, convert_regs_1): Likewise.
2435         * regclass.c (init_reg_sets, init_reg_sets_1,
2436         memory_move_secondary_cost): Likewise.
2437         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
2438         Likewise.
2439         * reload.c (push_secondary_reload, find_valid_class, push_reload,
2440         operands_match_p, decompose, immune_p, find_reloads,
2441         find_reloads_toplev, find_reloads_address_1, subst_reloads,
2442         copy_replacements, refers_to_regno_for_reload_p,
2443         reg_overlap_mentioned_for_reload_p): Likewise.
2444         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
2445         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
2446         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
2447         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
2448         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
2449         do_output_reload, fixup_abnormal_edges): Likewise.
2450         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
2451         fill_slots_from_thread, relax_delay_slots): Likewise.
2452         * resource.c (mark_referenced_resources, mark_set_resources):
2453         Likewise.
2454         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
2455         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
2456         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
2457         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
2458         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
2459         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
2460         * rtlhooks.c (gen_lowpart_general): Likewise.
2461         * sbitmap.c (sbitmap_difference): Likewise.
2462         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
2463         sched_analyze, add_forward_dependence): Likewise.
2464         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
2465         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
2466         schedule_insns): Likewise.
2467         * sched-vis.c (print_pattern): Likewise.
2468         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
2469         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
2470         simplify_const_relational_operation, simplify_ternary_operation,
2471         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
2472         Likewise.
2473         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
2474         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
2475         resolve_operand_name_1, expand_return, expand_decl,
2476         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
2477         * stor-layout.c (put_pending_size, smallest_mode_for_size,
2478         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
2479         set_sizetype, get_mode_bounds): Likewise.
2480
2481 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
2482
2483         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
2484         * config/arm/pecoff.h, config/i386/beos-elf.h
2485         * config/i386/cygming.h, config/i386/i386-interix.h:
2486         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
2487         comment cloned from manual.
2488         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
2489
2490 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
2491
2492         * builtins.c (build_va_arg_indirect_ref): New function.
2493         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
2494         build_fold_indirect_ref.
2495         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
2496         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
2497         * tree.h: Declare new function.
2498
2499 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
2500
2501         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
2502         dumping for development builds.
2503         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
2504         development builds only.
2505         * genattrtab.c (write_eligible_delay): Fix typo in previous
2506         commit.
2507         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
2508         gcc_assert.
2509
2510 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
2511
2512         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
2513         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
2514         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
2515         hoist_code, extract_mentioned_regs_helper, compute_store_table,
2516         insert_store): Use gcc_assert and gcc_unreachable.
2517         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
2518         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
2519         ggc_record_overhead): Likewise.
2520         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
2521         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
2522         ggc_pop_context, clear_marks, validate_free_objects,
2523         ggc_pch_read): Likewise.
2524         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
2525         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
2526         ggc_push_context, check_cookies, ggc_collect,
2527         ggc_print_statistics): Likewise.
2528         * gimple-low.c (lower_function_body, lower_stmt,
2529         lower_bind_expr): Likewise.
2530         * gimplify.c (gimple_tree_eq, push_gimplify_context,
2531         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
2532         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
2533         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
2534         gimplify_case_label_expr, gimplify_exit_block_expr,
2535         canonicalize_component_ref, gimplify_compound_lval,
2536         gimplify_self_mod_expr, gimplify_call_expr,
2537         gimplify_init_ctor_eval, gimplify_init_constructor,
2538         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
2539         gimplify_expr, check_pointer_types_r,
2540         force_gimple_operand): Likewise.
2541         * global.c (global_alloc, build_insn_chain): Likewise.
2542         * graph.c (clean_graph_dump_file,
2543         finish_graph_dump_file): Likewise.
2544         gcov-io.c (gcov_open): Use GCOV_CHECK.
2545
2546 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
2547
2548         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
2549
2550 2004-09-09  Jan Hubicka  <jh@suse.cz>
2551
2552         middle-end/17128
2553         * tree-inline.c (expand_call_inline): Make overactive sanity check
2554         happy.
2555
2556 2004-09-09  Jan Hubicka  <jh@suse.cz>
2557
2558         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
2559         VIEW_CONVERT_EXPR.
2560
2561 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
2562
2563         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
2564         (gengtype.o): Depend on errors.h.
2565         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
2566         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
2567         attr_alt_subset_p, attr_alt_subset_of_compl_p,
2568         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
2569         write_test_expr, write_attr_value, write_eligible_delay,
2570         make_internal_attr, make_numeric_value): Likewise.
2571         * genautomata.c (regexp_name, get_str_vect,
2572         gen_presence_absence_set, automaton_decl_hash,
2573         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
2574         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
2575         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
2576         test_unit_reserv, it_is_empty_reserv_sets,
2577         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
2578         reserv_sets_and, output_cycle_reservs, get_free_state,
2579         intersected_state_reservs_p, states_union, remove_arc,
2580         copy_insn_regexp, transform_1, transform_2, transform_3,
2581         regexp_transform_func, store_alt_unit_usage,
2582         check_regexp_units_distribution, process_seq_for_forming_states,
2583         process_alts_for_forming_states, make_automaton,
2584         form_arcs_marked_by_insn, create_composed_state,
2585         set_out_arc_insns_equiv_num, partition_equiv_class,
2586         process_insn_equiv_class, set_insn_equiv_classes,
2587         units_to_automata_heuristic_distr, form_regexp,
2588         longest_path_length, output_dfa_max_issue_rate, add_vect,
2589         out_state_arcs_num, add_vect_el, output_trans_table,
2590         output_state_alts_table, output_dead_lock_vect,
2591         output_max_insn_queue_index_def,
2592         output_min_insn_conflict_delay_func,
2593         output_internal_insn_latency_func, output_print_reservation_func,
2594         output_cpu_unit_reservation_p, output_state_arcs,
2595         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
2596         make_default_insn_latency_attr,
2597         form_important_insn_automata_lists): Likewise.
2598         * genemit.c (gen_exp, output_add_clobbers,
2599         output_added_clobbers_hard_reg_p): Likewise.
2600         * genextract.c (print_path, main): Likewise.
2601         * genflags.c (gen_macro): Likewise.
2602         * gengenrtl.c: Include errors.h
2603         (type_from_format, accessor_from_format): Likewise.
2604         * gengtype.c (get_file_basename, output_mangled_typename,
2605         walk_type, write_types_process_field,
2606         write_types_local_process_field): Likewise.
2607         * genmodes.c (complete_mode): Likewise.
2608         * genopinit.c (gen_insn): Likewise.
2609         * genoutput.c (output_insn_data, check_constraint_len,
2610         constraint_len): Likewise.
2611         * genpreds.c (add_mode_tests):Likewise.
2612         * gen-protos.c (add_hash): Likewise.
2613         * genrecog.c (find_operand, find_matching_operand,
2614         validate_pattern, add_to_sequence, maybe_both_true,
2615         nodes_identical_1, merge_trees, write_switch, write_cond,
2616         write_action, is_unconditional, make_insn_sequence,
2617         debug_decision_2): Likewise.
2618         * gensupport.c (is_predicable, collect_insn_data,
2619         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
2620
2621 2004-09-09  Jan Hubicka  <jh@suse.cz>
2622
2623         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
2624         * cfgbuild.c (compute_outgoing_frequencies): When probability is
2625         missing, guess it.
2626         (find_many_sub_basic_blocks): Do update profile only when it is
2627         present.
2628         * predict.c (set_even_probabilities): Break out from ...
2629         (combine_predictions_for_insn): ... here; deal with
2630         !can_predict_insn_p insns.
2631         (combine_predictions_for_bb): Use set_even_probabilities.
2632         (bb_estimate_probability_locally): Break out from ....
2633         (estimate_probability): ... here.
2634         (guess_outgoing_edge_probabilities): New entry point.
2635
2636 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
2637
2638         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
2639         handle_braces, process_brace_body, main, used_arg,
2640         set_multilib_dir, print_multilib_info): Use fatal, not abort.
2641
2642         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
2643
2644         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
2645         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
2646         Morgan's theorem in last checkin.
2647
2648 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2649             Nathan Sidwell  <nathan@codesourcery.com>
2650
2651         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
2652         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
2653         * timevar.c (timevar_push, timevar_pop, timevar_start,
2654         timevar_stop): Likewise.
2655         * toplev.c (default_pch_valid_p): Likewise.
2656         * tracer.c (tail_duplicate): Likewise.
2657         * tree-alias-common.c (get_alias_var_decl,
2658         get_values_from_constructor, create_alias_var, delete_alias_vars,
2659         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
2660         Likewise.
2661         * tree.c (tree_size, make_node_stat, copy_node_stat,
2662         build_int_cst_wide, integer_all_onesp, list_length, chainon,
2663         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
2664         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
2665         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
2666         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
2667         build_method_type_directly, decl_type_context, get_callee_fndecl,
2668         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
2669         tree_fold_gcd): Likewise.
2670         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
2671         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
2672         cleanup_control_expr_graph, find_taken_edge,
2673         find_taken_edge_switch_expr, phi_alternatives_equal,
2674         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
2675         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
2676         tree_split_edge, tree_verify_flow_info, thread_jumps,
2677         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
2678         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
2679         chrec_fold_multiply_poly_poly): Likewise.
2680         * tree-complex.c (extract_component, expand_complex_division,
2681         expand_complex_comparison, expand_complex_operations_1,
2682         build_replicated_const, expand_vector_operations_1): Likewise.
2683         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
2684         build_classic_dir_vector): Likewise.
2685         * tree-dfa.c (compute_immediate_uses_for_phi,
2686         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
2687         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
2688         * tree-dump.c (dequeue_and_dump): Likewise.
2689         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
2690         record_in_finally_tree, replace_goto_queue_1,
2691         maybe_record_in_goto_queue, verify_norecord_switch_expr,
2692         do_return_redirection): Likewise.
2693         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
2694         add_to_dst_predicate_list, find_phi_replacement_condition,
2695         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
2696         Likewise.
2697         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
2698         initialize_inlined_parameters, declare_return_variable,
2699         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
2700         optimize_inline_calls, copy_tree_r): Likewise.
2701         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
2702         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
2703         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
2704         tsi_split_statement_list_after, tsi_split_statement_list_before):
2705         Likewise.
2706         * tree-mudflap.c (mf_varname_tree): Likewise.
2707         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
2708         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
2709         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2710         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
2711         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
2712         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
2713         Likewise.
2714         * tree-phinodes.c (resize_phi_node, add_phi_arg,
2715         remove_all_phi_nodes_for): Likewise.
2716         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
2717         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2718         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
2719         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
2720         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
2721         generate_one_element_ref, generate_element_copy,
2722         generate_element_zero, scalarize_copy, scalarize_init,
2723         scalarize_ldst): Likewise.
2724         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
2725         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
2726         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
2727         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
2728         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
2729         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
2730         widen_bitfield, ccp_fold_builtin): Likewise.
2731         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
2732         replace_exp_1, propagate_tree_value): Likewise.
2733         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
2734         * tree-ssa-dce.c (set_control_dependence_map_bit,
2735         find_control_dependence, find_pdom, mark_operand_necessary,
2736         mark_stmt_if_obviously_necessary,
2737         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
2738         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
2739         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
2740         eliminate_redundant_computations, avail_expr_eq): Likewise.
2741         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
2742         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2743         duplicate_blocks): Likewise.
2744         * tree-ssa-loop-im.c (for_each_index, set_level,
2745         is_call_clobbered_ref): Likewise.
2746         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
2747         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
2748         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
2749         peel_address, ptr_difference_cost, may_replace_final_value,
2750         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
2751         rewrite_use, rewrite_uses): Likewise.
2752         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
2753         check_loop_closed_ssa_use): Likewise.
2754         * tree-ssanames.c (make_ssa_name): Likewise.
2755         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
2756         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
2757         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
2758         get_indirect_ref_operands, add_stmt_operand): Likewise.
2759         * tree-ssa-pre.c (value_exists_in_set_bitmap,
2760         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
2761         phi_translate, valid_in_set, compute_antic,
2762         find_or_generate_expression, create_expression_by_pieces, insert_aux,
2763         create_value_expr_from, eliminate): Likewise.
2764         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
2765         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
2766         Likewise.
2767         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
2768         eliminate_tail_call): Likewise.
2769         * tree-vectorizer.c (vect_create_index_for_array_ref,
2770         vect_align_data_ref, vect_create_data_ref,
2771         vect_create_destination_var, vect_get_vec_def_for_operand,
2772         vect_finish_stmt_generation, vect_transform_stmt,
2773         vect_transform_loop_bound, vect_transform_loop,
2774         vect_analyze_operations): Likewise.
2775         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
2776         Likewise.
2777         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
2778         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
2779         bsi_after_labels, bsi_last): Likewise.
2780         * tree-ssa-live.c (var_union, change_partition_var,
2781         create_ssa_var_map, calculate_live_on_entry, root_var_init,
2782         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
2783         Likewise.
2784         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
2785         tpa_find_tree): Likewise.
2786         (register_ssa_partition_check): Declare.
2787         (register_ssa_partition): use it.
2788         * tree-ssa-live.c: Include errors.h.
2789         (register_ssa_partition_check): New.
2790         * tree-ssa-operands.c: Include errors.h.
2791         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
2792
2793 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
2794             Catherine Moore  <clm@redhat.com>
2795
2796         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
2797         (FRV_CPU_FR405): New processor enums.
2798         (frv_issue_rate, frv_acc_group): Declare.
2799         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
2800         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
2801         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
2802         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
2803         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
2804         handled by CPP_SPEC.
2805         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
2806         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
2807         (ACC_MASK): New macro.
2808         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
2809         (TARGET_MEDIA_FR450): New macro.
2810         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
2811         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
2812         (LABEL_ALIGN_AFTER_BARRIER): Define.
2813         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
2814         (IACC_FIRST, IACC_LAST): New pair of SPRs.
2815         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
2816         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
2817         (REGISTER_NAMES): Add entries for new registers.
2818         (REG_CLASS_CONTENTS): Update for new register ranges.
2819         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
2820         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
2821         (PACKING_FLAG_USED_P): Delete.
2822         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
2823         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
2824         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
2825         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
2826         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
2827         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
2828         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
2829         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
2830         (CPU_UNITS_QUERY): Define to 1.
2831         * config/frv/frv.c: Include gt-frv.h
2832         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
2833         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
2834         (frv_insn_group): New enumeration.
2835         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
2836         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
2837         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
2838         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
2839         gap left by REGSTATE_LIVE.
2840         (regstate_t): New typedef.
2841         (TARGET_MACHINE_DEPENDENT_REORG): Define.
2842         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
2843         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
2844         Initialize frv_unit_codes[] and frv_type_to_unit[].
2845         (frv_conditional_register_usage): Remove redundant fixing of
2846         accumulator registers.
2847         (frv_insn_packing_flag): Update specification.
2848         (frv_function_prologue): Don't set frv_insn_packing_flag here.
2849         Zero out frv_nops[].
2850         (frv_expand_epilogue): Remove comments about the no-longer-present
2851         SIBCALL_P argument.
2852         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
2853         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
2854         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
2855         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
2856         packing is disabled and if INSN can only issue to M1.
2857         (call_operand): Check TARGET_LONG_CALLS.
2858         (acc_operand, even_acc_operand, quad_acc_operand)
2859         (accg_operand): Simplify.  Don't accept pseudo registers.
2860         (output_move_single): Handle SPR<-zero moves.
2861         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
2862         (frv_registers_update, frv_registers_used_p): Delete.
2863         (frv_registers_set_p): Delete.
2864         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
2865         (frv_issues_to_branch_unit_p): New function.
2866         (frv_packet): New structure.
2867         (frv_cond_flags, frv_regstate_conflict_p): New functions.
2868         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
2869         (frv_registers_update_1, frv_registers_update): New functions.
2870         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
2871         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
2872         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
2873         (frv_sort_insn_group, frv_reorder_packet): New functions.
2874         (frv_pack_insns): Use frv_reorder_packet.
2875         (frv_packet_address): New variable.
2876         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
2877         (frv_register_nop, frv_reorg): New functions.
2878         (bdesc_1arg): Add __SCUTSS.
2879         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
2880         __SUBSS, __SLASS and __SCAN.
2881         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
2882         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
2883         (frv_init_builtins): Register the above builtins.
2884         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
2885         registers.  Turn the referenced accumulators into global registers.
2886         (frv_read_iacc_argument): New function.
2887         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
2888         (frv_split_iacc_move): New function.
2889         (frv_expand_builtin): Handle the new builtins.
2890         * config/frv/frv.md: Replace old schedulers with new order-independent
2891         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
2892         packing algorithm.
2893         (cpu): Add fr550, fr450 and fr405.
2894         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
2895         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
2896         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
2897         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
2898         (fnop, mnop): New patterns.
2899         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
2900         New constants.
2901         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
2902         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
2903         registers.
2904         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
2905         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
2906         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
2907         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
2908         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
2909         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
2910         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
2911         (frv_prefetch0, frv_prefetch): New patterns.
2912         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
2913         -mcpu=simple.  Add -mcpu=fr550.
2914         (MULTILIB_DIRNAMES): Update accordingly.
2915         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
2916         -mcpu=fr450.
2917         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
2918         -mlong-calls and -malign-labels options for FR-V.
2919
2920 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
2921
2922         PR c/8420
2923         * c-tree.h (struct c_declspecs): New.
2924         (struct c_declarator, struct c_type_name, struct c_parm): Update
2925         element types.
2926         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
2927         start_function, start_decl, build_c_parm,
2928         make_pointer_declarator): Update prototypes.
2929         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2930         declspecs_add_scspec, declspecs_add_attrs): New.
2931         (split_specs_attrs): Remove.
2932         * c-parse.in (%union): Add dsptype.
2933         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
2934         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
2935         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
2936         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
2937         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
2938         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
2939         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
2940         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
2941         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
2942         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
2943         maybe_type_quals_attrs): Change to dsptype.
2944         (struct c_declspec_stack): New.
2945         (current_declspecs, declspec_stack): Change type.
2946         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
2947         structures.
2948         (extdefs): Likewise.
2949         (setspecs): Likewise.
2950         (fndef): Use current_declspecs for empty declspecs list.
2951         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
2952         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
2953         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
2954         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
2955         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
2956         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
2957         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
2958         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
2959         structures and helper functions.  Update comments.
2960         (typespec_nonattr): Correct comment.
2961         (maybe_type_quals_attrs, typename): Update to new structures.
2962         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
2963         shadow_tag, shadow_tag_warned, start_function, start_decl,
2964         build_c_parm, make_pointer_declarator,
2965         set_array_declarator_inner, groktypename): Update to new
2966         structures.
2967         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2968         declspecs_add_scspec, declspecs_add_attrs): New.
2969         (split_specs_attrs): Remove.
2970         (shadow_tag_warned): Make warning for useless type names a
2971         pedwarn.  Give hard error for long, short, signed, unsigned or
2972         _Complex used with struct, union or enum in empty declaration.
2973         Make found_tag a bool.
2974         (grokdeclarator): Remove checks now done at parse time.
2975
2976 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
2977
2978         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
2979         c_declarator, struct c_type_name, struct c_parm): New.
2980         (build_array_declarator, set_array_declarator_inner,
2981         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
2982         start_function, start_decl, build_c_parm, build_attrs_declarator,
2983         build_function_declarator, make_pointer_declarator, c_cast_expr,
2984         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
2985         (build_id_declarator): New.
2986         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
2987         structures.
2988         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
2989         ARG_INFO_OTHERS): Remove.
2990         (build_id_declarator): New.
2991         (build_array_declarator, set_array_declarator_inner, groktypename,
2992         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
2993         grokfield, start_function, store_parm_decls_newstyle,
2994         store_parm_decls_oldstyle, store_parm_decls,
2995         build_c_parm, build_attrs_declarator, build_function_declarator,
2996         make_pointer_declarator, grokdeclarator): Update to new
2997         structures.
2998         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
2999         parmtype.
3000         (declarator, notype_declarator, after_type_declarator,
3001         parm_declarator, parm_declarator_starttypename,
3002         parm_declarator_nostarttypename, array_declarator, typename,
3003         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
3004         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
3005         parmlist_1, parmlist_2, parmlist_or_identifiers,
3006         parmlist_or_identifiers_1): Use these types.
3007         (primary, after_type_declarator, parm_declarator_starttypename,
3008         notype_declarator, component_decl, component_declarator,
3009         component_notype_declarator, typename, absdcl,
3010         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
3011         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
3012
3013 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
3014
3015         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
3016         in_typeof, record_maybe_used_decl, pop_maybe_used,
3017         c_expr_sizeof_expr, c_expr_sizeof_type): New.
3018         * c-decl.c (parser_obstack): New.
3019         (c_init_decl_processing): Initialize parser_obstack.
3020         (c_write_global_declarations_1): Check for used but undefined
3021         static functions.
3022         * c-parse.in (%union): Add otype.
3023         (save_obstack_position): New.
3024         (extdefs): Use it.
3025         (unary_expr): Update in_sizeof and in_alignof.  Use
3026         c_expr_sizeof_expr and c_expr_sizeof_type.
3027         (sizeof): Update in_sizeof.
3028         (alignof): Update in_alignof.
3029         (typeof): Update in_typeof.
3030         (typespec_nonreserved_nonattr): Call pop_maybe_used.
3031         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
3032         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
3033         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
3034         (build_external_ref): Set C_DECL_USED or call
3035         record_maybe_used_decl if appropriate.
3036         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
3037
3038 2004-09-08  Eric Christopher  <echristo@redhat.com>
3039
3040         * builtins.c: Fix prototype for fold_builtin_atan.
3041
3042 2004-09-08  Eric Christopher  <echristo@redhat.com>
3043
3044         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
3045         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
3046         fold_builtin_atan): New functions. Migrate function bodies...
3047         (fold_builtin_1): ... from here.
3048
3049 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
3050
3051         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
3052         save_size.
3053
3054 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
3055
3056         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
3057         * config/rs6000/power5.md (power5-lmul): Same.
3058
3059 2004-09-08  Richard Henderson  <rth@redhat.com>
3060
3061         PR rtl-opt/17186
3062         * function.c (expand_function_end): Have fall-off-the-end
3063         return path jump around return register setup.
3064
3065 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3066
3067         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
3068         (output_return): Do not test for the presence of the 'unimp' insn.
3069         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
3070         as predicates instead of custom ones.  Return raw strings when
3071         possible.
3072         (output_sibcall): Likewise.  Concatenate strings.
3073         (output_ubranch): Remove kludge for TurboSPARC.
3074         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
3075         (output_v9branch): Likewise.
3076         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
3077         <#>: Set sparc_indent_opcode if the delay slot is filled.
3078         <(>: Likewise.
3079         <)>: New operand to emit the displacement from the saved PC on return.
3080         <@>: Remove.
3081         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
3082         (ASM_OUTPUT_OPCODE): New macro.
3083         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
3084         * config/sparc/sparc.md (normal_branch, inverted_branch,
3085         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
3086         inverted_fpe_branch): Adjust call to output_cbranch.
3087         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
3088         call to output_v9branch.
3089         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
3090         (output_v9branch): Likewise.
3091
3092 2004-09-08  Devang Patel  <dpatel@apple.com>
3093
3094         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
3095         -segs_read_only_addr and -segs_read_write_addr.
3096         (WORD_SWITCH_TAKES_ARG): Same.
3097         (LINK_SPEC): Same.
3098         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
3099         -segs_read_write_addr.
3100
3101 2004-09-08  Richard Henderson  <rth@redhat.com>
3102
3103         * function.c (reference_callee_copied): New.
3104         (assign_parm_setup_reg): Use it.
3105         * calls.c (initialize_argument_information): Likewise.
3106         (emit_library_call_value_1): Likewise.
3107         * function.h (reference_callee_copied): Declare.
3108
3109         * target.h (struct gcc_target): Add callee_copies.
3110         * target-def.h (TARGET_CALLEE_COPIES): New.
3111         (TARGET_PASS_BY_REFERENCE): Update default.
3112         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3113         * targhooks.c (hook_callee_copies_named): New.
3114         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
3115         hook_pass_by_reference_false.
3116         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
3117         * targhooks.h: Update decls.
3118         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
3119         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3120         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
3121         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
3122         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3123         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
3124         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3125         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
3126         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3127         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
3128         (mips_callee_copies): New.
3129         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3130         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
3131         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3132         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
3133         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3134         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
3135         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3136         * config/sh/sh.c (sh_callee_copies): New.
3137         (TARGET_CALLEE_COPIES): New.
3138         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3139         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
3140         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3141         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
3142         for FUNCTION_ARG_CALLEE_COPIES.
3143         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
3144
3145 2004-09-08  Devang Patel  <dpatel@apple.com>
3146
3147         * tree-if-conv.c (find_phi_replacement_condition): Return true
3148         edge block.
3149         (replace_phi_with_cond_modify_expr): Select conditional expr args
3150         based on true edge basic block.
3151
3152 2004-09-08  Jan Hubicka  <jh@suse.cz>
3153
3154         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
3155         variables being alias set.
3156
3157 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
3158
3159         * final.c (shorten_branches, final, get_insn_template,
3160         output_alternate_entry_point, final_scan_insn, alter_subreg,
3161         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
3162         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
3163         * fix-header.c (lookup_std_proto): Likewise.
3164         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
3165         verify_local_live_at_start, update_life_info, mark_reg,
3166         calculate_global_regs_live, allocate_reg_life_data,
3167         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
3168         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
3169         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
3170         * fold-const.c (force_fit_type, div_and_round_double,
3171         may_negate_without_overflow_p, int_const_binop, const_binop,
3172         size_binop, size_diffop, fold_convert_const, fold_convert,
3173         invert_tree_comparison, swap_tree_comparison,
3174         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
3175         range_binop, make_range, fold_cond_expr_with_comparison,
3176         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
3177         fold_abs_const, fold_not_const, fold_relational_const, round_up,
3178         round_down): Likewise.
3179         * function.c (find_function_data, assign_stack_temp_for_type,
3180         instantiate_virtual_regs_lossage, aggregate_value_p,
3181         assign_parm_find_entry_rtl, assign_parm_setup_block,
3182         expand_function_start, expand_function_end, keep_stack_depressed,
3183         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
3184
3185 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
3186
3187         * Makefile.in (tree-loop-linear.o): Added.
3188         (OBJS-common): Add tree-loop-linear.o
3189         * common.opt: New flag, ftree-loop-linear.
3190         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
3191         * tree-flow.h: Add prototype for linear_transform_loops.
3192         * tree-optimize.c: Add linear transform after vectorization.
3193         * tree-pass.h: Add struct pass_linear_transform.
3194         * tree-ssa-loop.c: Add pass_linear_transform.
3195         * tree-loop-linear.c: New file.
3196         * lambda-code.c: gcc_assertify.
3197         (gcc_loop_to_lambda_loop): Handle all exit tests.
3198         Handle case where we have (invariant >= induction var).
3199         (find_induction_var_from_exit_cond): Ditto.
3200
3201 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
3202
3203         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
3204         memory tag is call clobbered, so are its aliases.
3205         (group_aliases): When two memory tags being grouped, if one is
3206         call clobbered, so are the other and its aliases.
3207         (add_may_alias): Remove call-clobbering stuff.
3208         (replace_may_alias): Likewise.
3209         (merge_pointed_to_info): Merge pt_global_mem
3210
3211 2004-09-08  Jan Hubicka  <jh@suse.cz>
3212
3213         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
3214         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
3215         (cgraph_expand_function): Remove stale cgraph edges of currently
3216         compiled function; fix non-unit-at-a-time code copying function
3217         node for later reuse.
3218
3219 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
3220
3221         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
3222         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
3223         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
3224         (vec_gc_free, vec_heap_free): New.
3225         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
3226         (DEF_VEC_P): Add allocator argument. Adjust.
3227         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
3228         (DEF_VEC_O): Add allocator argument. Adjust.
3229         (VEC(free)): New.
3230
3231         * tree.h (tree): Define a GC'd vector.
3232         * lamba-code.c (lambda_loop): Likewise.
3233         * value-prof.h (histogram_value): Likewise.
3234
3235 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
3236
3237         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
3238         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
3239         gen_lowpart_common, gen_highpart, gen_highpart_mode,
3240         subreg_highpart_offset, operand_subword, operand_subword_force,
3241         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
3242         set_mem_alias_set, change_address_1, verify_rtx_sharing,
3243         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
3244         try_split, add_insn_after, add_insn_before, remove_insn,
3245         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
3246         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
3247         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
3248         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
3249         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
3250         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
3251         record_path_before_1, check_path_after_1, check_path_after): Likewise.
3252         * except.c (gen_eh_region, resolve_one_fixup_region,
3253         remove_unreachable_regions, convert_from_eh_region_ranges_1,
3254         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
3255         connect_post_landing_pads, sjlj_emit_function_exit,
3256         remove_exception_handler_label, remove_eh_handler,
3257         reachable_next_level, collect_one_action_chain,
3258         output_function_exception_table): Likewise.
3259         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
3260         optimize_save_area_alloca, allocate_dynamic_stack_space,
3261         probe_stack_range, hard_function_value): Likewise.
3262         * expmed.c (mode_for_extraction, store_bit_field,
3263         store_fixed_bit_field, extract_bit_field, expand_shift,
3264         expand_mult_const, expand_mult, choose_multiplier,
3265         expand_mult_highpart, expand_divmod, emit_store_flag,
3266         do_cmp_and_jump): Likewise.
3267         * expr.c (convert_move, convert_modes, move_by_pieces,
3268         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
3269         move_block_from_reg, gen_group_rtx, emit_group_load,
3270         emit_group_move, emit_group_store, use_reg, use_regs,
3271         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
3272         emit_move_insn, emit_move_insn_1, emit_push_insn,
3273         expand_assignment, store_expr, count_type_elements,
3274         store_constructor, store_field, safe_from_p, expand_var,
3275         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
3276
3277 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
3278
3279         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
3280         gcc_assert and gcc_unreachable.
3281         * ddg.c (create_ddg_dependence, add_deps_for_def,
3282         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
3283         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
3284         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
3285         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
3286         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
3287         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
3288         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
3289         dataflow_set_copy, hybrid_search, diagnostic.c,
3290         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
3291         * dojump.c (do_jump): Likewise.
3292         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
3293         compute_dom_fast_query, calculate_dominance_info,
3294         free_dominance_info, get_immediate_dominator,
3295         set_immediate_dominator, get_dominated_by,
3296         redirect_immediate_dominators, nearest_common_dominator,
3297         dominated_by_p, verify_dominators, recount_dominator,
3298         iterate_fix_dominators, add_to_dominance_info,
3299         delete_from_dominance_info): Likewise.
3300         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
3301         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
3302         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
3303         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
3304         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
3305         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
3306         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
3307         output_call_frame_info, output_loc_operands, build_cfa_loc,
3308         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
3309         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
3310         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
3311         splice_child_die, attr_checksum, same_dw_val_p,
3312         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
3313         unmark_dies, value_format, output_loc_list, output_die,
3314         output_pubnames, output_aranges, base_type_die, is_base_type,
3315         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
3316         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
3317         field_byte_offset, add_data_member_location_attribute,
3318         add_const_value_attribute, rtl_for_decl_location,
3319         add_location_or_const_value_attribute, add_byte_size_attribute,
3320         add_bit_offset_attribute, add_bit_size_attribute,
3321         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
3322         decl_start_label, gen_formal_parameter_die,
3323         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
3324         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
3325         force_decl_die, force_type_die, gen_decl_die,
3326         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
3327         dwarf2out_finish): Likewise.
3328
3329 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
3330
3331         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
3332         * builtins.c: Include tree-mudflap.h.
3333
3334 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
3335
3336         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
3337         force operand 0.0 into register in XFmode. Also do not force
3338         operand 0.0 into register if !TARGET_CMOVE.
3339         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
3340         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
3341         implement ftst x87 instruction.
3342         (*fp_jcc_7): New insn pattern. Change corresponding split
3343         pattern to handle "general_operand" instead of
3344         "nonimmediate_operand".
3345
3346 2004-09-08  Ben Elliston  <bje@au.ibm.com>
3347
3348         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
3349
3350 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
3351
3352         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
3353         generated from standard va_arg expansion.
3354         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
3355         marked nodes.
3356         (mf_varname_tree, mf_file_function_line_tree): Add some support
3357         for column numbers if compiled with USE_MAPPED_LOCATION.
3358
3359 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
3360
3361         * c-decl.c (groktypename_in_parm_context): Remove function.
3362         * c-tree.h (groktypename_in_parm_context): Remove prototype.
3363
3364 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
3365
3366         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
3367         * c-parse.in: Include c-common.h instead of objc-act.h.
3368         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
3369         myparms, myparm): Remove %type declarations.
3370         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
3371         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
3372         declarations.
3373         (objc_inherit_code, objc_public_flag): Remove.
3374         (typespec_nonreserved_nonattr): Call
3375         objc_get_protocol_qualified_type() instead of get_static_reference()
3376         and get_protocol_reference().
3377         (stmt_nocomp): Call grokparm() on @catch parameter.
3378         (objcdef): Move semantic action to objc_finish_implementation().
3379         (classdef): Move semantic action to objc_start_class_interface(),
3380         objc_continue_interface(), objc_finish_interface(),
3381         objc_start_class_implementation(), objc_continue_implementation(),
3382         objc_start_category_interface() and
3383         objc_start_category_implementation().
3384         (protocoldef): Move semantic actions to objc_start_protocol() and
3385         objc_finish_interface().
3386         (ivar_decl_list): Remove nonterminal.
3387         (visibility_spec): Move semantic actions to objc_set_visibility().
3388         (ivar_decls): Remove assignment to $$.
3389         (ivar_decl): Rephrase in terms of component_decl; call
3390         objc_add_instance_variable().
3391         (ivars, ivar_declarator): Remove nonterminals.
3392         (opt_semi): New nonterminal.
3393         (methodtype): Remove semantic actions.
3394         (methoddef): Move semantic actions to objc_set_method_type(),
3395         objc_start_method_definition() and objc_finish_method_definition().
3396         (methodproto): Move semantic actions to objc_set_method_type() and
3397         objc_add_method_declaration().
3398         (methoddecl): Use objc_typename instead of typename; move semantic
3399         actions to objc_build_method_signature().
3400         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
3401         (optparmlist): Express in terms of optparms and optellipsis.
3402         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
3403         nonterminals.
3404         (keyworddecl): Use objc_typename instead of typename.
3405         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
3406         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
3407
3408 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
3409
3410         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
3411         (MD_FALLBACK_FRAME_STATE_FOR): Update.
3412         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
3413         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
3414         (MD_FROB_UPDATE_CONTEXT): Remove default.
3415         (uw_update_context_1): Instead #ifdef invocation.
3416         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
3417         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
3418         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
3419         (MD_UNWIND_SUPPORT): Undefine this instead.
3420         * config/i386/gnu.h: Likewise.
3421         * config/alpha/linux-unwind.h: New file, macro converted to
3422         function, extracted from..
3423         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
3424         (MD_UNWIND_SUPPORT): Define.
3425         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
3426         * config/i386/linux-unwind.h, config/i386/linux.h,
3427         config/i386/linux64.h: Likewise.
3428         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
3429         MD_HANDLE_UNWABI too.
3430         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
3431         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
3432         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
3433         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
3434         * config/sparc/linux-unwind.h, config/sparc/linux.h,
3435         config/sparc/linux64.h: Likewise.
3436         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
3437         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
3438         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
3439         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
3440         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
3441
3442 2004-09-07  Jan Hubicka  <jh@suse.cz>
3443
3444         * cse.c (fold_rtx):  Avoid building of
3445         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
3446
3447         * tree-ssa-pre.c (grand_bitmap_obstack): New.
3448         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
3449         (init_pre): Initialize obstack.
3450         (fini_pre): Free obstack.
3451
3452 2004-09-07  David Daney  <ddaney@avtrex.com>
3453
3454         * config.gcc: Added support for --with-divide=[breaks|traps] for
3455         mips targets.
3456         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
3457         (TARGET_DIVIDE_TRAPS): New macro.
3458         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
3459         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
3460         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
3461         GENERATE_DIVIDE_TRAPS.
3462         (mips_output_division): Emit conditional trap if
3463         GENERATE_DIVIDE_TRAPS is set.
3464         * doc/install.texi: Document --with-divide.
3465         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
3466
3467 2004-09-07  Caroline Tice  <ctice@apple.com>
3468
3469         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
3470         EDGE_CROSSING, to flags test case.
3471
3472 2004-09-07  Jan Hubicka  <jh@suse.cz>
3473
3474         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
3475         class too.
3476
3477 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
3478
3479         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
3480         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
3481         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
3482         or gcc_unreachable.
3483         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
3484         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
3485         alloc_aux_for_edges, free_aux_for_edges): Likewise.
3486         * cfgcleanup.c (try_forward_edges,
3487         merge_blocks_move_predecessor_nojumps,
3488         merge_blocks_move_successor_nojumps): Likewise.
3489         * cfgexpand.c (expand_gimple_cond_expr,
3490         expand_gimple_tailcall): Likewise.
3491         * cfghooks.c (duplicate_block): Likewise.
3492         * cfglayout.c (record_effective_endpoints,
3493         insn_locators_initialize, change_scope, fixup_reorder_chain,
3494         verify_insn_chain, fixup_fallthru_exit_predecessor,
3495         duplicate_insn_chain, cfg_layout_finalize): Likewise.
3496         * cfgloopanal.c (check_irred): Likewise.
3497         * cfgloop.c (superloop_at_depth, flow_loops_free,
3498         flow_loop_entry_edges_find, flow_loops_find,
3499         flow_loop_outside_edge_p, get_loop_body,
3500         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
3501         get_loop_exit_edges, num_loop_branches, cancel_loop,
3502         verify_loop_structure): Likewise.
3503         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
3504         duplicate_loop_to_header_edge, create_preheader,
3505         create_loop_notes): Likewise.
3506         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
3507         edirect_branch_edge, force_nonfallthru_and_redirect,
3508         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
3509         commit_edge_insertions, commit_edge_insertions_watch_calls,
3510         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
3511         cfg_layout_redirect_edge_and_branch_force,
3512         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
3513         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
3514         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
3515         cgraph_varpool_node): Likewise.
3516         * cgraphunit.c (cgraph_finalize_function,
3517         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
3518         cgraph_expand_function, cgraph_remove_unreachable_nodes,
3519         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3520         cgraph_mark_inline, cgraph_expand_all_functions,
3521         cgraph_build_static_cdtor): Likewise.
3522         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
3523         simplify_logical, distribute_notes, insn_cuid): Likewise.
3524         * conflict.c (conflict_graph_add, print_conflict): Likewise.
3525         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
3526         coverage_checksum_string): Likewise.
3527         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
3528         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
3529         cse_cc_succs, cse_condition_code_reg): Likewise.
3530         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
3531         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
3532         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
3533         cselib_record_set): Likewise.
3534
3535 2004-09-07  Jan Hubicka  <jh@suse.cz>
3536
3537         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
3538
3539 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
3540
3541         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
3542         fold_convert.
3543         (fold_builtin_strpbrk): Likewise.
3544         * expr.c (array_ref_low_bound): Likewise.
3545         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
3546         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
3547         * tree-sra.c (generate_element_zero): Likewise.
3548         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3549         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
3550         add_old_iv_candidates, add_iv_candidates): Likewise.
3551         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3552
3553 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
3554
3555         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
3556         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
3557         c_expand_expr, boolean_increment, nonnull_check_p,
3558         check_function_arguments_recurse, fold_offsetof_1): Likewise.
3559         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
3560         builtin_define_type_max): Likewise.
3561         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
3562         implicit_decl_warning, builtin_function, build_compound_literal,
3563         complete_array_type, grokdeclarator, get_parm_info,
3564         start_function, store_parm_decls_oldstyle,
3565         c_write_global_declarations): Likewise.
3566         * c-format.c (get_constant, decode_format_attr,
3567         maybe_read_dollar_number, get_flag_spec, check_format_arg,
3568         check_format_types, format_type_warning,
3569         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
3570         init_dynamic_diag_info, handle_format_attribute): Likewise.
3571         * c-gimplify.c (push_context, pop_context, finish_bc_block):
3572         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
3573         * c-objc-common.c (c_tree_printer): Likewise.
3574         * c-pch.c (pch_init): Likewise.
3575         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
3576         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
3577         * c-typeck.c (c_incomplete_type_error, composite_type,
3578         common_pointer_type, common_type, same_translation_unit_p,
3579         tagged_types_tu_compatible_p, finish_init, pop_init_level,
3580         set_designator, set_nonincremental_init_from_string,
3581         process_init_element, c_finish_if_stmt): Likewise.
3582         * caller-save.c (init_caller_save, save_call_clobbered_regs,
3583         insert_restore, insert_save, insert_one_insn): Likewise.
3584         * calls.c (emit_call_1, compute_argument_block_size,
3585         precompute_arguments, expand_call, emit_library_call_value_1,
3586         store_one_arg): Likewise.
3587
3588 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
3589
3590         * configure.ac (enable-checking): Add release option. Reorganize
3591         to avoid repetition.
3592         * configure: Rebuilt.
3593         * doc/install.texi (enable-checking): Amend documentation.
3594
3595 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3596
3597         PR bootstrap/17313
3598         * Makefile.in (specs.ready): Depend on cc1$(exeext).
3599
3600 2004-09-06  James E Wilson  <wilson@specifixinc.com>
3601
3602         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
3603         movdf_hardfloat_32bit): Split fG into two alternatives.
3604         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
3605
3606         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
3607
3608 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3609
3610         * final.c (output_in_slot): Delete.
3611         (final_scan_insn): Revert 2004-09-03 change.
3612         (output_asm_insn): Likewise.
3613         * config/sparc/sparc.c (output_return): Likewise.
3614         (output_sibcall): Likewise.
3615
3616 2004-09-06  Jan Hubicka  <jh@suse.cz>
3617
3618         * loop.c (loop_dump_aux): Do not print RTL when not available.
3619         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
3620         frontend specific type nodes.
3621         (produce_memory_decl_rtl): Break out from ...
3622         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
3623         (get_computation_at): Avoid random tree sharing.
3624         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
3625
3626 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
3627
3628         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
3629         unnecessary commands.
3630
3631 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
3632
3633         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
3634         (bitmap.o): Likewise.
3635
3636 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
3637
3638         Unify the management of RTL and tree-level dump files.
3639
3640         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
3641         Don't print function name to the dump file, the pass manager
3642         would do this for us. Add code from the top of
3643         rest_of_compilation, up to the initial RTL dump.
3644         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
3645         close the DFI_sibling dump file.
3646         (rest_of_compilation): Don't do that here.  Remove code up to the
3647         initial RTL dump.
3648         (init_optimization_passes): Remove.
3649         (pass_rest_of_compilation): Change pass name to NULL.
3650         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
3651         Do not call init_optimization_passes.
3652         * toplev.h (init_optimization_passes): Remove.
3653
3654         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
3655         finish_graph_dump_file): Remove SUFFIX parameter.
3656         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
3657         finish_graph_dump_file): Likewise.
3658
3659         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
3660         * cfgexpand.c (pass_expand): Adjust.
3661         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
3662         * passes.c (pass_rest_of_compilation): Adjust.
3663         * predict.c (pass_profile): Adjust.
3664         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
3665         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
3666         pass_split_crit_edges, pass_warn_function_return): Adjust.
3667         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
3668         * tree-dfa.c (pass_referenced_vars): Adjust.
3669         * tree-eh.c (pass_lower_eh): Adjust.
3670         * tree-if-conv.c (pass_build_ssa): Adjust.
3671         * tree-into-ssa.c (pass_build_ssa): Adjust.
3672         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
3673         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
3674         * tree-nrv.c (pass_nrv): Adjust.
3675         * tree-optimize.c (pass_gimple, pass_all_optimizations,
3676         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
3677         pass_init_datastructures): Adjust.
3678         * tree-outof-ssa.c (pass_del_ssa): Adjust.
3679         * tree-profile.c (pass_tree_profile): Adjust.
3680         * tree-sra.c (pass_sra): Adjust.
3681         * tree-ssa-alias.c (pass_may_alias): Adjust.
3682         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
3683         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
3684         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
3685         * tree-ssa-dom.c (pass_dominator): Adjust.
3686         * tree-ssa-dse.c (pass_dse): Adjust.
3687         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
3688         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
3689         * tree-ssa-loop-ch.c (pass_ch): Adjust.
3690         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
3691         pass_loop_done, pass_complete_unroll, pass_iv_canon,
3692         pass_iv_optimize, pass_vectorize): Adjust.
3693         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
3694         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
3695         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
3696         pass_late_warn_uninnitialized): Adjust.
3697         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
3698
3699         * Makefile.in (tree-dump.o): Add new dependencies.
3700         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
3701         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
3702         Likewise.
3703         * toplev.c (dump_file_name): New.
3704         * tree-dump.c (dump_enable_all): Add LETTER parameter.
3705         (struct dump_file_info): Add NUM and LETTER fields.
3706         (dump_files): Adjust and add RTL dump files.
3707         (dump_register): Add NUM and LETTER fields.
3708         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
3709         (dump_begin): Use get_dump_file_name.
3710         (dump_switch_p_1): Adjust call to dump_enable_all.
3711         * tree-dump.h (dump_register): Adjust prototype.
3712         * tree-optimize.c (register_one_dump_file): Take dump file index.
3713         Support flags for RTL dumps.
3714         (register_dump_files): Fill in NUM field of struct dump_file_info.
3715         Track properties both when the gate is executed and when it is not.
3716         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
3717         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
3718         dumps of RTL.
3719         * tree-pass.h (dump_file_name): New.
3720         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
3721         New.
3722
3723         * Makefile.in (passes.o): Add new dependencies.
3724         * passes.c (struct dump_file_info, enum dump_file_index,
3725         dump_file_tbl, init_optimization_passes): Remove.
3726         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
3727         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
3728         dump_enabled_p.
3729         (finish_optimization_passes): Update finish_graph_dump_file loop.
3730         (enable_rtl_dump_file): Remove.
3731         * tree-dump.c (dump_files): Adjust and add RTL dump files.
3732         (enable_rtl_dump_file): Add here.
3733         * tree.h (enum tree_dump_index): Add RTL dump file indices.
3734         * doc/invoke.texi (Debugging options): Document new RTL debugging
3735         options.  Update.
3736
3737 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
3738
3739         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
3740         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
3741         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
3742         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
3743         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
3744         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
3745         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
3746         vec.h: Fix comment formatting.
3747
3748 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
3749
3750         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
3751         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
3752         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
3753         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
3754         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
3755         tree-ssa-loop-niter.c, tree-ssa-operands.c,
3756         tree-ssa-operands.h, tree-ssa-propagate.c,
3757         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
3758         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
3759
3760 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
3761
3762         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
3763         vectorizer is enabled.
3764
3765 2004-09-05  Andreas Jaeger  <aj@suse.de>
3766
3767         * tree-if-conv.c: Spell check comments and clean up whitespace.
3768
3769 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3770
3771         * tree-ssa-loop-ivopts.c: New file.
3772         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
3773         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
3774         target_pres_cost, target_spill_cost): Declare.
3775         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
3776         spill_cost): Renamed to ...
3777         (target_avail_regs, target_res_regs, target_small_cost,
3778         target_pres_cost, target_spill_cost): ... and exported.
3779         (init_set_costs, global_cost_for_size): Work with renamed variables.
3780         * common.opt (flag_ivopts): New flag.
3781         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
3782         REF_ORIGINAL.
3783         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
3784         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
3785         generating SSA form.
3786         (force_gimple_operand): New function.
3787         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
3788         * tree-cfg.c (stmt_bsi): New function.
3789         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
3790         PARAM_IV_MAX_CONSIDERED_USES): New.
3791         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
3792         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
3793         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
3794         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
3795         * tree-nested.c (build_addr): Export.
3796         * tree-optimize.c (init_tree_optimization_passes): Add
3797         pass_iv_optimize.
3798         * tree-pass.h (pass_iv_optimize): Declare.
3799         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
3800         IMAGPART_EXPR.
3801         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
3802         as a phi node argument.
3803         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
3804         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
3805         functions.
3806         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
3807         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
3808         pass_iv_optimize): New pass.
3809         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
3810         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
3811         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
3812         * tree.h (REF_ORIGINAL): New macro.
3813         (build_int_cst_type, unsigned_type_for, zero_p,
3814         cst_and_fits_in_hwi, build_addr): Declare.
3815         * doc/invoke.texi (-fivopts): Document.
3816         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
3817         PARAM_IV_MAX_CONSIDERED_USES): Document.
3818         * doc/passes.texi: Document induction variable optimizations pass.
3819
3820 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3821
3822         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
3823         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
3824         * c-common.c (c_common_attribute_table): Accept parameters to
3825         sentinel attribute.
3826         (check_function_sentinel, handle_sentinel_attribute): Likewise.
3827         * doc/extend.texi: Update accordingly.
3828
3829 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3830
3831         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
3832         New.
3833         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
3834         attribute.
3835         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
3836         New functions.
3837         (c_common_attribute_table): Add `sentinel' attribute.
3838         (check_function_arguments): Handle `sentinel' attribute.
3839         * doc/extend.texi: Document `sentinel' attribute.
3840
3841 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
3842
3843         * configure: Regenerated.
3844
3845 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3846
3847         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
3848
3849         * tree.c (save_expr): No longer TREE_READONLY.
3850
3851 2004-09-04  Jan Hubicka  <jh@suse.cz>
3852
3853         * passes.c (rest_of_clean_state):  Fix merge conflict made during
3854         commiting the patch.
3855
3856 2004-09-04  Jan Hubicka  <jh@suse.cz>
3857
3858         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
3859
3860 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
3861
3862         * doc/md.texi (shift patterns): New anchor.  Add reference to
3863         TARGET_SHIFT_TRUNCATION_MASK.
3864         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
3865         * target.h (shift_truncation_mask): New target hook.
3866         * targhook.h (default_shift_truncation_mask): Declare.
3867         * targhook.c (default_shift_truncation_mask): Define.
3868         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
3869         (TARGET_INITIALIZER): Include it.
3870         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
3871         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
3872         reject all out-of-range values.  Fix sign-extension code for modes
3873         whose width is smaller than HOST_BITS_PER_WIDE_INT.
3874         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
3875         (expand_superword_shift, expand_subword_shift): Likewise.
3876         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
3877         (expand_binop): Use them to implement double-word shifts.
3878         * config/arm/arm.c (arm_shift_truncation_mask): New function.
3879         (TARGET_SHIFT_TRUNCATION_MASK): Define.
3880
3881 2004-09-04  Jan Hubicka  <jh@suse.cz>
3882
3883         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
3884         (mix): New macro copied from hashtab.c
3885         (iterative_hash_hashval_t, iterative_hash_pointer,
3886         iterative_hash_host_wide_int): New functions based on hashtab.c
3887         implementation.
3888
3889 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
3890
3891         * config/mips/mips.md (mask): New mode attribute.
3892         (zero_extendsidi2): Add memory alternative.
3893         (*zero_extendsidi2_mem): Delete.
3894         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
3895         memory_operand in the TARGET_MIPS16 check.
3896         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
3897         Redefine using :GPR and :SHORT.
3898         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
3899
3900 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
3901
3902         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
3903         using rint_optab.
3904         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
3905         expand_builtin_mathfn.
3906         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
3907         btrunc?f patterns for btrunc_optab. Implement rint_optab using
3908         rint?f patterns.
3909         * optabs.c (init_optabs): Initialize rint_optab.
3910         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
3911         Add new OTI_rint.
3912         (btrunc_optab): Rename macro from trunc_optab.
3913         (rint_optab): Define corresponding macro.
3914
3915         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
3916         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
3917
3918         * config/i386/i386-protos.h (emit_i387_cw_initialization):
3919         Change prototype. Add new int parameter.
3920         * config/i386/i386.c (emit_i387_cw_initialization):
3921         Handle new rounding modes.
3922
3923         * config/i386/i386.h (enum fp_cw_mode): Delete.
3924         (MODE_NEEDED): Handle new rounding modes.
3925         (EMIT_MODE_SET): Change condition to handle new rounding modes.
3926
3927         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
3928         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
3929         represent different rounding modes of frndint insn.
3930         (type): Add frndint type.
3931         (i387, length, memory): Handle this type.
3932         (i387_cw): New attribute definition.
3933         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
3934         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
3935         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
3936         Add "i387_cw" attribute defined to "trunc".
3937         (x86_fnstcw_1): Remove comment.
3938         (*frndintxf2): Rename insn definition to frndintxf2. Move
3939         insn definition near rint?f2 expanders.
3940         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
3941         rintf and rintl built-ins as inline x87 intrinsics.
3942         (frndintxf2_floor): New pattern to implement floor rounding
3943         mode with frndint x87 instruction.
3944         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
3945         floorf and floorl built-ins as inline x87 intrinsics.
3946         (frndintxf2_ceil): New pattern to implement ceil rounding
3947         mode with frndint x87 instruction.
3948         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
3949         ceilf and ceill built-ins as inline x87 intrinsics.
3950         (frndintxf2_trunc): New pattern to implement trunc rounding
3951         mode with frndint x87 instruction.
3952         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
3953         truncf and truncl built-ins as inline x87 intrinsics.
3954         (frndintxf2_mask_pm): New pattern to implement rounding
3955         mode with exceptions with frndint x87 instruction.
3956         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
3957         implement nearbyint, nearbyintf and nearbyintl built-ins as
3958         inline x87 intrinsics.
3959
3960 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
3961
3962         * config/mips/mips.md (SHORT): New mode macro.
3963         (size): New mode attribute.
3964         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
3965         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
3966         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
3967         !ISA_HAS_SEB_SEH.
3968         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
3969         *extend[qh]isi2_hw patterns and extending them to di.
3970         (extendqihi2): Implement as define_insn_and_split that produces
3971         extendqisi2 after reload.
3972
3973 2004-09-03  Devang Patel  <dpatel@apple.com>
3974
3975         * Makefile.in (OBJS-common): Add tree-if-conv.o
3976         (tree-if-conv.o): New rule.
3977         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
3978         (get_loop_body_in_bfs_order): New.
3979         * cfgloop.h (get_loop_body_in_bfs_order): New.
3980         * tree-flow.h (enum move_pos): Move here from ..
3981         * tree-ssa-loop-im.c (enum move_pos): here.
3982         (movement_possibility): Make externally visible.
3983         * tree-optimize.c (init_tree_optimization_passes): New entry for
3984         if conversion pass.
3985         * tree-pass.h (pass_if_conversion): New.
3986         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
3987         * tree-if-conv.c: New file.
3988         * doc/passes.texi: Document tree if-conversion pass.
3989         * doc/tree-ssa.texi: Same.
3990
3991 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
3992
3993         PR target/14925:
3994         Makefile.in (LIB2ADDEHSTATIC): New.
3995         (LIB2ADDEHSHARED): New.
3996         (LIBUNWIND): New.
3997         (LIBUNWINDDEP): New.
3998         (SHLIBUNWIND_LINK): New.
3999         (SHLIBUNWIND_INSTALL): New.
4000         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
4001         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
4002         (clean): Remove libunwind*
4003         (stage1-start): Remove and copy stage1/libunwind*.
4004         (stage2-start): Remove and copy stage2/libunwind*.
4005         (stage3-start): Remove and copy stage3/libunwind*.
4006         (stage4-start): Remove and copy stage4/libunwind*.
4007         (stageprofile-start): Remove and copy stageprofile/libunwind*.
4008         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
4009
4010         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
4011         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
4012         tmake_file if --with-system-libunwind isn't used.
4013
4014         * config/ia64/t-glibc-libunwind: New file.
4015         * config/t-libunwind-elf: Likewise.
4016         * unwind-compat.c: Likewise.
4017         * unwind-compat.h: Likewise.
4018         * unwind-dw2-fde-compat.c: Likewise.
4019
4020         * config/ia64/t-glibc (LIB2ADDEH): Updated.
4021         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
4022
4023         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
4024         aliases if needed.
4025         * unwind-dw2-fde-glibc.c: Likewise.
4026         * unwind-dw2.c: Likewise.
4027
4028         * config/t-libunwind (LIB2ADDEH): Updated.
4029         (LIB2ADDEHSTATIC): New.
4030         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
4031         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
4032
4033         * configure.ac: Change --enable-libunwind-exceptions to
4034         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
4035         * configure: Regenerated.
4036         * config.in: Updated.
4037
4038         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
4039         above and mention --with-system-libunwind.
4040         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
4041         removed in gcc 3.4.3 and later.
4042
4043         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
4044         USE_LIBUNWIND_EXCEPTIONS is defined.
4045
4046         * mklibgcc.in: Support libunwind.
4047
4048 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
4049
4050         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
4051         m_NOCONA.
4052
4053 2004-09-03  Richard Henderson  <rth@redhat.com>
4054
4055         PR middle-end/9997
4056         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
4057         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
4058         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
4059         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
4060         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
4061         resize_stack_vars_conflict, add_stack_var_conflict,
4062         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
4063         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
4064         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
4065         expand_one_static_var, expand_one_hard_reg_var,
4066         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
4067         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
4068         (expand_used_vars): Rewrite.
4069         * Makefile.in (cfgexpand.o): Update dependencies.
4070
4071 2004-09-04  Jan Hubicka  <jh@suse.cz>
4072
4073         * cfg.c (free_edge): Use ggc_free.
4074         (expunge_block): Use ggc_free.
4075         * passes.c (rest_of_clean_state): Free after compilation.
4076         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
4077         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
4078
4079 2004-09-03  James E Wilson  <wilson@specifixinc.com>
4080
4081         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
4082         DECL_EXTERNAL check.
4083
4084 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4085
4086         * final.c (output_in_slot): New global variable.
4087         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
4088         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
4089         'output_in_slot' before invoking output_asm_insn.
4090         (output_asm_insn): Add a space after the tab if 'output_in_slot'
4091         is set.
4092         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
4093         final_scan_insn.
4094         (output_sibcall): Likewise.
4095
4096 2004-09-03  Jan Hubicka  <jh@suse.cz>
4097
4098         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
4099         * tree-ssanames (init_ssanames): Likewise.
4100
4101 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
4102
4103         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
4104         objc_declare_protocols, objc_start_protocol,
4105         objc_start_class_interface, objc_start_category_interface,
4106         objc_continue_interface, objc_finish_interface,
4107         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
4108         objc_start_class_implementation, objc_start_category_implementation,
4109         objc_continue_implementation, objc_finish_implementation,
4110         objc_add_method_declaration, objc_start_method_definition,
4111         objc_finish_method_definition, objc_build_keyword_decl,
4112         objc_build_method_signature, objc_build_encode_expr,
4113         objc_build_protocol_expr, objc_build_selector_expr,
4114         objc_build_message_expr, objc_build_string_object,
4115         objc_get_class_reference, objc_get_protocol_qualified_type,
4116         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
4117
4118 2004-09-03  James E Wilson  <wilson@specifixinc.com>
4119
4120         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
4121
4122         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
4123         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
4124         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
4125         (mips_recip1_<fmt>): Use frdiv1 type.
4126         (mips_recip2_<fmt>): Use frdiv2 type.
4127         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
4128         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
4129         and frsqrt1.
4130         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
4131
4132 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
4133
4134         * reload.c (find_reloads): Swap operand_loc pointers for
4135         find_dummy_reload if we have swapped two operands.
4136
4137 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
4138
4139         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
4140         to get the tablejump-insn before the jump-table label.
4141
4142 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
4143
4144         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
4145         objc_declare_protocols, objc_build_message_expr,
4146         objc_finish_message_expr, objc_build_selector_expr,
4147         objc_build_protocol_expr, objc_build_encode_expr,
4148         objc_build_string_object, objc_get_protocol_qualified_type,
4149         objc_get_class_reference, objc_get_class_ivars,
4150         objc_start_class_interface, objc_start_category_interface,
4151         objc_start_protocol, objc_continue_interface, objc_finish_interface,
4152         objc_start_class_implementation, objc_start_category_implementation,
4153         objc_continue_implementation, objc_finish_implementation,
4154         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
4155         objc_add_method_declaration, objc_start_method_definition,
4156         objc_finish_method_definition, objc_add_instance_variable,
4157         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
4158         objc_finish_try_stmt, objc_begin_catch_clause,
4159         objc_finish_catch_clause, objc_build_finally_clause,
4160         objc_build_synchronized, objc_static_init_needed_p,
4161         objc_generate_static_init_call): New prototypes.
4162
4163 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
4164
4165         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
4166         is only one reg.
4167         (ia64_function_value): Ditto.
4168
4169 2004-09-03  Jan Beulich  <jbeulich@novell.com>
4170
4171         * config.gcc: Resurrect NetWare as a target. Handle special case of
4172         Novell linker to be used (specified through --with-ld=) and threading
4173         model of either Posix (default) or NKS.
4174         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
4175         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
4176         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
4177         * config/i386/netware.c, config/i386/netware.h: New.
4178         * config/i386/nwld.c, config/i386/nwld.h: New.
4179         * config/i386/netware-crt0.c: New.
4180         * config/i386/netware-libgcc.c: New.
4181         * config/i386/netware-libgcc.def: New.
4182         * config/i386/netware-libgcc.exp: New.
4183         * config/i386/t-netware, config/i386/t-nwld: New.
4184         * gthr-nks.h: New.
4185         * doc/install.texi: Document NKS threading model.
4186
4187 2004-09-03  Jan Beulich  <jbeulich@novell.com>
4188
4189         PR c/7054
4190         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
4191         * tree.h (initial_max_fld_align): Declare
4192         * stor-layout.c (initial_max_fld_align): Define and initialize.
4193         (maximum_field_alignment): Initialize to the same value.
4194         * common.opt: Add -fpack-struct= variant of switch.
4195         * opts.c: Handle -fpack-struct= variant of switch.
4196         * c-pragma.c: Change #pragma pack() handling so that it becomes
4197         compatible to other compilers: accept individual 'push' argument,
4198         make final pop restore (command line) default, correct interaction
4199         of push/pop and sole specification of a new alignment (so that the
4200         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
4201         to #pragma pack(push, <n>).
4202         * doc/extend.texi: New node "Structure-Packing Pragmas" under
4203         "Pragmas", describing #pragma pack.
4204         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
4205         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
4206         Document new TARGET_DEFAULT_PACK_STRUCT.
4207
4208 2004-09-03  Devang Patel  <dpatel@apple.com>
4209
4210         * dwarf2out.c (gen_field_die). Equate decl number to die.
4211
4212 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
4213
4214         PR target/15832
4215         * global.c (modify_reg_pav): New function.
4216         (make_accurate_live_analysis): Call the new function.  Move pavin
4217         modification by earlyclobber set into the new function.
4218
4219 2004-09-03  Andreas Schwab  <schwab@suse.de>
4220
4221         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
4222         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
4223         extended.
4224
4225 2004-09-02  Jan Beulich  <jbeulich@novell.com>
4226
4227         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
4228         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
4229         not unwind code specific ones.
4230         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
4231         Remove unwind code specific dependencies.
4232         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
4233         Remove gbl-ctors.h.
4234         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
4235         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
4236         * tsystem.h: Declare memcpy and memset when inhibit_libc.
4237
4238 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
4239
4240         * combine.c (try_combine): Delay modifying of insns which cannot
4241         be easily undone.
4242
4243 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
4244
4245         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
4246         tree-loop-im.
4247         * gcc/tree-ssa-loop.c: Ditto
4248         * gcc/tree-ssa-loop-ivcanon.c: Ditto
4249         * gcc/doc/invoke.texi: Ditto.
4250
4251 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
4252
4253         * c-decl.c (store_parm_decls_newstyle): Make static.
4254         (store_parm_decls_from): New function.
4255         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
4256         (store_parm_decls_from): New prototype.
4257
4258 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
4259
4260         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
4261         HImode with STRICT_ALIGNMENT.
4262
4263 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
4264
4265         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
4266         (TARGET_OS_CPP_BUILTINS): Likewise.
4267         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
4268         TARGET_BPABI_CPP_BUILTINS.
4269
4270 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
4271
4272         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
4273
4274 2004-09-02  Eric Christopher  <echristo@redhat.com>
4275
4276         * builtins.c (expand_builtin_cabs): Delete.
4277         (expand_builtin): If unable to fold the values do a normal
4278         library call for builtin_cab*.
4279         (fold_builtin_cabs): Depend on optimize and optimize_size.
4280         * optabs.c (expand_cmplxdiv_straight): Delete.
4281         (expand_cmplxdiv_wide): Ditto.
4282         (expand_vector_binop): Ditto.
4283         (expand_vector_unop): Ditto.
4284         (expand_complex_abs): Delete.
4285         (expand_binop): Remove calls to above functions.
4286         Remove open coding of complex arithmetic.
4287         (expand_unop): Ditto.
4288         * optabs.h: Remove prototypes.
4289
4290 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
4291
4292         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
4293         * c-tree.h (store_parm_decls_newstyle): New prototype.
4294
4295 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
4296
4297         * config/rs6000/rs6000.c (expand_block_clear): Use vector
4298         instructions if available.
4299         (expand_block_move): Likewise.
4300
4301 2004-09-03  Jan Hubicka  <jh@suse.cz>
4302
4303         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
4304
4305 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
4306
4307         * config/arm/symbian.h (LIB_SPEC): Define to empty.
4308         * config/arm/t-symbian (SHLIB_LC): Likewise.
4309
4310 2004-09-02  Paul Brook  <paul@codesourcery.com>
4311
4312         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
4313
4314 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
4315
4316         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
4317         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
4318         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
4319         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
4320         (mips_issue_rate): Remove unreachable abort.
4321         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
4322         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
4323         (mips_block_move_straight, print_operand_address, mips_file_start)
4324         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
4325         (mips_output_conditional_branch, mips_expand_builtin_direct)
4326         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
4327         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
4328         with gcc_assert.
4329
4330 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
4331
4332         * config/mips/mips.md (*lea_high64): Change split condition to
4333         flow2_completed.  Add a peephole2 to generate a more parallel version.
4334
4335 2004-09-02  Jan Hubicka  <jh@suse.cz>
4336
4337         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
4338         GGC.
4339
4340         * ggc-page.c: include tree-flow.h.
4341         (extra_order_size_table): Add stmt_ann_d.
4342         (STAT_LABEL): Rename from ....
4343         (LABEL): ... this one.
4344         * Makefile.in (ggc-page.o): Add dependency.
4345
4346         * ggc-common.c (ggc_force_collect): New global variable.
4347         (loc_description): Add fields "freed", "collected"
4348         (ptr_hash): New static hash
4349         (ptr_hash_entry): New structure.
4350         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
4351         (ggc_record_overhead): Take ptr argument, record it
4352         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
4353         (cmp_statistics): Imrove sorting.
4354         (dump_ggc_loc_statistics): Output newly collected statistics
4355         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
4356         (ggc_free): Call ggc_free_overhead.
4357         (ggc_collect): Force collection when asked to be forced.
4358         (ggc_collect): Call ggc_prune_overhead_list.
4359         * ggc.h (ggc_force_collect): Declare
4360         (ggc_record_overhead): Update prototype.
4361         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
4362
4363 2004-09-02  James E Wilson  <wilson@specifixinc.com>
4364
4365         * common.opt (ftrapping-math): Default to on.
4366
4367 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
4368
4369         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
4370
4371 2004-09-02  Denis Chertykov  <denisc@overta.ru>
4372
4373         PR target/16884
4374         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
4375         match_scratch.
4376         (*movmemqi_insn): Likewise.
4377         (*movmemhi): Likewise.
4378         (clrmemhi): Likewise.
4379         (*clrmemqi): Likewise.
4380         (*clrmemhi): Likewise.
4381
4382 2004-09-02  Paul Brook  <paul@codesourcery.com>
4383
4384         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
4385         default_use_cxa_atexit=yes.
4386
4387 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
4388
4389         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
4390         (struct kernel_old_ucontext): Delete.
4391         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
4392         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
4393         when IN_LIGGCC2.
4394
4395 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
4396
4397         * toplev.c (process_options): Fix typo.
4398
4399 2004-09-01  Richard Henderson  <rth@redhat.com>
4400
4401         PR middle-end/17258
4402         * calls.c (initialize_argument_information): Tighten pass-through
4403         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
4404         Use build_fold_addr_expr.
4405         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
4406         that assumes ADDR_EXPR allocates stack space.
4407         * fold-const.c (build_fold_addr_expr_with_type): Look through
4408         WITH_SIZE_EXPR.
4409
4410 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
4411
4412         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
4413         * ggc.h (ggc_alloc_rtx): Delete.
4414
4415 2004-09-01  Roger Sayle  <roger@eyesopen.com>
4416
4417         * expmed.c (enum alg_code): Remove long unused enumeration values.
4418         (struct mult_cost): New structure to hold the "score" of a synthetic
4419         multiply sequence, including both a rtx_cost and a latency field.
4420         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
4421         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
4422         (struct algorithm): Change type of cost field to be mult_cost.
4423         (synth_mult): Change type of cost_limit argument to be a
4424         pointer to a mult_cost.  Update all cost comparisons to use the
4425         new mult_cost infrastructure.  For alg_add_factor and
4426         alg_sub_factor operations, latency is lower than the rtx_cost.
4427         (choose_mult_variant):  Update calls to synth_mult.  Perform
4428         cost comparisons using the new mult_cost infrastructure.
4429         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
4430         to optain the total rtx_cost of a synth_mult "algorithm".
4431
4432 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
4433
4434         * config/rs6000/power4.md: Increase store latency to 12.
4435         * config/rs6000/power5.md: Same.
4436
4437 2004-09-01  James E Wilson  <wilson@specifixinc.com>
4438
4439         PR target/14064
4440         * config/avr/avr.c (avr_unique_section): Delete prototype and
4441         definition.
4442         (TARGET_ASM_UNIQUE_SECTION): Delete.
4443
4444 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
4445
4446         * c-parse.in (primary): Call objc_build_message_expr(),
4447         objc_build_selector_expr(), objc_build_protocol_expr(),
4448         objc_build_encode_expr() and objc_build_string_object() instead of
4449         build_message_expr(), build_selector_expr(), build_protocol_expr(),
4450         build_encode_expr() and build_objc_string_object(), respectively.
4451         (component_decl_list2): Call objc_get_class_ivars() instead of
4452         get_class_ivars_from_name().
4453         (keyworddecl): Call objc_build_keyword_decl() instead of
4454         build_keyword_decl().
4455         (receiver): Call objc_get_class_reference() instead of
4456         get_class_reference().
4457         (reswords): Add blank line before @@ifobjc section, for clarity.
4458
4459 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
4460
4461         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
4462         to Altivec vetors.
4463
4464 2004-09-01  Wu Yongwei  <adah@sh163.net>
4465             Danny Smith  <dannysmith@users.sourceforge.net>
4466
4467         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
4468         not Windows 'DWORD'.
4469         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
4470         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
4471         (__gthr_win32_recursive_mutex_init_function): Add prototype for
4472         __GTHREAD_HIDE_WIN32API case..
4473         (__gthr_win32_recursive_mutex_lock): Likewise.
4474         (__gthr_win32_recursive_mutex_trylock): Likewise.
4475         (__gthr_win32_recursive_mutex_unlock): Likewise.
4476         (__gthread_recursive_mutex_init_function); Add definition for
4477         __GTHREAD_HIDE_WIN32API case.
4478         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
4479         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
4480         call to InterlockedDecrement.
4481
4482 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4483
4484         * tree-tailcall.c (find_tail_calls): Also fail is statement has
4485         volatile operands.
4486
4487         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
4488
4489         * doc/c-tree.texi: Document new operands for ARRAY_REF and
4490         COMPONENT_REF.
4491
4492 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4493
4494         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
4495         * common.opt (fspeculative-prefetching): New.
4496         * flags.h (flag_speculative_prefetching_set): Declare.
4497         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
4498         values.
4499         * opts.c (flag_sepculative_prefetching_set): New variable.
4500         (common_handle_option): Handle -fspeculative-prefetching.
4501         * passes.c (rest_of_compilation): Ditto.
4502         * profile.c (instrument_values, compute_value_histograms, branch_prob):
4503         Use vectors instead of arrays.
4504         * toplev.c (process_options): Handle -fspeculative-prefetching.
4505         * rtl-profile.c: Include ggc.h.
4506         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
4507         rtl_gen_one_value_profiler_no_edge_manipulation,
4508         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
4509         argument changed.
4510         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
4511         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
4512         argument changed.
4513         * value-prof.c: Include ggc.h.
4514         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
4515         macros.
4516         (insn_prefetch_values_to_profile, find_mem_reference_1,
4517         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
4518         speculative_prefetching_transform): New.
4519         (value_profile_transformations): Call speculative_prefetching_transform.
4520         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
4521         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
4522         tree_find_values_to_profile, find_values to profile): Use vectors
4523         instead of arrays.
4524         (free_profiled_values): Removed.
4525         * value-prof.h (struct histogram_value): Renamed to
4526         struct histogram_value_t.
4527         (histogram_value, histogram_values): New types.
4528         (find_values_to_profile): Declaration changed.
4529         (free_profiled_values): Removed.
4530         (struct profile_hooks): Type of argument of the hooks changed to
4531         histogram_value.
4532         * doc/invoke.texi (-fspeculative-prefetching): Document.
4533
4534 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4535
4536         PR rtl-optimization/16408
4537         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
4538
4539 2004-09-01  Richard Henderson  <rth@redhat.com>
4540
4541         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
4542         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
4543
4544 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
4545
4546         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
4547
4548 2004-09-01  Mike Stump  <mrs@apple.com>
4549
4550         * config/darwin.c (machopic_symbol_defined_p): In addition to
4551         being SYMBOL_REF_LOCAL_P, a symbol must also be
4552         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
4553         defined in this output file, or translation unit in the case
4554         of IMA not being used.
4555         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
4556         never need .indirect_symbol when indirecting.
4557
4558 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
4559
4560         * Makefile.in (bb-reorder.o): Add several dependencies.
4561
4562 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
4563
4564         * fold-const.c (operand_equal_p): Require equal sign also for
4565         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
4566
4567 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
4568
4569         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
4570         for use in configargs.h.  Put the cname in a separate variable.  Use
4571         that to set target_cpu_default2.
4572
4573 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
4574             Nick Clifton  <nickc@redhat.com>
4575
4576         * config/sh/sh.md ("length"): Increase branch length when
4577         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
4578         constant, 2 byte for aligning the constant.
4579
4580 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
4581
4582         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
4583         CPU.
4584         (arm7tdmi-s): New CPU name.
4585         * arm/arm.c (ARM_CORE): Update for new format.
4586         * arm/arm.h (ARM_CORE): Likewise.
4587         * arm/gentune.sh: Update for extra field.
4588         * config.gcc: Likewise.
4589         * arm/arm-tune.md: Regenerate.
4590         * doc/invoke.texi: Document the real processor names for ARM cpus.
4591
4592 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
4593
4594         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
4595         (floatdidf): New functions.
4596         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
4597         (floatdisf): New functions.
4598         * t-arm-elf: Use them.
4599
4600 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
4601
4602         * c-common.h (lookup_interface): Remove prototype.
4603         (is_class_name): Rename to objc_is_class_name.
4604         (lookup_objc_ivar): Rename to objc_lookup_ivar.
4605         (get_current_scope): Rename to objc_get_current_scope.
4606         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
4607         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
4608         (yylexname): Call objc_is_class_name() instead of is_class_name().
4609         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
4610         instead of lookup_objc_ivar().
4611         * stub-objc.c (lookup_interface): Remove stub.
4612         (is_class_name): Rename to objc_is_class_name.
4613         (lookup_objc_ivar): Rename to objc_lookup_ivar.
4614
4615 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
4616
4617         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
4618         * config/arm/lib1funcs.asm: Do not include supplemental .S files
4619         when compiling for Symbian.
4620         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
4621         (TARGET_OS_CPP_BUILTINS): Likewise.
4622         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
4623
4624 2004-08-31  Stan Shebs  <shebs@apple.com>
4625
4626         * toplev.c (process_options): Ensure debug_hooks is initialized.
4627
4628 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
4629
4630         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
4631         * target.h (cxx): Add export_class_data.
4632         * config/arm/arm.c (arm_cxx_export_class_data): New function.
4633         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
4634         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
4635
4636 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4637
4638         * config/sh/sh.c (output_branch): Check the insn length possibly
4639         in the delayed slot.
4640
4641 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4642
4643         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
4644         blank after ')'.
4645         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
4646
4647         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
4648         (c_sizeof_of_alignof_type): Likewise.
4649         * expr.c (array_ref_element_size): Likewise.
4650         (highest_pow2_factor_for_target): Likewise.
4651         * gimplify.c (canonicalize_addr_expr): Likewise.
4652         (gimplify_compound_lval): Likewise.
4653         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
4654         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
4655         * varasm.c (assemble_variable): Likewise.
4656         (output_constant_def_contents): Alignments are unsigned.
4657
4658 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4659             Jeff Law  <law@redhat.com>
4660
4661         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
4662         gets modified.
4663
4664 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
4665
4666         * hooks.c (hook_bool_void_true): New function.
4667         * hooks.h (hook_bool_void_true): Declare.
4668         * target-def.h (TARGET_CXX): Add
4669         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
4670         * target.h (struct cxx): Add key_method_may_be_inline.
4671         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
4672         function.
4673         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
4674         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
4675         __THUMB_INTERWORK.
4676
4677 2004-08-31  Denis Chertykov  <denisc@overta.ru>
4678
4679         PR target/15417
4680         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
4681         frame pointer register only in Pmode while reload in progress.
4682
4683 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
4684
4685         PR target/15334
4686         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
4687         because it breaks the 32-bit shift patterns that rely on a match_dup.
4688
4689 2004-08-31  Matt Austern  <austern@apple.com>
4690
4691         * config/darwin.c (darwin_make_decl_one_only): Allocate section
4692         names once per compilation, instead of once per symbol.
4693
4694 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
4695
4696         * Makefile.in (build_subdir): New substitution.
4697         (fixinc.sh): Simplify heavily since fixincludes is already built.
4698         (stmp-fixinc): Depend on specs.ready.
4699         (install-mkheaders): Use new location of fixincludes.
4700         (clean): Do not descend into fixinc.
4701         (FORBUILD): Replace with ../$(build_subdir).
4702         * configure.ac (build_subdir): Substitute.
4703         (FORBUILD): Do not set.
4704         (all_outputs): Remove fixinc/Makefile.
4705         (default commands): Do not create links in fixinc.
4706         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
4707         the fixincludes configuration steps and substituting
4708         @FIXINCL@ in fixinc.in.
4709         * fixinc.in: New, from fixinc/fixincl.sh.
4710
4711         * fixinc/*: Removed.
4712
4713 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
4714
4715         * attribs.c (strip_attrs): Remove.
4716         (split_specs_attrs): Move ...
4717         * c-decl.c: ... to here.
4718         * tree.h (split_specs_attrs, strip_attrs): Remove.
4719         * c-tree.h (split_specs_attrs): Declare.
4720
4721 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
4722
4723         * read-rtl.c: Disable RTL checking.
4724         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
4725
4726 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
4727
4728         * config/mips/mips.md (fcond): New code macro and attribute.
4729         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
4730         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
4731         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
4732
4733 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
4734
4735         Revert:
4736         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
4737         PR rtl-optimization/16590
4738         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
4739
4740 2004-08-30  Andrew Pinski  <apinski@apple.com>
4741
4742         * hard-reg-set.h:
4743         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
4744         * ChangeLog: Fix previous ChangeLog entry.
4745
4746         PR rtl-opt/13987
4747         * config.host (use_long_long_for_widest_fast_int): New, default is
4748         off.
4749         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
4750         * configure.ac: If use_long_long_for_widest_fast_int, then
4751         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
4752         * configure: Regenerate.
4753         * config.in: Regenerate.
4754         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
4755         New: widest integer type supported efficiently in hardware for the
4756         host.
4757         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
4758         HOST_BITS_PER_WIDEST_FAST_INT.
4759         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
4760         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
4761         HOST_WIDEST_FAST_INT
4762         instead of HOST_WIDE_INT.
4763         (HARD_REG_SET_LONGS): Likewise.
4764         (UHOST_BITS_PER_WIDE_INT): Likewise.
4765         Change the checks for the fast cases to be based on
4766         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
4767
4768 2004-08-30  Steven Bosscher  <stevenb@suse.de>
4769
4770         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
4771         not the pointers.
4772
4773 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
4774
4775         PR 12738
4776         PR 17205
4777         Radar 3460526
4778         Radar 3775729
4779         * c-decl.c (grokdeclarator): Produce error for 'static' on local
4780         function declaration.
4781
4782 2004-08-30  Richard Henderson  <rth@redhat.com>
4783
4784         * expr.c (array_ref_element_size): Force aligned_size back to
4785         sizetype.
4786         (component_ref_field_offset): Similarly for aligned_offset.
4787         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
4788         low-bound, element-size, field-offset fields rather than
4789         computed values.
4790
4791 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
4792
4793         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
4794         redundant code.
4795
4796 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
4797
4798         * c-tree.h (struct language_function): Add arg_info element.
4799         * c-decl.c (current_function_arg_info): New.
4800         (grokdeclarator, store_parm_decls): Use it instead of
4801         DECL_ARGUMENTS.
4802         (c_push_function_context, c_pop_function_context): Save and
4803         restore it.
4804
4805 2004-08-30  Richard Henderson  <rth@redhat.com>
4806
4807         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
4808         COMPONENT_REF to pointer arithmetic.
4809         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
4810         constant "c" as a valid constant initializer.  Allow narrowing of
4811         differences against the same base object, for any base object.
4812
4813 2004-08-30  Richard Henderson  <rth@redhat.com>
4814
4815         * expr.c (expand_expr_addr_expr): New.
4816         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
4817
4818 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
4819
4820         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
4821         (mips_fp_condition): New enum.
4822         (mips_fp_conditions): New array.
4823         (print_fcc_operand): Delete.
4824         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
4825         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
4826         (builtin_description): Add "cond" field.
4827         (DIRECT_BUILTIN): Initialize it.
4828         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
4829         into INSN and CODE.  Initialize the "cond" field.
4830         (CMP_BUILTINS): Update accordingly.
4831         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
4832         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
4833         mips_fp_condition as argument.  Make it the final operand of the
4834         comparison instruction.
4835         (mips_expand_builtin): Update accordingly.
4836         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
4837         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
4838         the gaps.
4839         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
4840         Don't use the 'Q' operand prefix; just print the operand normally.
4841         (mips_cabs_*, mips_c_*): Delete, replacing with...
4842         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
4843         patterns.  Split the 4s versions into 2 ps patterns after reload.
4844
4845 2004-08-30  Richard Henderson  <rth@redhat.com>
4846
4847         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
4848         assuming an ADDR_EXPR is non-null.
4849
4850 2004-08-30  Jason Merrill  <jason@redhat.com>
4851
4852         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
4853
4854 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
4855
4856         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
4857         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
4858         gcc_assert and gcc_unreachable instead of abort.
4859         * alloc-pool.c (abort, fancy_abort): Remove.
4860         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
4861         gcc_assert or gcc_unreachable.
4862         * attribs.c (init_attributes, decl_attributes): Likewise.
4863         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
4864         mark_bb_for_unlikely_executed_section,
4865         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
4866         fix_crossing_unconditional_branches):  Likewise.
4867         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
4868         bitmap_operation):  Likewise.
4869         * bt-load.c (insn_sets_btr_p, augment_live_range,
4870         move_btr_def):  Likewise.
4871         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
4872         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
4873         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
4874         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
4875         expand_builtin_memcmp, expand_builtin_args_info,
4876         std_gimplify_va_arg_expr, expand_builtin_unop,
4877         expand_builtin_fputs, expand_builtin_profile_func,
4878         expand_builtin_fork_or_exec, fold_builtin_bitop,
4879         fold_builtin_classify, fold_builtin_fputs): Likewise.
4880
4881 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
4882
4883         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
4884         * gcov.c (abort): Remove undef.
4885
4886         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
4887         (struct tree_binfo): Remove primary field.
4888
4889 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
4890
4891         * fixinc/Makefile.in (machname.h): Remove.
4892         (fixincl.x): Do not pass $@ to genfixes.
4893         * fixinc/genfixes: Remove code to produce machname.h.
4894         * fixinc/fixincl.sh: Move it here instead.
4895         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
4896         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
4897         return a bool indicating whether pz_mn_name_pat is NULL.
4898         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
4899         Declare extern C variables for the ENV_TABLE.
4900         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
4901         instead use the result of mn_get_regexps.
4902         * fixinc/fixtests.c: Likewise.
4903
4904 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
4905
4906         * configure.ac: Do not run fixincludes after stage1 during
4907         toplevel bootstrap.
4908         * configure: Regenerate.
4909
4910 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
4911
4912         * sched-deps.c (get_condition): Partially revert previous, by never
4913         trying to extract the condition from a condjump.
4914
4915 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
4916
4917         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
4918         (handle_visibility_attribute, c_determine_visibility): Likewise.
4919         * c-common.h (my_friendly_assert): Remove.
4920
4921 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
4922
4923         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
4924         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
4925         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
4926         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
4927         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
4928
4929 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
4930
4931         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
4932         in COMPONENT_REF nodes.
4933
4934 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4935
4936         PR c++/15378
4937         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
4938         global_dc->warning_as_error_requested.
4939         * diagnostic.c (diagnostic_initialize): Tidy.
4940         * diagnostic.h (diagnostic_context::x_data): Remove
4941         (diagnostic_context::issue_warnings_are_errors_message): Rename
4942         from warnings_are_errors_message.
4943         (diagnostic_context::warning_as_error_requested): New.
4944
4945 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
4946
4947         * sched-deps.c (get_condition): Fix breakage in previous patch.
4948
4949 2004-08-30  Paul Brook  <paul@codesourcery.com>
4950
4951         * doc/install.texi: Fix broken mpfr link.
4952
4953 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
4954
4955         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
4956         other FreeBSD platforms.
4957
4958 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
4959
4960         * arm.h (REVERSE_CONDITION): Define.
4961         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
4962
4963 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
4964
4965         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
4966         just the codes, call reversed_comparison_code ().
4967         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
4968         (not_reg_cond): Use reversed_comparison_code.
4969         (and_reg_cond): Likewise.
4970         * ifcvt.c (cond_exec_process_if_block): Likewise.
4971         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
4972
4973 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
4974
4975         * sched-deps.c (get_condition): Rewrite using jump support functions.
4976         Use reversed_comparison_code.
4977         (conditions_mutex_p): Use reversed_comparison_code.
4978
4979 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4980
4981         * config/mips/mips.c (override_options): Disable hot/cold partitioning
4982         for MIPS16.
4983
4984 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
4985
4986         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
4987         (mips_function_type): Move to mips.c.
4988         * config/mips/mips.c (mips_builtin_type): New enum.
4989         (builtin_description): Replace code and ftype with builtin_type
4990         and function_type.
4991         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
4992         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
4993         (CODE_FOR_mips_abs_ps): Define.
4994         (mips_bdesc): Use new macros.
4995         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
4996         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
4997         (mips_expand_builtin_direct): New function.
4998         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
4999         builtin.  Replace boolean parameter with builtin_type.
5000         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
5001         (mips_expand_4s_compare_builtin): Delete, replacing with...
5002         (mips_expand_builtin_compare): ...this new function.
5003
5004 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
5005
5006         PR rtl-optimization/16590
5007         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
5008
5009 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
5010
5011         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
5012         * tree-ssa-propagate.c: Fix documentation.
5013
5014 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5015
5016         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
5017         (mov[sd]fcc): Likewise.
5018
5019 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5020
5021         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
5022
5023 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5024
5025         * config/mips/mips.md (divide_condition): New mode attribute.
5026         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
5027         (sqrt[sd]f3): Redefine using SCALARF.
5028         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
5029         patterns.
5030
5031 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5032
5033         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
5034         (loadx, storex, fmt, UNITMODE): New mode attributes.
5035         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
5036         (mul[sd]f3): Redefine using :SCALARF.
5037         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
5038         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
5039         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
5040         Check TARGET_FUSED_MADD for V2SF too.
5041         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
5042         were already named.
5043         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
5044         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
5045
5046 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5047
5048         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
5049         V2SF_type_node if it will be needed.
5050
5051 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5052
5053         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
5054         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
5055         (mips_prepare_builtin_target): New function.
5056         (mips_expand_builtin): Use them.  Update calls to subroutines.
5057         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
5058         cmp_choice with a boolean argument to select between movt and movf.
5059         Take the comparison's icode as an argument, not the function's fcode.
5060         (mips_expand_compare_builtin): New function.  Rename existing function
5061         to mips_expand_scalar_compare_builtin.
5062         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
5063         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
5064         comparison's icode as an argument, not the builtin's fcode.
5065
5066 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5067
5068         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
5069         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
5070         registers are false and -1 if all registers are true.
5071         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
5072         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
5073         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
5074         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
5075         (bc1any2t, bc1any2f): Likewise CCV2.
5076         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
5077
5078 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
5079
5080         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
5081         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
5082         UNSPEC rather than an IF_THEN_ELSE.
5083         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
5084         mips_cond_move_tf_ps by name.
5085
5086 2004-08-29  Chao-ying Fu  <fu@mips.com>
5087             James E Wilson  <wilson@specifixinc.com>
5088
5089         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
5090         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
5091         * config/mips/mips-ps-3d.md: New file.
5092         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
5093         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5094         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
5095         (mips_output_move): Emit "mov.ps" for V2SFmode.
5096         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
5097         MODE_VECTOR_FLOAT.
5098         (override_options): Check if TARGET_MIPS3D and there was an explicit
5099         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
5100         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
5101         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
5102         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
5103         and allow CCV2 and CCV4 to occupy two and four CC registers.
5104         (print_fcc_operand): New function.
5105         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
5106         %Z to call print_fcc_operand.
5107         (mips_function_value): Handle MODE_VECTOR_FLOAT.
5108         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
5109         (mips_vector_mode_supported_p): New function.
5110         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
5111         (builtin_description): New struct.
5112         (mips_bdesc): New array of struct builtin_description.
5113         (mips_expand_builtin, mips_init_builtins,
5114         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
5115         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
5116         functions.
5117         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
5118         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
5119         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
5120         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
5121         "-mips3d", and "-mno-mips3d".
5122         (ASM_SPEC): Map -mips3d to -mips3d in gas.
5123         (EXTRA_CONSTRAINT_Y): New macro.
5124         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
5125         multi-letter constraint 'Y'.
5126         (CONSTRAINT_LEN): New macro.
5127         (enum mips_builtins): New for MIPS builtin functions.
5128         (enum mips_function_type): New for the types of MIPS builtin functions.
5129         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
5130         * config/mips/mips.md: New constants for paired single and MIPS-3D
5131         instructions.  Include the new mips-ps-3d.md file.
5132         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
5133         movv2sf_hardfloat_64bit): New named patterns.
5134         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
5135         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
5136         sdxc1_v2sf_di): New unnamed patterns.
5137         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
5138         const_vector support.
5139         (const_0_or_1_operand): New predicate.
5140         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
5141
5142 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
5143
5144         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
5145         (tree-ssa-propagate.o): New rule.
5146         (GTFILES): Add tree-ssa-propagate.c.
5147         * tree-flow.h (struct stmt_ann_d): Remove field
5148         in_ccp_worklist.
5149         * tree-ssa-propagate.c: New file.
5150         * tree-ssa-propagate.h: New file.
5151         * tree-ssa-ccp.c: Re-write to use the routines from
5152         tree-ssa-propagate.c.
5153
5154 2004-08-28  Andrew Pinski  <apinski@apple.com>
5155
5156         * tree-ssa-loop.c: Remove extra include of basic-block.h.
5157
5158 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
5159
5160         * c-common.h: Update comments about ObjC/ObjC++ entry points.
5161         (objc_is_reserved_word): New prototype.
5162         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
5163         separate section; these are call-backs.
5164         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
5165         ObjC/ObjC++ "@" keywords.
5166         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
5167         prototypes; they already live in c-common.h.
5168         * stub-objc.c: Update copyright notice.
5169         (objc_is_reserved_word): New stub.
5170
5171 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
5172
5173         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
5174         even when not checking.
5175
5176 2004-08-27  Jason Merrill  <jason@redhat.com>
5177
5178         PR c++/13684
5179         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
5180         (gimple_push_cleanup): Add eh_only parm.
5181         (gimplify_target_expr): Pass it.
5182         * c.opt (-fno-threadsafe-statics): New option.
5183         * c-opts.c (c_common_handle_option): Handle it.
5184         * c-common.h (flag_threadsafe_statics): Declare it.
5185         * c-common.c (flag_threadsafe_statics): Record it.
5186         * doc/invoke.texi: Document it.
5187         * tsystem.h (_GNU_SOURCE): Define.
5188         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
5189         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
5190         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
5191         (__gthread_recursive_mutex_init_function): New fn.
5192         (__gthread_recursive_mutex_lock): New fn.
5193         (__gthread_recursive_mutex_trylock): New fn.
5194         (__gthread_recursive_mutex_unlock): New fn.
5195         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
5196         * gthr-win32.h, gthr-vxworks.h: Likewise.
5197         * gthr.h: Document.
5198
5199 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
5200
5201         * config/rs6000/rs6000.c (rs6000_override_options): Increase
5202         maximum skip to 15.  Set function alignment, jump alignment, and
5203         loop alignment to 16 for processors that form dispatch groups.
5204         (rs6000_rtx_costs): outer_code is used.
5205
5206 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
5207
5208         * stor-layout.c (sizetype_set): Remove.
5209         (set_sizetype): Don't test or set it.
5210
5211         * tree.h (size_int_type): Remove.
5212         * fold-const.c: Do not #include gt-fold-const.h.
5213         (size_htab_hash, size_htab_eq): Remove.
5214         (size_int_kind): Use build_int_cst.
5215         (new_const, size_htab): Remove.
5216         (size_int_type): Remove.
5217         (round_up): Use build_int_cst.
5218         (round_down): Likewise. Remove spurious constant build.
5219
5220 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
5221
5222         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
5223         Add is_release variable, use it for --enable-werror and
5224         --enable-checking defaults.
5225         * system.h (gcc_assert, gcc_unreachable): New.
5226         * doc/install.texi (--enable-checking): Update.
5227         * configure, config.in: Rebuilt.
5228
5229 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
5230
5231         * rtl.h (read_rtx): Change prototype.
5232         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
5233         line number.  Return true on success.
5234         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
5235         callers accordingly.
5236
5237 2004-08-26  Richard Henderson  <rth@redhat.com>
5238
5239         * c-typeck.c (build_offsetof): Remove.
5240         * c-tree.h (build_offsetof): Remove.
5241         * c-common.c (fold_offsetof_1, fold_offsetof): New.
5242         * c-common.h (fold_offsetof): Declare.
5243         * c-parse.in (offsetof_base): New.
5244         (offsetof_member_designator): Use it.  Build references, not just
5245         a tree list.
5246         (primary): Use fold_offsetof, not build_offsetof.
5247
5248 2004-08-26  Richard Henderson  <rth@redhat.com>
5249
5250         * tree.c (staticp): Return the static object.
5251         * tree.h (staticp): Update decl.
5252         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
5253         * langhooks.c (lhd_staticp): Return NULL_TREE.
5254         * langhooks-def.h (lhd_staticp): Update decl.
5255         * c-common.c (c_staticp): Return the static object.
5256         * c-common.h (c_staticp): Update decl.
5257
5258 2004-08-26  Richard Henderson  <rth@redhat.com>
5259
5260         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
5261         modes.
5262
5263 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
5264
5265         PR c/13801
5266         * c-decl.c (struct c_binding): Add type and inner_comp fields.
5267         (bind): Set type and inner_comp fields.
5268         (pop_scope): Restore type of decl to the correct type from an
5269         outer scope.  Give error when popping file scope for incomplete
5270         arrays completed incompatibly with default initialization in an
5271         inner scope.
5272         (diagnose_mismatched_decls): Handle externs with initializers at
5273         block scope.
5274         (pushdecl): Set type of external declaration at block scope based
5275         only on the visible declarations.  Save type when changing the
5276         type of a declaration.  Merge an external declaration at block
5277         scope with a visible static declaration at file scope.
5278         (implicitly_declare): Give recycled old declaration the new type
5279         except for incompatible declarations of built-in functions, saving
5280         the old type.
5281
5282 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
5283
5284         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
5285
5286 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
5287
5288         * tree-alias-common.c (gate_pta): New function.
5289         (pass_build_pta): Use it.
5290         (pass_del_pta): Use it.
5291         (delete_alias_vars): Don't check flag_tree_points_to.
5292
5293 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
5294
5295         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
5296         TFmode as additional register mode cloberred by call.
5297
5298 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
5299
5300         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
5301         parallel pattern for library call returning DImode in
5302         mixed mode.
5303
5304 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
5305
5306         * config/rs6000/rs6000.c (function_arg): Generate parallel
5307         pattern for more split args.
5308
5309 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
5310
5311         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
5312         either gen_movdi_di_update or gen_movdi_si_update depending on
5313         target mode.
5314         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
5315         to generate two versions.
5316
5317 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
5318
5319         * Makefile.in (lambda-code.o): New.
5320         (lambda-trans.o): Ditto.
5321         (TREE_DATA_REF_H): Ditto.
5322         (LAMBDA_H): Ditto.
5323         (lambda-mat.o): Use LAMBDA_H.
5324         (tree-data-ref.o): Ditto.
5325         * lambda-code.c: New file.  Lambda code generation algorithm.
5326         * lambda-trans.c: Ditto. Lambda transformation matrix support.
5327         * lambda.h: Add lambda loop structures.
5328         Add lambda loopnest structures.
5329         Add lambda body vector structure.
5330         Add lambda linear expression structures.
5331         Add prototypes for functions in new files.
5332         * lambda-mat.c: Include tree.h
5333
5334 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
5335             Sebastian Pop  <pop@cri.ensmp.fr>
5336
5337         * tree-data-ref.h: Include lambda.h
5338         (free_dependence_relation): Declared here.
5339         (free_dependence_relations): Ditto.
5340         (free_data_refs): Ditto.
5341         * tree-data-ref.c (free_dependence_relation): New function.
5342         (free_dependence_relations): Ditto.
5343         (free_data_refs): Ditot.
5344         (analyze_all_data_dependences): Free datarefs and dependence_relations.
5345         (build_classic_dist_vector): Store in the dependence_relations the
5346         information. Each arc in the dependence_relations graph is labelled
5347         with the distance and direction vectors.
5348         (build_classic_dir_vector): Ditto.
5349         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
5350         Now computes again the whole dependence graph including read-read
5351         relations.
5352         (compute_data_dependences_for_loop): Now dependence_relations contains
5353         all the data, and thus it doesn't need to initialize the classic_dir
5354         and classic_dist vectors.
5355         (analyze_all_data_dependences): Adjusted for using the new interface of
5356         compute_data_dependences_for_loop.  Remove the statistics dump.
5357
5358 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
5359
5360         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
5361         (xtensa_expand_block_move): Update comment.
5362         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
5363
5364 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
5365
5366         PR target/13506
5367         * toplev.c (crash_signal): If we crashed while emitting
5368         a user asm, then die more gracefully.
5369
5370 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
5371
5372         PR target/17119.
5373         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
5374         checking for a valid constant, regardless of sign.
5375
5376 2004-08-25  Richard Henderson  <rth@redhat.com>
5377
5378         PR target/16974
5379         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
5380         if the constant satisfies add_operand.
5381
5382 2004-08-25  Richard Henderson  <rth@redhat.com>
5383
5384         PR debug/10695
5385         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
5386         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
5387         unwind info for >16-bit frames.
5388
5389 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
5390
5391         PR target/17171
5392         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
5393
5394 2004-08-25  Richard Henderson  <rth@redhat.com>
5395
5396         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
5397         (TARGET_CANNOT_FORCE_CONST_MEM): New.
5398
5399 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
5400
5401         * doc/tree-ssa.texi: Document new operand iterator.
5402
5403 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
5404
5405         PR target/16480
5406         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
5407         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
5408         as PLUS base regs.
5409
5410 2005-08-28  Paul Brook  <paul@codesourcery.com>
5411
5412         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
5413         -mfpu=vfp -march=armv5t
5414         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
5415
5416 2004-08-25  Richard Henderson  <rth@redhat.com>
5417
5418         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5419         * target.h (struct gcc_target): Add scalar_mode_supported_p.
5420         * targhooks.c (default_scalar_mode_supported_p): New.
5421         * targhooks.h (default_scalar_mode_supported_p): Declare.
5422         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
5423
5424         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
5425         before attempting to create types.  Tidy.
5426         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
5427
5428         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
5429         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5430
5431 2004-08-25  Richard Henderson  <rth@redhat.com>
5432
5433         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
5434         set REAL_MODE_FORMAT for TFmode.
5435
5436 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
5437
5438         * c-decl.c (grokparm): New function.
5439         * c-tree.h (grokparm): New prototype.
5440
5441 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
5442
5443         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
5444         iterator controlling structure.
5445         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
5446         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
5447         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
5448         iterator flags.
5449         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
5450         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
5451         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
5452         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
5453         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
5454         Empty operand pointers.
5455         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
5456         (op_iter_next_use): New.  Return next use_operand_p.
5457         (op_iter_next_def): New.  Return next def_operand_p.
5458         (op_iter_next_tree): New.  Return next operands as a tree.
5459         (op_iter_init): New.  Initialize an iterator structure.
5460         (op_iter_init_use): New.  Initialize structure and get the first use.
5461         (op_iter_init_def): New.  Initialize structure and get the first def.
5462         (op_iter_init_tree): New.  Initialize structure and get the first tree.
5463         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
5464         (op_iter_init_maydef): New.  Initialize structure and get the first
5465         V_MAY_DEF operands.
5466         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
5467         * tree-dfa.c (compute_immediate_uses_for_stmt,
5468         redirect_immediate_uses): Use new operand iterator.
5469         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
5470         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
5471         operands instead of using *_disappeared_p routines.
5472         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
5473         ssa_rewrite_stmt): Use new operand iterator.
5474         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
5475         rewrite_trees): Use new operand iterator.
5476         * tree-pretty-print.c (dump_vops): Use new operand iterator.
5477         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
5478         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
5479         dump_points_to_info): Use new operand iterator.
5480         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
5481         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
5482         operand iterator.
5483         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
5484         propagate_necessity): Use new operand iterator.
5485         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
5486         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
5487         a parameter instead of a stmt_ann_t.
5488         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
5489         build_tree_conflict_graph): Use new operand iterator.
5490         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
5491         rewrite_mem_refs): Use new operand iterator.
5492         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
5493         check_loop_closed_ssa_use): Use new operand iterator.
5494         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
5495         * tree-ssanames.c (release_defs): Use new operand iterator.
5496         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
5497
5498 2004-08-25  Adam Nemet  <anemet@lnxw.com>
5499
5500         * tlink.c (initial_cwd): New variable.
5501         (tlink_init): Initialize it.
5502         (recompile_files): Use tlink_execute() instead of system().  Don't
5503         duplicate verbose output of collect_execute.  Restore initial_cwd.
5504         Update comment before the function.
5505
5506 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
5507
5508         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
5509         accept) a cast from one Objective-C pointer type to another.
5510
5511 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
5512
5513         * doc/install.texi: Document that libstdc++-v3 requires
5514         now automake 1.9.1.
5515
5516 2004-08-25  Caroline Tice  <ctice@apple.com>
5517
5518         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
5519         to comments at start of function.
5520         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
5521         comment.
5522         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5523         merge_blocks_move_predecessor_nojumps,
5524         merge_blocks_move_successor_nojumps, merge_blocks_move,
5525         try_crossjump_to_edge, try_crossjump_bb): Likewise.
5526         * cfglayout.c (fixup_reorder_chain): Likewise.
5527         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
5528         cfg_layout_can_merge_blocks_p):  Likewise.
5529         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
5530         * passes.c (rest_of_compilation): Update comments for calling
5531         optimization that partitions hot/cold basic blocks.
5532         * doc/invoke.texi:  Update documentation of
5533         freorder-blocks-and-partition flag.
5534
5535 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
5536
5537         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
5538         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
5539
5540 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
5541
5542         * config/mips/mips.md (any_shift): New code macro.
5543         (optab, insn): New code attributes.
5544         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
5545         Use the standard rather than internal patterns for the MIPS16
5546         double-shift optimization.
5547         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
5548         Redefine using :GPR and any_shift.
5549         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
5550         to cover all three shifts.
5551         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
5552         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
5553         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
5554
5555 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
5556
5557         * gimplify.c (lookup_tmp_var): Separate temporaries when not
5558         optimizing.
5559
5560 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5561
5562         PR libstdc++/17005 (fix for HP-UX 11.11)
5563         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
5564         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
5565         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
5566         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
5567         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
5568         (LINK_SPEC): Handle march=1.0 option.
5569         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
5570         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
5571         (SUBTARGET_OPTIONS): New define.
5572         (LINK_SPEC): Handle march=1.0 option.
5573         (STARTFILE_SPEC): New define.
5574         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
5575         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
5576         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
5577         (SUBTARGET_OPTIONS): New define.
5578         (LINK_SPEC): Handle march=1.0 option.
5579         (STARTFILE_SPEC): New define.
5580         * config/pa/pa.c (override_options): Add code to process -munix= option.
5581         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
5582         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
5583         defines.
5584         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
5585         (SUBTARGET_OPTIONS): Provide default define.
5586         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
5587         STANDARD_STARTFILE_PREFIX_2): New defines.
5588         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
5589         (ENDFILE_SPEC): Use %O.
5590         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
5591         Mention issue caused by changing namespace and runtime to UNIX 95/98.
5592         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
5593         Document -munix=std option.
5594
5595 2004-08-25  Steven Bosscher  <stevenb@suse.de>
5596
5597         * cse.c (cse_around_loop, cse_check_loop_start,
5598         cse_set_around_loop): Remove.
5599         (cse_basic_block): Remove the around_loop argument.
5600         (cse_end_of_basic_block): Remove the after_loop argument.
5601         (cse_main): Likewise.
5602         * rtl.h (cse_main): Update prototype.
5603         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
5604         rest_of_handle_gcse): Update cse_main calls.
5605
5606 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
5607
5608         * tree.h  (build_int_cst): New, sign extended constant.
5609         (build_int_cstu): New, zero extended constant.
5610         (build_int_cst_wide): Renamed from build_int_cst.
5611         * tree.c (build_int_cst, build_int_cstu): New.
5612         (build_int_cst_wide): Renamed from build_int_cst.
5613         (make_vector_type, build_common_tree_nodes,
5614         build_common_tree_nodes_2): Adjust build_int_cst calls.
5615         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
5616         expand_builtin_strpbrk, expand_builtin_fputs,
5617         build_string_literal, expand_builtin_printf,
5618         expand_builtin_sprintf, fold_builtin_classify_type,
5619         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
5620         fold_builtin_toascii, fold_builtin_isdigit,
5621         simplify_builtin_strstr, simplify_builtin_strpbrk,
5622         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
5623         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
5624         DEF_ATTR_INT): Likewise.
5625         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
5626         Likewise.
5627         * c-lex.c (interpret_integer, lex_charconst): Likewise.
5628         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
5629         * c-pretty-print.c (pp_c_integer_constant): Likewise.
5630         * c-typeck.c (really_start_incremental_init, push_init_level,
5631         set_nonincremental_init_from_string): Likewise.
5632         * calls.c (load_register_parameters): Likewise.
5633         convert.c (convert_to_pointer): Likewise.
5634         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
5635         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
5636         build_gcov_info): Likewise.
5637         * except.c (init_eh, assign_filter_values): Likewise.
5638         * expmed.c (store_fixed_bit_field, extract_bit_field,
5639         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
5640         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
5641         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
5642         * expr.c (convert_move, emit_group_load, emit_group_store,
5643         expand_assignment, store_constructor, store_field,
5644         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
5645         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
5646         invert_truthvalue, optimize_bit_field_compare,
5647         decode_field_reference, all_ones_mask_p, constant_boolean_node,
5648         fold_div_compare, fold, fold_read_from_constant_string,
5649         fold_negate_const, fold_abs_const, fold_not_const, round_up,
5650         round_down): Likewise.
5651         * function.c (assign_parm_setup_block): Likewise.
5652         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
5653         Likewise.
5654         * stor-layout.c (layout_type, initialize_sizetypes,
5655         set_min_and_max_values_for_integral_type): Likewise.
5656         * tree-chrec.c (chrec_fold_multiply_poly_poly,
5657         reset_evolution_in_loop): Likewise.
5658         * tree-chrec.h (build_polynomial_chrec): Likewise.
5659         * tree-complex.c (build_replicated_const): Likewise.
5660         * tree-eh.c (honor_protect_cleanup_actions,
5661         lower_try_finally_onedest, lower_try_finally_copy,
5662         lower_try_finally_switch): Likewise.
5663         * tree-mudflap.c (mf_build_string, mx_register_decls,
5664         mudflap_register_call, mudflap_enqueue_constant): Likewise.
5665         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
5666         * tree-pretty-print.c (dump_generic_node): Likewise.
5667         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
5668         Likewise.
5669         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
5670         * tree-ssa-loop-niter.c (number_of_iterations_cond,
5671         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
5672         Likewise.
5673         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
5674         canonicalize_loop_induction_variables): Likewise.
5675         * tree-vectorizer.c (vect_create_index_for_array_ref,
5676         vect_transform_loop_bound, vect_compute_data_ref_alignment):
5677         Likewise.
5678
5679         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
5680         alpha_gimplify_va_arg_1): Likewise.
5681         * config/arm/arm.c (arm_get_cookie_size): Likewise.
5682         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
5683         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
5684         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5685         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
5686         mips_gimplify_va_arg_expr): Likewise.
5687         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5688         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
5689         add_compiler_branch_island): Likewise.
5690         * config/s390/s390.c (s390_va_start): Likewise.
5691         * config/sh/sh.c (sh_va_start): Likewise.
5692         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5693         Likewise.
5694         * config/xtensa/xtensa.c (xtensa_va_start,
5695         xtensa_gimplify_va_arg_expr): Likewise.
5696
5697         * objc/objc-act.c (build_objc_string_object,
5698         build_objc_symtab_template, init_def_list, init_objc_symtab,
5699         init_module_descriptor, generate_static_references,
5700         build_selector_translation_table, get_proto_encoding,
5701         build_typed_selector_reference, build_selector_reference,
5702         build_next_objc_exception_stuff,
5703         build_method_prototype_list_template, generate_descriptor_table,
5704         generate_protocols, build_protocol_initializer,
5705         build_ivar_list_template, build_method_list_template,
5706         build_ivar_list_initializer, generate_ivars_list,
5707         generate_dispatch_table, generate_protocol_list,
5708         build_category_initializer, build_shared_structure_initializer,
5709         generate_shared_structures, handle_impent,
5710         generate_objc_image_info): Likewise.
5711
5712 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
5713
5714         * cfglayout.c (duplicate_insn_chain): Remove references to
5715         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
5716         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
5717         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
5718         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
5719         and NOTE_INSN_LOOP_CONT.
5720         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
5721         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
5722         and NOTE_INSN_LOOP_CONT.
5723         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
5724         check_dbra_loop, loop_dump_aux): Remove references to removed notes
5725         and fields.
5726         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
5727         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
5728         references to removed notes and fields.
5729         (subtract_reg_term, ujump_to_loop_cont): Remove.
5730
5731 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
5732
5733         * doc/install.texi: Document that libcpp does not require
5734         Automake any longer.  Document that Automake 1.9.1 should
5735         work everywhere.
5736
5737 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
5738
5739         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
5740         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
5741         DWARF_DEBUGGING_INFO from choice-of-definition chain;
5742         restructure using C89 features (#elif, #error).
5743         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
5744         * config/sh/sh.h: Remove references to DWARF_DEBUG.
5745         * doc/invoke.texi: Remove references to DWARF version 1;
5746         clarify why -gdwarf-2<n> doesn't work.
5747
5748 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
5749
5750         * basic-block.h (BB_SET_PARTITION): Clear old value first.
5751         * cfg.c (clear_bb_flags): Don't clear partition setting.
5752         * ifcvt.c (find_if_case_1): Remove ??? comment.
5753
5754 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
5755
5756         PR target/17052
5757         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
5758         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
5759         current_function_stdarg in place of sysv_varargs_p.
5760         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
5761         sysv_varargs_p.
5762
5763 2004-08-24  Richard Henderson  <rth@redhat.com>
5764
5765         PR target/16298
5766         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
5767         random codes within CONST.
5768
5769 2004-08-24  James E Wilson  <wilson@specifixinc.com>
5770
5771         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
5772         -freorder-blocks-and-partition.
5773
5774 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5775
5776         PR middle-end/17044
5777         * tree-ssa-threadupdate.c (redirection_data): Make static.
5778         (thread_block): Use ggc_alloc_cleared to allocate struct
5779         redirection_data.  Don't free elements in redirection_data.
5780
5781 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5782
5783         * config/mips/predicates.md (small_data_pattern): Match prefetches.
5784
5785 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5786
5787         PR tree-optimization/17016
5788         * tree-ssa-loop-niter.c (number_of_iterations_cond,
5789         number_of_iterations_exit): Use POINTER_TYPE_P instead
5790         of testing for POINTER_TYPE.
5791
5792 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5793
5794         * tree-ssa-loop-ivcanon.c: New file.
5795         * tree-ssa-loop-manip.c (create_iv): New function.
5796         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
5797         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
5798         * cfgloop.c (mark_single_exit_loops): New function.
5799         (verify_loop_structure): Verify single-exit loops.
5800         * cfgloop.h (struct loop): Add single_exit field.
5801         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
5802         (mark_single_exit_loops): Declare.
5803         (tree_num_loop_insns): Declare.
5804         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
5805         (duplicate_loop_to_header_edge): Use it.
5806         * common.opt (fivcanon): New flag.
5807         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
5808         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
5809         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
5810         (bsi_insert_on_edge_immediate): New function.
5811         * tree-flow.h (bsi_insert_on_edge_immediate,
5812         canonicalize_induction_variables, tree_unroll_loops_completely,
5813         create_iv): Declare.
5814         * tree-optimize.c (init_tree_optimization_passes): Add
5815         pass_iv_canon and pass_complete_unroll.
5816         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
5817         * tree-scalar-evolution.c (get_loop_exit_condition,
5818         get_exit_conditions_rec, number_of_iterations_in_loop,
5819         scev_initialize): Use single_exit information.
5820         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
5821         missing assumptions.
5822         (loop_niter_by_eval):  Return number of iterations as unsigned
5823         int.
5824         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
5825         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
5826         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
5827         New passes.
5828         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
5829         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
5830         the defining statement is ready.
5831         * tree-vectorizer.c (vect_create_iv_simple): Removed.
5832         (vect_create_index_for_array_ref, vect_transform_loop_bound):
5833         Use create_iv.
5834         (vect_transform_loop_bound): Use single_exit information.
5835         (vect_analyze_loop_form): Cleanup bogus tests.
5836         (vectorize_loops): Do not call flow_loop_scan.
5837         * tree.h (may_negate_without_overflow_p): Declare.
5838         * fold-const.c (may_negate_without_overflow_p): Split out from ...
5839         (negate_expr_p): ... this function.
5840         (tree_expr_nonzero_p): Handle overflowed constants correctly.
5841         * doc/invoke.texi (-fivcanon): Document.
5842         * doc/passes.texi: Document canonical induction variable creation.
5843
5844 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5845
5846         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
5847         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
5848         using the mode of the operand to decide between them.
5849         * config/mips/mips.md (MOVECC): New mode macro.
5850         (ccreg): New mode attribute.
5851         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
5852         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
5853         (mov[sd]icc): Redefine using :GPR.
5854
5855 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5856
5857         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
5858         (mips_prefetch_cookie): New function.
5859         * config/mips/mips.c (print_operand_address): Fix handling of
5860         ADDRESS_CONST_INT.
5861         (mips_emit_prefetch): Delete.
5862         (mips_prefetch_cookie): New function.
5863         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
5864         mode of QImode for the address_operand.  Use mips_prefetch_cookie
5865         to calculate the first "pref" operand.
5866         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
5867         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
5868
5869 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
5870
5871         * arm.md: Include predicates.md.
5872         * predicates.md: New file.
5873         * arm.c (s_register_operand, arm_hard_register_operand)
5874         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
5875         (arm_immediate_operand, arm_neg_immediate_operand)
5876         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
5877         (arm_add_operand, arm_addimm_operand, arm_not_operand)
5878         (offsettable_memory_operand, alignable_memory_operand)
5879         (arm_reload_memory_operand, arm_float_rhs_operand)
5880         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
5881         (index_operand, shiftable_operator, logical_binary_operator)
5882         (shift_operator, equality_operator, arm_comparison_operator)
5883         (minmax_operator, cc_register, dominant_cc_register)
5884         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
5885         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
5886         (const_shift_operand, load_multiple_operation)
5887         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
5888         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
5889         (cirrus_register_operand, cirrus_fp_register)
5890         (cirrus_shift_const): Delete, replaced with equivalents in
5891         predicates.md.
5892         (shift_op): Handle ROTATE.
5893         * arm-protos.h: Delete declarations for above.
5894         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
5895         * t-arm (MD_INCLUDES): Add predicates.md.
5896         (s-preds): Depends on MD_INCLUDES.
5897
5898 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5899
5900         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
5901         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
5902         patterns.  Redefine using :GPR.  Give the match_operator a mode.
5903         Use '%2' rather than '%z2' for operand 2.
5904
5905 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5906
5907         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
5908         attribute.
5909
5910 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5911
5912         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
5913         of internal patterns.
5914         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
5915         Redefine using :P.
5916         (tablejump): Use expand_binop to calculate address.  Adjust names
5917         of internal patterns.
5918         (tablejump[sd]i): Renamed from tablejump_internal[12].
5919         Redefine using :P.
5920         (tablejump_mips16[12]): Delete.
5921
5922 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5923
5924         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
5925         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
5926         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
5927         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
5928         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
5929
5930 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
5931
5932         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
5933         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
5934         using :GPR.
5935         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
5936         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
5937         (*branch_equality[sd]i_inverted): Likewise
5938         branch_equality{,_di}_inverted.
5939         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
5940         Redefine using :GPR.
5941
5942 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
5943
5944         * rtl.def: Reorganize, placing all codes used only in machine
5945         descriptions at the end.
5946
5947         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
5948         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
5949         rtx_name, rtx_format arrays by direct reference to rtl.def,
5950         first undefining GENERATOR_FILE.  Define enum insn_note and
5951         note_insn_name array by direct reference to insn-notes.def.
5952         (adjust_field_rtx_def): Remove local definition of rtx_name.
5953         Use symbolic names for insn notes.
5954         * Makefile.in (gengtype.o): Update dependencies.
5955
5956 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
5957
5958         * basic-block.h (struct basic_block_def): Reorder fields to
5959         eliminate interior padding.  Remove 'partition' field.
5960         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
5961         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
5962         (BB_COPY_PARTITION): New macros.
5963         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
5964         Replace all references to the 'partition' field of a basic
5965         block with new macros.
5966
5967         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
5968         * final.c (final_scan_insn): Don't handle it.
5969         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
5970         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
5971         * sched-rgn.c (sched_is_disabled_for_current_region_p):
5972         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
5973
5974 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
5975
5976         * c-decl.c (c_init_decl_processing): Adjust
5977         build_common_tree_nodes call.
5978         * expmed.c (const_mult_add_overflow_p): Use
5979         build_distinct_type_copy.
5980         * stor-layout.c (early_type_list): Remove.
5981         (layout_type): Don't append to early_type_list.
5982         (initialize_sizetypes): Add signed_p argument.
5983         (set_sizetype): Overwrite the stub type nodes directly.
5984         * tree.c (copy_node_stat): Clear a type's value cache here ...
5985         (build_distinct_type): ... not here.
5986         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
5987         * tree.h (initialize_sizetypes): Add signed_p argument.
5988         (build_common_tree_nodes): Likewise.
5989
5990         * objc/objc-act.c (get_static_reference): Use
5991         build_variant_type_copy.
5992         (get_protocol_reference): Likewise.
5993         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
5994
5995 2004-08-24  Richard Henderson  <rth@redhat.com>
5996             Andrew Pinski  <apinski@apple.com>
5997
5998         * gimplify.c (gimplify_array_ref_to_plus): Delete.
5999         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
6000         for ARRAY_REF.
6001
6002         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
6003         ARRAY_REF also to get to the STRING_CST.
6004
6005 2004-08-24  Paul Brook  <paul@codesourcery.com>
6006
6007         * config/arm/arm.c (arm_override_options): Update error message.
6008         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
6009         TARGET_HARD_FLOAT_ABI.
6010         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
6011         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
6012
6013 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
6014
6015         PR target/17093
6016         * config/m32r.md (movsi_sda): Add SI mode specification to
6017         UNSPEC.
6018
6019 2004-08-24  Nick Clifton  <nickc@redhat.com>
6020
6021         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
6022         of seth_add3_operand.
6023
6024 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
6025
6026         * Makefile.in (PROTO_OBJS): Add errors.o.
6027         * protoize.c (fancy_abort): Remove.
6028         * mips-tfile.c (fancy_abort): Add parameters.
6029
6030 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
6031
6032         * doc/trouble.texi (C++ misunderstandings): Fix example code.
6033
6034 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
6035
6036         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
6037         (host-default.o): Add dependency on HOOKS_H.
6038         * config/x-linux: Likewise.
6039         * config/x-solaris: Likewise.
6040         * config/i386/x-mingw32: Likewise.
6041         * config/rs6000/x-darwin: Likewise.
6042
6043 2004-08-23  James E Wilson  <wilson@specifixinc.com>
6044
6045         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
6046         DEF_REG_NOTE.
6047
6048 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
6049
6050         PR c/14492
6051         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
6052
6053 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
6054
6055         * cfg.c (check_bb_profile): Fix typos.
6056         * function.c (assign_parm_is_stack_parm): Likewise.
6057         * tree-nested.c: Likewise.
6058
6059 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
6060
6061         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
6062         Remove TYPECODE.
6063         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
6064
6065 2004-08-23  Eric Christopher  <echristo@redhat.com>
6066
6067         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
6068         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
6069         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
6070         * target.h: Ditto.
6071         * hooks.h: Include machmode.h.
6072         (hook_bool_mode_false): Declare.
6073         * hooks.c (hook_bool_mode_false): Define.
6074         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
6075         * stor-layout.c (layout_type): Ditto.
6076         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
6077         Define to target macro.
6078         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
6079         * config/arm/arm.c: Ditto. Use.
6080         * config/arm/arm.h: Ditto.
6081         * config/arm/arm-protos.h: Ditto.
6082         * config/i386/i386.c: Ditto.
6083         * config/i386/i386.h: Ditto.
6084         * config/rs6000/rs6000.c: Ditto.
6085         * config/rs6000/rs6000.h: Ditto.
6086         * config/sh/sh.c: Ditto.
6087         * config/sh/sh.h: Ditto.
6088         * config/sh/sh-protos.h: Ditto.
6089         * config/sh/sh.md: Use.
6090         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
6091         to TARGET_VECTOR_MODE_SUPPORTED_P.
6092
6093 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
6094
6095         * Makefile.in (BUILD_ERRORS): Set to build-errors.
6096         (errors.o): New target for host.
6097         (build-errors.o): New target for build.
6098         (genobjs): Replace errors.o with build-errors.
6099         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
6100         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
6101         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
6102         (fix-header.o): Add errors.h
6103         * collect2.c (fancy_abort): Add parameters.
6104         * collect2.h (fancy_abort): Don't declare.
6105         * errors.h (fancy_abort): Don't declare.
6106         * errors.c: Include either bconfig.h or config.h.
6107         (fancy_abort): Trim filename.
6108         * fix-header.c (v_fatal, fatal): Remove.
6109         (progname): Remove definition.
6110         (main): Set progname here.
6111         * gcc.c (fancy_abort): Add parameters.
6112         * gcc.h (fancy_abort): Remove declaration.
6113         * gcov.c (fancy_abort): Remove.
6114         * rtl.h (fancy_abort): Don't declare.
6115         (abort): Don't define.
6116         * tree.h (fancy_abort): Don't declare.
6117         (abort): Don't define.
6118         * system.h (fancy_abort): Declare.
6119         (abort): Define to fancy_abort.
6120         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
6121
6122         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
6123         (usize_type, ubitsizetype): Remove.
6124         * stor-layout.c (set_sizetype): Don't initialize usizetype,
6125         ubitsizetype.
6126         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
6127
6128         * tree.h (build_distinct_type_copy): New.
6129         (build_type_copy): ... here.  Rename to ...
6130         (build_variant_type_copy): ... here.
6131         * tree.c (build_qualified_type): Rename build_type_copy call.
6132         (build_distinct_type_copy): New, broken out of ...
6133         (build_type_copy): ... here.  Rename to ...
6134         (build_variant_type_copy): ... here.  Use
6135         build_distinct_type_copy.
6136         (build_common_tree_nodes_2): Rename build_type_copy call.
6137         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
6138         call.
6139         (handle_packed_attribute, handle_unused_attribute,
6140         handle_transparanet_union_attribute, handle_aligned_attribute,
6141         handle_deprecated_attribute): Likewise.
6142         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
6143         Likewise.
6144         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
6145         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
6146         build_distinct_type_copy.
6147
6148 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6149
6150         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
6151         attribute.
6152
6153 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6154
6155         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
6156         loads and stores.
6157         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
6158         formerly unnamed patterns.  Redefine using :P for the address.  Remove
6159         explicit length attributes.
6160
6161 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6162
6163         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
6164         New functions.
6165         (single_reachable_address): Use them.
6166         (schedule_sm): Add dump.
6167         (is_call_clobbered_ref): New function.
6168         (determine_lsm_reg): Check whether the reference is call clobbered.
6169         Only work for gimple_reg_type values.
6170
6171 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6172
6173         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
6174         $31 store insns.  Redefine using :GPR.
6175
6176 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6177
6178         * config/mips/mips.md (P): New mode macro.
6179         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
6180         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
6181         Add mode attributes.
6182
6183 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6184
6185         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
6186         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
6187         later constants to cover the gap.
6188         (load, store): New mode attributes.
6189         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
6190         Use new unspec constants.
6191
6192 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6193
6194         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
6195         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
6196         to use register_operand rather than uns_arith_operand as the predicate
6197         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
6198         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
6199         Redefine using :GPR.  Make same predicate change here.  Extend the
6200         commutativity of operands 1 and 2 from the SImode version to the
6201         DImode one.
6202         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
6203         but with no predicate changes.
6204         (*nor[sd]i3): Redefine using :GPR.
6205
6206 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6207
6208         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
6209         noreturn functions.
6210
6211 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6212
6213         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
6214         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
6215         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
6216         rather than "%z2" (with a fake const0_rtx for operand 2).
6217         (ffs[sd]i2): Redefine using :GPR.
6218         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
6219
6220 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6221
6222         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
6223
6224 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6225
6226         * config/mips/mips.md (any_extend): New code macro.
6227         (u, su): New code attributes.
6228         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
6229         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
6230         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
6231         (*{s,u}mul_acc_di): Redefine using any_extend.
6232         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
6233         to reflect real insn names.
6234         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
6235         with an any_extend template.
6236         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
6237         Add '*' to name.
6238
6239 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6240
6241         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
6242         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
6243         (mul[sd]i3_r4000): Redefine using :GPR.
6244         (mulsi3_mult3): Don't check TARGET_MAD separately.
6245         (muldi3_mult3): Moved after mulsi_mult3.
6246
6247 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6248
6249         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
6250         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
6251         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
6252         (TARGET_GAS, TARGET_MIPS_AS): Delete.
6253         (TARGET_GPWORD): Define to true for n32 on IRIX.
6254         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
6255         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
6256         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
6257         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
6258         (MDEBUG_ASM_SPEC): Delete, folding into...
6259         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
6260         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
6261         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
6262         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
6263         to define asm_abi_default_spec.
6264         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
6265         (TARGET_ASM_SELECT_SECTION): Delete.
6266         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
6267         for non-mips16 code, removing previous workaround for SGI assemblers.
6268         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
6269         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
6270         (override_options): Remove !TARGET_GAS and !have_named_sections code.
6271         (print_operand): Fold TARGET_GAS conditionals into asm strings.
6272         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
6273         ASM_STABS_OP and ASM_STABN_OP.
6274         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
6275         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
6276         (mips_output_function_prologue): Remove !TARGET_GAS code.
6277         (mips_select_rtx_section): Remove !have_named_sections code.
6278         (mips_select_section): Delete.
6279         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
6280         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
6281         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
6282         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
6283         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
6284         * config/mips/windiss.h (ASM_SPEC): Likewise.
6285
6286 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6287
6288         * read-rtl.c (map_value, mapping, macro_group): New structures.
6289         (BELLWETHER_CODE): New macro.
6290         (modes, codes, bellwether_codes): New variables.
6291         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
6292         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
6293         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
6294         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
6295         (add_map_value, initialize_macros): New functions.
6296         (def_hash, def_hash_eq_p): Generalize to anything that points to,
6297         or starts with, a char * field.
6298         (find_macro, read_mapping, check_code_macro): New functions.
6299         (read_rtx_1): New, split out from read_rtx.  Handle the new
6300         define_{mode,code}_{macro,attr} constructs.  Use find_macro
6301         to parse the name of a code or mode.  Use BELLWETHER_CODE to
6302         extract the format and to choose a suitable code for rtx_alloc.
6303         Modify recursive invocations to use read_rtx_1.
6304         (read_rtx): Call initialize_macros.  Apply code and mode macros
6305         to the rtx returned by read_rtx_1.  Cache everything after the
6306         first macro expansion for subsequent read_rtx calls.
6307         * doc/md.texi: Document new .md constructs.
6308         * config/mips/mips.md (GPR): New mode macro.
6309         (d, si8_di5): New mode attributes.
6310         (any_cond): New code macro.
6311         (add[sd]i3): Redefine using :GPR.
6312         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
6313         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
6314         previously unnamed MIPS16 patterns.
6315         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
6316         lines.  Don't match (plus (const_int 0) ...).
6317         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
6318         Use a define_split to generate the addition.
6319         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
6320         (subsi3_internal): Delete.
6321         (*subsi3_extended): Renamed from subsi3_internal_2.
6322         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
6323         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
6324         using an any_cond template.
6325
6326 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6327
6328         * read-rtl.c (read_rtx): Tidy use of format_ptr.
6329
6330 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
6331
6332         * read-rtl.c (string_obstack): New file-scope variable.
6333         (read_string, read_quoted_string, read_braced_string)
6334         (read_escape): Remove obstack parameter and use string_obstack instead.
6335         (read_rtx): Remove function-local rtl_obstack and initialize
6336         string_obstack instead.  Update call to read_string.
6337
6338 2004-08-22  Andrew Pinski  <apinski@apple.com>
6339
6340         PR c/15262
6341         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
6342         expression is not constant.
6343         (c_finish_return): Do not go through INDIRECT_REF when looking
6344         for the inner expression of an ADDR_EXPR for warning about.
6345
6346 2004-08-22  Richard Henderson  <rth@redhat.com>
6347
6348         PR 17075
6349         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
6350         create new blocks and fall through.
6351         (expand_gimple_basic_block): Update to match.
6352
6353 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
6354
6355         * reload.c (find_reloads_address): Make return value tri-state.
6356         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
6357         (find_reloads): Assume that reloaded addresses match 'o' or
6358         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
6359         returned 1 (not -1).  Omit optional reloads for address operands
6360         only if find_reloads_address returned 1 (not -1).
6361
6362         * config/s390/s390.c (legitimize_reload_address): New function.
6363         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
6364         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
6365         legitimize_reload_address.
6366
6367 2004-08-22  Richard Hendersion  <rth@redhat.com>
6368
6369         * tree.h (SAVE_EXPR_RESOLVED_P): New.
6370         * gimplify.c (gimplify_save_expr): Use it.
6371         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
6372         on the temporary variable.
6373
6374 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
6375
6376         * fold-const.c (rtl_expr_nonnegative_p): Delete.
6377         * tree.h (rtl_expr_nonnegative_p): Remove.
6378
6379 2004-08-22  Steven Bosscher  <stevenb@suse.de>
6380
6381         * config/i386/ppro.md (ppro_complex_insn): Add missing check
6382         for cpu==pentiumpro.
6383
6384         * combine.c (struct reg_stat): Fix comment typo.
6385
6386 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6387
6388         * c-tree.h (c_sizeof_nowarn): Remove.
6389
6390 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6391
6392         * c-decl.c (set_array_declarator_type): Rename to
6393         set_array_declarator_inner.
6394         (build_c_parm, build_attrs_declarator, build_function_declarator):
6395         New functions.
6396         (make_pointer_declarator): Call build_attrs_declarator.
6397         * c-tree.h (set_array_declarator_type): Rename to
6398         set_array_declarator_inner.
6399         (build_c_parm, build_attrs_declarator, build_function_declarator):
6400         New prototypes.
6401         * c-parse.in (after_type_declarator,
6402         parm_declarator_starttypename, parm_declarator_nostarttypename,
6403         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
6404         firstparm): Use these functions
6405
6406 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6407
6408         * c-decl.c (build_array_declarator, set_array_declarator_type,
6409         start_decl, grokdeclarator, grokparms): Change boolean parameters
6410         to type bool.
6411         * c-tree.h (build_array_declarator, set_array_declarator_type,
6412         start_decl): Update prototypes.
6413         * c-decl.c, c-parse.in: All callers changed.
6414
6415 2004-08-21  Mike Stump  <mrs@apple.com>
6416
6417         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
6418         (darwin_fix_and_continue): Likewise.
6419         (darwin_fix_and_continue_switch): Likewise.
6420         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
6421         (darwin_fix_and_continue): Likewise.
6422         (darwin_fix_and_continue_switch): Likewise.
6423
6424 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
6425
6426         PR  c++/16030
6427         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
6428         Remove, merging into ...
6429         (gen_stdcall_or_fastcall_suffix): New function, returning tree
6430         rather than const char*, and accepting additional parameter.
6431         Don't add suffix to '*'-prefixed symbols or variadic functions.
6432         (i386_pe_encode_section_info): Adjust for call to new function.
6433         Call change_decl_assembler_name.
6434
6435 2004-08-20  Mike Stump  <mrs@apple.com>
6436
6437         * config/darwin.c (machopic_indirect_data_reference): Mark
6438         stubs as defined.
6439         * config/386/386.c (darwin_local_data_pic): Add.
6440         (legitimate_constant_p): Reorder so that PLUS handling runs
6441         before darwin_local_data_pic to match the ordering in
6442         legitimate_pic_address_disp_p and so that MINUS runs after
6443         darwin_local_data_pic as otherwise the darwin_local_data_pic
6444         logic can be skipped, which would be very bad.
6445         (legitimate_pic_address_disp_p): Move from from here to
6446         darwin_local_data_pic so it can be reused.
6447
6448 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
6449
6450         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
6451         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
6452         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
6453         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
6454         (RS6000_ABI_NAME): Define as "linux".
6455         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
6456         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
6457         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
6458         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
6459         * config/rs6000/rs6000.c (dot_symbols): New global var.
6460         (rs6000_output_function_entry): New function, modified for
6461         !DOT_SYMBOLS..
6462         (print_operand <case 'z'>): ..extracted from here.
6463         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
6464         (rs6000_output_function_epilogue): Likewise.
6465         (rs6000_elf_declare_function_name): Likewise.
6466         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
6467         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
6468         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
6469         * configure: Regenerate.
6470         * config.in: Regenerate.
6471
6472 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
6473
6474         * reload.c (find_reloads_address): Fix thinko in previous change.
6475
6476         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
6477         a CONST_INT.
6478
6479 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
6480
6481         PR rtl-optimization/17099
6482         * combine.c (force_to_mode): Check if inner_mask has any bits set
6483         outside of GET_MODE (x) instead of op_mode.
6484
6485 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
6486
6487         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
6488         fragment.
6489         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
6490         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
6491         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
6492         architecture.
6493         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
6494         configurations.
6495         * config/arm/t-symbian: New file.
6496
6497 2004-08-20  Andrew Pinski  <apinski@apple.com>
6498
6499         * regrename.c (kill_value_regno): ANSIfy.
6500
6501 2004-08-20  Dale Johannesen  <dalej@apple.com>
6502
6503         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
6504
6505 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
6506
6507         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
6508         (kill_value_regno): New function, derived from kill_value.
6509         (kill_value): Update.
6510         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
6511
6512 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
6513
6514         Fix PR tree-optimization/17111
6515         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
6516         of non-value_handles.
6517         (bitmap_set_contains): All constants are in every set.
6518
6519 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
6520
6521         * fold-const.c (round_up, round_down): Use build_int_cst.
6522         Optimize common case.
6523
6524 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
6525             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6526
6527         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
6528         one_only_data_section): Rename to som_readonly_data_section,
6529         som_one_only_readonly_data_section and som_one_only_data_section.
6530         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
6531         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
6532         conditional defines.
6533         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
6534         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
6535         string values.
6536         (pa_select_section): Use renamed section functions.
6537         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
6538         SOM_READONLY_DATA_SECTION_FUNCTION,
6539         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
6540         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
6541         Define here ...
6542         * config/pa/som.h: ... not here.
6543         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
6544         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
6545         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
6546         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
6547         (READONLY_DATA_SECTION): Use som_readonly_data_section.
6548
6549 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
6550
6551         * fold-const.c (int_const_binop): Don't generate non-overflowing
6552         size-types specially.
6553         (fold_convert_const): Likewise.
6554
6555         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
6556         clear cache on copied sizetype.
6557
6558 2004-08-20  Ben Elliston  <bje@au.ibm.com>
6559
6560         * configure.ac: Don't escape apostrophe in --enable-coverage help.
6561         * configure: Regenerate.
6562
6563 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
6564
6565         PR 5620
6566         * gcc.c (struct stat input_stat): Don't define if
6567         HOST_LACKS_INODE_NUMBERS
6568         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
6569         than stat to determine if temp file is same as input file.
6570         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
6571         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
6572
6573 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
6574
6575         * configure.ac (mips*-*-*): Print an error if not using GAS.
6576         * configure: Regenerated.
6577         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
6578         comments about buggy MIPSpro assemblers.
6579         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
6580         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
6581         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
6582         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
6583         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
6584         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
6585         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
6586         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
6587         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
6588         of more general IRIX 6 definitions.
6589         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
6590         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
6591         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
6592         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
6593         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
6594         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
6595         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
6596         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
6597         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
6598         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
6599         (LINK_SPEC): Move most of definition to iris.h.
6600         (SUBTARGET_LINK_SPEC): New macro.
6601         (IRIX_STARTFILE_SPEC): Fold into...
6602         (STARTFILE_SPEC): ...here.
6603         (IRIX_ENDFILE_SPEC): Fold into...
6604         (ENDFILE_SPEC): ...here.
6605         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
6606         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
6607         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
6608         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
6609         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
6610         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
6611         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
6612         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
6613         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
6614         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
6615         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
6616         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
6617         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
6618         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
6619         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
6620         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
6621         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
6622         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
6623         (TARGET_IRIX6): Define to 1.
6624         (DRIVER_SELF_SPECS): Define.
6625         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
6626         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
6627         (SUBTARGET_LINK_SPEC): New macro.
6628         (IRIX_STARTFILE_SPEC): Fold into...
6629         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
6630         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
6631         (LIB_SPEC, LIBGCC_SPEC): Use them.
6632         (LIB_SPEC): Remove !mabi=* case.
6633         (IRIX_ENDFILE_SPEC): Fold into...
6634         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
6635         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
6636         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
6637         (TARGET_IRIX6): New macro.
6638         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
6639         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
6640         (LABEL_AFTER_LOC): Delete.
6641         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
6642         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
6643         (mips_build_builtin_va_list): Check TARGET_IRIX6.
6644         (override_options): Remove TARGET_SGI_O32_AS-related code.
6645         (irix_output_external_libcall): Make static.
6646         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
6647         LABEL_AFTER_LOC.
6648         (mips_file_start): Tidy guard for ABI sections.  Remove use of
6649         ABICALLS_ASM_OP; use .abicalls instead.
6650         (mips_output_aligned_decl_common, mips_declare_object_name)
6651         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
6652         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
6653         .globl foo .text directives.
6654         (irix_asm_named_section_1, irix_asm_named_section)
6655         (irix_section_align_entry, irix_section_align_htab)
6656         (irix_orig_asm_out_file, irix_section_align_entry_eq)
6657         (irix_section_align_entry_hash, irix_asm_output_align)
6658         (irix_file_start, irix_section_align_1, copy_file_data)
6659         (irix_file_end, irix_section_type_flags): Delete.
6660         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
6661         Use standard section syntax.  Remove protective "jr $31".
6662         (__gcc_fini): Likewise .gcc_fini.
6663         * config/mips/irix-crtn.asm: Adjust sections accordingly.
6664         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
6665         iris5gas.h.
6666         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
6667         from t-irix-gld.
6668         (EXTRA_MULTILIB_PARTS): Define.
6669         * config/mips/t-iris6: Remove bogus comment.
6670         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
6671         * config/mips/iris5gas.h, config/mips/iris5gld.h,
6672         config/mips/iris6gas.h, config/mips/iris6gld.h,
6673         config/mips/t-iris5-as, config/mips/t-iris5-gas
6674         config/mips/t-irix-gld: Delete.
6675         * config/mips/iris.h: New file.
6676         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
6677
6678 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
6679
6680         * postreload.c (reload_cse_move2add): Allow any condjump, but check
6681         that the implicit set isn't clobbered in the jump insn.
6682
6683 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
6684
6685         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
6686         * optabs.c (init_optabs): Don't check it.
6687         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
6688         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
6689
6690 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6691
6692         * config/s390/s390.md (s390_warn_framesize_string)
6693         (s390_warn_dynamic_string, s390_stack_size_string)
6694         (s390_stack_guard_string): New global string variables.
6695         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
6696         (s390_stack_guard): New global variables.
6697         (override_options): Added checks for the new options.
6698         (s390_emit_prologue): Emit stack check and trap code and perform
6699         compile time stack size checking.
6700
6701         * config/s390/s390.h (TARGET_OPTIONS): Added new options
6702         "warn-framesize", "warn-dynamicstack", "stack-size" and
6703         "stack-guard".
6704
6705         * doc/invoke.texi: Added documentation for the new options.
6706
6707 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
6708
6709         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
6710         to eliminate warning.
6711         (linear_search_fdes): Declare p as unsigned.
6712         (binary_search_mixed_encoding_fdes): Likewise.
6713         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
6714         to eliminate warning.
6715         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
6716         type cast.
6717
6718 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
6719
6720         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
6721         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
6722         instead of one.  Check for strictly legitimate address.
6723         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
6724         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
6725
6726 2004-08-19  Eric Christopher  <echristo@redhat.com>
6727
6728         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
6729         * langhooks.h (unsave_expr_now): Ditto.
6730         * tree.h (unsave_expr_1): Remove prototype.
6731         (lhd_unsave_expr_now): Rename to unsave_expr_now.
6732         * tree-inline.c (unsave_expr_1): Move here
6733         from tree.c. Make static.
6734         (unsave_expr_now): Rename from lhd_unsave_expr_now.
6735         * tree-sra.c: Fix up for rename.
6736         * tree-ssa-copy.c: Ditto.
6737         * tree-eh.c: Ditto.
6738         * tree.c (unsave_expr_1): Move to tree-inline.c.
6739
6740 2004-08-19  Caroline Tice  <ctice@apple.com>
6741
6742         * config/i386/cygming.h (switch_to_section):  Fix typo (change
6743         in_unlikely_text_section to in_unlikely_executed_text).
6744
6745 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
6746
6747         * vec.h (VEC_lower_bound): New macro.
6748
6749 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
6750
6751         PR target/16446
6752         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
6753         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
6754         treat each ABI separately.  Deal with n32/n64 complex float arguments.
6755         (function_arg): Add associated complex handling here.
6756
6757 2004-08-19  Richard Henderson  <rth@redhat.com>
6758
6759         * config/arm/arm.c (arm_gen_load_multiple): Use
6760         adjust_automodify_address.  Take base memory and offset instead
6761         of unchanging/struct/scalar bits.
6762         (arm_gen_store_multiple): Likewise.
6763         (arm_gen_movmemqi): Use adjust_automodify_address.
6764         * config/arm/arm-protos.h: Update decls.
6765         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
6766         (store_multiple): Similarly.
6767
6768 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
6769
6770         * regclass.c (globalize_reg): Update call_really_used_regs.
6771
6772 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
6773
6774         * doc/invoke.texi (integer-share-limit): Document.
6775
6776         * tree.h (TYPE_CACHED_VALUES_P): New.
6777         (TYPE_CACHED_VALUES): New.
6778         (TYPE_ORIG_SIZE_TYPE): Adjust.
6779         * tree.def (INTEGER_CST): Update documentation.
6780         * tree.c: Inlcude params.h.
6781         (build_int_cst): Cache small values.
6782         (build_type_copy): Do not copy the value cache.
6783         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
6784         unneeded zeroing.
6785         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
6786         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
6787         cache.
6788         * fold-const.c (force_fit_type): Copy value when setting
6789         overflows.
6790         (int_const_binop): Likewise.
6791         * stor-layout.c: Include params.h
6792         (set_sizetype): Create values cache.
6793         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
6794         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
6795         * params.h (INTEGER_SHARE_LIMIT): New.
6796         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
6797
6798 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
6799
6800         * gimplify.c (gimplify_minimax_expr): Remove.
6801         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
6802
6803 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
6804
6805         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
6806         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
6807
6808 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
6809
6810         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
6811
6812 2004-08-18  Andrew Pinski  <apinski@apple.com>
6813
6814         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
6815
6816 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
6817
6818         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
6819         (__aeabi_ul2f): Likewise.
6820
6821 2004-08-18  Richard Henderson  <rth@redhat.com>
6822
6823         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
6824         move to rtl completely.
6825         (struct meminsnbuf, xtensa_emit_block_move): Remove.
6826         (xtensa_find_mode_for_size): Remove.
6827         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
6828         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
6829
6830 2004-08-18  Richard Henderson  <rth@redhat.com>
6831
6832         * config/mcore/mcore.c (mode_from_align): Remove DImode.
6833         (block_move_sequence): Rewrite to use adjust_address.
6834         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
6835         Return boolean indicating success/failure.
6836         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
6837         * config/mcore/mcore.md (movmemsi): Update to match.
6838
6839 2004-08-18  Mike Stump  <mrs@apple.com>
6840
6841         * doc/invoke.texi (-mfix-and-continue): Add support for
6842         fast turn around debugging.
6843         (-ffix-and-continue): Likewise.
6844         (-mindirect-data): Likewise.
6845         (-findirect-data): Likewise.
6846         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
6847         (indirect_data): Likewise.
6848         (machopic_data_defined_p): Likewise.
6849         (machopic_output_indirection): Likewise.
6850         (darwin_encode_section_info): Likewise.
6851         (darwin_fix_and_continue): Likewise.
6852         (darwin_fix_and_continue_switch): Likewise.
6853         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
6854         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6855         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
6856         (SUBTARGET_OPTIONS): Likewise.
6857         (darwin_fix_and_continue): Likewise.
6858         (darwin_fix_and_continue_switch): Likewise.
6859         (TARGET_FIX_AND_CONTINUE): Likewise.
6860         * config/rs6000.c (rs6000_emit_prologue): Likewise.
6861
6862 2004-08-19  Steven Bosscher  <stevenb@suse.de>
6863
6864         * basic-block.h (struct edge_def): Remove crossing_edge.
6865         (EDGE_CROSSING): New define.
6866         (EDGE_ALL_FLAGS): Update.
6867         * bb-reorder.c (find_traces_1_round, better_edge_p,
6868         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
6869         find_jump_block, fix_crossing_conditional_branches,
6870         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
6871         Replace all occurences of crossing_edge with an edge flag check
6872         or set/reset.
6873         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
6874         try_crossjump_bb): Likewise.
6875         * cfglayout.c (fixup_reorder_chain): Likewise.
6876         * cfgrtl.c (force_nonfallthru_and_redirect,
6877         commit_one_edge_insertion): Likewise.
6878
6879         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
6880         * tree-flow.h (compute_dominance_frontiers): Move prototype...
6881         * basic-block.h:  ...here.
6882         * tree-cfg.c (compute_dominance_frontiers_1,
6883         compute_dominance_frontiers): Move from here...
6884         * cfganal.c: ...to here.  Include timevar.h.
6885
6886 2004-08-18  James E Wilson  <wilson@specifixinc.com>
6887
6888         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
6889         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
6890
6891         * config/mips/mips.md (type): Add frdiv.
6892         (divsf3+1, divsf3+2): Change type to frdiv.
6893         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
6894         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
6895
6896         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
6897         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
6898         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
6899         * config/mips/5000.md (r5k_fdiv_single): Likewise.
6900         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
6901         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
6902         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
6903         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
6904         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
6905         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
6906         Likewise.
6907         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
6908
6909 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
6910
6911         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
6912         get regression tester working again.
6913
6914 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
6915
6916         * insn-notes.def, reg-notes.def: New files.
6917         * rtl.h: Use them to define enum insn_note and enum reg_note.
6918         * rtl.c: Use them to define note_insn_name and reg_note_name.
6919         * Makefile.in (RTL_BASE_H): Update.
6920
6921         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
6922         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
6923
6924 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
6925
6926         * arm.c (arm_size_rtx_costs): New function.
6927         (arm_override_options): Use it if optimizing for space.
6928
6929 2004-08-18  Richard Henderson  <rth@redhat.com>
6930
6931         * emit-rtl.c (gen_const_mem): New.
6932         * rtl.h (gen_const_mem): Declare.
6933         * expr.c (do_tablejump): Use it.
6934         * varasm.c (force_const_mem): Likewise.
6935         * config/darwin.c (machopic_indirect_data_reference): Likewise.
6936         (machopic_legitimize_pic_address): Likewise.
6937         * config/arm/arm.c (legitimize_pic_address): Likewise.
6938         * config/i386/i386.c (legitimize_pic_address): Likewise.
6939         (legitimize_tls_address): Likewise.
6940         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
6941         * config/ia64/ia64.md (load_fptr): Likewise.
6942         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
6943         * config/pa/pa.c (legitimize_pic_address): Likewise.
6944         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
6945         (rs6000_emit_move): Likewise.
6946         * config/s390/s390.c (legitimize_pic_address): Likewise.
6947         (legitimize_tls_address): Likewise.
6948         * config/s390/s390.md (casesi): Likewise.
6949         * config/sh/sh.c (sh_reorg): Likewise.
6950         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
6951         * config/v850/v850.md (casesi): Likewise.
6952
6953         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
6954         * config/sh/sh.c (prepare_move_operands): Remove incorrect
6955         use of MEM_READONLY_P.
6956
6957 2004-08-18  Steven Bosscher  <stevenb@suse.de>
6958
6959         * Makefile.in (OBJS-common): Add postreload-gcse.c.
6960         Add new postreload-gcse.o.
6961         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
6962         (lookup_as_function, insert, rehash_using_reg, use_related_value,
6963         equiv_constant): Use SAFE_HASH instead of safe_hash.
6964         (exp_equiv_p): Export.  Add for_gcse argument when comparing
6965         for GCSE.
6966         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
6967         find_comparison_args, fold_rtx, cse_insn): Update callers.
6968         (hash_rtx): New function derived from old canon_hash and bits
6969         from gcse.c hash_expr_1.
6970         (canon_hash_string): Rename to hash_rtx_string.
6971         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
6972         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
6973         (cselib_lookup): Update this caller.
6974         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
6975         Make static.
6976         (hash_expr): Call hash_rtx.
6977         (ldst_entry): Likewise.
6978         (expr_equiv_p): Call exp_equiv_p.
6979         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
6980         reg_used_on_edge, reg_set_between_after_reload_p,
6981         reg_used_between_after_reload_p, get_avail_load_store_reg,
6982         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
6983         get_bb_avail_insn, hash_scan_set_after_reload,
6984         compute_hash_table_after_reload,
6985         eliminate_partially_redundant_loads, gcse_after_reload,
6986         get_bb_avail_insn, gcse_after_reload_main): Remove.
6987         * postreload-gcse.c: New file, reincarnating most of the above.
6988         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
6989         (gcse_after_reload_main): Update prototype.
6990         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
6991         * passes.c (rest_of_handle_gcse2): Use it.
6992
6993 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
6994
6995         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
6996         (pass_loop_done): Likewise.
6997
6998 2004-08-18  Andrew Pinski  <apinski@apple.com>
6999
7000         * config/rs6000/darwin.md: Delete the altivec patterns which are
7001         handled differently now.
7002         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
7003         (macho_correct_pic_di): Likewise.
7004         (call_indirect_nonlocal_darwin64): Likewise.
7005         Delete the save world/saveFP/saveVec patterns.
7006
7007         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
7008         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
7009         * config/rs6000/rs6000.md: Include darwin.md.
7010         (builtin_setjmp_receiver): Add DImode case.
7011         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
7012         Darwin bits.
7013
7014 2004-08-18  Matt Austern  <austern@apple.com>
7015
7016         Dead code stripping
7017         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
7018         * darwin.c (darwin_file_end): Mark file as potentially strippable.
7019
7020 2004-08-18  Richard Henderson  <rth@redhat.com>
7021
7022         * alias.c (readonly_fields_p): Remove.
7023         (objects_must_conflict_p): Don't call it.
7024         * tree.h (readonly_fields_p): Remove.
7025         * langhooks.h (struct lang_hooks): Remove honor_readonly.
7026         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
7027
7028 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
7029
7030         * tree-dfa.c (add_referenced_var): Only global variables are
7031         call-clobbered.
7032         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
7033         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
7034         all pointers dereferenced if the statement dereferences them.
7035         (create_name_tags): Do not create memory tags for pointers
7036         that have PT_ANYTHING set.
7037         Also check if PT_VARS is not empty before creating a name tag.
7038         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
7039         variables that share the same alias set with a pointer that
7040         may point anywhere.
7041         (add_may_alias): Add FIXME comment to remove clobbering
7042         aliased variables and tags.
7043         (replace_may_alias): Likewise.
7044         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
7045         (merge_pointed_to_info): If the original variable has not
7046         points-to information, call set_pt_anything.
7047         (add_pointed_to_var): Do not prevent adding a pointed-to
7048         variable if the pointers is PT_ANYTHING.
7049         If the variable is a global, set PT_GLOBAL_MEM.
7050         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
7051         pointer type only come in PTR+OFFSET flavours.
7052         Always call merge_pointed_to_info on PHI arguments that are
7053         SSA_NAMEs.
7054         (get_nmt_for): Mark call-clobbered tags whose pointer points
7055         to global memory.
7056         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
7057         values.
7058         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
7059         FLAGS.
7060         (add_stmt_operand): Abort if the caller tried to add a killing
7061         definition for a memory tag.
7062         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
7063         unnecessary checks.
7064
7065 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
7066
7067         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
7068         from call_used_regs.  Update call_really_used_regs.
7069         (CALL_REALLY_USED_REGISTERS): Define.
7070         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
7071         Replace call_used_regs with call_really_used_regs.
7072         (calc_live_regs, sh_media_register_for_return): Likewise.
7073         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
7074         * sh.md (return_media): Likewise.
7075
7076 2004-08-18  Andrew Pinski  <apinski@apple.com>
7077
7078         * config/darwin.c (machopic_legitimize_pic_address): Only set
7079         MEM_READONLY_P in the non TARGET_TOC case.
7080
7081 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
7082
7083         * rtl.def (NIL): Delete.
7084         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
7085         Tighten the syntax a little.
7086
7087         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
7088         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
7089         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
7090         * config/i386/predicates.md, config/m32r/m32r.h
7091         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
7092         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
7093         * config/sparc/sparc.h, doc/tm.texi:
7094         Replace all occurrences of NIL with UNKNOWN.
7095
7096 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
7097
7098         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
7099         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
7100         sequence inline.  Move drop_through_label code into this
7101         block, being the only place it is used.  Adjust comments.
7102
7103 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
7104
7105         * config/rs6000/altivec.md: Add new patterns for calls to
7106         save_world/rest_world functions.
7107
7108         * config/rs6000/rs6000-protos.h: (save_world_operation,
7109         restore_world_operation) new declarations.
7110
7111         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
7112         field added.
7113         (rs6000_stack_info): Set world_save_p field.
7114         (save_world_operation): New function.
7115         (restore_world_operation): New function.
7116         (compute_save_world_info): New function.
7117         (rs6000_stack_info): Call compute_save_world_info.
7118         (rs6000_emit_prologue): Check for world_save_p and generate
7119         pattern to call save_world for saving all non-volatile and
7120         special registers.
7121         (rs6000_emit_epilogue): Check for world_save_p and generate
7122         pattern to call rest_world to restore saved registers.
7123
7124         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
7125         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
7126         (rs6000_reg_names): New entries added for save_world_operation and
7127         restore_world_operation.
7128
7129 2004-08-18  Caroline Tice  <ctice@apple.com>
7130
7131         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
7132         "-freorder-blocks-and-partition" to the flags used in second
7133         stage of profiledbootstrap.
7134         * bb-reorder.c (push_to_next_round_p): Add new variable,
7135         next_round_is_last; set and use variable to make sure, when
7136         partitioning, that the last trace construction round consists
7137         of all (and only) cold basic blocks.
7138         (rotate_loop): Don't copy blocks that end in a section
7139         crossing jump.
7140         (copy_bb): Correctly initialize "partition" of duplicated bb.
7141         (add_unlikely_executed_notes): Add a comment.
7142         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
7143         to make sure, if function contains hot blocks, that the
7144         successors of ENTRY_BLOCK_PTR are hot; also, only look for
7145         crossing edges if the architecture supports named sections.
7146         (mark_bb_for_unlikely_executed_section): Modify to always
7147         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
7148         the basic block note insn.
7149         (fix_crossing_unconditional_branches): Remove extra space.
7150         (fix_edges_for_rarely_executed_code): Modify to only do
7151         partitioning work if the architecture supports named sections.
7152         (reorder_basic_blocks): Modify to only add
7153         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
7154         supports named sections.
7155         * c-common.c (handle_section_attribute): Initialize new global
7156         variable, user_defined_section_attribute, to true if user has
7157         specified one.
7158         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
7159         forward edges that cross section boundaries.
7160         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
7161         partitioning information if the architecture supports named
7162         sections.
7163         * cfgrtl.c (target.h): Add statement to include this.
7164         (rtl_split_block): Make sure newly created bb gets correct
7165         partition.
7166         (try_redirect_by_replacing_jump): Make sure redirection isn't
7167         attempting to cross section boundaries.
7168         (force_nonfallthru_and_redirect): Only do partition fix up if
7169         architecture supports named sections.
7170         (rtl_split_edge): Make sure newly created bb ends up in
7171         correct partition.
7172         (commit_one_edge_insertion): Remove code that incorrectly
7173         updated basic block partition; Make sure partition fix up only
7174         happens if architecture supports named sections and it's not
7175         already done.
7176         (rtl_verify_flow_info_1): Fix if-condition on test/error
7177         condition that fallthru edges are not allowed to cross section
7178         boundaries.
7179         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
7180         * final.c (final_scan_insn): Remove redundant test from if-statement;
7181         change calls to text_section into calls to function_section; add code
7182         to only to partitioning fix up if architecture supports named
7183         sections.
7184         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
7185         partition.
7186         (if_convert): Add targetm.have_named_sections to test.
7187         * output.h (unlikely_section_label): Extern declaration for new global
7188         variable.
7189         (unlikely_text_section_name): Likewise.
7190         * opts.c (decode_options): If both partitioning and DWARF debugging
7191         are turned on, issue a warning that this doesn't work, and change
7192         partitiong to basic block reordering (without hot/cold partitions).
7193         * passes.c (rest_of_handle_final): Re-set new global variable,
7194         user_defined_section_attribute, to false.
7195         (rest_of_compilation): Change options for calling partitioning
7196         function: Don't call if the user defined the section attribute, and
7197         don't call if DECL_ONE_ONLY is true for the current function.
7198         * predict.c (choose_function_section): Return immediately if we
7199         are doing hot/cold partitioning (i.e. let the basic block partitioning
7200         determine where the function belongs).
7201         * reg-stack.c (emit_swap_insn): Add condition to step over
7202         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7203         * toplev.c (user_defined_section_attribute): New global variable.
7204         * toplev.h (user_defined_section_attribute): Extern declaration
7205         for new global variable.
7206         * varasm.c (unlikely_section_label): New global variable.
7207         (unlikely_text_section_name): New global variable.
7208         (unlikely_text_section): Add code to initialize
7209         unlikely_text_section_name if necessary; modify to use
7210         unlikely_text_section_name and unlikely_section_label; also to use
7211         named_section properly.
7212         (in_unlikely_text_section):  Modify to work correctly with
7213         named_section and to use unlikely_text_section_name.
7214         (named_section):  Add code to work properly with cold section.
7215         (function_section): Clean up if-statement.
7216         * config/darwin.c (darwin_asm_named_section): Return to original
7217         code, removing use of SECTION_FORMAT_STRING.
7218         * config/arm/pe.h (switch_to_section):  Add case for
7219         in_unlikely_executed_text to switch statement.
7220         * config/i386/cygming.h (switch_to_section): Likewise.
7221         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
7222         (SECTION_FORMAT_STRING): Likewise.
7223         * config/mcore/mcore.h (switch_to_section): Likewise.
7224         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
7225         (SECTION_FORMAT_STRING): Remove.
7226
7227 2004-08-18  Roger Sayle  <roger@eyesopen.com>
7228
7229         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
7230         -ffixed-reg safe, by preserving the meanings of zero and one.
7231         (CALL_USED_REGISTERS): Likewise.
7232         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
7233
7234 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
7235
7236         * config/sh/sh.c (split_branches): Check the result of
7237         next_active_insn.
7238         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
7239         Call rtl_register_cfg_hooks.
7240
7241 2004-08-18  Richard Henderson  <rth@redhat.com>
7242
7243         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
7244         * alias.c (true_dependence): Update to match new semantics.
7245         (canon_true_dependence, write_dependence_p): Likewise.
7246         (anti_dependence, output_dependence): Update write_dependence_p args.
7247         (unchanging_anti_dependence): Remove.
7248         * calls.c (purge_mem_unchanging_flag): Remove.
7249         (fixup_tail_calls): Don't call it.
7250         (expand_call): Don't add unchanging memory to function usage.
7251         * expr.c (emit_block_move_via_libcall): Likewise.
7252         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
7253         (get_subtarget): Don't use RTX_UNCHANGING_P.
7254         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
7255         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
7256         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
7257         * cse.c (insert): Don't use RTX_UNCHANGING_P.
7258         (cse_insn, canon_hash): Use MEM_READONLY_P.
7259         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
7260         instead of RTX_UNCHANGING_P.
7261         * explow.c (maybe_set_unchanging): Remove.
7262         * expr.h (maybe_set_unchanging): Remove.
7263         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
7264         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
7265         (assign_parm_setup_reg, expand_function_start): Likewise.
7266         * integrate.c (copy_rtx_and_substitute): Likewise.
7267         * ra-rewrite.c (emit_colors): Likewise.
7268         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
7269         (fixup_match_1): Likewise.
7270         * reload1.c (reload, alter_reg): Likewise.
7271         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
7272         not RTX_UNCHANGING_P.
7273         (equiv_init_varies_p): Likewise.
7274         * loop-invariant.c (check_maybe_invariant): Likewise.
7275         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
7276         * loop.c (note_addr_stored): Likewise.
7277         (prescan_loop): Likewise. Don't check function usage for clobbered
7278         unchanging memory.
7279         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
7280         not RTX_UNCHANGING_P.
7281         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
7282         * varasm.c (force_const_mem): Likewise.
7283         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
7284         * web.c (entry_register): Likewise.
7285         * tree-gimple.h (get_base_address): Move decl ...
7286         * tree.h: ... here.
7287         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
7288
7289         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
7290         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
7291         (alpha_set_memflags): Update to match.
7292
7293         * config/darwin.c (machopic_indirect_data_reference): Set
7294         MEM_READONLY_P instead of RTX_UNCHANGING_P.
7295         (machopic_indirect_call_target): Likewise.
7296         (machopic_legitimize_pic_address): Likewise.
7297         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
7298         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
7299         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
7300         * config/frv/frv.md (symGOT2reg): Likewise.
7301         * config/i386/i386.c (legitimize_pic_address,
7302         legitimize_tls_address, ix86_split_to_parts): Likewise.
7303         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
7304         * config/ia64/ia64.md (load_fptr): Likewise.
7305         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
7306         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
7307         * config/mcore/mcore.c (block_move_sequence): Likewise.
7308         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
7309         * config/pa/pa.c (legitimize_pic_address): Likewise.
7310         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
7311         (rs6000_emit_move): Likewise.
7312         * config/s390/s390.c (legitimize_pic_address): Likewise.
7313         (legitimize_tls_address): Likewise.
7314         * config/s390/s390.md (casesi): Likewise.
7315         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
7316         * config/sh/sh.md (symGOT2reg): Likewise.
7317         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
7318         * config/v850/v850.md (casesi): Likewise.
7319
7320         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
7321         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
7322         * config/mips/mips.c (mips_restore_gp): Likewise.
7323         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
7324         * config/sh/sh.c (sh_reorg): Likewise.
7325
7326 2004-08-18  Richard Henderson  <rth@redhat.com>
7327
7328         * tree.h (struct tree_decl): Add gimple_formal_temp.
7329         (DECL_GIMPLE_FORMAL_TEMP_P): New.
7330         * gimplify.c (pop_gimplify_context): Clear it.
7331         (lookup_tmp_var): Set it, if is_formal.
7332         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
7333         Use is_gimple_val for VECTOR.  Simplify return value.
7334         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
7335         (gimplify_expr): Likewise.
7336         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
7337         is_gimple_tmp_rhs for clarity.  Update all callers.
7338         (is_gimple_reg_rhs): Simplify logic.
7339         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
7340         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
7341         (is_gimple_formal_tmp_reg): Similarly.
7342         * tree-gimple.h: Update decls.
7343         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
7344         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
7345         * tree-ssa-live.c (var_union, type_var_init): Likewise.
7346
7347 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
7348
7349         * c4x.c (legitimize_operands): Remove calls to
7350         preserve_subexpressions_p.
7351
7352 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
7353
7354         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
7355         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
7356
7357 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
7358
7359         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
7360         Objective-C++ extensions.
7361         * gengtype.c (get_file_basename): Match entire subdirectory name
7362         ('cp', 'objc', 'objcp') rather than just its suffix.
7363         (get_base_file_bitmap): Allow for files to belong to more than one
7364         language.
7365         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
7366         used by more than one front-end.
7367
7368 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
7369
7370         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
7371         avoid use of preserve_subexpressions_p.
7372
7373 2004-08-17  Richard Henderson  <rth@redhat.com>
7374
7375         PR 17051
7376         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
7377
7378 2004-08-17  DJ Delorie  <dj@redhat.com>
7379
7380         * doc/extend.texi: Document new xstormy16 attribute.
7381
7382         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
7383         (xstormy16_splittable_below100_or_register): New.
7384         (combine_bnp): New.
7385         (xstormy16_reorg): New.
7386         (TARGET_MACHINE_DEPENDENT_REORG): Define.
7387
7388         * config/stormy16/stormy16.md (movqi_internal): Make name public.
7389         (movhi_internal): Likewise.
7390         (cbhranchhi): Likewise.
7391         (cbhranchhi_neg): Likewise.
7392         (andhi3): Only allow splittable below100 operands.
7393         (iorhi3): Likewise.
7394         (peephole2): New and/zero_extend->and peephole.
7395         (peephole2): New load/ior/save->set1 peephole.
7396         (peephole2): New load/and/save->clr1 peephole.
7397         (bclrx, bclrx2, bclr7, bclr15): New.
7398         (bsetx, bsetx2, bset7, bset15): New.
7399
7400         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
7401         liberal about acceptable 'B' masks.
7402
7403         * config/stormy16/stormy16-protos.h
7404         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
7405         xstormy16_below100_operand, xstormy16_below100_or_register,
7406         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
7407         (PREDICATE_CODES): Add new predicates.
7408
7409         * config/stormy16/stormy16.c
7410         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
7411         xstormy16_below100_operand, xstormy16_below100_or_register,
7412         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
7413         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
7414         (xstormy16_legitimate_address_p): Allow below100 symbols.
7415         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
7416         (xstormy16_expand_move): Leave below100 operands as-is.
7417         (xstormy16_encode_section_info): Encode below100 symbols.
7418         (xstormy16_strip_name_encoding): New.
7419         (xstormy16_print_operand): Print 'b' as shift mask.
7420         (xstormy16_attribute_table): Add below100 attributes.
7421         (xstormy16_handle_below100_attribute): New.
7422
7423         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
7424         (XSTORMY16_SECTION_FUNCTION): New.
7425         (EXTRA_SECTION_FUNCTIONS): Define using the above.
7426         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
7427         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
7428         (ASM_OUTPUT_LABELREF): Define.
7429
7430         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
7431         (movhi_internal): Add below100 support.
7432         (andhi3): Add below100 support.
7433         (iorhi3): Add below100 support.
7434         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
7435
7436 2004-08-17  James E Wilson  <wilson@specifixinc.com>
7437
7438         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
7439         of VOIDmode for comparison code mode.
7440         * config/mips/mips.md: For conditional move patterns, use mode of
7441         first compare operand for comparison mode, instead of VOIDmode.
7442
7443         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
7444         normal and -ffast-math code.
7445
7446 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
7447
7448         PR c++/15871
7449         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
7450
7451 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
7452
7453         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
7454
7455 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
7456
7457         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
7458         for non Darwin targets.
7459         (*call_value_nonlocal_darwin64): Likewise.
7460
7461 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
7462
7463         * config/rs6000/rs6000.c (rs6000_function_value): Check for
7464         altivec mode for altivec return register.
7465
7466 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
7467
7468         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
7469         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
7470         * config/rs6000/rs6000.md: Include darwin.md.
7471         (builtin_setjmp_receiver): Add DImode case.
7472         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
7473         Darwin bits.
7474
7475 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
7476
7477         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
7478         trees.
7479         * tree-vectorizer.h: New File: Same.
7480         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
7481         * common.opt (ftree-vectorize): New flag to enable vectorization.
7482         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
7483         vectorization pass.
7484         * tree-data-ref.h (init_data_ref): Additional argument.
7485         (array_base_name_differ_p): Moved to tree-data-ref.c.
7486         * tree-data-ref.c (array_base_name_differ_p): Revised.
7487         (initialize_data_dependence_relation): Call array_base_name_differ_p
7488         with an extra argument.
7489         (analyze_all_data_dependences): Same.
7490         (init_data_ref): Additional argument is_read to set DR_IS_READ.
7491         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
7492         file.
7493         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
7494         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
7495         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
7496         vectorization pass.
7497         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
7498         (tree_ssa_loop_done): Call scev_finalize.
7499         (tree_vectorize): Define the new vectorization pass.
7500         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
7501         size of the vector they support (until support for multiple vector
7502         sizes is added to the vectorizer).
7503         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
7504         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
7505         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
7506         documentation.
7507
7508 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
7509
7510         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
7511         usage.
7512         (generate_protocol_list, handle_impent): Likewise.
7513
7514 2004-08-17  Roger Sayle  <roger@eyesopen.com>
7515
7516         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
7517         ensure that call_used_regs is a superset of both fixed_regs and
7518         call_really_used_regs.
7519
7520 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
7521
7522         PR target/17019
7523         * arm.md (addsi3_cbranch_scratch): Correct case labels.
7524
7525 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
7526
7527         PR middle-end/17036
7528         * fold-const.c (fold): Check for integer operand when
7529         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
7530         Pinski  <pinskia@physics.uc.edu>.
7531
7532 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
7533
7534         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
7535         No need to check if in a cross configuration.
7536         * configure: Regenerate.
7537
7538         * calls.c (precompute_register_parameters):
7539         Inline preserve_subexpressions_p ().
7540         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
7541         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
7542         Likewise.
7543         * expr.c (get_subtarget): Likewise.
7544         * rtl.h (preserve_subexpressions_p): Remove.
7545         * stmt.c (preserve_subexpressions_p): Remove.
7546
7547         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
7548         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
7549         Abort on gimplified cases.
7550
7551 2004-08-16  James E Wilson  <wilson@specifixinc.com>
7552
7553         * tree.h (VECTOR_FLOAT_TYPE_P): New.
7554         (FLOAT_TYPE_P): Use it.
7555         * c-typeck.c (build_binary_op): After convert calls, check for
7556         check for ERROR_MARK operands.
7557
7558 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
7559
7560         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
7561         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
7562         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
7563         (genobjs static pattern rule): Remove %.c dependency.
7564         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
7565         Rename rules; delete commands; fix dependencies.
7566         (mostlyclean): Do not delete temporary source copies.
7567         * configure.ac: Delete all references to BUILD_PREFIX and
7568         BUILD_PREFIX_1.
7569         * configure: Regenerate.
7570
7571         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
7572         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
7573         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
7574         with #ifndef GENERATOR_FILE so that nothing from those headers
7575         is used.
7576
7577         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
7578
7579 2004-08-16  Adam Nemet  <anemet@lnxw.com>
7580
7581         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
7582
7583 2004-08-16  Andrew Pinski  <apinski@apple.com>
7584
7585         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
7586         extraneous semicolon.
7587
7588 2004-08-16  Devang Patel  <dpatel@apple.com>
7589
7590         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
7591         * print-tree.c (print_node): Print DECL_PRESERVE_P.
7592         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
7593         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
7594         * target.h (struct gcc_target): New member, mark_decl_preserved.
7595         * hooks.c (hook_void_charptr): Rename to ...
7596         (hook_void_constcharptr): ... new name.
7597         * hooks.h (hook_void_charptr): Rename to ..
7598         (hook_void_constcharptr): ... new name.
7599         * tree.h (DECL_PRESERVE_P): New #define.
7600         (struct tree_decl): New member, preserve_flag.
7601         * varasm.c (assemble_start_function): Mark decl preserved.
7602         (assemble_variable): Same.
7603         * darwin.c (darwin_mark_decl_preserved): New function.
7604         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
7605         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
7606         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
7607
7608 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
7609
7610         * c-decl.c (grokdeclarator): Allow for function definition where
7611         innermost declarator has attributes.
7612
7613 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
7614
7615         * except.c (get_exception_filter, build_post_landing_pads,
7616         dw2_build_landing_pads): Use target-specific mode for 'filter'.
7617         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
7618         * target.h (eh_return_filter_mode): New field added.
7619         * targhooks.c (default_eh_return_filter_mode): Defined.
7620         * targhooks.h (default_eh_return_filter_mode): Declared.
7621         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
7622
7623 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
7624
7625         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
7626         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
7627         * configure: Regenerate.
7628
7629 2004-08-16  Stan Shebs  <shebs@apple.com>
7630
7631         Basic support for 64-bit Darwin.
7632         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
7633         (machopic_legitimize_pic_address): Similarly, plus use Pmode
7634         instead of SImode.
7635         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
7636         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
7637         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
7638         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
7639         (PROCESSOR_DEFAULT64): Define.
7640         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
7641         Darwin.
7642         * config/rs6000/rs6000.md: Include darwin.md.
7643         (builtin_setjmp_receiver): Add DImode case.
7644         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
7645         Darwin.
7646         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
7647         (rs6000_emit_move): Add DImode case to Darwin bits.
7648         (machopic_output_stub): Use .quad if 64-bit.
7649         * invoke.texi: Document -m32 and -m64.
7650
7651 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
7652
7653         * doc/extend.texi (AltiVec builtins): Document additional differences
7654         from the Motorola AltiVec PIM.
7655
7656 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
7657
7658         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
7659         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
7660         (struct tree_common): Update public_flag documentation.
7661
7662 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
7663
7664         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
7665         Check for artificial variables, not is_gimple_tmp_var.
7666         * tree-ssa-live.c (var_union): Likewise.
7667
7668 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
7669
7670         * calls.c (load_register_parameters): Remove spurious FIXME token.
7671
7672 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
7673
7674         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
7675         (c-lang.o): Depend on c-objc-common.h.
7676         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
7677         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
7678         * c-lang.c: Include c-objc-common.h.
7679         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
7680         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
7681         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
7682         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
7683         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
7684         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
7685         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
7686         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
7687         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
7688         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
7689         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
7690         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
7691         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
7692         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
7693         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
7694         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
7695         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
7696         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
7697         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
7698         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
7699         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
7700         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
7701         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
7702         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
7703         Move to c-objc-common.h.
7704         * c-objc-common.c: Include c-objc-common.h.
7705         * c-objc-common.h: New file.
7706
7707 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
7708             Andrew Pinski  <pinskia@physics.uc.edu>
7709
7710         PR target/14931
7711         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
7712         style.
7713
7714 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
7715
7716         * tree.h (build_int_cst): New.
7717         (build_int_2): Remove.
7718         * tree.c (build_int_2): Remove.
7719         (build_int_cst): New.
7720         (make_vector_type, build_common_tree_nodes,
7721         build_common_tree_nodes_2): Use build_int_cst.
7722         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
7723         expand_builtin_strpbrk, expand_builtin_fputs,
7724         build_string_literal, expand_builtin_printf,
7725         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
7726         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
7727         fold_builtin_isdigit, simplify_builtin_strstr,
7728         simplify_builtin_strpbrk, fold_builtin_fputs,
7729         simplify_builtin_sprintf): Use build_int_cst.
7730         * c-common.c (start_fname_decls, fix_string_type,
7731         c_common_nodes_and_builtins, c_init_attributes,
7732         shorten_compare): Likewise.
7733         * c-decl.c (complete_array_type,
7734         check_bitfield_type_and_width): Likewise.
7735         * c-lex.c (interpret_integer, lex_charconst): Likewise.
7736         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
7737         * c-pretty-print.c (pp_c_integer_constant): Likewise.
7738         * c-typeck.c (really_start_incremental_init, push_init_level,
7739         set_nonincremental_init_from_string): Likewise.
7740         * calls.c (load_register_parameters): Likewise.
7741         * convert.c (convert_to_pointer): Likewise.
7742         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
7743         build_fn_info_type, build_ctr_info_value, build_gcov_info):
7744         Likewise.
7745         * except.c (init_eh, assign_filter_values, assign_filter_values):
7746         Likewise.
7747         * expmed.c (store_fixed_bit_field, extract_bit_field,
7748         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
7749         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
7750         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
7751         * expr.c (convert_move, emit_group_load, emit_group_store,
7752         expand_assignment, store_constructor, store_field,
7753         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
7754         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
7755         invert_truthvalue, optimize_bit_field_compare,
7756         decode_field_reference, all_ones_mask_p, constant_boolean_node,
7757         fold_div_compare, fold, fold_read_from_constant_string,
7758         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
7759         * function.c (assign_parm_setup_block): Likewise.
7760         * stmt.c (shift_return_value, expand_end_case_type,
7761         estimate_case_costs): Likewise.
7762         * stor-layout.c (layout_type, initialize_sizetypes,
7763         set_min_and_max_values_for_integral_type): Likewise.
7764         * tree-chrec.c (chrec_fold_multiply_poly_poly,
7765         reset_evolution_in_loop): Likewise.
7766         * tree-chrec.h (build_polynomial_chrec): Likewise.
7767         * tree-complex.c (build_replicated_const): Likewise.
7768         * tree-eh.c (honor_protect_cleanup_actions,
7769         lower_try_finally_onedest, lower_try_finally_copy,
7770         lower_try_finally_switch): Likewise.
7771         * tree-mudflap.c (mf_build_string, mx_register_decls,
7772         mudflap_register_call, mudflap_enqueue_constant): Likewise.
7773         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
7774         * tree-pretty-print.c (dump_generic_node): Likewise.
7775         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
7776         Likewise.
7777         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7778         * tree-ssa-loop-niter.c (number_of_iterations_cond,
7779         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
7780         Likewise.
7781
7782         * config/alpha/alpha.c (alpha_initialize_trampoline,
7783         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
7784         * config/arm/arm.c (arm_get_cookie_size): Likewise.
7785         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
7786         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
7787         * config/i860/i860.c (i860_va_start): Likewise.
7788         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
7789         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
7790         mips_gimplify_va_arg_expr): Likewise.
7791         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
7792         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
7793         add_compiler_branch_island): Likewise.
7794         * config/s390/s390.c (s390_va_start): Likewise.
7795         * config/sh/sh.c (sh_va_start): Likewise.
7796         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
7797         Likewise.
7798         * config/xtensa/xtensa.c (xtensa_va_start,
7799         xtensa_gimplify_va_arg_expr): Likewise.
7800
7801         * objc/objc-act.c (build_objc_string_object,
7802         build_objc_symtab_template, init_def_list, init_objc_symtab,
7803         init_module_descriptor, generate_static_references,
7804         build_selector_translation_table, get_proto_encoding,
7805         build_typed_selector_reference, build_selector_reference,
7806         build_next_objc_exception_stuff,
7807         build_method_prototype_list_template, generate_descriptor_table,
7808         generate_protocols, build_protocol_initializer,
7809         build_ivar_list_template, build_method_list_template,
7810         build_ivar_list_initializer, generate_ivars_list,
7811         generate_dispatch_table, generate_protocol_list,
7812         build_category_initializer, build_shared_structure_initializer,
7813         generate_shared_structures, handle_impent,
7814         generate_objc_image_info): Use build_int_cst.
7815
7816 2004-08-15  Ben Elliston  <bje@au.ibm.com>
7817
7818         * vec.h: Comment improvements.
7819
7820 2004-08-14  Roger Sayle  <roger@eyesopen.com>
7821
7822         * c-common.c (shorten_compare, pointer_int_sum,
7823         c_common_truthvalue_conversion, boolean_increment): Replace calls
7824         to build with calls to buildN.
7825         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
7826         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
7827         gimplify_switch_stmt): Likewise.
7828         * c-typeck.c (default_function_array_conversion,
7829         build_component_ref, build_array_ref, build_function_call,
7830         pointer_diff, build_unary_op, build_conditional_expr,
7831         build_compound_expr, build_modify_expr, c_finish_goto_label,
7832         c_finish_goto_ptr, c_finish_return, c_finish_loop,
7833         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
7834         build_binary_op): Likewise.
7835
7836 2004-08-15  Steven Bosscher  <stevenb@suse.de>
7837
7838         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
7839
7840 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7841
7842         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
7843         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
7844         * fixinc/fixincl.x: Rebuilt.
7845
7846 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
7847
7848         * config/mips/mips-protos.h (mips_symbolic_constant_p)
7849         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
7850         (mips_small_data_pattern_p): Declare.
7851         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
7852         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
7853         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
7854         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
7855         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
7856         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
7857         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
7858         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
7859         (pc_or_label_operand, call_insn_operand, move_operand)
7860         (consttable_operand, symbolic_operand, general_symbolic_operand)
7861         (global_got_operand, local_got_operand, stack_operand)
7862         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
7863         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
7864         (mips_small_data_pattern_p): Replace previous small_data_pattern
7865         predicate.  Turn into a bool () (rtx) function.
7866         * config/mips/predicates.md: New file.
7867         * config/mips/mips.md: Include it.  Use the target-independent
7868         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
7869         trap_comparison_operator and equality_op to equality_operator.
7870         Replace uses of small_int with the equivalent const_arith_operand.
7871         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
7872         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
7873         to fcc_reload_operand.
7874         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
7875
7876 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7877
7878         PR libstdc++/17005 partial fix.
7879         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
7880         except when generating ANSI/C89 code.
7881
7882 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
7883
7884         * c-common.c (shorten_compare): Use force_fit_type directly.
7885
7886 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
7887             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
7888             Dave Korn  <dk@artimi.com>
7889
7890         * doc/install.texi (Building): Avoid duplicate reference to GNU
7891         make requirement.
7892         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
7893
7894 2004-08-14  Richard Henderson  <rth@redhat.com>
7895
7896         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
7897         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
7898
7899 2004-08-13  Richard Henderson  <rth@redhat.com>
7900
7901         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
7902         for constant_call_address_operand.
7903         (call_value_pop_1, call_value_1): Likewise.
7904         (sibcall_value_1, call_value_1_rex64): Likewise.
7905
7906 2004-08-13  James E Wilson  <wilson@specifixinc.com>
7907
7908         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
7909         Correct mode from SFmode to DFmode.
7910
7911 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
7912
7913         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
7914         __cstring_object and __image_info sections with the no_dead_strip
7915         attribute.
7916
7917 2004-08-13  Roger Sayle  <roger@eyesopen.com>
7918             David Billinghurst  <David.Billinghurst@riotinto.com>
7919
7920         PR libgfortran/15930
7921         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
7922         * fixinc/fixincl.x: Regenerate.
7923         * fixinc/tests/base/internal/math_core.h: New file.
7924
7925 2004-08-13  Richard Henderson  <rth@redhat.com>
7926
7927         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
7928         (dbxout_function_end): Remove ifdefs for it.
7929         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
7930
7931 2004-08-13  Richard Henderson  <rth@redhat.com>
7932
7933         * Makefile.in (insn-preds.o): Depend on TREE_H.
7934         * genpreds.c (write_insn_preds_c): Include tree.h.
7935         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
7936         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
7937         const48_operand, and_operand, or_operand, mode_width_operand,
7938         mode_mask_operand, mul8_operand, const0_operand,
7939         hard_fp_register_operand, hard_int_register_operand,
7940         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
7941         samegp_function_operand, direct_call_operand, small_symbolic_operand,
7942         global_symbolic_operand, call_operand, symbolic_operand,
7943         dtp16_symbolic_operand, dtp32_symbolic_operand,
7944         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
7945         gottp_symbolic_operand, alpha_comparison_operator,
7946         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
7947         signed_comparison_operator, alpha_fp_comparison_operator,
7948         divmod_operator, fix_operator, aligned_memory_operand,
7949         unaligned_memory_operand, reg_or_unaligned_mem_operand,
7950         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
7951         reg_no_subreg_operand, addition_operation): Move to predicates.md.
7952         (reg_or_const_int_operand): Remove.  Replace all users with
7953         reg_or_cint_operand.
7954         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
7955         (resolve_reload_operand): Split out of aligned_memory_operand.
7956         * config/alpha/alpha-protos.h: Update for exports.
7957         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
7958         * config/alpha/alpha.md: Include predicates.md.
7959         * config/alpha/predicates.md: New file.
7960
7961 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
7962
7963         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
7964         fields with a pointer to the instruction definition.
7965         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
7966         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
7967         (write_attr_case, write_const_num_delay_slots): Update accordingly.
7968         (write_attr_case, write_const_num_delay_slots): Write the name of
7969         an insn next to its case statement.
7970         * genoutput.c (data): Add a filename field.
7971         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
7972         (output_insn_data): Print the location of each insn definition.
7973         * genrecog.c (write_action): Print the name of an insn above
7974         the statement that returns its code.
7975
7976 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
7977
7978         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
7979         * config/libgloss.h: Likewise.
7980         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
7981         * c4x/c4x-modes.def: Likewise.
7982         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
7983         (c4x_rptb_nop_p): Likewise.
7984         (c4x_rptb_valid_p): Likewise.
7985         (c4x_rptb_insert): Likewise.
7986         (c4x_address_conflict): Likewise.
7987         * config/c4x/c4x.md: Likewise.
7988         * config/frv/frv.md: Likewise.
7989         * config/i386/athlon.md: Likewise.
7990         * config/i386/i386.md: Likewise.
7991         * config/i386/predicates.md: Likewise.
7992         * config/ia64/ia64.c: Likewise.
7993         * config/ia64/itanium1.md: Likewise.
7994         * config/ia64/itanium2.md: Likewise.
7995         * config/iq2000/iq2000.md: Likewise.
7996         * config/mcore/mcore.c: Likewise.
7997         * config/mips/mips.c: Likewise.
7998         * config/mips/r3900.h: Likewise.
7999         * config/mips/sb1.md: Likewise.
8000         * config/pa/milli64.S: Likewise.
8001         * config/pa/pa.c: Likewise.
8002         * config/pa/pa.h: Likewise.
8003         * config/rs6000/8540.md: Likewise.
8004
8005 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
8006
8007         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
8008
8009 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
8010
8011         * sh.md (cbranch define_delay) Use cond_delay_slot for
8012         non-anulled condition too.
8013
8014 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
8015
8016         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
8017         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
8018         any_parallel_operand, lmw_operation, stmw_operation,
8019         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
8020         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
8021         any_parallel_operand.
8022         (return_and_restore_fpregs_{si,di}): Same.
8023
8024 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
8025
8026         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
8027         if pred->singleton != PARALLEL, issue a warning and pretend it was.
8028         Also issue a warning for any predicate we don't know about.
8029
8030 2004-08-12  Richard Henderson  <rth@redhat.com>
8031
8032         * config/i386/i386.c (internal_label_prefix): Export.
8033         (internal_label_prefix_len, struct ix86_address,
8034         ix86_decompose_address, maybe_get_pool_constant,
8035         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
8036         memory_address_length): Export.
8037         (any_fp_register_operand, fp_register_operand,
8038         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
8039         x86_64_general_operand, x86_64_szext_general_operand,
8040         x86_64_nonmemory_operand, x86_64_movabs_operand,
8041         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
8042         x86_64_zext_immediate_operand, const_int_1_31_operand,
8043         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
8044         tls_symbolic_operand, global_dynamic_symbolic_operand,
8045         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
8046         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
8047         constant_call_address_operand, const0_operand, const1_operand,
8048         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
8049         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
8050         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
8051         general_no_elim_operand, nonmemory_no_elim_operand,
8052         index_register_operand, q_regs_operand, flags_reg_operand,
8053         non_q_regs_operand, zero_extended_scalar_load_operand,
8054         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
8055         ix86_comparison_operator, ix86_carry_flag_operator,
8056         fcmov_comparison_operator, promotable_binary_operator,
8057         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
8058         mult_operator, div_operator, arith_or_logical_operator,
8059         memory_displacement_operand, cmpsi_operand, long_memory_operand,
8060         aligned_operand): Move to predicates.md as define_predicates.
8061         (tls_symbolic_operand_1): Remove.
8062         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
8063         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
8064         (legitimize_address): Merge tls_symbolic_operand contents.
8065         (ix86_expand_move): Likewise.
8066         * config/i386/i386-protos.h: Update for exports.
8067         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
8068         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
8069         * config/i386/i386.md: Include predicates.md.
8070         * config/i386/predicates.md: New file.
8071
8072 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
8073
8074         PR c++/16924
8075         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
8076         SYMBOL_REF_DECL.
8077         (i386_pe_mark_dllimport): Likewise.
8078         (i386_pe_encode_section_info): Likewise, when overriding
8079         dllimport attribute.
8080
8081 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
8082
8083         * configure.ac: When testing for flex, nm, ar, and bison, check
8084         that they will actually be built.
8085         * configure: Regenerate.
8086
8087 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
8088
8089         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
8090         (MOVE_MAX_PIECES): Define.
8091
8092 2004-08-12  Devang patel  <dpatel@apple.com>
8093
8094         * dbxout.c (dbxout_begin_prologue): New function.
8095         (dbx_debug_hooks): Use new begin prologue hook.
8096         (dbxout_function_end): Emit N_ENSYM.
8097         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
8098
8099 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
8100
8101         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
8102         argument is float*.
8103
8104         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
8105         for vec_dss.
8106
8107         * doc/extend.texi (AltiVec builtins): Fix description for recent
8108         changes.  Update operation list to match current support.
8109
8110 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8111
8112         * config/s390/s390.c (struct s390_frame_layout): New struct as element
8113         of struct machine_function.
8114         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
8115         changed all uses.
8116         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
8117         changed all uses.
8118         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
8119         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
8120         (s390_frame_area, s390_register_info): New functions.
8121         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
8122         for base register.
8123         (s390_return_addr_rtx, s390_return_address_offset)
8124         (s390_va_start, s390_gimplify_va_arg)
8125         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
8126         layouts.
8127         (s390_frame_info): Functionality partly moved to s390_register_info.
8128         Made adaptions for new stack layout.
8129         (save_gprs, restore_gprs): Changed meaning of second parameter and
8130         adapted all callers.
8131
8132         * config/s390/s390.h (s390_backchain_string): New global variable.
8133         (MASK_BACKCHAIN): Removed definition.
8134         (TARGET_BACKCHAIN): Changed check.
8135         (TARGET_KERNEL_BACKCHAIN): New macro.
8136         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
8137         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
8138         "kernel-backchain".
8139         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
8140
8141         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
8142         as condition.  Adjusted for new stack layout.
8143
8144         * doc/invoke.texi: Added documentation for new option
8145         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
8146         "-mno-backchain".
8147
8148 2004-08-12  Paul Brook  <paul@codesourcery.com>
8149
8150         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
8151         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
8152
8153 2004-08-12  David Daney  <ddaney@avtrex.com>
8154
8155         * java/gcj.texi:  Add subsection on signal usage.
8156
8157 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
8158
8159         * expr.c (move_by_pieces): Set alignment for move to minimum of
8160         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
8161         alignment, but not less than the original alignment.
8162         (move_by_pieces_ninsns): Same.
8163         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
8164         (store_by_pieces_1): Same.
8165
8166 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
8167
8168         PR tree-optimization/16867
8169         * tree.c (is_global_var): New function.
8170         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
8171         Call is_global_var.
8172         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
8173         Update all users.
8174         (is_global_var): Declare.
8175         * tree-dfa.c (dump_variable): Display global and addressable
8176         attributes.
8177         (add_referenced_var): Clarify documentation when marking
8178         variables call-clobbered.
8179         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
8180         instead of needs_to_live_in_memory.
8181         (mark_call_clobbered): If the variable is a tag, mark it
8182         DECL_EXTERNAL.
8183         * tree-gimple.c (is_gimple_reg): Don't check for
8184         TREE_ADDRESSABLE.
8185         (is_gimple_non_addressable): Likewise.
8186         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
8187         needs to be marked call-clobbered.
8188         (setup_pointers_and_addressables): Call is_global_var instead
8189         of needs_to_live_in_memory.
8190         * tree-ssa-dce.c (need_to_preserve_store): Remove.
8191         Update all users with is_global_var.
8192         (mark_stmt_if_obviously_necessary): Fix processing of aliased
8193         stores.  Don't check the virtual definitions.  Rather, check
8194         whether the store is going into global memory.
8195         (find_obviously_necessary_stmts): Get the symbol from the PHI
8196         result.
8197         * tree-ssa-operands.c (get_call_expr_operands): Do not add
8198         clobbering may-defs if the call does not have side effects.
8199
8200 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
8201
8202         PR c++/16276
8203         * output.h (default_function_rodata_section,
8204         default_no_function_rodata_section): New prototypes.
8205         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
8206         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
8207         (TARGET_ASM_OUT): Add it.
8208         * varasm.c (default_function_rodata_section,
8209         default_no_function_rodata_section): New functions.
8210         * final.c (final_scan_insn): Call
8211         targetm.asm_out.function_rodata_section instead of
8212         readonly_data_section.
8213         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
8214         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8215         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8216         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
8217         Likewise.
8218         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8219         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
8220         Likewise.
8221         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
8222         Likewise.
8223         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8224         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8225         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
8226
8227 2004-08-12  Paul Brook  <paul@codesourcery.com>
8228
8229         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
8230         frame info.
8231         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
8232         DWARF2_UNWIND_INFO.
8233
8234 2004-08-12  Ben Elliston  <bje@au.ibm.com>
8235
8236         PR target/16286
8237         * config/rs6000/altivec.h: Change vector to __vector throughout.
8238         (Except for the `vector' macro itself).
8239
8240 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
8241
8242         * genpreds.c: Add capability to generate predicate bodies as
8243         well as function prototypes.  Write function prototypes for
8244         the generic predicates too.
8245         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
8246         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
8247         (write_match_code, write_predicate_expr, write_one_predicate_function)
8248         (parse_option): New functions.
8249         (output_predicate_decls): Delete.
8250         (main): Read the machine description, process DEFINE_PREDICATE or
8251         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
8252         as appropriate.
8253
8254         * genrecog.c (struct decision_test): Replace index with
8255         struct pred_data pointer.
8256         (next_index): Remove, unused.
8257         (pred_table, preds, special_mode_pred_table): Delete.
8258         (compute_predicate_codes, process_define_predicate): New functions.
8259         (validate_pattern, add_to_sequence, write_switch): Update for
8260         new data structures.
8261         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
8262         Check both error_count and have_error.
8263
8264         * gensupport.c (in_fname, first_predicate): New globals.
8265         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
8266         (predicate_table, last_predicate, old_pred_table)
8267         (old_special_pred_table): New statics.
8268         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
8269         (add_predicate, init_predicate_table): New functions.
8270         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
8271         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
8272         it or max_include_len.  Call init_predicate_table.
8273         (read_rtx): Run the predicate queue after the attribute queue
8274         but before all the others.
8275         * gensupport.h (in_fname, struct pred_data, first_predicate)
8276         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
8277         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
8278         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
8279         * dummy-conditions.c: Don't include bconfig.h, system.h,
8280         coretypes.h, tm.h, or system.h.  Do include stddef.h.
8281         Duplicate declaration of struct c_test from gensupport.h.
8282
8283         * Makefile.in (OBJS-common): Add insn-preds.o.
8284         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
8285         (insn-preds.c, insn-preds.o): New rules.
8286         (s-preds): Also generate insn-preds.c.
8287         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
8288         Update dependencies.
8289         (print-rtl.o, print-rtl1.o): Correct dependencies.
8290
8291         * recog.h: Delete prototypes of predicate functions.
8292
8293         * doc/md.texi (Predicates): New section with complete
8294         documentation of operand/operator predicates.  Remove some
8295         incomplete documentation of predicates from other places.
8296         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
8297         PREDICATE_CODES; indicate that both are deprecated in favor
8298         of define_predicate/define_special_predicate.
8299
8300         * config/ia64/ia64.c: All predicate function definitions moved
8301         to ia64.md, except
8302         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
8303         (ia64_expand_load_address, ia64_expand_move):
8304         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
8305
8306         * config/ia64/ia64.md: All predicates now defined here.
8307         (symbolic_operand): Is now a special predicate.
8308
8309         * config/ia64/ia64.h: Declare ia64_section_threshold.
8310         (PREDICATE_CODES): Delete.
8311
8312 2004-08-12  Richard Henderson  <rth@redhat.com>
8313
8314         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
8315         * c-semantics.c (add_stmt): Set it.
8316         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
8317         before instantiating a variable sized type.
8318
8319 2004-08-12  Richard Henderson  <rth@redhat.com>
8320
8321         * stor-layout.c (round_up, round_down): Move ...
8322         * fold-const.c (round_up, round_down): ... here.  Use
8323         multiple_of_p to avoid any arithmetic at all.
8324
8325 2004-08-12  Richard Henderson  <rth@redhat.com>
8326
8327         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
8328         (gimplify_init_ctor_preeval_1): New.
8329         (gimplify_init_ctor_preeval): New.
8330         (gimplify_init_ctor_eval): New.
8331         (gimplify_init_constructor): Use them.  Always gimplify the LHS
8332         object first.
8333
8334 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
8335
8336         (This patch is part of merge of objc-improvements-branch
8337         into mainline.)
8338
8339         * doc/frontends.texi: Mention Objective-C++ in addition to
8340         Objective-C.
8341         * doc/install.texi: Add 'obj-c++' to list of configurable
8342         languages.
8343         * doc/invoke.texi: Rename Objective-C option headings to
8344         indicate they also apply to Objective-C++.  List file
8345         extensions for Objective-C++ sources.  Mention that
8346         ObjC and ObjC++ compilations may also use C and C++ options,
8347         respectively.  Point users to doc/standards.texi for
8348         further info on ObjC and ObjC++.
8349         * doc/sourcebuild.texi: Mention the objcp/ directory and
8350         the Objective-C++ sources it contains.
8351         * doc/standards.texi: Update link to Apple ObjC site;
8352         add link to gcc readings.html WWW doc.
8353
8354 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
8355
8356         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
8357         and 2004-07-14 changes.
8358
8359 2004-08-12  Paul Brook  <paul@codesourcery.com>
8360
8361         * doc/invoke.texi: Fix typo.
8362
8363 2004-08-11 Devang Patel  <dpatel@apple.com>
8364
8365         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
8366         and -no_dead_strip_inits_and_terms.
8367         (LINK_SPEC): Same.
8368         * doc/invoke.texi (Darwin Options): Document -dead_strip and
8369         -no_dead_strip_inits_and_terms.
8370
8371 2004-08-11  Paul Brook  <paul@codesourcery.com>
8372
8373         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
8374         (arm_load_pic_register): ... to this.
8375         * config/arm/arm.c (arm_finalize_pic): Rename ...
8376         (arm_load_pic_register): ... to this.  Always output insns at the
8377         current location.  Load via low reg in thumb mode.
8378         (arm_expand_prologue): Call arm_load_pic_register.
8379         (thumb_expand_prologue): Ditto.
8380         * config/arm/arm.h (FINALIZE_PIC): Remove.
8381         * config/arm/arm.md (builtin_setjmp_receiver): Call
8382         arm_load_pic_register.
8383
8384 2004-08-11  Paul Brook  <paul@codesourcery.com>
8385
8386         * arm.c (thumb_force_lr_save): Add prototype.
8387         (thumb_compute_save_reg_mask): New function.
8388         (thumb_find_work_register): New function.
8389         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
8390         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
8391         Don't clobber r3 when removing pretend args.
8392         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
8393         (thumb_output_function_prologue): Use new functions.
8394         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
8395         * arm.h (THUMB_REG_PUSHED_P): Remove.
8396
8397 2004-08-11  James E Wilson  <wilson@specifixinc.com>
8398
8399         PR rtl-optimization/16490
8400         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
8401         global_live_at_end for new basic block if already set for other blocks.
8402
8403 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
8404
8405         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
8406
8407         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
8408         (mfcr rlwinm rlwinm patterns): Set length to 12.
8409
8410 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
8411
8412         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
8413         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
8414         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
8415         (start_ssa_stmt_operands): Delete.
8416         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
8417         struct stmt_operands_d.
8418         (build_ssa_operands): New extern entry point.
8419         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
8420         building code, replace with create_ssa_artficial_load_stmt().
8421         * tree-ssa-operands.c (struct voperands_d): Delete.
8422         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
8423         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
8424         (free_uses, free_defs, free_vuses, free_v_may_defs,
8425         free_v_must_defs): Remove dealloc parameter.
8426         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
8427         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
8428         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
8429         vector comparisons, ssa_name reuse, and allocations here.
8430         (verify_start_operands): Delete.
8431         (finalize_ssa_stmt_operands): Set new operands by calling finalize
8432         routines.
8433         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
8434         (append_def, append_usei): Simplify to simple accumulation.
8435         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
8436         duplicates and simple accumulation.
8437         (free_ssa_operands): Free vectors in a stmt_operand structure.
8438         (build_ssa_operands): New. Create a new stmt_operand structure from
8439         a stmt and an old set of stmt_operands.
8440         (get_stmt_operands): Simplify and call build_ssa_operands.
8441         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
8442         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
8443         add_call_read_ops): Don't pass prev_vops around anymore.
8444         (note_addressable): Return if no stmt annotation.
8445         (copy_virtual_operands): Access v_may_def operands through a struct.
8446         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
8447         hash tables without treating the stmt as a real stmt.
8448         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
8449         v_may_def def and use through a struct instead of 2 array elements.
8450         (struct v_may_def_optype_d): Use v_may_def_operand_type.
8451         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
8452
8453 2004-08-11  Nick Clifton  <nickc@redhat.com>
8454
8455         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
8456         this funciton's behaviour.  Return true when the current function
8457         has a section attribute and -mlong-calls is in effect.
8458         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
8459         short-call marker when -mlong-calls is in effect and the function
8460         has a section attribute.
8461
8462 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
8463
8464         * stmt.c (expand_return): If asked to return the RESULT_DECL,
8465         just call expand_value_return on result_rtl.
8466
8467 2004-08-10  Richard Henderson  <rth@redhat.com>
8468
8469         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
8470         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
8471         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
8472         (add_location_or_const_value_attribute): ... not here.  Use
8473         loc_descriptor_from_tree if possible.
8474         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
8475         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
8476         values specially.
8477         (loc_descriptor_from_tree): New.  Update callers.
8478         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
8479         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
8480         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
8481         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
8482         and BUILT_IN_STACK_RESTORE.
8483         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
8484         * stmt.c (expand_stack_alloc): Remove.
8485         * tree-mudflap.c (mx_register_decls): Don't look for
8486         BUILT_IN_STACK_ALLOC.
8487         * tree-nested.c (convert_local_reference): Likewise.
8488         * tree.h (DECL_VALUE_EXPR): New.
8489
8490 2004-08-10  Richard Henderson  <rth@redhat.com>
8491
8492         * stor-layout.c (round_up): Check for 0/1 before dividing.
8493         (round_down): Likewise.
8494
8495         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
8496
8497 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
8498
8499         * config.gcc (arm*-*-eabi*): New target.
8500         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
8501         (TARGET_LIB_INT_CMP_BIASED): Likewise.
8502         * expmed.c (expand_divmod): Try a two-valued divmod function as a
8503         last resort.
8504         * gthr.h: Remove bogus tokens at end of #pragma.
8505         * optabs.c (expand_twoval_binop_libfunc): New function.
8506         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
8507         (prepare_float_lib_cmp): Try reversing the condition.
8508         (debug_optab_libfuncs): New function.
8509         * optabs.h (expand_twoval_binop_libfunc): Declare.
8510         * config/arm/arm.c (arm_init_libfuncs): New function.
8511         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
8512         (TARGET_INIT_LIBFUNCS): Define it.
8513         * config/arm/arm.h (TARGET_BPABI): New macro.
8514         * config/arm/arm-protos.h
8515         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
8516         * config/arm/bpabi.S: New file.
8517         * config/arm/bpabi.c: Likewise.
8518         * config/arm/bpabi.h: Likewise.
8519         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
8520         (__aeabi_drsub): Likewise.
8521         (__aeabi_dsub): Likewise.
8522         (__aeabi_dadd): Likewise.
8523         (__aeabi_ui2d): Likewise.
8524         (__aeabi_i2d): Likewise.
8525         (__aeabi_f2d): Likewise.
8526         (__aeabi_dmul): Likewise.
8527         (__aeabi_ddiv): Likewise.
8528         (__aeabi_cdrcmple): Likewise.
8529         (__aeabi_cdcmpeq): Likewise.
8530         (__aeabi_cdcmple): Likewise.
8531         (__aeabi_dcmpeq): Likewise.
8532         (__aeabi_dcmplt): Likewise.
8533         (__aeabi_dcmple): Likewise.
8534         (__aeabi_dcmpge): Likewise.
8535         (__aeabi_dcmpgt): Likewise.
8536         (__aeabi_dcmpun): Likewise.
8537         (__aeabi_d2iz): Likewise.
8538         (__aeabi_d2uiz): Likewise.
8539         (__aeabi_d2f): Likewise.
8540         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
8541         (__aeabi_frsub): Likewise.
8542         (__aeabi_fsub): Likewise.
8543         (__aeabi_fadd): Likewise.
8544         (__aeabi_ui2f): Likewise.
8545         (__aeabi_i2f): Likewise.
8546         (__aeabi_fmul): Likewise.
8547         (__aeabi_fdiv): Likewise.
8548         (__aeabi_cfrcmple): Likewise.
8549         (__aeabi_cfcmpeq): Likewise.
8550         (__aeabi_cfcmple): Likewise.
8551         (__aeabi_fcmpeq): Likewise.
8552         (__aeabi_fcmplt): Likewise.
8553         (__aeabi_fcmple): Likewise.
8554         (__aeabi_fcmpge): Likewise.
8555         (__aeabi_fcmpgt): Likewise.
8556         (__aeabi_fcmpun): Likewise.
8557         (__aeabi_f2iz): Likewise.
8558         (__aeabi_f2uiz): Likewise.
8559         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
8560         (__aeabi_uidivmod): New function or alias.
8561         (__aeabi_idivmod): Likewise.
8562         (__aeabi_idiv0): Likewise.
8563         (__aeabi_ldiv0): Likewise.
8564         (__aeabi_llsr): Likewise.
8565         (__aeabi_lasr): Likewise.
8566         (__aeabi_llsl): Likewise.
8567         (bpabi.S): Include it.
8568         * config/arm/libgcc-bpabi.ver: New file.
8569         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
8570         (LINK_SPEC): Remove.
8571         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
8572         __aeabi_ulcmp.
8573         * config/arm/t-bpabi: New file.
8574         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
8575         (TARGET_LIB_INT_CMP_BIASED): Likewise.
8576
8577 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
8578
8579         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
8580         * config/rs6000/rs6000.md (clrmemsi): New pattern.
8581         * config/rs6000/rs6000.c (expand_block_clear): New function.
8582         (expand_block_move): Convert alignment to bits.  Use SImode and
8583         HImode for unaligned addresses if not STRICT_ALIGNMENT.
8584
8585 2004-08-10  Caroline Tice  <ctice@apple.com>
8586
8587         * varasm.c (unlikely_section_label): New global variable.
8588         (unlikely_text_section_name): New global variable.
8589         (text_section):  Remove alignment statement.
8590         (unlikely_text_section): Remove alignment statement; use
8591         unlikely_section_label rather than hard-coded string.
8592         (assemble_start_function): Initialize unlikely_section_label and
8593         unlikely_text_section_name;  make sure cold section is properly
8594         aligned at start of function; output unlikely_section_label if
8595         appropriate.
8596
8597 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
8598
8599         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
8600         * config/s390/s390.c (s390_canonicalize_comparison): New function.
8601         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
8602         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
8603         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
8604         ("*tmqi_mem"): Remove SUBREG from pattern.
8605         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
8606         ("*andsi3_cconly"): Likewise.
8607
8608 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8609
8610         PR target/16909
8611         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
8612
8613 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
8614
8615         * doc/sourcebuild.texi (compat testing): Document available test
8616         framework commands.  Use the preferred spelling of DejaGnu.
8617
8618 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
8619
8620         * lambda.h: Add matrix type, and prototypes for remainder of
8621         matrix and vector functions.
8622         (lambda_vector_mult_const): New function.
8623         (lambda_vector_negate): Ditto.
8624         (lambda_vector_add): Ditto.
8625         (lambda_vector_add_mc): Ditto.
8626         (lambda_vector_copy): Ditto.
8627         (lambda_vector_zerop): Ditto.
8628         (lambda_vector_equal): Ditto.
8629         (lambda_vector_min_nz): Ditto.
8630         (lambda_vector_first_nz): Ditto.
8631         (lambda_vector_matrix_mult): Ditto.
8632         * lambda-mat.c: New file.
8633         * Makefile.in (lambda-mat.o): New.
8634
8635 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
8636
8637         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
8638         after linking stmt into the program.
8639         (bsi_remove): Don't call modify_stmt.
8640         * tree-complex.c (update_complex_assignment,
8641         expand_complex_comparison): Call modify_stmt after changing the stmt.
8642         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
8643         removing the stmt.
8644         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
8645         the stmt, and only if needed.
8646         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
8647         expression.
8648         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
8649         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
8650         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
8651         (eliminate_redundant_computations): Don't pass an annotation. Call
8652         modify_stmt rather than setting the annotation directly.
8653         (record_equivalences_from_stmt): Remove unused local 'j'.
8654         (cprop_operand): Take a stmt rather than an annotation as a parameter.
8655         Call modify_stmt.
8656         (cprop_into_stmt): Pass stmt rather than annotation.
8657         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
8658         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
8659         modify_stmt.
8660         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
8661
8662 2004-08-10  Jason Merrill  <jason@redhat.com>
8663
8664         PR middle-end/16948
8665         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
8666         the RESULT_DECL.
8667
8668 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
8669
8670         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
8671         hash function.
8672
8673 2004-08-10  Roger Sayle  <roger@eyesopen.com>
8674
8675         * config/mips/mips.md: New reciprocal square root patterns that
8676         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
8677
8678 2004-08-10  Paul Brook  <paul@codesourcery.com>
8679
8680         * config/arm/arm-protos.h (arm_set_return_address,
8681         thumb_set_return_address): Add prototypes.
8682         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
8683         * config/arm/arm.c (arm_compute_func_type,
8684         use_return_insn, arm_compute_save_reg0_reg12_mask,
8685         arm_compute_save_reg_mask, arm_output_function_prologue,
8686         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
8687         current_function_calls_eh_return.
8688         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
8689         old eh code.
8690         (arm_set_return_address, thumb_set_return_address): New functions.
8691         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
8692         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
8693         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
8694         (epilogue): Use the stackadj register.
8695         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
8696
8697 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
8698
8699         PR target/3144
8700         * expr.c (move_by_pieces_ninsns): Add max_size argument.
8701         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
8702         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
8703         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
8704         but using MOVE_RATIO.
8705         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
8706         (can_store_by_pieces): Change max_size type to unsigned int.
8707         (store_by_pieces_1): Likewise.  Pass max_size to
8708         move_by_pieces_ninsns.
8709         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
8710         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
8711         to move_by_pieces_ninsns.
8712         (STORE_BY_PIECES_P): Define.
8713         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
8714         to move_by_pieces_ninsns.
8715         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
8716
8717         * config/i386/i386.h (CLEAR_RATIO): Define.
8718
8719 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
8720
8721         * expr.c (expand_expr_real_1): Add back code that was not dead.
8722
8723 2004-08-09  Andrew Pinski  <apinski@apple.com>
8724
8725         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
8726         which is found to be compatible before returning the aliasing set.
8727
8728 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
8729
8730         * ggc-zone.c (struct alloc_zone): Add statistics counters.
8731         (always_collect): New flag.
8732         (ggc_alloc_zone_1): Update statistics support.  Don't include
8733         overhead in allocated counter.
8734         (sweep_pages): Update allocated counter for large pages.  Don'y
8735         include overhead.
8736         (ggc_collect_1): Always collect.
8737         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
8738         whether to collect.
8739         (SCALE, LABEL): New macros.
8740         (ggc_print_statistics): Add statistics support.
8741
8742 2004-08-09  Roger Sayle  <roger@eyesopen.com>
8743
8744         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
8745         (init_expmed): Fix potential overrun problem with "all.reg".
8746         (expand_sdiv2_pow2): Add an alternate implementation for signed
8747         division, if the target provides a suitable conditional move insn.
8748
8749 2004-08-09  Paul Brook  <paul@codesourcery.com>
8750         Richard Henderson  <rth@redhat.com>
8751
8752         * unwind-dw2.c (uw_install_context_1): Update target saved stack
8753         pointer.
8754
8755 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
8756
8757         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
8758         Check DATA limit only if there's no AS limit.  Ignore insanely
8759         low DATA limits.
8760         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
8761         but take care that the AS limit isn't overrun.
8762         * doc/invoke.texi: Update documentation of min-heapsize parameter.
8763
8764 2004-08-09  Jeff Law  <law@redhat.com>
8765
8766         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
8767         (tree-ssa-threadupdate.o): Add dependencies.
8768         * tree-ssa-threadupdate.c: New file.
8769         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
8770         (rewrite_vars_out_of_ssa): Remove prototype.
8771         (cleanup_tree_cfg): Returns a bool.
8772         * tree.h (thread_through_all_blocks): Prototype.
8773         * tree-outof-ssa.c  (SSANORM_*): Move into here.
8774         (remove_ssa_form): Now static.
8775         (rewrite_vars_out_of_ssa): Kill.
8776         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
8777         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
8778         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
8779         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
8780         anything was changed.
8781         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
8782         from the PHI's annotation rather than the edge associated with
8783         the new argument.
8784         * tree-ssa-dom.c (redirection_edges): Kill.
8785         (redirect_edges_and_update_ssa_graph): Kill.
8786         (tree_ssa_dominator_optimize): Do not reset forwardable flag
8787         for blocks anymore.  Do not initialize redirection_edges.
8788         Call thread_through_all_blocks.  Simplify code for cleanup
8789         of the CFG and iterating.  No longer call cleanup_tree_cfg
8790         outside the iteration loop.
8791         (thread_across_edge): No longer mess with forwardable blocks.
8792
8793 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
8794
8795         * explow.c (memory_address): Use memory_address_p.
8796         * recog.c (general_operand): Likewise.
8797         * regrename.c: No need to define REG_OK_STRICT.
8798
8799 2004-08-09  Steven Bosscher  <stevenb@suse.de>
8800
8801         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
8802         New timers.
8803         * gcse.c: Include timevar.h.
8804         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
8805         and global_copy_prop_count.
8806         (local_const_prop_count, local_copy_prop_count): New static globals.
8807         (gcse_main): Set the right timevar for each pass.
8808         (cprop_jump): Increment global_const_prop_count when a constant is
8809         propagated.  Add "GLOBAL" to dump output.
8810         (cprop_insn): Increment global_const_prop_count when a constant is
8811         propagated, or global_copy_prop_count when a copy is propagated.
8812         (do_local_cprop): Likewise for local_const_prop_count and
8813         local_copy_prop_count.
8814         (one_cprop_pass): Initialize const/cprop counters to zero.
8815         Print out results of local and global const/cprop separately.
8816         (bypass_block): Break over-length line.
8817         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
8818         for bb-reorder.o and tracer.o.
8819
8820 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
8821
8822         * Makefile.in (GTFILES): Remove stmt.c
8823         (stmt.o): Do not depend on gt-stmt.h.
8824         * emit-rtl.c (emit_line_note): Do not call
8825         set_file_and_line_for_stmt.
8826         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
8827         do everything.
8828         * function.c (free_after_parsing): Do not free STMT field.
8829         (allocate_struct_function): Do not call init_stmt_for_function.
8830         (assign_stack_temp_for_type): Do not accept values of keep
8831         other than 0 or 1.
8832         (init_temp_slots): Do not initialize removed variables.
8833         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
8834         and X_VAR_TEMP_SLOT_LEVEL fields.
8835         * rtl.h (set_file_and_line_for_stmt): Remove.
8836         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
8837         struct stmt_status, cond_stack, case_stack, nesting_stack,
8838         nesting_depth, emit_locus, set_file_and_line_for_stmt,
8839         same_case_target_p, init_stmt_for_function, emit_nop,
8840         expand_start_cond, expand_start_elseif, expand_start_else,
8841         expand_elseif, expand_end_cond): Remove.
8842         (preserve_subexpressions_p): Remove references to CFUN->STMT.
8843         (expand_start_case, expand_end_case_type): Remove, merge into...
8844         (expand_case): ... this one, including other bits from
8845         expand_expr_real_1.  Inline same_case_target_p.  Turn members
8846         of CASE_STACK into local variables.
8847         (emit_case_bit_tests): Inline same_case_target_p.
8848         (add_case_node): Add HEAD argument, return new head of the list,
8849         do not handle default label here.
8850         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
8851         expand_start_elseif, current_nesting_level, expand_start_case,
8852         expand_end_case_type, expand_end_case, add_case_node,
8853         init_stmt_for_function, expand_elseif): Remove prototypes.
8854         (expand_case): Add prototype.
8855
8856 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
8857
8858         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
8859
8860 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
8861
8862         * expr.c (var_rtx): Remove.
8863         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
8864         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
8865         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
8866         Abort.
8867         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
8868         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
8869         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
8870
8871 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
8872         Ayal Zaks <zaks@il.ibm.com>
8873
8874         * common.opt (freschedule-modulo-scheduled-loops): New flag.
8875         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
8876         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
8877         when -freschedule-modulo-scheduled-loops flag is not specified.
8878         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
8879         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
8880         More accurate placing of insn in row of partial schedule.
8881         (ps_insn_find_column): New function.
8882         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
8883         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
8884         (schedule_region): Use sched_is_disabled_for_current_region_p.
8885         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
8886
8887 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8888
8889         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
8890         change.
8891
8892 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8893
8894         * config/i386/i386.c (ix86_expand_clrmem): Properly call
8895         gen_strset for 64bit target.
8896
8897 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
8898
8899         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
8900
8901 2004-08-07  Jason Merrill  <jason@redhat.com>
8902
8903         Make return in memory explicit.
8904         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
8905         (assign_parm_find_data_types): Remove code for old front end
8906         invisible reference handling.
8907         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
8908         (expand_function_end): Likewise.
8909         * gimplify.c (gimplify_return_expr): Handle a dereferenced
8910         RESULT_DECL.
8911         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
8912         (declare_return_variable): Handle DECL_BY_REFERENCE.
8913         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
8914         (cp_genericize_r): Use convert_from_reference.
8915         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
8916         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
8917
8918         * c-common.c (c_warn_unused_result): Check TREE_USED before
8919         warning about a CALL_EXPR with an unused value.
8920
8921 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
8922
8923         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
8924         to the compiler.  Use -fshort-wchar by default.
8925
8926 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
8927
8928         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
8929         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
8930         threshhold.
8931         * doc/invoke.texi (param): Document min-crossjump-insns.
8932
8933 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
8934
8935         PR c/13282
8936         * c.opt (Wmissing-field-initializers): New option.
8937         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
8938         * c-typeck.c (pop_init_level): Guard the missing field warning with
8939         warn_missing_field_initializers rather than extra_warnings.
8940         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
8941         some of the explanation from...
8942         (-Wextra): ...here.  Say that the missing field warning can be
8943         seperately controlled by -Wmissing-field-initializers.
8944
8945 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
8946
8947         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
8948         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
8949         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
8950         * tree.def (ENTRY_VALUE_EXPR): Remove.
8951
8952 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
8953
8954         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
8955         the places where it is actually needed.  Don't use repz; stosb
8956         for -Os with sufficiently small constant sizes.
8957         For sufficiently small repz; stos{l,q} repeat counts use a sequence
8958         of stos{l,q} instructions instead.
8959
8960 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8961
8962         PR tree-optimization/16807
8963         * loop-iv.c (dump_iv_info): Dump invariants correctly.
8964         (iv_subreg, iv_extend): Express value of invariant purely in
8965         base field.
8966
8967 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
8968
8969         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
8970         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
8971
8972 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
8973
8974         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
8975         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
8976         pre_dec_operand.
8977         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
8978         pattern until reload is finished to allow better code generation
8979         and split them completely into separate instrunctions.
8980         (*andsi3_split): New pattern.
8981
8982 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
8983
8984         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
8985         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
8986         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8987         * tree.h (handle_dll_attribute): Declare.  Test
8988         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8989         * c-common.h (c_determine_visibility): Declare.
8990         * c-common.c (c_determine_visibility): New function.
8991         * c-decl.c (finish_decl): Use it.
8992         (finish_function): Likewise.
8993         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
8994         zero, by default.  Use #if, not #ifdef, to test it.
8995         * config/arm/arm.c (arm_attribute_table): Use
8996         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
8997         #if.
8998         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
8999         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
9000         to 1.
9001         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
9002         * config/i386/i386.c (ix86_attribute_table): Use
9003         handle_dll_attribute for dllimport/dllexport.  Test
9004         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
9005         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
9006         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
9007         it to 1.
9008         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
9009         with #if.
9010         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
9011         it to 1.
9012         * doc/extend.texi (dllexport): Clarify and correct documentation.
9013         (dllimport): Likewise.
9014         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
9015         handle_dll_attribute.
9016
9017 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9018
9019         * tree-ssa-loop-manip.c: New file.
9020         * Makefile.in (tree-ssa-loop-manip.o): Add.
9021         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
9022         Declare.
9023         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
9024         form.
9025         (tree_ssa_loop_done): Verify loop closed ssa form.
9026         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
9027
9028 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9029
9030         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
9031         pa_asm_output_aligned_local): New functions.
9032         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
9033         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
9034         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
9035         pa_asm_output_aligned_common.
9036         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
9037         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
9038         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
9039         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
9040         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
9041         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
9042         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
9043         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
9044         common data.
9045
9046 2004-08-05  Andrew Pinski  <apinski@apple.com>
9047
9048         * objc/objc-act.c (build_objc_string_object): Mark the address
9049         expression as constant.
9050
9051 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
9052
9053         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
9054         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
9055         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
9056
9057 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
9058
9059         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
9060         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
9061         out, and associated obsolete comments.
9062
9063 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
9064
9065         * tree.h (force_fit_type): Return a tree, take three flags.
9066         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
9067         TREE_CONSTANT_OVERFLOW here.
9068         (int_const_binop, const_binop): Adjust.
9069         (size_int_type): Do sign extension here.
9070         (fold_convert_const, optimize_bit_field_compare,
9071         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
9072         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
9073         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
9074
9075 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9076
9077         PR tree-optimization/16864
9078         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
9079         for ssa names without default_def.
9080
9081 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
9082
9083         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
9084         frame pointer, restore eax with an ebp-relative address.
9085
9086 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
9087
9088         PR 14516
9089         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
9090         * c-common.h (make_rtl_for_local_static): Delete.
9091         * c-decl.c (shadow_tag_warned): Clean up comment.
9092         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
9093         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
9094         * c-semantics.c (make_rtl_for_local_static): Delete.
9095         * expr.c (init_block_move_fn): Use set_user_assembler_name.
9096         (init_block_clear_fn): Likewise.
9097         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
9098         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
9099         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
9100         * tree.h (make_decl_rtl): Remove second parameter.
9101         (set_user_assembler_name): New.
9102         * varasm.c (set_user_assembler_name): New.
9103         (make_decl_rtl): Remove second parameter.  Update callers in many
9104         files.
9105
9106 2004-08-05  Adam Nemet  <anemet@lnxw.com>
9107
9108         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
9109         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
9110         to LynxOS 4.0.
9111         * gthr-lynx.h: New file.
9112         * config/lynx-ng.h: Remove file.
9113         * config/lynx.h: Update to LynxOS 4.0.
9114         * config/t-lynx: New file.
9115         * config/i386/lynx-ng.h: Remove file.
9116         * config/i386/lynx.h: Update to LynxOS 4.0.
9117         * config/rs6000/lynxbase.h: Remove file.
9118         * config/rs6000/lynx.h: Update to LynxOS 4.0.
9119         * config/rs6000/t-lynx: New file.
9120         * doc/install.texi (Options specification): Remove reference to
9121         LynxOS from systems where --with-gnu-as makes a difference.
9122
9123 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
9124
9125         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
9126         __UINTMAX_TYPE__.
9127         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
9128         __INTMAX_MAX__.
9129         (c_cpp_builtins): Call it.
9130         * doc/cpp.texi: Update.
9131
9132 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
9133
9134         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
9135         cost.
9136
9137 2004-08-04  Jan Hubicka  <jh@suse.cz>
9138
9139         * basic-block.h (profile_staus): New global variable.
9140         * cfg.c (profile_status): Declare.
9141         (check_bb_profile): Break out from ....; use profile_status
9142         (dump_flow_info): ... here.
9143         * cfgbuild.c (find_basic_blocks): Set profile_status.
9144         * cfgexpand.c (tree_expand_cfg): Likewise.
9145         * predict.c (estimate_probability): Likewise.
9146         * profile.c (branch_prob): Likewise.
9147         * tree-cfg.c (build_tree_cfg): Likewise.
9148         (dump_function_to_file): Use check_bb_profile.
9149         * tree-pretty-print (dump_bb_header): Likewise.
9150         * tree-profile.c (do_tree_profiling): Cleanup.
9151
9152 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
9153
9154         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
9155         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
9156         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
9157         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
9158         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
9159         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
9160         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
9161         (ggc-none.o, errors.o): Move rule to generators section;
9162         correct dependencies.
9163         (min-insn-modes.o): Move rule to generators section; remove
9164         unnecessary explicit command; correct dependencies.
9165         (print-rtl.o, print-rtl1.o): Correct dependencies.
9166         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
9167         (mostlyclean): Update.
9168
9169         * errors.c: Include bconfig.h not config.h.  Correct comment.
9170         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
9171         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
9172         * print-rtl.c: Don't include tm_p.h.
9173
9174         * rtl.h: Move forward-decl of struct function down where it's
9175         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
9176         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
9177
9178 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9179             Jeff Law  <law@redhat.com>
9180
9181         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
9182         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
9183         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
9184         manipulate the duplicated ssa names.
9185         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
9186         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
9187         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
9188         New functions.
9189         (release_ssa_name): Do not release ssa names that may have multiple
9190         definitions.
9191         * tree.h (release_ssa_name_force, mark_for_rewrite,
9192         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
9193         marked_ssa_names): Declare.
9194         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
9195         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
9196         Update call to rewrite_ssa_into_ssa.
9197
9198 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
9199
9200         * defaults.h (TARGET_DECLSPEC): New macro.
9201         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
9202         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
9203         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
9204         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
9205         __declspec support.
9206         (TARGET_DECLSPEC): Define.
9207         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
9208         __declspec support.
9209         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
9210         __declspec support.
9211         (TARGET_DECLSPEC): Define.
9212         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
9213         __declspec support.
9214         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
9215         support.
9216         * doc/tm.texi (TARGET_DECLSPEC): Document.
9217
9218         * doc/extend.texi: Fix typo in comment.
9219
9220 2004-08-04  Paul Brook  <paul@codesourcery.com>
9221
9222         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
9223         (TARGET_CXX): Use it.
9224         * target.h (struct gcc_target): Add cdtor_returns_this.
9225         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
9226         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
9227         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
9228
9229 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
9230
9231         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
9232         low/high pair. Do range checking directly.
9233         (interpret_integer): Adjust.
9234
9235 2004-08-04  Nick Clifton  <nickc@redhat.com>
9236
9237         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
9238         GCC ABI.
9239         * doc/invoke.texi: Document this new switch and also the -mrenesas
9240         switch.
9241
9242 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
9243
9244         * cfglayout.c (insn_locators_initialize): Update the current
9245         location before initializing a location.
9246
9247 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
9248
9249         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
9250         (dbxout_function_end): Return after emitting the "Lscope" symbol
9251         under the same conditions that this function formerly wasn't called.
9252         Add explanatory comments.
9253
9254         PR 14860
9255         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
9256         on the new decl.
9257
9258         PR 13956
9259         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
9260         functions, broken out of dbxout_block.
9261         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
9262         stabs too, if it contains symbols.  Use the begin_label and
9263         the Lscope label (emitted by dbxout_function_end) for the
9264         range of this block.
9265
9266 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
9267
9268         * doc/install.texi: Update autoconf version requirements.
9269
9270 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
9271
9272         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
9273         * recog.c (general_operand, immediate_operand, nonmemory_operand)
9274         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
9275         * regclass.c (record_reg_classes): Likewise.
9276         * reload.c (find_reloads): Likewise.
9277         * reload1.c (reload): Likewise.
9278
9279 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
9280
9281         * gensupport.c (init_md_reader_args_cb): Renamed from
9282         init_md_reader_args.  Add third option, callback function for
9283         parsing program-specific options.  Add diagnosis of incorrect
9284         number of input files.
9285         (init_md_reader): Fold into init_md_reader_args_cb.
9286         (init_md_reader_args): Now a thin wrapper around
9287         init_md_reader_args_cb.
9288         * gensupport.h: Update prototypes.
9289
9290         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
9291         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
9292         * genrecog.c: No need to diagnose lack of an input file;
9293         init_md_reader_args will handle it.
9294         * genconditions.c: Likewise, and use init_md_reader_args.
9295         * genconstants.c: Likewise, and no need to call read_md_rtx.
9296
9297 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
9298
9299         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
9300         declarations.
9301
9302 2004-08-03  Mike Stump  <mrs@apple.com>
9303
9304         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
9305         for frameworks.
9306         * doc/invoke.texi (Darwin Options): Update to reflect above.
9307
9308 2004-08-03  Roger Sayle  <roger@eyesopen.com>
9309
9310         PR middle-end/16790
9311         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
9312         truncations, not just global truncations.
9313
9314 2004-08-03  Andrew Pinski  <apinski@apple.com>
9315
9316         PR bootstrap/16865
9317         * loop-iv.c (simplify_using_assignment): Initialize lhs.
9318
9319 2004-08-03  Paul Brook  <paul@codesourcery.com>
9320
9321         * gcc/doc/install.texi: Document MPFR requirement.
9322
9323 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
9324
9325         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
9326         and mmap() explicitly instead of relying on preset autoconf cache
9327         variables.
9328         * configure: Regenerate.
9329
9330 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
9331
9332         PR target/16570
9333         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
9334         to tmake_file.
9335         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
9336         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
9337         to tmake_file.
9338
9339         * config/i386/t-gmm_malloc: New file.
9340         * config/i386/t-pmm_malloc: Likewise.
9341
9342         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
9343
9344 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
9345             Tanguy Fautrà <tfautre@pandora.be>
9346
9347         * config/i386/pmm_malloc.h: New file.
9348
9349 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
9350
9351         * config/i386/gmm_malloc.h: New file.
9352
9353 2004-08-03  Dale Johannesen  <dalej@apple.com>
9354
9355         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
9356         * c-common.c: Include opts.h.
9357         (c_common_get_alias_set): Fix check for a single input file.
9358         * toplev.c: Remove current_file_decl.
9359         * tree.h: Ditto.
9360
9361 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
9362
9363         * config.gcc (arm*-*-symbianelf*): New target.
9364         * config/arm/symbian.h: New file.
9365
9366         * gthr-gnat.c: Add visibility #pragmas.
9367         * gthr-gnat.h : Likewise.
9368         * gthr.h: Likewise.
9369         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
9370         (__ffsDI2): Likewise.
9371         (__clzSI2): Likewise.
9372         (__ctzSI2): Likewise.
9373         (__ctzDI2): Likewise.
9374         (__popcountSI2): Likewise.
9375         (__popcountDI2): Likewise.
9376         (__paritySI2): Likewise.
9377         (__parityDI2): Likewise.
9378         * libgcc2.h: Add visibility #pragmas.
9379         (__clzDI2): Add prototype.
9380         (__clzSI2): Likewise.
9381         (__ctzSI2): Likewise.
9382         (__ffsDI2): Likewise.
9383         (__ffsSI2): Likewise.
9384         (__ctzDI2): Likewise.
9385         (__popcountSI2): Likewise.
9386         (__popcountDI2): Likewise.
9387         (__paritySI2): Likewise.
9388         (__parityDI2): Likewise.
9389         * unwind-dw2-fde.h: Add visibility #pragmas.
9390         * unwind.h: Likewise.
9391
9392 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
9393             Dale Johannesen  <dalej@apple.com>
9394             Roger Sayle  <roger@eyesopen.com>
9395
9396         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
9397         constants more accurately.  Adjust costs for FMA instructions.
9398         Add cases for most logical and float operations.  Recurse into
9399         most operands.
9400
9401 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
9402
9403         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
9404
9405 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
9406
9407         * ra-build.c (conflicts_between_webs): For webs that cross a call add
9408         conflicts to regs_invalidated_by_call.
9409
9410 2004-08-03  Paul Brook  <paul@codesourcery.com>
9411
9412         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
9413
9414 2004-08-03  Jan Hubicka  <jh@suse.cz>
9415
9416         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
9417         ARRAY_REF argument.
9418
9419 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
9420
9421         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
9422         arm968es, arm10e, arm1020e, arm1022e.
9423         * invoke.texi: Update list of ARM cores.
9424         * arm-tune.md: Regenerate.
9425
9426 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
9427
9428         * arm/gentune.sh: New file.
9429         * arm/t-arm: New file.
9430         * arm/arm-tune.md: New file (autogenerated).
9431         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
9432         * arm.md (attribute tune): Delete.  Include arm-tune.md.
9433
9434 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
9435
9436         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
9437         penultimate parameter.  All callers adjusted.
9438         (struct prefix_list): Remove used_flag_ptr.
9439         (find_a_file): Do not set *pl->used_flag_ptr.
9440         (warn_B, warn_std_ptr): Remove.
9441
9442 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
9443             Mostafa Hagog <mustafa@il.ibm.com>
9444
9445         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
9446
9447 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
9448
9449         * dwarf2out.c (output_call_frame_info): Don't change data format
9450         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
9451         label.  Use 'true' not '1'.
9452         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
9453         required.
9454
9455 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9456
9457         * gdbinit.in: Reflect previous changes to rtunion_def.
9458
9459 2004-08-02  Roger Sayle  <roger@eyesopen.com>
9460
9461         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
9462         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
9463
9464 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9465
9466         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
9467         vec_p_reserve.
9468         * langhooks.h (lang_hooks::builtin_function): Rename parameter
9469         from "class" to "bt_class".
9470
9471 2004-08-02  Paul Brook  <paul@codesourcery.com>
9472
9473         PR rtl-optimization/15068
9474         * flow.c (init_propagate_block_info): Check condition is reversible.
9475
9476 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9477
9478         * gengtype.h (options::info): Change type to const char *.
9479         (enum gc_used_enum): Move out of struct type scope.
9480         * gengtype.c (create_option): Convert initializer for option::info to
9481         appropiate type.
9482         (adjust_field_type, walk_type, write_func_for_structure,
9483         write_root, write_roots): Remove pointless cast.
9484
9485 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
9486
9487         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
9488
9489 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9490
9491         * rtl.h (union rtunion_def): Have all members  start with the
9492         prefix "rt_".
9493         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
9494         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
9495         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
9496         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
9497         access.
9498         * gengtype.c (adjust_field_rtx_def): Likewise.
9499         * rtlanal.c (loc_mentioned_in_p): Likewise.
9500
9501 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
9502
9503         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
9504         Replace uses of mips/elf64.h with mips/elf.h
9505         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
9506         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
9507         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
9508         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
9509         (HANDLE_SYSV_PRAGMA): Delete.
9510         (ASM_OUTPUT_DEF): Fix formatting.
9511         * config/mips/elf64.h: Delete.
9512
9513 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
9514
9515         * config/ia64/ia64.c (got_symbolic_operand): Do require a
9516         symbol+offset operand to have its offset be zero mod 0x3fff
9517         when GOT entries are in use.  Clarify logic in SYMBOL_REF
9518         case.  Clarify comments.
9519         (ia64_expand_load_address): Split a symbol+offset load when
9520         the offset is nonzero mod 0x3fff, not 0x1fff.
9521
9522 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
9523
9524         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
9525         if trying to *store* to a non-offsettable address.
9526         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
9527         a nonoffsettable address.
9528         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
9529         Clean up.
9530         (movti_string): Don't move GPRs to a nonoffsettable address.
9531         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
9532
9533 2004-08-02  Ben Elliston  <bje@au.ibm.com>
9534
9535         PR target/16155
9536         * config/rs6000/altivec.h: Replace typeof with __typeof__.
9537
9538 2004-08-01  Richard Henderson  <rth@redhat.com>
9539
9540         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
9541         variable sized types.
9542
9543 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
9544
9545         * doc/invoke.texi: In the MIPS options section, remove the passage
9546         saying that -mexplicit-relocs is usually disabled for -mabicalls
9547         -fno-unit-at-a-time.
9548         * config/mips/mips.c (override_options): Remove the code that enforced
9549         this rule.
9550
9551 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
9552
9553         * config/mips/mips.md (cprestore): Provide two alternatives, one for
9554         an in-range offset and one for an out-of-range offset.  Wrap the latter
9555         in .set macro/.set nomacro if it's inside a .set nomacro block.
9556
9557 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
9558
9559         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
9560         (mips_restore_gp): Declare.
9561         * config/mips/mips.c (mips_add_offset): Add a scratch register
9562         argument.  Reimplement in rtl only, reusing MIPS16 logic from
9563         mips_output_mi_thunk.
9564         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
9565         to mips_add_offset.
9566         (mips_gp_save_slot): Delete.
9567         (mips_restore_gp): New function.
9568         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
9569         * config/mips/mips.md (exception_receiver): Turn into a
9570         define_insn_and_split.  Use mips_restore_gp to do the split.
9571         (call_internal, call_value_internal, call_value_multiple_internal): Use
9572         mips_restore_gp to restore $gp.
9573
9574 2004-07-31  Andrew Pinski  <apinski@apple.com>
9575
9576         PR other/16842
9577         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
9578
9579 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
9580
9581         * c-decl.c (diagnose_mismatched_decls): Give error for external
9582         redeclaration of identifier declared with no linkage, not just
9583         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
9584         error for redeclaration with no linkage.
9585
9586 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
9587             Fariborz Jahanian <fjahanian@apple.com>
9588
9589         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
9590         non-offsettable addresses even for DImode.
9591         (rs6000_split_multireg_move): Cope with non-offsettable addresses
9592         being moved into multiple GPRs.
9593
9594         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
9595         to 64.
9596         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
9597         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
9598         to 128.
9599         * config/rs6000/darwin-ldouble.c (isless): New macro.
9600         (inf): New macro.
9601         (nonfinite): New macro.
9602         (FPKINF): Delete.
9603         (_xlqadd): Completely rewrite.
9604         (_xlqmul): Correct overflow handling.
9605         (_xlqdiv): Correct overflow handling.
9606         * config/rs6000/darwin-ldouble-format: New file.
9607
9608 2004-07-30  Roger Sayle  <roger@eyesopen.com>
9609             Richard Henderson  <rth@redhat.com>
9610
9611         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
9612         9 into the equivalent lea instruction.
9613
9614 2004-07-30  Richard Henderson  <rth@redhat.com>
9615
9616         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
9617         with DECL_INITIAL if fb_lvalue.
9618         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
9619         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
9620         with <Cxxx>.
9621         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
9622
9623 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
9624
9625         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
9626         pointer escapes through a function call, assume that the
9627         callee will dereference it.
9628         (add_pointed_to_var): Assume that VALUE is always an
9629         ADDR_EXPR.
9630         (collect_points_to_info_r): Only call add_pointed_to_var if
9631         the value is an ADDR_EXPR.
9632
9633 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
9634
9635         * tree-ssa-alias.c (create_alias_map_for): Do not get the
9636         alias set of the inner type of ARRAY_TYPEs.
9637
9638 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
9639
9640         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
9641         setting a non-register to UNDEFINED right before the call to
9642         set_lattice_value.
9643
9644 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9645
9646         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
9647
9648 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
9649
9650         * tree-ssa.c (verify_flow_sensitive_alias_info): When
9651         comparing points-to sets of different pointers, make sure the
9652         second pointer is actually referenced in the code.
9653
9654 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
9655
9656         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
9657         (got_symbolic_operand): Remove unreachable code.
9658         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
9659         setjmp_operand; add entry for tls_symbolic_operand.
9660         * config/ia64/ia64-protos.h: Remove all prototypes of
9661         predicate functions.
9662
9663 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
9664
9665         * c-common.h (lang_post_pch_load): New variable.
9666         * c-pch.c (lang_post_pch_load): Define it.
9667         (c_common_read_pch): Use it.
9668         * cgraphunit.c (record_call_1): Give the front end a chance to
9669         record additional needed entities when a variable is marked as
9670         needed.
9671         * tlink.c (recompile_files): Robustify.
9672         (scan_linker_output): If a symbol is assigned to a file,
9673         but after recompilation is not present there, issue an error
9674         message.
9675
9676 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9677
9678         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
9679         Take orig_loop argument and pass it to set_level.
9680         (schedule_sm): Pass the correct orig_loop to force_move_till.
9681
9682 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9683
9684         * cfgloop.c (update_latch_info): Update dominator of the new block.
9685         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
9686         info.
9687         * dominance.c (verify_dominators): Check that the dominance tree is
9688         connected.
9689         (recount_dominator): Ignore unreachable blocks.
9690         (iterate_fix_dominators): Cleanup old dominance information before
9691         recomputing it.
9692
9693 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
9694
9695         * tree-ssa-operands.c (get_expr_operands): Revert changes
9696         to ADDR_EXPR processing introduced by:
9697             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9698             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
9699
9700 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
9701
9702         * doc/implement-c.texi: Add C90 subclause references.  Point to
9703         preprocessor documentation instead of duplicating it.  Add points
9704         only present in C90.  Fill in documentation for all points.
9705
9706 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9707
9708         * pa.c (output_movb): Correct typo.
9709
9710 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
9711
9712         * ra.h (single_reg_in_regclass): Declare.
9713         * ra.c (single_reg_in_regclass): Define.
9714         (first_hard_reg): New.
9715         (init_ra): Initialize single_reg_in_regclass.
9716         * ra-colorize.c (ok_class): New.
9717         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
9718
9719 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
9720
9721         * gcov-io.h: Allow zero tag as EOF indicator.
9722         (gcov_is_eof): Remove.
9723         (gcov_truncate): Remove.
9724         * gcov-io.c (gcov_seek): Always SEEK_SET.
9725         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
9726         EOF tag.
9727         * coverage.c (read_counts_file): Don't use gcov_is_eof.
9728         * gcov-dump.c (dump_file): Likewise.
9729         * gcov.c (read_graph_file, read_count_file): Likewise.
9730
9731         * c-decl.c (complete_array_type): Don't gratuitously copy
9732         maxindex.  Check it always has a type.
9733
9734 2004-07-29  Steven Bosscher  <stevenb@suse.de>
9735
9736         * rtl.c (currently_expanding_to_rtl): New.
9737         * rtl.h (currently_expanding_to_rtl): Export it.
9738         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
9739
9740         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
9741         inliner hack.
9742         * config/sh/sh.c: Replace rtx_equal_function_value_matters
9743         with currently_expanding_to_rtl.
9744         * config/sh/sh.md: Likewise.
9745         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
9746
9747 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
9748
9749         Introduce sh2a support.
9750         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
9751         * config.gcc: Build multilibs for sh2a and sh2a-single by
9752         default.
9753         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
9754         default.  Split their tests out of the corresponding SH4
9755         multilibs.
9756         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
9757         multilibs for SH2a.
9758         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
9759         * config.gcc: Handle sh2a multilibs and cpu selection.
9760         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
9761         * config/sh/t-mlib-sh2a: New.
9762         * config/sh/t-mlib-sh2a-nofpu: New.
9763         * config/sh/t-mlib-sh2a-single: New.
9764         * config/sh/t-mlib-sh2a-single-only: New.
9765         2004-07-09  Nick Clifton  <nickc@redhat.com>
9766         Issue 43400
9767         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
9768         -ml and -m2a are used together.
9769         2004-03-23  DJ Delorie  <dj@redhat.com>
9770         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
9771         when we have a double-sized FPU.
9772         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
9773         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
9774         is set.
9775         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
9776         -msh2a-single and -msh2a-single-only
9777         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
9778         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
9779         is set.
9780         2004-02-20  DJ Delorie  <dj@delorie.com>
9781         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
9782         2004-02-20  Fred Fish <fnf@redhat.com>,
9783         Corinna Vinschen <vinschen@redhat.com>
9784         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
9785         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
9786         2004-02-18  DJ Delorie  <dj@redhat.com>
9787         * config/sh/sh.c (broken_move): Add support for movi20.
9788         * config/sh/sh.h: Likewise.
9789         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
9790         * config/sh/sh.md (udivsi3_sh2a): New.
9791         (udivsi3): Call it.
9792         (divsi3_sh2a): New.
9793         (divsi3): Call it.
9794         (mul_r): New.
9795         (ashlsi3_sh2a): New.
9796         (ashrsi3_sh2a): New.
9797         (lshrsi3_sh2a): New.
9798         (movsi_i): Disable for sh2a.
9799         (movsi_ie): Add movi20.
9800         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
9801         sh2a, for -m2a-nofpu mode.
9802         2004-02-13  DJ Delorie  <dj@redhat.com>
9803         * config/sh/lib1funcs.asm: Handle double vs single better.
9804         * config/sh/sh.h: Likewise.
9805         2004-02-09  DJ Delorie  <dj@redhat.com>
9806         * config/sh/crt1.asm: Add support for sh2a.
9807         * config/sh/elf.h: Likewise.
9808         * config/sh/lib1funcs.asm: Likewise.
9809         * config/sh/sh.c: Likewise.
9810         * config/sh/sh.md: Likewise.
9811         * config/sh/sh.h: Likewise.
9812         * config/sh/t-sh: Likewise.
9813
9814 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
9815
9816         * config/frv/frv.md (movqi_internal, movhi_internal,
9817         movsi_internal): Add backup alternatives for memory inputs.
9818
9819 2004-07-28  Matt Austern  <austern@apple.com>
9820
9821         * config/darwin.c (darwin_one_byte_bool): New global variable.
9822         * config/darwin.h (darwin_one_byte_bool): Declare.
9823         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
9824         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
9825         value of darwin_one_byte_bool.
9826         * doc/invoke.texi: Document -mone-byte-bool flag.
9827
9828 2004-07-28  Eric Christopher  <echristo@redhat.com>
9829
9830         * c-common.c (c_common_unsafe_for_reeval): Delete.
9831         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
9832         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
9833         * calls.c (fix_unsafe_tree): Delete.
9834         (expand_call): Delete code which used above.
9835         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
9836         * expr.c (expand_expr_real_1): Ditto.
9837         * fold-const.c (non_lvalue): Ditto.
9838         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
9839         (lhd_unsafe_for_reeval): Ditto.
9840         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
9841         * langhooks.h (unsafe_for_reeval): Ditto.
9842         (unsave_expr_now): Adjust comment.
9843         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
9844         (estimate_num_insns_1): Ditto.
9845         * tree-pretty-print.c (dump_generic_node): Ditto.
9846         * tree.c (expr_align): Ditto.
9847         (unsave_expr): Delete.
9848         (unsafe_for_reeval): Ditto.
9849         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
9850         * tree.def (UNSAVE_EXPR): Delete.
9851         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
9852
9853 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
9854
9855         * tree.h (enum tls_model): Move ...
9856         * coretypes.h: ... here.
9857
9858 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
9859
9860         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
9861
9862 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
9863
9864         * cse.c (validate_canon_reg): New function, split out from...
9865         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
9866
9867 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
9868
9869         * tree-ssa-alias.c (maybe_create_global_var): Don't just
9870         return if .GLOBAL_VAR has been created.
9871
9872 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
9873
9874         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
9875         every variable that may have aliases, not just tags.
9876
9877 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
9878
9879         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
9880         move_from_CR_eq_bit.
9881         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
9882
9883
9884         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
9885         e500_flip_eq_bit.
9886
9887         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
9888         output_e500_flip_eq_bit.
9889
9890         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
9891         output_e500_flip_eq_bit.
9892         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
9893         output_e500_flip_eq_bit.
9894         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
9895         (print_operand): case D.  Get to EQ bit.
9896
9897 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
9898
9899         * gcov.c (function_summary): Add missing \n.
9900
9901 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
9902
9903         Introduce sh4a support.
9904         * config.gcc: Handle sh4a multilibs and cpu selection.
9905         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
9906         * config/sh/t-mlib-sh4a: New.
9907         * config/sh/t-mlib-sh4al: New.
9908         * config/sh/t-mlib-sh4a-nofpu: New.
9909         * config/sh/t-mlib-sh4a-single: New.
9910         * config/sh/t-mlib-sh4a-single-only: New.
9911         2004-02-20  DJ Delorie  <dj@redhat.com>
9912         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
9913         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
9914         2003-08-22  Eric Christopher  <echristo@redhat.com>
9915         * config/sh/sh4a.md: Update for chip errata.
9916         2003-08-07  Eric Christopher  <echristo@redhat.com>
9917         * config/sh/sh4a.md: New file. sh4a processor description.
9918         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
9919         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
9920         of -m4a-nofpu.
9921         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
9922         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
9923         * doc/invoke.texi (SH Options): Document -m4al.
9924         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
9925         * config/sh/sh.c (expand_block_move): Remove commented-out code
9926         checked in by mistake.
9927         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
9928         single elements from SFmode vectors.
9929         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
9930         register.
9931         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
9932         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
9933         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
9934         sh_fsca_int2sf): Remove variable declarations.
9935         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
9936         sh_fsca_int2sf): New functions.
9937         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
9938         sh_fsca_int2sf_rtx): New static variables.
9939         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
9940         sh_fsca_int2sf): Declare.
9941         * config/sh/sh.md: Adjust.
9942         * doc/invoke.texi (SH Options): Document new options.
9943         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
9944         compatibility from SH4 code.
9945         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
9946         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
9947         early.
9948         (memory_movsrc_operand): Renamed to...
9949         (unaligned_load_operand): ... this.  Simplified.
9950         * config/sh/sh.h (PREDICATE_CODES): Adjust.
9951         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
9952         input operand to SImode, and adjust the others.  Introduce
9953         post-increment by peephole.
9954         * config/sh/sh.c (expand_block_move): Give the target address the
9955         same mode as the temp reg.
9956         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
9957         copying.
9958         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
9959         Introduce support for SH4a.
9960         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
9961         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
9962         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
9963         sh_fsca_int2sf): New.
9964         (sh_init_builtins): Initialize them.
9965         (print_operand): Support `d'.
9966         (expand_block_move): Use movua if src is misaligned.
9967         (memory_movsrc_operand): New.
9968         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
9969         and one of the SH4 macros.
9970         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
9971         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
9972         SELECT_SH4A_SINGLE): New.
9973         (TARGET_NONE): Add SH4A_BIT.
9974         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
9975         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
9976         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
9977         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
9978         (enum processor_type): Added PROCESSOR_SH4A.
9979         (PREDICATE_CODES): Add memory_movsrc_operand.
9980         * config/sh/sh.md: Removed unused variables.
9981         (attr cpu): Add sh4a.
9982         (attr type): Add movua, fsrra and fsca.
9983         (prefetch): New, for SH4.
9984         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
9985         (toggle_sz): Set type to fp.
9986         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
9987         (movua, extv, extzv): New.
9988         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
9989         and 4a-single-only.
9990
9991 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
9992
9993         * tree-optimize.c (init_tree_optimization_passes): Schedule
9994         pass_may_alias right after the program is renamed into SSA.
9995         * tree-pass.h (PROP_alias): Define.
9996         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
9997         * tree-sra.c (pass_sra): Likewise.
9998         * tree-ssa-ccp.c (pass_ccp): Likewise.
9999         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
10000         * tree-ssa-dce.c (pass_dce): Likewise.
10001         * tree-ssa-dom.c (pass_dominator): Likewise.
10002         * tree-ssa-dse.c (pass_dse): Likewise.
10003         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
10004         * tree-ssa-loop-ch.c (pass_ch): Likewise.
10005         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
10006         * tree-ssa-pre.c (pass_pre): Likewise.
10007         * tree-tailcall.c (pass_tail_recursion): Likewise.
10008         * tree-ssa.c (pass_redundant_phi): Likewise.
10009         * tree-ssa-alias.c (aliases_computed_p): Remove.
10010         Update all users.
10011         (init_alias_info): Do not mark all type tags for renaming
10012         unconditionally.
10013         Clear may_aliases from every symbol.
10014         (setup_pointers_and_addressables): If a pointer has not been
10015         dereferenced and it had a type tag, clear it and mark the old
10016         tag for renaming.
10017
10018 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
10019
10020         PR tree-optimization/16705
10021         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
10022         .GLOBAL_VAR.
10023
10024 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10025
10026         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
10027         check.
10028
10029         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
10030         don't make another one.
10031
10032         PR optimization/15077
10033         * function.h (struct function): Add field saved_static_chain_decl.
10034         Fix comment for static_chain_decl.
10035         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
10036         * tree-inline.h (save_body): Add new arg.
10037         * tree-optimize.c (tree_rest_of_compilation): Handle saving
10038         static_chain_decl.
10039
10040 2004-07-27  Richard Henderson  <rth@redhat.com>
10041
10042         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
10043         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
10044         is_gimple_addressable.
10045         * tree-gimple.c (is_gimple_addressable): Rename from
10046         is_gimple_addr_expr_arg; accept INDIRECT_REF.
10047         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
10048         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
10049         rename to is_gimple_addressable.
10050
10051 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
10052
10053         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
10054
10055 2004-07-27  Richard Henderson  <rth@redhat.com>
10056
10057         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
10058         before rounding.
10059
10060 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
10061
10062         * libgcc2.c: Change all conditionals testing
10063         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
10064         * libgcc2.h: Likewise.
10065         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
10066         TYPE_PRECISION of float80_type to 80.
10067         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
10068         of fpreg_type and float80_type to 80.
10069         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
10070         * config/m68k/netbsd-elf.h:
10071         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
10072         to evaluate to 80 whenever they would formerly have evaluated to 96.
10073         * config/i386/sco5.h: Remove unnecessary redefinition of
10074         LONG_DOUBLE_TYPE_SIZE.
10075         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
10076         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
10077         XFmode, with a bitsize of 80.  Update commentary.
10078         * config/ia64/ia64-modes.def: Likewise.
10079         * config/m68k/m68k-modes.def: Likewise.
10080
10081 2004-07-27  Steven Bosscher  <stevenb@suse.de>
10082
10083         * cfgexpand.c (tree_expand_cfg): Fix comment.
10084
10085         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
10086         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
10087         Remove.
10088         (prepare_function_start): Don't set rtx_equal_function_value_matters.
10089         * integrate.c (copy_rtx_and_substitute): Don't test for it.
10090         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
10091         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
10092         here again.  Update leading comment.
10093         * rtl.c (rtx_equal_function_value_matters): Remove.
10094         (rtx_equal_p): Don't test for it.
10095         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
10096         Likewise.
10097
10098         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
10099         * rtl.c (note_insn_name): Likewise.
10100         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
10101         * final.c (final_scan_insn): Likewise.
10102
10103         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
10104         * passes.c (rest_of_handle_eh): Do it here.
10105
10106         * stmt.c (struct nesting): Remove struct nesting block member.
10107         (struct stmt_status): Remove x_block_start_count field.
10108         (current_block_start_count): Remove.
10109
10110 2004-07-27  Brian Booth  <bbooth@redhat.com>
10111
10112         * tree-optimize.c (register_one_dump_file): Update condition that uses
10113         static_pass_number.
10114         (dup_pass_1): Replace with...
10115         (next_pass_1): This.
10116         (NEXT_PASS): Call next_pass_1.
10117         (DUP_PASS): Remove.
10118         (init_tree_optimization_passes): Remove uses of DUP_PASS.
10119         (execute_one_pass): Update condition that uses
10120         static_pass_number.
10121         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
10122         integer.
10123
10124 2004-07-27  Nick Clifton  <nickc@redhat.com>
10125
10126         * config/m32r/m32r.c: Include integrate.h in order to get the
10127         prototype for get_hard_reg_initial_val().
10128
10129         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
10130         and tidy up indentation.
10131         (final_presence_set): Use absence_set instead, so that if there is
10132         nothing in the "o" pipe the "s" pipe can be scheduled.
10133
10134 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
10135
10136         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
10137         don't have PT_VARS nor PT_MALLOC set.
10138         Clear name tag from pointers that have not been dereferenced.
10139         (set_pt_anything, set_pt_malloc): Forward declare.
10140         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
10141         not type compatibility when determining if a pointer can be
10142         copy propagated.
10143
10144 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
10145
10146         * expr.h (canonicalize_condition, get_condition): Add an int argument.
10147         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
10148         it to check whether the condition is still valid at the jump insn.
10149         * ifcvt.c (noce_get_condition): Likewise.
10150         (noce_get_alt_condition): Update call to canonicalize_condition.
10151         * loop-iv.c (simplify_using_initial_values): Update call to
10152         get_condition.  Remove FIXME.
10153         (check_simple_exit): Update call to get_condition.
10154         * loop-unswitch.c (may_unswitch_on): Likewise.
10155         * loop.c (check_dbra_loop): Likewise.
10156         (canonicalize_condition, get_condition): Add an argument to say whether
10157         the condition must still be valid at INSN.
10158         (get_condition_for_loop): Update call to get_condition.  Require that
10159         the condition be valid at INSN.
10160         * predict.c (estimate_probability): Update call to get_condition.
10161         Remove unused earliest parameter.
10162         (expected_value_to_br_prob): Update call to canonicalize_condition.
10163
10164 2004-07-26  Eric Christopher  <echristo@redhat.com>
10165
10166         * tree-dfa.c (add_referenced_var): Register initializers of global
10167         variables.
10168
10169 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
10170
10171         * config/i386/i386.c (function_arg): Always treat 8-
10172         and 16-byte wide vectors the same, even if MMX/SSE
10173         are disabled.
10174         (contains_128bit_aligned_vector_p): Add comment.
10175
10176 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
10177
10178         * ra.h (enum node_type): Rename to:
10179         (enum ra_node_type).
10180         * ra-colorize.c: Likewise.
10181
10182 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
10183
10184         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
10185         after simplifying the jump.
10186
10187 2004-06-26  Richard Henderson  <rth@redhat.com>
10188
10189         * calls.c (combine_pending_stack_adjustment_and_call): Make
10190         preferred_unit_stack_boundary argument unsigned.  Make
10191         unadjusted_alignment unsigned.
10192         (expand_call): Make preferred_stack_boundary and
10193         preferred_unit_stack_boundary variables unsigned.
10194         * function.c (assign_stack_local_1): Make alignment unsigned.
10195         * function.h (struct function): Make stack_alignment_needed,
10196         preferred_stack_boundary unsigned.
10197         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
10198         (ix86_compute_frame_layout): Make stack_alignment_needed,
10199         preferred_alignment variables unsigned.
10200         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
10201
10202 2004-07-26  Tom Tromey  <tromey@redhat.com>
10203
10204         * tree.h: Fix typo in comment.
10205
10206 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
10207
10208         PR bootstrap/12804
10209         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
10210         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
10211         (ggc_free): Remove incorrect freeing.
10212         (sweep_pages): Advance PP for large pages.  Fix indentation.
10213
10214 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
10215
10216         PR rtl-optimization/16643
10217         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
10218         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
10219         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
10220         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
10221         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
10222         * function.c (thread_prologue_and_epilogue_insns): Likewise.
10223         * rtl.h (tracer): Add a flags parameter.
10224         * tracer.c (tracer): Pass it to cfg_layout_initialise.
10225         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
10226         (rest_of_handle_reorder_blocks): Update calls to tracer and
10227         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
10228         (rest_of_handle_tracer): Pass 0 to tracer.
10229         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
10230
10231 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
10232
10233         PR target/16239
10234         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
10235         f->f.
10236
10237 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
10238
10239         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
10240         (BINFO_BASE_ACCESS): Adjust.
10241         (BINFO_BASE_ACCESS_APPEND): New.
10242         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
10243         * dbxout.c (dbxout_type): Adjust binfo access accessing.
10244         * dwarf2out.c (gen_member_die): Likewise.
10245         * tree-dump.c (deque_and_dump): Likewise.
10246
10247 2004-07-26  Falk Hueffner  <falk@debian.org>
10248
10249         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
10250         costs.
10251
10252 2004-07-25  Roger Sayle  <roger@eyesopen.com>
10253
10254         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
10255         value off of the stack if TARGET_USE_FFREEP.
10256
10257 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
10258
10259         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
10260         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
10261         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
10262         check on invocation of XRESIZEVEC ().
10263
10264 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
10265
10266         * c-common.c (disable_builtin_function): Rename variable n to
10267         new_disabled_builtin.
10268         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
10269         Rename local variable old to old_decl.
10270         * gensupport.c (shift_output_template): Rename parameter old to src.
10271         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
10272         old_rtx and newx to new_rtx.
10273
10274 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
10275
10276         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
10277         of c-pragma.h.
10278         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
10279         enum cpp_ttype.
10280         * c-lex.c: Likewise.
10281
10282 2004-07-25  Roger Sayle  <roger@eyesopen.com>
10283
10284         * fold-const.c (constant_boolean_node): Make extern.
10285         (make_range): Wrap long lines.
10286         (fold_cond_expr_with_comparison): Remove unnecessary call to
10287         pedantic_non_lvalue.  Add missing calls to fold_convert.
10288         (fold_truthop): Add missing calls to fold_convert.
10289         (fold): Likewise.
10290         * tree.h (constant_boolean_node): Add prototype here.
10291         * builtins.c (expand_builtin_strncmp): Add missing calls to
10292         fold_convert.
10293         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
10294         Call fold_convert and constant_boolean_node to correct types.
10295         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
10296         missing call to fold_convert to correct types.
10297
10298 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
10299             Brian Ryner  <bryner@brianryner.com>
10300
10301         PR c++/9283
10302         PR c++/15000
10303         * c-common.c (c_common_attribute_table): Allow
10304         handle_visibility_attribute to be called for types.
10305         (handle_visibility_attribute) When given a type, set the visibility
10306         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
10307         so that we can check later whether the attribute was present. Added
10308         warning if attribute applied to non class type.
10309         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
10310         decls and checking that they are consistent.
10311         * common.opt: Added -fvisibility.
10312         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
10313         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
10314         * flags.h, tree.h: Added assorted support defines for overall patch
10315         * opts.c: Added parsing support for -fvisibility.
10316         * tree.c (build_decl): Set visibility for all decls to be whatever
10317         is in force at that time.
10318         * varasm.c (default_binds_local_p_1): Reworked logic determining
10319         when to make a symbol locally bound.
10320         * doc/invoke.texi: Added documentation for -fvisibility and
10321         -fvisibility-inlines-hidden.
10322
10323 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10324
10325         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
10326         * c-common.c: Add missing casts from void * to other types.
10327         * c-decl.c: Likewise.
10328         * c-format.c: Likewise.
10329         * c-lex.c: Likewise.
10330         * c-pragma.c: Likewise.
10331         * c-typeck.c: Likewise.
10332         * defaults.h: Likewise.
10333         * genconstants.c: Likewise.
10334         * gengtype-lex.l: Likewise.
10335         * genmodes.c: Likewise.
10336         * read-rtl.c: Likewise.
10337         * rtl.c: Likewise.
10338
10339 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10340
10341         * bitmap.c: Use type-safe memory allocation macros from libiberty.
10342         * c-common.c: Likewise.
10343         * c-decl.c: Likewise.
10344         * c-lang.c: Likewise.
10345         * c-lex.c: Likewise.
10346         * c-opts.c: Likewise.
10347         * c-parse.in: Likewise.
10348         * c-typeck.c: Likewise.
10349         * genconditions.c: Likewise.
10350         * gengtype-lex.l: Likewise.
10351         * gengtype-yacc.y: Likewise.
10352         * gengtype.c: Likewise.
10353         * genmodes.c: Likewise.
10354         * gensupport.c: Likewise.
10355         * read-rtl.c: Likewise.
10356         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
10357         htab_find_slot().
10358
10359 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10360
10361         * c-decl.c (groktypename, groktypename_in_param_context): Rename
10362         variable typename to type_name.
10363         * c-lex.c (interpret_float): Likewise.
10364
10365 2004-07-25  Roger Sayle  <roger@eyesopen.com>
10366
10367         * convert.c (convert_to_real, convert_to_integer,
10368         convert_to_complex): Replace calls to build with calls to buildN.
10369         * coverage.c (tree_coverage_counter_ref): Likewise.
10370         * dojump.c (do_jump): Likewise.
10371         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
10372         * emit-rtl.c (component_ref_for_mem_expr,
10373         set_mem_attributes_minus_bitpos): Likewise.
10374         * explow.c (update_nonlocal_goto_save_area): Likewise.
10375         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
10376         expand_mult_add): Likewise.
10377         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
10378         store_constructor, get_inner_reference, expand_expr_real_1,
10379         try_casesi, try_tablejump): Likewise.
10380         * function.c (expand_function_start): Likewise.
10381         * stmt.c (emit_case_bit_tests, expand_end_case_type,
10382         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
10383         * stor-layout.c (place_union_field, layout_type): Likewise.
10384         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
10385         * varasm.c (copy_constant): Likewise.
10386
10387 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10388
10389         * c-common.c: Rename all identifiers named `new'.
10390         * c-decl.c: Likewise.
10391         * gensupport.c: Likewise.
10392         * simplify-rtx.c: Likewise.
10393         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
10394         with XNEW().
10395         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
10396         with XNEWVEC().
10397
10398 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
10399
10400         PR c/15360
10401         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
10402         declarations until after calling pushdecl.
10403         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
10404         "extern" and not on whether the declaration is initialized.
10405
10406 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
10407
10408         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
10409         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
10410         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
10411         "cpplib.h", "c-pragma.h", "c-common.h".
10412         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
10413         (solaris_register_pragmas): New functions.
10414         * config/sol2-protos.h: New file.
10415         * config/sol2.c: New file.
10416         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
10417         (REGISTER_TARGET_PRAGMAS): New macros.
10418         (solaris_pending_aligns, solaris_pending_inits)
10419         (solaris_pending_finis): New variables.
10420         * config/t-sol2 (sol2-c.o): Update dependencies.
10421         (sol2.o): New rule.
10422         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
10423         SUBTARGET_INSERT_ATTRIBUTES.
10424         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
10425         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
10426         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
10427         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
10428         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
10429         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
10430         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
10431         * config/sparc/sparc.c (sparc_attribute_table): New.
10432         (TARGET_INSERT_ATTRIBUTES): Define in terms of
10433         SUBTARGET_INSERT_ATTRIBUTES.
10434         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
10435         is defined.
10436         * doc/extend.texi (Solaris Pragmas): New section.
10437
10438 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10439
10440         * c-common.c: Rename all identifiers named `class' to `cl'.
10441         * c-common.h: Likewise.
10442         * c-parse.in: Likewise.
10443         * c-typeck.c: Likewise.
10444         * genmodes.c: Likewise.
10445         * real.c: Likewise.
10446         * real.h: Likewise.
10447         * recog.c: Likewise.
10448         * recog.h: Likewise.
10449         * regrename.c: Likewise.
10450         * tree.h: Likewise.
10451         * c-common.c (builtin_function_2): Change type of 5th parameter from
10452         int to enum built_in_function. Change type of 8th parameter from int
10453         to bool.
10454         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
10455         with GGC_CNEW().
10456         * c-typeck.c (convert_arguments): Change type of formal_prec from
10457         int to unsigned int.
10458         * genmodes.c (blank_mode): Make a few negative constants unsigned.
10459         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
10460         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
10461         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
10462         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
10463         iterator to for_all_modes () instead of an enum because enums can't
10464         be incremented in C++.
10465
10466
10467 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
10468
10469         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
10470         hard registers.
10471
10472 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10473
10474         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
10475         Handle ARRAY_RANGE_REF like ARRAY_REF.
10476
10477 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
10478
10479         * c-typeck.c (digest_init): Don't allow arrays of signed or
10480         unsigned variants of wchar_t to be initialized by wide string
10481         constants.  Do allow arrays of enumerated types compatible with
10482         wchar_t to be initialized by wide string constants.  Refine tests
10483         distinguishing wide and narrow strings and arrays.  Give specific
10484         error for arrays of other integer types initialized by string
10485         constants.
10486         (output_init_element, process_init_element): Check for
10487         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
10488         initializing with string constants.
10489
10490 2004-07-25  Richard Henderson  <rth@redhat.com>
10491
10492         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
10493         on the RESULT_DECL.
10494         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
10495         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
10496         DECL_IGNORED_P to new decl.
10497
10498 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
10499
10500         * config/ia64/ia64.c (general_xfmode_operand)
10501         (destination_xfmode_operand): Delete.
10502         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
10503         * config/ia64/ia64.md (*movxf_internal): Use general_operand
10504         and destination_operand.
10505
10506 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
10507
10508         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
10509         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
10510
10511 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
10512             Zack Weinberg  <zack@codesourcery.com
10513
10514         PR 16684
10515         * c-decl.c (diagnose_mismatched_decls): Don't issue a
10516         redundant-declaration warning the first time a builtin is
10517         declared explicitly.
10518
10519 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10520
10521         * tree.h (staticp): Change return type to bool.
10522
10523 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10524
10525         * c-common.c (c_staticp): Last episode of the staticp saga.
10526
10527 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10528
10529         * c-common.h (c_staticp): Change return type from int to bool.
10530         * tree.c (staticp): Likewise.
10531         * langhooks.h (staticp): Likewise.
10532
10533 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10534
10535         * langhooks-def.h (lhd_staticp): Change return type from int to
10536         bool in prototype to match definition.
10537
10538 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10539
10540         * system.h (bool, true, false): Don't redefine as preprocessor macros
10541         in C++.
10542
10543 2004-07-24  Roger Sayle  <roger@eyesopen.com>
10544
10545         * expmed.c (init_expmed): A signed modulus by a power of two is
10546         considered cheap if its less than or equal to four instructions.
10547
10548 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10549
10550         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
10551         GGC_CNEWVAR): New macros.
10552
10553 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
10554
10555         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
10556         lists.
10557         * c-decl.c: Likewise.
10558         * c-format.c: Likewise.
10559         * c-lex.c: Likewise.
10560         * c-opts.c: Likewise.
10561         * c-pragma.c: Likewise.
10562         * c-typeck.c: Likewise.
10563         * gencheck.c: Likewise.
10564         * genconditions.c: Likewise.
10565         * genconfig.c: Likewise.
10566         * genflags.c: Likewise.
10567         * gengtype.c: Likewise.
10568         * gensupport.c: Likewise.
10569         * ggc-none.c: Likewise.
10570         * langhooks.c: Likewise.
10571         * statistics.h: Likewise.
10572         * stub-objc.c: Likewise.
10573         * java/decl.c: Likewise.
10574
10575 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
10576
10577         * config/m68k/m68k.c (output_scc_di): Fix coding style.
10578         (symbolic_operand): Fix prototype.
10579         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
10580         * config/m68k/m68k.md: Add constants for registers a0 and sp and
10581         use them, change from the "{...}" syntax to the simpler {...}
10582         syntax.
10583         (*cfv4_extendqisi2): Fix destination predicate.
10584         * config/m68k/m68k-protos.h: Remove various declarations also
10585         generated via PREDICATE_CODES.
10586
10587 2004-07-23  Mike Stump  <mrs@apple.com>
10588
10589         * c-typeck.c (convert_for_assignment): Tightened up pointer
10590         converstions that differ in signedness.
10591
10592 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
10593
10594         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
10595
10596 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10597
10598         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
10599         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
10600
10601         * gimplify.c (gimplify_compound_lval): Check for no handled
10602         operations, rather than checking for explicit list of nodes.
10603         (is_gimple_addr_expr_arg_or_indirect): New function.
10604         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
10605         redundant setting of TREE_INVARIANT.
10606         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
10607         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
10608
10609 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
10610
10611         PR tree-optimization/16688
10612         PR tree-optimization/16689
10613         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
10614         unnecessary initialization of 'tag'.
10615         (get_tmt_for): Check that the new type tag has the same alias
10616         set as the pointed-to type.
10617         (group_aliases): Only regular variables need to be removed
10618         from the alias set of a name tag.
10619         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
10620         propagation if the two types are not compatible.
10621         (merge_alias_info): Rename from replace_ssa_names_ann.
10622         Add more checking.
10623         (replace_exp_1): If both arguments are SSA_NAMEs, check that
10624         the propagation can be done.
10625         Only call merge_alias_info on pointers.
10626         (propagate_value): Likewise.
10627         * tree-ssa-copyrename.c: Include langhooks.h.
10628         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
10629         to do the merging.
10630         Do not coalesce variables with incompatible types.
10631         (rename_ssa_copies): Call replace_ssa_name_symbol.
10632         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
10633         the same type as the underlying _DECL.
10634         * tree-ssanames.c (replace_ssa_name_symbol): New function.
10635         * tree.h (replace_ssa_name_symbol): Declare.
10636
10637 2004-07-23  Richard Henderson  <rth@redhat.com>
10638
10639         PR c++/16277
10640         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
10641         unshare it properly.
10642         (gimplify_modify_expr_rhs): Push assignment from a conditional into
10643         the conditional for all non-register types.
10644
10645 2004-07-23  Richard Henderson  <rth@redhat.com>
10646
10647         * expr.c (expand_expr_real_1): Don't handle non-local variables.
10648         * expr.h (fix_lexical_addr): Remove.
10649         * function.c (NEED_SEPARATE_AP): Remove.
10650         (fix_lexical_addr): Remove.
10651         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
10652         not null decl_function_context.
10653         (create_alias_vars): Likewise.
10654         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
10655         (simple_goto_p): Likewise.
10656         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
10657         * tree-ssa-ccp.c (get_default_value): Likewise.
10658         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
10659         * tree.c (needs_to_live_in_memory): Likewise.
10660         * tree-flow-inline.h (may_be_aliased): Move...
10661         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
10662         when TREE_STATIC variables may be addressable.
10663
10664 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
10665
10666         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
10667
10668 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
10669
10670         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
10671         bitmap contents if GENERATOR_FILE is defined.
10672         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
10673         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
10674
10675 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
10676
10677         * c-decl.c (start_function): Form composite type of function types
10678         rather than copying type from previous prototype declaration.
10679
10680 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
10681
10682         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
10683         the const qualifier for the second argument in the C++ functions.
10684
10685         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
10686         specific pointer types.
10687
10688         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
10689         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
10690         for vector bool and/or vector pixel, add C++ and C missing support.
10691         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
10692         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
10693         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
10694         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
10695         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
10696         missing C++ and C support for vector bool and/or vector pixel.
10697         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
10698         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
10699         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
10700         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
10701         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
10702         C++ and C types used for vector bool and/or vector pixel.
10703         (vec_st, vec_stl): Add C++ support for vector pixel.
10704         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
10705         (vec_all_ne): Add C++ support for vector pixel.
10706
10707         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
10708         (vec_vmulesb): Add missing C++ function.
10709         (vec_perm): Fix type of third argument in C++ function.
10710         (vec_vsum4shs): Fix C++ function name.
10711         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
10712         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
10713         argument passed to the error handler in C macro.
10714         (vec_nmsub): Remove extra parens around argument names in C macro.
10715         (vec_packpx): Add missing parens in C macro.
10716
10717 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
10718
10719         * machmode.def: Remove vector modes.
10720         * config/alpha/alpha-modes.def: Add supported vector modes.
10721         * config/arm/arm-modes.def: Likewise.
10722         * config/frv/frv-modes.def: Likewise.
10723         * config/i386/i386-modes.def: Likewise.
10724         * config/rs6000/rs6000-modes.def: Likewise.
10725         * config/sh/sh-modes.def: Likewise.
10726
10727 2004-07-23  Matthias Klose  <doko@debian.org>
10728
10729         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
10730         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
10731         * config.h: Regenerate.
10732         * configure: Likewise.
10733
10734 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
10735
10736         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
10737         generated SYMBOL_REFs for labels.
10738         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
10739         Change prototype.
10740         (machopic_stub_name): Remove.
10741         (machopic_indirection_name): New function.
10742         (machopic_mcount_stub_name): Likewise.
10743         (machopic_classify_name): Remove.
10744         (machopic_function_base_sym): New function.
10745         (machpoic_classify_symbol): Likewise.
10746         (machopic_classify_ident): Remove.
10747         (machopic_define_ident): Likewise.
10748         (machopic_define_name): Likewise.
10749         (machopic_name_defined_p): Likewise.
10750         (machopic_ident_defined_p): Likewise.
10751         (darwin_strip_name_encoding): Likewise.
10752         (machopic_define_symbol): New function.
10753         * config/darwin.c (hashtab.h): Include.
10754         (machopic_defined_list): Remove.
10755         (machopic_classify_ident): Likewise.
10756         (machopic_classify_name): Likewise.
10757         (machopic_ident_defined_p): Likewise.
10758         (machopic_define_ident): Likewise.
10759         (machopic_define_name): Likewise.
10760         (machopic_symbol_defined_p): New function.
10761         (machopic_classify_symbol): Likewise.
10762         (machopic_data_defined_p): Use machopic_classify_symbol.
10763         (machopic_define_symbol): New function.
10764         (machopic_function_base_sym): New function.
10765         (machopic_non_lazy_pointers): Remove.
10766         (machopic_non_lazy_ptr_name): Likewise.
10767         (machopic_stubs): Likewise.
10768         (machopic_stub_name): Likewise.
10769         (NON_LAZY_POINTER_SUFFIX): New macro.
10770         (STUB_SUFFIX): Likewise.
10771         (machopic_indirection): New structure.
10772         (machopic_indirections): New variable.
10773         (machopic_indirection_hash): New function.
10774         (machopic_indirection_eq): Likewise.
10775         (machopic_indirection_name): Likewise.
10776         (machopic_mcount_stub_name): New function.
10777         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
10778         hash table.
10779         (machopic_indirect_data_reference): Rework to use new functions.
10780         (machopic_indirect_call_target): Likewise.
10781         (machopic_legitimize_pic_address): Likewise.
10782         (machopic_output_indirection): New function.
10783         (machopic_finish): Use it.
10784         (machopic_operand_p): Rework to use new functions.
10785         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
10786         (darwin_strip_name_encoding): Remove.
10787         (update_non_lazy_ptrs): Remove.
10788         (update_stubs): Likewise.
10789         (darwin_non_lazy_pcrel): Use new functions.
10790         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
10791         (ASM_OUTPUT_LABELREF): Likewise.
10792         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
10793         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
10794         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
10795         (TARGET_STRIP_NAME_ENCODING): Do not use
10796         darwin_strip_name_encoding.
10797         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
10798         darwin_strip_name_encoding.
10799         * config/i386/darwin.h (FUNCTION_PROFILER): Use
10800         machopic_mcount_stub_name.
10801         * config/i386/i386.c (x86_output_mi_thunk): Use
10802         machopic_indirection_name, not machopic_stub_name.
10803         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
10804         machopic_function_base_sym.
10805         (print_operand): Use machopic_classify_symbol.
10806         (rs6000_emit_prologue): Use machopic_function_base_sym.
10807         (output_profile_hook): Do not use machopic_stub_name.
10808         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
10809
10810 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10811
10812         PR c/7284
10813         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
10814         as multiplication.
10815
10816 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10817
10818         * doc/implement-c.texi: New file.
10819         * doc/extend.texi (C Implementation): Move to there.
10820         * doc/gcc.texi: Include implement-c.texi.
10821         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
10822
10823 2004-07-22  Jason Merrill  <jason@redhat.com>
10824
10825         * integrate.c (copy_decl_for_inlining): Remove invisible reference
10826         handling.
10827         * tree-inline.c (setup_one_parameter): Likewise.
10828
10829 2004-07-22  Brian Booth  <bbooth@redhat.com>
10830
10831         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
10832         (substitute_and_fold): Propigate into VUSE operands when possible.
10833         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
10834         (cp_lattice_meet): Handle merging of latticevalues when
10835         UNKNOWN_VAL is present.
10836         (visit_stmt): Visit assignments with V_MUST_DEFs.
10837         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
10838         (ccp_fold): Deal with RHS' that are constant and virtual.
10839         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
10840         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
10841         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
10842         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
10843         computing immediate uses.
10844         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
10845         transition.
10846         (replace_vuse_in): New function.
10847         (likely_value): Add check of vuse operands.
10848         (get_default_value): Set the default value of virtually defined
10849         variables to UKNOWN_VAL instead of VARYING.
10850
10851 2004-07-22  Richard Henderson  <rth@redhat.com>
10852
10853         * expr.c (emit_push_insn): Don't use set_mem_attributes.
10854
10855 2004-07-22  Richard Henderson  <rth@redhat.com>
10856
10857         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
10858         variables due to conditional compilation.
10859
10860 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
10861
10862         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
10863         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
10864         Release SSA names that have been re-renamed.
10865         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
10866         variable.
10867         * tree-ssa-alias.c (init_alias_info): If aliases have been
10868         computed before, clear existing alias information.
10869         (create_name_tags): Do no fixup PT_ANYTHING pointers.
10870         If the new name tag for a pointer is different than the one it
10871         had before, mark the old tag for renaming.
10872         (replace_may_alias): New function.
10873         (group_aliases): Call it.
10874         (setup_pointers_and_addressables): Always call get_tmt_for.
10875         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
10876         once.
10877         (set_pt_anything): New local function.
10878         (set_pt_malloc): New local function.
10879         (merge_pointed_to_info): Don't merge pointed-to variables from
10880         the original pointer if the destination is pointing to an
10881         unknown location.
10882         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
10883         (add_pointed_to_var): Do not add a variable to the points-to
10884         set if the pointer is already pointing to anywhere.
10885         (collect_points_to_info_r): If the defining statement is a PHI
10886         node, only merge pointed-to information if the argument has
10887         already been visited.
10888         (get_tmt_for): Only create a new tag if the pointer didn't
10889         have one already.
10890         (dump_alias_info): Emit more information.
10891         (dump_points_to_info_for): Likewise.
10892         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
10893         try to get the annotation of an SSA_NAME.
10894         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
10895         alias sets when checking is enabled.
10896         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
10897         (eliminate): Mark basic blocks that will need
10898         EH information cleaned up.
10899         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
10900         predecessor.
10901         Initialize need_eh_cleanup.
10902         (fini_pre): Call tree_purge_all_dead_eh_edges and
10903         cleanup_tree_cfg if needed.
10904         Free need_eh_cleanup.
10905         * tree-ssa.c (verify_ssa_name): New function.
10906         (verify_def): Call it.
10907         Re-arrange to avoid printing too many error messages.
10908         (verify_use): Likewise.
10909         (verify_phi_args): Likewise.
10910         (verify_flow_insensitive_alias_info): New function.
10911         (verify_flow_sensitive_alias_info): New function.
10912         (verify_alias_info): New function.
10913         (verify_ssa): Call verify_alias_info.
10914         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
10915         program.
10916         Re-arrange to avoid printing too many error messages.
10917         * tree-ssanames.c (make_ssa_name): Clear
10918         SSA_NAME_IN_FREE_LIST.
10919         (release_ssa_name): Never release a default definition.
10920         (release_defs): New function.
10921         * tree.h: Declare it.
10922         * tree-ssa-dce.c (remove_dead_stmt): Call it.
10923
10924 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
10925
10926         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
10927         If true, do a depth-first search.  Do a breadht-first search,
10928         otherwise.
10929         (walk_use_def_chains): Add new argument IS_DFS.
10930         Update all users.
10931         * tree-flow.h (walk_use_def_chains): Update prototype.
10932
10933 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
10934
10935         * config/cris/cris.md: Tweak formatting.
10936         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
10937         (mover2side, moverside, movemside, movei, op3, andu): Replace
10938         live define_peephole:s with define_peephole2 near-equivalents.
10939         Delete the rest.
10940         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
10941         word-size modes.
10942         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
10943         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
10944         "*mov_sidesi_mem" respectively.
10945
10946 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
10947
10948         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
10949         (gimplify_build1): Move from tree-complex.c do_unop.
10950         (gimplify_build2): Move from tree-complex.c do_binop.
10951         (gimplify_build3): New.
10952         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
10953         Adjust throughout to call the functions above.
10954         * tree-flow.h: Declare the functions above.
10955         * tree-nested.c (gimplify_val): Rename to...
10956         (tsi_gimplify_val): ... this.
10957
10958         * Makefile.in (tree_complex.o): Update dependencies.
10959         (stor-layout.o): Depend on regs.h.
10960         * c-common.c (handle_vector_size_attribute): Update for
10961         vector types without corresponding vector modes.
10962         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
10963         a corresponding vector mode is not available.
10964         * print-tree.c (print_node): Print nunits for vector types
10965         * regclass.c (have_regs_of_mode): New.
10966         (init_reg_sets_1): Initialize it and use it instead
10967         of allocatable_regs_of_mode.
10968         * regs.h (have_regs_of_mode): Declare it.
10969         * stor-layout.c (layout_type): Pick a mode for vector types.
10970         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
10971         build_replicated_const, do_unop, do_binop, do_plus_minus,
10972         do_negate, expand_vector_piecewise, expand_vector_parallel,
10973         expand_vector_addition, expand_vector_operations_1,
10974         expand_vector_operations, tree_lower_operations,
10975         pass_lower_vector_ssa, pass_pre_expand): New.
10976         (expand_complex_operations, pass_lower_complex): Remove.
10977         * tree-optimize.c (init_tree_optimization_passes): Adjust
10978         pass ordering for changes in tree-complex.c.
10979         * tree-pass.h: Declare new passes.
10980         * tree.c (finish_vector_type): Remove.
10981         (make_vector_type): New.
10982         (build_vector_type_for_mode, build_vector_type): Rewritten.
10983         * tree.def (VECTOR_TYPE): Document where the number of
10984         subparts is stored.
10985         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
10986         (make_vector): Remove declaration.
10987
10988 2004-07-21  Richard Henderson  <rth@redhat.com>
10989
10990         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
10991         TREE_THIS_VOLATILE, may_aliases, or optimization level.
10992         (remove_useless_vars): Dump debugging info.
10993         (expand_used_vars): Move ...
10994         * cfgexpand.c (expand_used_vars): ... here.  Make static.
10995         * tree-flow-inline.h (set_is_used): New.
10996         (set_default_def): Use get_var_ann.
10997         * tree-flow.h: Update decls.
10998         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
10999         (create_ssa_var_map): Use it.
11000         * tree-ssa.c (set_is_used): Remove.
11001
11002 2004-07-22  Ben Elliston  <bje@au.ibm.com>
11003
11004         * gdbinit.in: Set a breakpoint on internal_error.
11005
11006 2004-07-21  Richard Henderson  <rth@redhat.com>
11007
11008         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
11009         to create a new basic block.
11010
11011 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
11012
11013         PR c/15052
11014         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
11015         return type on function definitions.  Move other warnings for
11016         qualified return type to -Wreturn-type.  Do not condition any such
11017         warnings on -pedantic.  Update comments.
11018         (start_function): Only copy function type from previous prototype
11019         declaration if return types are compatible.
11020         * c-typeck.c (function_types_compatible_p): Don't condition
11021         warning for incompatibility of volatile qualifiers on the return
11022         type on -pedantic.  Update comment.
11023         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
11024
11025 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
11026
11027         * c-typeck.c (set_init_index): Require designator to be of integer
11028         type.
11029
11030 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
11031
11032         PR c/11250
11033         * c-parse.in (init): Change to exprtype.
11034         (primary): Set original_code for STRING to STRING_CST.
11035         Call maybe_warn_string_init for compound literals.
11036         (initdcl, notype_initdcl): Call maybe_warn_string_init.
11037         (initval): Update.
11038         * c-tree.h (maybe_warn_string_init): New.
11039         (pop_init_level, process_init_element): Use struct c_expr.
11040         (struct c_expr): Update comment.
11041         * c-typeck.c (maybe_warn_string_init): New function.
11042         (digest_init): Call it.  Additional parameter strict_string.  All
11043         callers changed.
11044         (output_init_element): Likewise.
11045         (struct constructor_stack): Use struct c_expr for
11046         replacement_value.
11047         (really_start_incremental_init, push_init_level): Update.
11048         (pop_init_level): Update.  Return struct c_expr.
11049         (process_init_level): Update.  Take struct c_expr argument.
11050
11051 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
11052
11053         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
11054         commit.
11055
11056 2004-07-21  Eric Christopher  <echristo@redhat.com>
11057
11058         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
11059         removal.
11060         * c-decl.c (pop_scope): Ditto.
11061         * calls.c (expand_call): Remove call to current_nesting_level,
11062         update comment accordingly. Remove calls to expand_start_target_temps
11063         and expand_end_target_temps.
11064         * cfgexpand.c (construct_init_block): Remove call to
11065         expand_start_bindings_and_block.
11066         (construct_exit_block): Remove call to expand_end_bindings.
11067         * expr.c (safe_from_p): Remove BIND_EXPR handling.
11068         (expand_expr_real_1): Ditto. Fix formatting.
11069         (expand_vars): Delete.
11070         * stmt.c (POPSTACK): Remove block_stack.
11071         (stmt_status): Remove x_block_stack.
11072         (block_stack): Delete.
11073         (expand_start_bindings_and_block): Ditto.
11074         (expand_start_target_temps): Ditto.
11075         (expand_end_target_temps): Ditto.
11076         (current_nesting_level): Ditto.
11077         (warn_about_unused_variables): Ditto.
11078         (expand_end_bindings): Ditto.
11079         * tree.h: Remove declarations for above.
11080
11081 2004-07-21  Steven Bosscher  <stevenb@suse.de>
11082
11083         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
11084         * rtl.c (note_insn_name): Likewise.
11085         * print-rtl.c (print_rtx): Don't print it.
11086         * cfgrtl.h (can_delete_note_p): Don't handle it.
11087         (rtl_delete_block): Likewise.
11088         * passes.c (rest_of_handle_guess_branch_prob): Remove.
11089         (rest_of_compilation): Don't call it.
11090         * predict.c (process_note_predictions, process_note_prediction,
11091         note_prediction_to_br_prob): Remove.
11092         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
11093         * stmt.c (return_prediction): Remove.
11094         (expand_value_return): Don't call it.  Don't add prediction
11095         notes for return statements.
11096
11097 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
11098
11099         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
11100         once.
11101
11102 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
11103
11104         * c-common.c (vector_types_convertible_p): Use vector types'
11105         TYPE_SIZE and TREE_TYPE instead of their mode.
11106         * convert.c (convert_to_integer): Likewise.
11107         (convert_to_vector): Likewise.
11108         * fold-const.c (fold_convert): Likewise.
11109         * varasm.c (output_constant): Likewise.
11110         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
11111         Allow a VECTOR_TYPE initializer to be made of several vectors.
11112         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
11113         of cleared and need_to_clear, and use fold_convert.
11114         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
11115         integer vectors.
11116
11117 2004-07-20  Richard Henderson  <rth@redhat.com>
11118
11119         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
11120         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
11121
11122 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
11123
11124         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
11125         enormous cost if not TARGET_HARD_MUL.
11126
11127 2004-07-20  Andrew Pinski  <apinski@apple.com>
11128
11129         PR target/16557
11130         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
11131         (ASM_SPEC): here.
11132
11133 2004-07-21  Paul brook  <paul@codesourcery.com>
11134
11135         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
11136
11137 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11138
11139         * fold-const.c (operand_equal_p): Temporarily support NULL args.
11140         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
11141         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
11142
11143 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
11144
11145         * rtl.h (plus_constant): Delete.
11146         (plus_constant_wide): Rename to plus_constant.
11147         (plus_constant_for_output_wide): Delete vestigial prototype.
11148         (GEN_INT): Remove unnecessary cast.
11149         * tree.h (build_int_2, size_int_type): Delete.
11150         (build_int_2_wide): Rename to build_int_2.
11151         (size_int_wide): Rename to size_int_kind.
11152         (size_int_type_wide): Rename to size_int_type.
11153         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
11154         Remove unnecessary cast.
11155         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
11156         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
11157         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
11158         (size_int_type_wide): Rename size_int_type.
11159         (int_const_binop): Use size_int_type.
11160         * c-lex.c (interpret_integer): Use build_int_2.
11161         * final.c (split_double): Remove unnecessary casts.
11162         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
11163
11164 2004-07-20  Richard Henderson  <rth@redhat.com>
11165
11166         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
11167         (gimplify_compound_lval): Use is_gimple_tmp_reg.
11168         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
11169         (is_gimple_tmp_reg): New.
11170         * tree-gimple.h (is_gimple_tmp_reg): Declare.
11171
11172 2004-07-20  Richard Henderson  <rth@redhat.com>
11173
11174         * tree-pretty-print.c (dump_generic_node): Dump
11175         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
11176
11177 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
11178
11179         * tree-mudflap.c (mf_set_options_fndecl): New tree.
11180         (mudflap_init): Set it.
11181         (mudflap_register_call): Remove __mf_init call.
11182         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
11183         to pass "-ignore-reads" option to libmudflap if needed.
11184
11185 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
11186
11187         PR c++/14607
11188         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
11189         (MAKE_DECL_ONE_ONLY): Undefine.
11190         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
11191         readonly_data, one_only_data_section, forget_section): New prototypes.
11192         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
11193         functions.
11194         (pa_select_section): Add one-only (COMDAT) support.
11195         * pa.h (struct machine_function): Define.
11196         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
11197         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
11198         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
11199         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
11200         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
11201         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
11202         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
11203         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
11204         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
11205         for EXTRA_SECTION_FUNCTIONS.
11206         * doc/install.texi: Update binutils requirements.
11207
11208 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
11209
11210         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
11211         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
11212         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
11213         size_t.
11214         (struct VEC): Use unsigned for num and alloc.
11215         * vec.c (struct vec_prefix): Likewise.
11216         (vec_o_reserve): Adjust.
11217
11218         * dbxout.c (dbxout_type): Fix printf format.
11219
11220         * tree.h (binfo_member): Remove.
11221         * tree.c (binfo_member): Remove.
11222
11223 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
11224
11225         * tree.h: Include vec.h
11226         (DEF_VEC_P(tree)): New type.
11227         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
11228         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
11229         (BINFO_LANG_SLOT): Remove.
11230         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
11231         (struct tree_binfo): Turn base_binfos into a trailing
11232         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
11233         (binfo_lang_slots): Remove.
11234         * tree.c (binfo_lang_slots): Remove.
11235         (make_tree_binfo_stat): Take a base binfo count, not a
11236         lang slot count.  Adjust.
11237         * Makefile.in (TREE_H): Add vec.h
11238         * alias.c (record_component_aliases): Adjust BINFO access.
11239         * dbxout.c (dbxout_type): Likewise.
11240         * dwarf2out.c (gen_member_die): Likewise.
11241         * sdbout.c (sdbout_one_type): Likewise.
11242         * tree-dump.c (deque_and_dump): Likewise.
11243         * config/i386/i386.c (classify_argument,
11244         contains_128bit_aligned_vector_p): Likewise.
11245         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
11246         * doc/c-tree.texi (Classes): Update BINFO documentation.
11247
11248 2004-07-20  Steven Bosscher  <stevenb@suse.de>
11249
11250         * c-common.h (check_case_value): Remove prototype.
11251         (c_add_case_label): Adjust prototype.
11252         * c-common.c (check_case_value): Make static.
11253         (check_case_bounds): New function.
11254         (c_add_case_label): Use it.  Take new argument orig_type.
11255         * c-typeck.c (struct c_switch): New orig_type field.
11256         (c_start_case): Set it.
11257         (do_case): Pass it to c_add_case_label.
11258         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
11259         cases from here.  Add the labels in reverse order.
11260         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
11261         (add_case_node): Return nothing, don't check for duplicate cases.
11262         Insert new case nodes in a list, not in an AVL tree.
11263         (expand_end_case_type): Don't turn a case tree into a case list.
11264         (case_tree2list): Remove.
11265         * tree.h (add_case_node): Adjust prototype.
11266
11267 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
11268
11269         * genattr.c (struct range, struct function_unit,
11270         write_units, extend_range, init_range): Remove them.
11271         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
11272         Output "#define INSN_SCHEDULING" here.
11273         * genattrtab.c (struct range, struct function_unit_op,
11274         struct function_unit, struct dimension, enum operator,
11275         operate_exp, expand_units, simplify_knowing,
11276         encode_units_mask, simplify_by_exploding,
11277         find_and_mark_used_attributes, unmark_used_attributes,
11278         add_values_to_cover, increment_current_value,
11279         test_for_current_value, simplify_with_current_value,
11280         simplify_with_current_value_aux, gen_unit,
11281         write_unit_name, write_function_unit_info,
11282         write_complex_function, write_toplevel_expr,
11283         find_single_value, extend_range): Remove.
11284         (write_attr_get): Do not handle common_av->value
11285         being an FFS.
11286         (struct attr_desc): Remove func_units_p and blockage_p.
11287         (write_attr_valueq): Do not handle them.
11288         (find_attr): Do not clear them.
11289         (make_internal_attr): Do not initialize them.
11290         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
11291         * sched-vis.c (init_target_units, insn_print_units,
11292         init_block_visualization, print_block_visualization,
11293         visualize_scheduled_insns, visualize_no_unit,
11294         visualize_stall_cycles, visualize_alloc,
11295         visualize_free, target_units, get_visual_tbl_length,
11296         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
11297         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
11298         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
11299         * haifa-sched.c (blockage_range, clear_units,
11300         schedule_unit, actual_hazard, potential_hazard,
11301         insn_unit, unit_last_insn, unit_tick,
11302         actual_hazard_this_instance, potential_hazard,
11303         schedule_unit, max_insn_queue_index_value): Remove.
11304         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
11305         max_insn_queue_index.
11306         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
11307         * doc/md.texi (Processor pipeline description): Remove
11308         references to old pipeline descriptions.
11309         (Automaton pipeline description): Merge with the above.
11310         (Old pipeline description, Comparison of the two descriptions):
11311         Remove.
11312
11313         * bt-load.c (migrate_btr_def): Remove references to
11314         use_pipeline_interface.
11315         * haifa-sched.c (insn_cost, schedule_insn,
11316         schedule_block, advance_one_cycle, sched_init,
11317         queue_to_ready, sched_finish): Likewise.
11318         * modulo-sched.c (sms_schedule, advance_one_cycle,
11319         ps_has_conflicts): Likewise.
11320         * sched-rgn.c (init_ready): Likewise.
11321         (debug_dependencies): Likewise, and remove an "if (1)".
11322         * target.h (use_dfa_pipeline_interface): Remove.
11323         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11324         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11325         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11326         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11327         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11328         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11329         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11330         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11331         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11332         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11333         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11334         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11335         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11336         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11337         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11338         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11339         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11340         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11341         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
11342
11343 2004-07-19  Roger Sayle  <roger@eyesopen.com>
11344
11345         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
11346
11347 2004-07-19  Jeff Law  <law@redhat.com>
11348
11349         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
11350         (get_eq_expr_value): Use it.  Simplify slightly.
11351
11352 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
11353
11354         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
11355         (umulsidi3_32bit_r4000): Likewise.
11356
11357 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
11358
11359         * vec.h: Propagate location information properly.
11360         (VEC_T_iterate): Add result pointer parameter.
11361         (VEC_T_space): New.
11362         (VEC_T_reserve): Use it.
11363
11364 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
11365
11366         * Makefile.in (c-format.o): Depend on c-format.h.
11367         * c-format.h: New file.
11368         (struct format_char_info): Add CHAIN member.
11369         * c-format.c: Move some types and constants to c-format.h.
11370         (format_type_error): Set to -1.
11371         (struct function_format_info): Use an int for format_type.
11372         (decode_format_type): Return an int.  Return format_type_error
11373         on error.
11374         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
11375         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
11376         (scan_char_table, time_char_table, monetary_char_table): Initialize
11377         CHAIN to NULL.
11378         (n_format_types): New variable.
11379         (check_format_info_main): Handle CHAIN in format_char_info.
11380         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
11381         TARGET_N_FORMAT_TYPES.
11382         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
11383         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
11384         * config/sol2-c.c: New file.
11385         * config/t-sol2: New file.
11386         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
11387         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
11388         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
11389
11390         * doc/extend.texi (Target Format Checks): New section.
11391         (Function Attributes): Mention it.
11392         * doc/invoke.texi: Mention target format checks.
11393         * doc/sourcebuild.texi: Mention target format checks.
11394         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
11395         TARGET_FORMAT_TYPES.
11396
11397 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
11398
11399         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
11400         added.
11401         * config/s390/s390.c (regclass_map initializer): Register 35 added to
11402         ADDR_REGS.
11403         (load_multiple_operation, store_multiple_operation): Removed
11404         pointless sanity check.
11405         (s390_decompose_address): Added check for return_address_pointer_rtx.
11406         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
11407         (s390_return_address_offset): New function.
11408         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
11409         (FRAME_REGNO_P): Added check for register 35.
11410         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
11411         REG_ALLOC_ORDER): Appended entry for register 35.
11412         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
11413         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
11414         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
11415         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
11416         is eliminable using stack pointer or hard frame pointer.
11417         (REGISTER_NAMES): Added name for register 35.
11418         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
11419         pointless sanity check.
11420
11421 2004-07-19  Roger Sayle  <roger@eyesopen.com>
11422
11423         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
11424         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
11425         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
11426         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
11427         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
11428         (fold_relational_const): Tidy up handling of floating point
11429         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
11430         transformation; fold_relational_const assumes constant operands.
11431
11432 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
11433
11434         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
11435         directory.
11436
11437 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
11438
11439         * c-tree.h (struct c_expr): Define.
11440         (C_SET_EXP_ORIGINAL_CODE): Remove.
11441         (parser_build_binary_op, build_compound_expr): Update prototypes.
11442         * c-parse.in (%union): Add exprtype.
11443         (FUNC_NAME): Mark as ttype.
11444         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
11445         exprtype.
11446         (expr): Update.  Define directly in terms of expr_no_commas
11447         instead of using nonnull_exprlist.
11448         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
11449         offsetof_member_designator, typespec_nonreserved_nonattr, init,
11450         initval, designator, component_declarator,
11451         component_notype_declarator, enumerator, array_declarator,
11452         condition, exexpr, switch_statement, stmt_nocomp, stmt,
11453         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
11454         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
11455         where appropriate.
11456         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
11457         * c-common.c (c_common_truthvalue_conversion): Don't check
11458         C_EXP_ORIGINAL_CODE.
11459         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
11460         Don't use C_EXP_ORIGINAL_CODE.
11461         (default_conversion, default_function_array_conversion): Don't use
11462         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
11463         (internal_build_compound_expr): Merge into build_compound_expr.
11464         (build_compound_expr): Take two operands instead of a TREE_LIST.
11465         * objc/objc-act.c (get_super_receiver): Update calls to
11466         build_compound_expr.
11467
11468 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
11469
11470         * config/sh/sh.c (sh_use_dfa_interface): Remove.
11471         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
11472         hook_int_void_1.
11473         * config/sh/sh.md: Extract pipeline descriptions
11474         into separate files.
11475         * config/sh/sh1.md: New file, extracted from sh.md.
11476         * config/sh/sh4.md: New file, extracted from sh.md.
11477         * config/sh/shmedia.md: New file, extracted from sh.md
11478         and rewritten using new-style pipeline description.
11479
11480 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
11481
11482         * config/pa/pa.md: Delete the two remaining define_peephole
11483         patterns.
11484
11485 2004-07-18  Steven Bosscher  <stevenb@suse.de>
11486             Joseph S. Myers  <jsm@polyomino.org.uk>
11487
11488         * c-common.c (c_common_truthvalue_conversion): Don't warn if
11489         TREE_NO_WARNING is set.
11490
11491 2004-07-18  Roger Sayle  <roger@eyesopen.com>
11492
11493         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
11494         simplify_builtin_strncmp): Delete.
11495         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
11496         Change argument to accept an arglist instead of an "exp".  Assume
11497         that the return type is always integer_type_node.  Copy missing
11498         transformations from their now obsolete simplify_builtin_*
11499         equivalents.
11500         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
11501         fold_builtin_strcmp and fold_builtin_strncmp.
11502         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
11503         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
11504         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
11505
11506 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
11507
11508         * Makefile.in (tree-alias-common.o): Update dependencies.
11509
11510 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
11511
11512         * cfgloop.c (flow_loop_nested_p): Fix comment.
11513
11514 2004-07-17  Jason Merrill  <jason@redhat.com>
11515
11516         PR c++/16115
11517         * stor-layout.c (relayout_decl): New fn.
11518         * tree.h: Declare it.
11519         (DECL_BY_REFERENCE): New macro.
11520
11521 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
11522
11523         * libgcc2.c (__enable_execute_stack): New symbol.
11524         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
11525         and declare __enable_execute_stack.
11526         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
11527         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
11528         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
11529         ENABLE_EXECUTE_STACK.
11530         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
11531         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
11532         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
11533         ENABLE_EXECUTE_STACK.
11534         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
11535         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
11536         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
11537         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
11538         ENABLE_EXECUTE_STACK.
11539         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
11540         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
11541         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
11542         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
11543         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
11544         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
11545         (sparc64_initialize_trampoline): Likewise.
11546         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
11547
11548 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
11549
11550         * langhooks.h (builtin_function): New langhook.
11551         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
11552         (LANG_HOOKS_INITIALIZER): Update.
11553         * tree.h (builtin_function): Remove.
11554         * doc/tm.texi: Update.
11555         * c-tree.h (builtin_function): Declare.
11556         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
11557         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
11558         config/ia64/ia64.c, config/iq2000/iq2000.c,
11559         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
11560         config/stormy16/stormy16.c: All callers of builtin_function
11561         changed.
11562
11563 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
11564
11565         PR target/16556
11566         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
11567         Remove white space after the backslash.
11568
11569 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
11570
11571         PR rtl-optimization/16294
11572         * resource.c (return_insn_p): New predicate.
11573         (mark_target_live_regs): Use it.  Special-case return insns.
11574         (init_resource_info): Use it.  Don't scan the epilogue past
11575         a return.
11576
11577 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11578
11579         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
11580         destroy dominance information.
11581         * passes.c (rest_of_handle_loop2):  Free dominance information.
11582         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
11583         jump threading.
11584         (thread_jumps): Update dominance information and remove unreachable
11585         blocks.
11586         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
11587         information and remove the unreachable block.
11588
11589 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
11590
11591         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
11592
11593 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
11594
11595         * doc/sourcebuild.texi: Remove libf2c entry.
11596
11597 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
11598
11599         * config/i386/i386.md (movv16qi_internal): Fix typo.
11600
11601 2004-07-17  Steven Bosscher  <stevenb@suse.de>
11602
11603         * final.c (final_scan_insn): Fix broken commit from previous
11604         patch.
11605
11606 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
11607
11608         * c-typeck.c (parser_build_binary_op): Condition warnings for
11609         X<=Y<=Z on -Wparentheses instead of -Wextra.
11610         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
11611         supported for C only.
11612
11613 2004-07-17  Steven Bosscher  <stevenb@suse.de>
11614
11615         * cfgcleanup.c (try_simplify_condjump): Don't remove line
11616         notes to avoid unreachable code warnings.
11617         * toplev.c (backend_init): Don't emit line notes for
11618         unreachable code warnings.
11619
11620         * combine.c (distribute_notes): Don't distribute a
11621         REG_VTABLE_REF note.
11622         * final.c (final_scan_insn): Don't handle it.
11623         * rtl.c (reg_note_name): Remove it.
11624         * rtl.h (enum reg_node): Dito.
11625
11626         * emit-rtl.c (force_line_numbers, restore_line_number_status):
11627         Remove.
11628         * rtl.h (force_line_numbers, restore_line_number_status):
11629         Remove prototypes.
11630
11631         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
11632         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
11633         (using_eh_for_cleanups): Also moved here.
11634
11635         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
11636         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
11637         to expand_start_case and add_case_node.
11638         * stmt.c (struct nesting): Cleanup unused fields condition_code,
11639         last_unconditional_cleanup, nominal_type, printname, and
11640         line_number_status.
11641         (struct fixup_goto): Remove.
11642         (struct stmt_status): Remove x_goto_fixup_chain field.
11643         (goto_fixup_chain): Remove.
11644         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
11645         pushcase, pushcase_range): Remove.
11646         (expand_start_bindings_and_block): Don't set unused fields in
11647         the nesting stack.
11648         (expand_start_case, add_case_node): Cleanup unused formal arguments.
11649         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
11650         instead of emit_jump_if_reachable.
11651         (emit_case_nodes): Likewise.
11652         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
11653         static.
11654         (update_eh_label): Work around left-over exception handing regions.
11655         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
11656         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
11657         (pass_cleanup_cfg_post_optimizing): New pass.
11658         (init_tree_optimization_passes): Run the new pass after all
11659         optimizations.
11660         * tree.h (pushcase, pushcase_range): Remove prototypes.
11661         (expand_start_case, add_case_node): Update prototypes.
11662
11663 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
11664
11665         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
11666
11667 2004-07-16  Richard Henderson  <rth@redhat.com>
11668
11669         * builtins.c (std_expand_builtin_va_arg): Remove.
11670         (expand_builtin_va_arg): Remove.
11671         * expr.h: Don't declare them.
11672         * gimplify.c (mark_decls_volatile_r): Remove.
11673         (copy_if_shared_r): Don't call it.
11674         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
11675         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
11676         * gimple-low.c (lower_stmt): Likewise.
11677         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
11678         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
11679         * tree-ssa-operands.c (get_expr_operands): Likewise.
11680         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
11681         EXPAND_BUILTIN_VA_ARG.
11682         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
11683         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
11684         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
11685         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
11686
11687 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
11688
11689         * tree-ssa-pre.c (insert_aux): Break out if we hit
11690         a critical edge.
11691
11692 2004-07-16  Richard Henderson  <rth@redhat.com>
11693
11694         * basic-block.h (remove_fake_exit_edges): Declare.
11695         * cfganal.c (remove_fake_predecessors): Rename from
11696         remove_fake_successors; iterate over predecessors.
11697         (remove_fake_exit_edges): New.
11698         * cfgcleanup.c (try_optimize_cfg): Use it.
11699         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
11700         * predict.c (estimate_probability): Likewise.
11701         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
11702         * tree-cfg.c (make_edges): Likewise.
11703         * tree-ssa-pre.c (fini_pre): Likewise.
11704         * profile.c (instrument_edges): Don't remove_fake_edges.
11705         (branch_prob): Do it earlier here.
11706
11707 2004-07-16  Richard Henderson  <rth@redhat.com>
11708
11709         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
11710         switchification wrt CONSTRUCTOR.  Document the reason.
11711
11712 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
11713
11714         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
11715         that prevented descriptive __mf_check source location strings.
11716
11717 2004-07-16  Richard Henderson  <rth@redhat.com>
11718
11719         * tree-def (WITH_SIZE_EXPR): New.
11720         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
11721         * expr.c (expand_expr_real_1): Likewise.
11722         * gimplify.c (maybe_with_size_expr): New.
11723         (gimplify_arg, gimplify_modify_expr): Use it.
11724         (gimplify_modify_expr_to_memcpy): Take size parameter.
11725         (gimplify_modify_expr_to_memset): Likewise.
11726         (gimplify_expr): Handle WITH_SIZE_EXPR.
11727         * tree-alias-common.c (find_func_aliases): Likewise.
11728         * tree-eh.c (tree_could_trap_p): Likewise.
11729         (tree_could_throw_p): Likewise.
11730         * tree-gimple.c (is_gimple_lvalue): Likewise.
11731         (get_call_expr_in): Likewise.
11732         * tree-inline.c (estimate_num_insns_1): Likewise.
11733         (expand_calls_inline): Likewise.
11734         * tree-nested.c (convert_call_expr): Likewise.
11735         * tree-pretty-print.c (dump_generic_node): Likewise.
11736         * tree-sra.c (sra_walk_expr): Likewise.
11737         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
11738         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
11739         * tree-ssa-operands.c (get_expr_operands): Likewise.
11740         * tree-tailcall.c (find_tail_calls): Likewise.
11741
11742         * calls.c (expand_call): Reset old_stack_allocated after
11743         calling emit_stack_restore.
11744
11745 2004-07-16  Richard Henderson  <rth@redhat.com>
11746
11747         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
11748         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
11749         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
11750         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
11751         copy_res_decl_for_inlining.
11752
11753         * tree-inline.c (declare_return_variable): New modify_dest argument.
11754         Use it as the return value, when possible or manditory.  Handle
11755         TREE_ADDRESSABLE types.
11756         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
11757         replacement of CALL_EXPR.
11758
11759 2004-07-16  Richard Henderson  <rth@redhat.com>
11760
11761         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
11762         * gimple-low.c (expand_var_p): Don't check it.
11763         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
11764         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
11765         * tree-ssa-operands.c (add_stmt_operand): Likewise.
11766         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
11767         (find_referenced_vars): Don't call them.
11768         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
11769
11770 2004-07-16  Richard Henderson  <rth@redhat.com>
11771
11772         * function.c (pass_by_reference): True for all variable sized types.
11773
11774 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
11775
11776         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
11777         * tree-pretty-print.c: Include tree-chrec.h.
11778         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
11779         and POLYNOMIAL_CHREC nodes.
11780
11781 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
11782
11783         * builtins.c (expand_builtin_stpcpy): Do not create temporary
11784         reg with VOIDmode.
11785
11786 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
11787
11788         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
11789
11790 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
11791
11792         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
11793         to BASE_REGNUM.
11794         * config/s390/s390.c: Likewise.
11795         * config/s390/s390.h: Likewise.
11796
11797 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11798
11799         * config/mips/mips.md (addsi3, adddi3): Remove special handling
11800         of $sp adds.  Remove REGNO checks from mips16 patterns.
11801
11802 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11803
11804         * config/mips/mips.md: Delete outdated comment.
11805
11806 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11807
11808         * config/mips/mips.c (get_float_compare_codes): Delete.
11809         (mips_emit_compare): New function, mostly extracted from
11810         get_float_compare_codes and gen_conditional_branch.
11811         (gen_conditional_branch, gen_conditional_move): Use it.
11812
11813 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
11814
11815         * genautomata.c (add_vect): Speedup by using integers as
11816         bit-vectors for walking through the comb_vect and finding
11817         a match.
11818
11819 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11820
11821         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
11822         operand is an uns_arith_operand; use subtraction otherwise.
11823         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
11824         not just arith_operands.
11825
11826 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11827
11828         * config/mips/mips-protos.h (gen_int_relational): Delete.
11829         (mips_emit_scc): Declare.
11830         * config/mips/mips.c (internal_test): Delete.
11831         (sle_operand, sleu_operand): New functions.
11832         (map_test_to_internal_test, gen_int_relational): Delete.
11833         (mips_emit_binary, mips_relational_operand_ok_p)
11834         (mips_emit_int_relational, mips_zero_if_equal)
11835         (mips_emit_scc): New functions.
11836         (gen_conditional_branch): Rework to use mips_emit_int_relational.
11837         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
11838         sleu_operand.
11839         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
11840         (sltu, sleu): Use mips_emit_scc.
11841         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
11842         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
11843         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
11844
11845 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11846
11847         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
11848
11849 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11850
11851         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
11852         (*sne_[sd]i): Likewise sne_[sd]i_zero.
11853         (*sgt_[sd]i): ...and sgt_[sd]i.
11854         (*slt_[sd]i): ...and slt_[sd]i.
11855         (*sgtu_[sd]i): ...and sgtu_[sd]i.
11856         (*sltu_[sd]i): ...and sltu_[sd]i.
11857         (*sleu_[sd]i): ...and sleu_[sd]i_const.
11858         Name previously unnamed mips16 patterns.  Formatting fixes.
11859
11860 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11861
11862         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
11863         (branch_type): Delete.
11864         (gen_conditional_branch, gen_conditional_move)
11865         (mips_gen_conditional_trap): Update after name change.  Get the
11866         comparison mode from cmp_operands[0].
11867         * config/mips/mips.h (cmp_type, branch_type): Delete.
11868         (cmp_operands): Renamed from branch_cmp.
11869         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
11870         name change.  Don't set branch_type.
11871         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
11872         mode class of cmp_operands[0] rather than branch_type.  Update after
11873         name change.
11874
11875 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11876
11877         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
11878         of 0...255 to 0 when inside a SET.
11879
11880 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
11881
11882         * config/mips/mips.md: Remove mips16 define_peepholes.
11883
11884 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
11885
11886         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
11887         (fini_pre): Remove fake edges.
11888
11889 2004-07-15  Richard Henderson  <rth@redhat.com>
11890
11891         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
11892         (get_indirect_ref_operands, get_call_expr_operands): ... these.
11893
11894 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
11895
11896         * vec.h (VEC_address): New function.
11897
11898 2004-07-14  Jason Merrill  <jason@redhat.com>
11899
11900         PR middle-end/15885
11901         * gimplify.c (gimplify_arg): New fn, split out from...
11902         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
11903
11904 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
11905
11906         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
11907         generate code which is generated by pushqi1 now
11908         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
11909
11910 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
11911
11912         * combine.c (simplify_set): match the mode of the constant 0 with
11913         the tested operand to match the compare behaviour and the
11914         simplify_relational_operation() expectation.
11915
11916 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
11917
11918         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
11919         ("bordered"): Same.
11920
11921 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
11922
11923         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
11924         unconditionally.
11925         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
11926
11927 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
11928
11929         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
11930         calls in mips16 code.
11931
11932 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
11933
11934         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
11935         the destination of the li as well as for the neg.
11936
11937 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
11938
11939         g++/15861
11940         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
11941         * cgraph.h: Update declaration.
11942         * c-decl.c (build_cdtor): Update call with default priority.
11943         * coverage.c (create_coverage): Ditto.
11944         * tree-mudflap.c (mf_init_fndecl): New tree.
11945         (mudflap_init): Set it.
11946         (mudflap_register_call): Arrange to call __mf_init before the first
11947         __mf_register call.
11948         (mudflap_finish_file): Mark the mudflap static initializer as extra
11949         high priority, to beat all C++ static constructors.
11950
11951 2004-07-15  Jeff Law  <law@redhat.com>
11952
11953         * loop.c (check_insn_for_givs): Restore check for code labels that was
11954         accidentally deleted by a recent checkin.
11955
11956 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
11957
11958         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
11959         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
11960
11961 2004-07-14  Richard Henderson  <rth@redhat.com>
11962
11963         * print-tree.c (print_node): Fix casts last change.
11964
11965 2004-07-15  Paul Brook  <paul@codesourcery.com>
11966
11967         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
11968         to TARGET_UNWIND_INFO.
11969         * except.c (output_function_exception_table): Ditto.
11970         * except.h: Ditto.
11971         * opts.c (decode_options): Ditto.
11972         * passes.c (rest_of_handle_final): Ditto.
11973         * final.c (final_start_function): Ditto.
11974         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
11975         target hook.
11976         * targhooks.h (default_unwind_emit): Declare.
11977         * targhooks.c (default_unwind_emit): New function.
11978         * target-def.h: Define and use TARGET_UNWIND_EMIT.
11979         * target.h (struct gcc_target): Add unwind_emit.
11980         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
11981         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
11982         Remove IA64_UNWIND_EMIT.
11983         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
11984
11985 2004-07-14  Richard Henderson  <rth@redhat.com>
11986
11987         * print-tree.c (print_node): Handle SSA_NAME.
11988
11989 2004-07-14  James E Wilson  <wilson@specifixinc.com>
11990
11991         PR target/16325
11992         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
11993         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
11994
11995 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
11996
11997         * expr.c (expand_assignment): Reenable bitfield += optimizations.
11998         Use alias set 0 for memory, do proper mode calculations and adjust
11999         address for memories.
12000
12001 2004-07-14  Per Bothner  <per@bothner.com>
12002
12003         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
12004         structure with extra column field.
12005         * tree.c (expand_location):  Also fill in column field.
12006         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
12007         gets confused by the two conditionally-compiled definitions.
12008
12009 2004-07-14  Eric Christopher  <echristo@redhat.com>
12010
12011         * calls.c (expand_call): Fix typo in comment.
12012
12013 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
12014
12015         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
12016         comparision of TFmode.
12017
12018 2004-07-14  Richard Henderson  <rth@redhat.com>
12019
12020         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
12021         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
12022         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
12023         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12024         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
12025         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
12026         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
12027         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
12028         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
12029
12030 2004-07-14  Mike Stump  <mrs@apple.com>
12031
12032         * config/darwin.h (WINT_TYPE): Define to be int to match
12033         system header files.
12034
12035 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
12036
12037         * config/xtensa/xtensa.c (function_arg_advance): Check for args
12038         that must be passed in the stack.
12039         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
12040         arguments if the size is not a constant.
12041
12042 2004-07-14  Per Bothner  <per@bothner.com>
12043
12044         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
12045         instead of EXPR_LOCUS in a boolean context, which is always true
12046         if --enable-mapped-location.
12047         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
12048
12049 2004-07-14  Richard Henderson  <rth@redhat.com>
12050
12051         * dominance.c (struct dom_info): Add fake_exit_edge.
12052         (init_dom_info): Allocate it.
12053         (free_dom_info): Free it.
12054         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
12055         in two passes.
12056         (calc_idoms): Honor fake_exit_edge.
12057
12058 2004-07-13  Jason Merrill  <jason@redhat.com>
12059
12060         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
12061         (rhs_test_for): New fn.
12062         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
12063         * tree-gimple.h: Declare them.
12064         * gimplify.c (gimplify_modify_expr): Use the new fns.
12065
12066 2004-07-14  Richard Henderson  <rth@redhat.com>
12067
12068         * config/arm/arm-protos.h (arm_va_arg): Remove.
12069         * config/arm/arm.c (arm_va_arg): Remove.
12070         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
12071         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
12072
12073 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12074
12075         * pa.c (fix_range): New function to mark a range(s) of registers as
12076         fixed registers.
12077         (override_options): Call fix_range if the -mfixed-range option string
12078         is not empty.
12079         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
12080         * doc/invoke.texi (-mfixed-range): Document new option.
12081
12082 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
12083
12084         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
12085         for TARGET_64BIT.
12086         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
12087
12088 2004-07-14  Roger Sayle  <roger@eyesopen.com>
12089
12090         * expmed.c (expand_sdiv_pow2): New function to expand signed division
12091         by a positive power of two, split out from expand_divmod.  Provide
12092         an alternate implementation when shifts are expensive.  Lower the
12093         threshold for using a branchless implementation to BRANCH_COST >= 2.
12094         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
12095
12096 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
12097
12098         * tree-dfa.c (make_rename_temp): *Really* work just
12099         like create_tmp_var if called while outside SSA form.
12100
12101 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
12102
12103         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
12104         for division by zero.
12105         ("umodsi3"): Likewise.
12106
12107 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
12108
12109         * config/mips/mips.c (mips_output_move): When generating mips16 code,
12110         force loads of negative constants to be split.
12111         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
12112         Generalize SImode li/neg splitter to cope with other modes.
12113
12114 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
12115
12116         * expmed.c: Remove more references to QUEUED in the comments.
12117         * expr.c: Likewise.
12118
12119 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
12120
12121         Revert:
12122         2004-07-13  Richard Henderson  <rth@redhat.com>
12123         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
12124         correctly.
12125
12126 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
12127
12128         * tree-dfa.c (make_rename_temp): Work just like
12129         create_tmp_var if called while outside SSA form.
12130
12131 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
12132
12133         * expr.c (enqueue_insn, finish_expr_for_function,
12134         protect_from_queue, queued_subexp_p, mark_queue,
12135         emit_insns_enqueued_after_mark, emit_queue,
12136         expand_increment): Remove.
12137         (store_constructor): Expand increment as an assignment.
12138         (expand_expr_real_1 <case PREINCREMENT_EXPR,
12139         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
12140         case POSTDECREMENT_EXPR>): Abort.
12141         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
12142         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
12143         protect_from_queue, emit_queue, queued_subexp_p): Remove.
12144         * function.h (pending_chain, x_pending_chain): Remove.
12145         * rtl.def (QUEUED): Remove.
12146
12147         * emit-rtl.c (copy_insn_1, copy_most_rtx,
12148         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
12149         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
12150         encode_units_mask): Likewise.
12151         * local-alloc.c (equiv_init_varies_p): Likewise.
12152         * rtl.c (copy_rtx): Likewise.
12153         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
12154         * simplify-rtx.c (simplify_gen_subreg): Likewise.
12155         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
12156
12157         * builtins.c (expand_builtin, expand_builtin_apply,
12158         expand_builtin_mathfn, expand_builtin_mathfn_2,
12159         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
12160         Remove calls to emit_queue and protect_from_queue.
12161         * calls.c (expand_call, precompute_arguments,
12162         precompute_register_parameters, rtx_for_function_call,
12163         store_one_arg): Likewise.
12164         * dojump.c (do_compare_and_jump, do_jump): Likewise.
12165         * explow.c (memory_address): Likewise.
12166         * expmed.c (clear_by_pieces_1, clear_storage,
12167         clear_storage_via_libcall, emit_group_load,
12168         emit_group_store, emit_store_flag,
12169         expand_expr_real_1, store_by_pieces,
12170         store_constructor, store_expr, try_casesi,
12171         try_tablejump): Likewise.
12172         * function.c (expand_pending_sizes): Likewise.
12173         * optabs.c (emit_cmp_and_jump_insns,
12174         emit_conditional_add, emit_conditional_move,
12175         expand_fix, expand_float, prepare_cmp_insn): Likewise.
12176         * stmt.c (emit_case_bit_tests,
12177         expand_asm_expr, expand_computed_goto,
12178         expand_decl_init, expand_end_case_type,
12179         expand_end_stmt_expr, expand_expr_stmt_value,
12180         expand_return, expand_start_case,
12181         optimize_tail_recursion): Likewise.
12182         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
12183         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
12184
12185 2004-07-14  Ben Elliston  <bje@au.ibm.com>
12186
12187         * vec.h: Comment fix.
12188
12189 2004-07-13  Richard Henderson  <rth@redhat.com>
12190
12191         * target.h (struct gcc_target): Add calls.pass_by_reference.
12192         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
12193         * function.c (pass_by_reference): Use the hook.
12194         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
12195         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
12196         (hook_pass_by_reference_must_pass_in_stack): New.
12197         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
12198         (alpha_pass_by_reference): New.
12199         (TARGET_PASS_BY_REFERENCE): New.
12200         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12201         * config/arc/arc.c (arc_pass_by_reference): New.
12202         (TARGET_PASS_BY_REFERENCE): New.
12203         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12204         (FUNCTION_ARG_CALLEE_COPIES): True.
12205         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
12206         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
12207         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
12208         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12209         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12210         * config/cris/cris.c (cris_pass_by_reference): New.
12211         (TARGET_PASS_BY_REFERENCE): New.
12212         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
12213         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
12214         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12215         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
12216         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12217         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
12218         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
12219         (frv_function_arg_pass_by_reference): Remove.
12220         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12221         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
12222         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
12223         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
12224         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12225         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
12226         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
12227         (ia64_pass_by_reference): Rename from
12228         ia64_function_arg_pass_by_reference.
12229         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12230         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12231         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
12232         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
12233         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
12234         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12235         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
12236         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
12237         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
12238         (m32r_pass_by_reference): Adjust prototype.  Make static.
12239         Handle mode sizes correctly.
12240         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12241         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
12242         (m68hc11_function_arg_pass_by_reference): Remove.
12243         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12244         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
12245         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
12246         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12247         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
12248         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
12249         (mips_va_arg): Use pass_by_reference.
12250         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
12251         Handle mode sizes correctly.
12252         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12253         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
12254         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
12255         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
12256         (mmix_pass_by_reference): Rename from
12257         mmix_function_arg_pass_by_reference.
12258         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12259         (FUNCTION_ARG_CALLEE_COPIES): True.
12260         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
12261         (mn10300_pass_by_reference): New.
12262         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12263         (FUNCTION_ARG_CALLEE_COPIES): True.
12264         * config/pa/pa.c (pa_pass_by_reference): New.
12265         (TARGET_PASS_BY_REFERENCE): New.
12266         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12267         (FUNCTION_ARG_CALLEE_COPIES): True.
12268         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
12269         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
12270         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
12271         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12272         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
12273         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
12274         (s390_pass_by_reference): Rename from
12275         s390_function_arg_pass_by_reference.
12276         (s390_function_arg_advance): Don't query pass-by-ref.
12277         (s390_function_arg): Likewise.
12278         (s390_gimplify_va_arg): Use pass_by_reference.
12279         (s390_call_saved_register_used): Likewise.
12280         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12281         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
12282         (shcompact_byref, sh_pass_by_reference): New.
12283         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12284         (SHCOMPACT_BYREF): Remove.
12285         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
12286         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
12287         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
12288         (sparc_gimplify_va_arg): Use pass_by_reference.
12289         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12290         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12291         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
12292         (v850_pass_by_reference): New.
12293         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12294         (FUNCTION_ARG_CALLEE_COPIES): True.
12295         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
12296         FUNCTION_ARG_PASS_BY_REFERENCE docs.
12297
12298 2004-07-14  Richard Henderson  <rth@redhat.com>
12299             Richard Sandiford  <rsandifo@redhat.com>
12300
12301         * config/mips/mips-protos.h (mips_va_arg): Delete.
12302         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
12303         * config/mips/mips.c: Include tree-gimple.h.
12304         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
12305         (mips_arg_info): Remove special handling of must_pass_in_stck args.
12306         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
12307         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
12308
12309 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
12310
12311         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
12312         arguments for COND_EXPR in big-endian adjustment code.
12313
12314 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12315
12316         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
12317         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
12318         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
12319         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
12320
12321 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
12322
12323         PR tree-optimization/16443
12324         * tree-ssa-alias.c: Add more description for
12325         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
12326         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
12327         clobbering of call-clobbered and addressable variables.  If
12328         there are any before aliases have been computed, add them.
12329
12330 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
12331
12332         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
12333         verification.
12334
12335 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
12336
12337         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
12338         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
12339         to the same type.
12340
12341 2004-07-13  Per Bothner  <per@bothner.com>
12342
12343         * collect2.c (main):  Handle --no-demangle and --demangle flags.
12344
12345 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
12346
12347         * Makefile.in (OBJS-common): Add tree-data-ref.o.
12348         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
12349         (tree-data-ref.o): New rule.
12350         * lambda.h: New file.
12351         * tree-data-ref.c: New file.
12352         * tree-data-ref.h: New file.
12353         * tree.c (int_cst_value, tree_fold_gcd): New functions.
12354         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
12355
12356 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
12357
12358         PR target/13926
12359         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
12360         * config/sparc/sparc.c (output_ubranch): New function.
12361         * config/sparc/sparc.md (jump pattern): Use it.
12362
12363 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
12364
12365         PR target/16494
12366         * config/sparc/sparc.c (output_cbranch): Properly guard
12367         the code handling far branches with TARGET_V9.
12368         * config/sparc/sparc.md (length attribute): Document the
12369         side-effect of having a length greater or equal to 3.
12370
12371 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
12372             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
12373
12374         PR target/15186
12375         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
12376         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
12377
12378 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
12379             Martin Sebor  <sebor@roguewave.com>
12380
12381         PR target/12602
12382         * doc/invoke.texi (SPARC options): Document -threads
12383         and -pthreads on Solaris.
12384
12385 2004-07-13  Richard Henderson  <rth@redhat.com>
12386
12387         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
12388         by reference.
12389         (ind_gimplify_va_arg_expr): Remove.
12390         * tree.h (ind_gimplify_va_arg_expr): Remove.
12391         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
12392         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
12393         argsp to be null.
12394
12395         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
12396         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
12397         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
12398         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
12399         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
12400
12401 2004-07-13  Richard Henderson  <rth@redhat.com>
12402
12403         * function.c (pass_by_reference): New.
12404         (assign_parm_find_data_types): Use it.
12405         * calls.c (initialize_argument_information): Likewise.
12406         (emit_library_call_value_1): Likewise.
12407         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
12408         * function.h (pass_by_reference): Declare.
12409
12410 2004-07-13  Richard Henderson  <rth@redhat.com>
12411
12412         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
12413         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
12414         * expr.h (MUST_PASS_IN_STACK): Remove.
12415         * system.h (MUST_PASS_IN_STACK): Poison.
12416         * tree.h (must_pass_in_stack_var_size): Declare.
12417         (must_pass_in_stack_var_size_or_pad): Declare.
12418         * calls.c (must_pass_in_stack_var_size): New.
12419         (must_pass_in_stack_var_size_or_pad): Rename from
12420         default_must_pass_in_stack.
12421         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
12422         (TARGET_MUST_PASS_IN_STACK): New.
12423         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
12424         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
12425         (TARGET_MUST_PASS_IN_STACK): New.
12426         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
12427         * config/frv/frv.c (frv_must_pass_in_stack): New.
12428         (TARGET_MUST_PASS_IN_STACK): New.
12429         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
12430         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
12431         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
12432         (ix86_must_pass_in_stack): Make static.
12433         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
12434         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
12435         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
12436         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
12437         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
12438         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
12439         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
12440         (mcore_must_pass_on_stack): Remove.
12441         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
12442         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
12443         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
12444         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
12445         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
12446         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
12447         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
12448         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
12449         (TARGET_MUST_PASS_IN_STACK): New.
12450         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
12451         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
12452         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
12453         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
12454         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
12455         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
12456         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
12457         MUST_PASS_IN_STACK.
12458
12459         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
12460         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
12461         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
12462         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
12463         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
12464         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
12465         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
12466         config/xtensa/xtensa.c: Use target hook.
12467
12468 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
12469
12470         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
12471         * configure: Rebuilt.
12472
12473 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
12474
12475         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
12476         * config/mips/mips.h (mips_reg_names): Don't declare.
12477         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
12478         (TARGET_NAME_REGS): Delete.
12479         (TARGET_SWITCHES): Remove -mrnames.
12480         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
12481         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
12482         in REGISTER_NAMES.
12483         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
12484         (override_options): Remove handling of TARGET_NAME_REGS.
12485
12486 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
12487
12488         * config/mips/mips.h (TARGET_*): Boolify.
12489
12490 2004-07-12  Nick Clifton  <nickc@redhat.com>
12491
12492         * config.gcc: Add sh-*-symbianelf target.
12493         * config/sh/sh.c: Add new target macros:
12494         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
12495         TARGET_CXX_IMPORT_EXPORT_CLASS.
12496         (sh_file_start): Create a definition of the .directive section.
12497         (sh_attribute): Add dllimport and dllexport attributes.
12498         * config/sh/symbian-pre.h: New file.
12499         * config/sh/symbian-post.h: New file.
12500         * config/sh/symbian.c: New file. Contains Symbian specific
12501         functions.
12502         * config/sh/sh-protos.h: Add prototypes for new functions
12503         provided by symbian.c.
12504         * config/sh/t-symbian: New file.
12505         * doc/extend.texi: Document support for dllimport and dllexport
12506         attributes by the sh-symbianelf target.
12507
12508 2004-07-12  James E Wilson  <wilson@specifixinc.com>
12509
12510         * Makefile.in (AR): Use @AR@ not ar.
12511         (NM): New.
12512         (AR_FOR_TARGET): Use $(AR) not ar for native.
12513         (NM_FOR_TARGET): Use $(NM) not nm for native.
12514         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
12515         * configure: Regenerate.
12516
12517 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
12518
12519         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
12520         special case.
12521         (ashldi3_sp64): Likewise.
12522
12523 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12524
12525         PR target/16477
12526         * pa.c (function_arg): Update comment.
12527         * pa.h (BLOCK_REG_PADDING): Define.
12528
12529 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12530
12531         PR tree-optimization/16461
12532         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
12533         arguments of phi nodes.
12534
12535 2004-07-12  Devang Patel  <dpatel@apple.com>
12536
12537         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
12538
12539 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
12540
12541         * function.c (expand_function_start): Ensure r_save is in Pmode.
12542         * calls.c (prepare_call_address): Ensure static_chain_value is
12543         in Pmode.
12544         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
12545         r_save_area are in Pmode.
12546         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
12547         fnaddr, and static_chain are in Pmode.
12548
12549 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
12550
12551         PR target/16445
12552         * config/ia64/ia64.c (bundling): Don't count ignored insns.
12553
12554 2004-07-12  Richard Henderson  <rth@redhat.com>
12555
12556         * target.h (struct gcc_target): Move gimplify_va_arg_expr
12557         next to build_builtin_va_list.
12558         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
12559         * builtins.c (gimplify_va_arg_expr): Likewise.
12560         * gimplify.c (copy_if_shared_r): Likewise.
12561
12562 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
12563
12564         * passes.c (rest_of_decl_compilation): Don't defer call of
12565         assemble_variable if its DECL_RTL is already set.
12566
12567 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
12568
12569         * cfgloop.h (struct loop): Add nb_iterations field.
12570         (current_loops): Declare.
12571         * tree-chrec.c (chrec_not_analyzed_yet,
12572         chrec_dont_know, chrec_known, count_ev_in_wider_type,
12573         chrec_contains_symbols_defined_in_loop): Remove the temporary
12574         hooks.
12575         * tree-flow-inline.h (loop_containing_stmt): New function.
12576         * tree-scalar-evolution.c: Add implementation.
12577         * tree-scalar-evolution.h: Add declarations.
12578
12579 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
12580
12581         PR rtl-optimization/15921
12582         * Makefile.in (global.o): Add recog.h.
12583
12584         * global.c (recog.h): Add the include-clause.
12585         (bb_info): New member earlyclobber.
12586         (allocate_bb_info, free_bb_info): Initialize/finish the new
12587         member.
12588         (earlyclobber_regclass, earlyclobber_regclass_length): The new
12589         global variables.
12590         (check_earlyclobber, regclass_intersect,
12591         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
12592         New functions.
12593         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
12594         (make_accurate_live_analysis): Modify pavin.
12595
12596 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
12597
12598         * tree-cfg.c (find_taken_edge): Statically compute the truth
12599         value of a predicate comparing an SSA_NAME to itself.
12600
12601 2004-07-12  Roger Sayle  <roger@eyesopen.com>
12602
12603         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
12604         rs6000 doesn't have shift-and-add or shift-and-sub instructions
12605         by returning the cost of a multiplication plus an addition.
12606
12607 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
12608
12609         PR tree-optimization/14107
12610         * gimplify.c (gimplify_return_expr): Accept a
12611         RETURN_EXPR with an error argument.
12612         * tree-optimize.c (init_tree_optimization_passes):
12613         Run pass_warn_function_return at -O0.
12614
12615 2004-07-12  Roger Sayle  <roger@eyesopen.com>
12616
12617         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
12618         index entry.
12619
12620 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
12621
12622         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
12623         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12624         * config/mips/3000.md: Add copyright notice.  Remove automota and
12625         function units; use generic ones instead.  Only define reservations
12626         for things that are different from generic.md.  Extend each clause
12627         to include r3900.
12628         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
12629         * config/mips/mips.md: Include them. Remove define_function_units.
12630         (alu, imuldiv): New automata and units.
12631
12632 2004-07-12  Ben Elliston  <bje@au.ibm.com>
12633
12634         * doc/invoke.texi (Optimize Options): Document -frename-registers
12635         not being enabled by default at -O3.
12636
12637 2004-07-11  Roger Sayle  <roger@eyesopen.com>
12638
12639         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
12640         floating point additions, to keep real immediate constant positive.
12641         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
12642         into X + C, and leave positive real constants as X - C.
12643
12644 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12645
12646         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
12647
12648 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12649
12650         PR tree-optimization/15654
12651         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
12652
12653 2004-07-11  Roger Sayle  <roger@eyesopen.com>
12654
12655         * builtins.c (fold_builtin_fputs): Don't bother converting the
12656         return type to integer_type_node, as we've already checked that
12657         the result will be ignored.
12658
12659         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
12660         that signed addition, subtraction, multiplication, division,
12661         remainder, negation and absolute value may potentially trap.
12662
12663         * fold-const.c (fold_ignored_result): New function to strip
12664         non-side-effecting tree nodes from an expression whose result
12665         is ignored.
12666         (fold_convert): Call fold_ignored_result when casting a value
12667         to VOID_TYPE.
12668         (omit_one_operand):  Call fold_ignored_result on the "omitted"
12669         operand when building a COMPOUND_EXPR.
12670         (pedantic_omit_one_operand): Likewise.
12671         * tree.h (fold_ignored_result): Prototype here.
12672         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
12673         when we're going to ignore the result.
12674
12675 2004-07-11  Richard Henderson  <rth@redhat.com>
12676
12677         PR tree-opt/16383
12678         * tree-ssa-ccp.c (fold_stmt_r): Split out...
12679         * tree.c (fields_compatible_p, find_compatible_field): ... new.
12680         * tree.h (fields_compatible_p, find_compatible_field): Declare.
12681         * tree-sra.c (sra_hash_tree): Hash fields by offset.
12682         (sra_elt_eq): Use fields_compatible_p.
12683         (generate_one_element_ref): Use find_compatible_field.
12684
12685 2004-07-11  Richard Henderson  <rth@redhat.com>
12686
12687         PR tree-opt/16422
12688         * tree-sra.c (generate_one_element_init): New.
12689         (generate_element_init): Use it.
12690         (scalarize_init): Push/pop gimplify context around it.
12691         (find_new_referenced_vars_1, find_new_referenced_vars): New.
12692         * gimplify.c (gimplify_expr): Allow SSA_NAME.
12693
12694 2004-07-11  Roger Sayle  <roger@eyesopen.com>
12695
12696         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
12697         combine.c's combine_insn_cost.
12698         * rtl.h (insn_rtx_cost): Prototype here.
12699         * combine.c (combine_insn_cost): Delete function.
12700         (combine_validate_cost): Update callers of combine_insn_cost to
12701         call insn_rtx_cost instead.
12702         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
12703         requesting the rtx_cost of call and/or jump instructions.
12704
12705         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
12706         rtx_cost directly.  Don't request/use the cost of call or jump
12707         instructions.  Return -1 if the cost of any instruction can't be
12708         determined (or the BB contains a function call).
12709         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
12710         -1 (i.e. can't determine the cost of any instruction or the basic
12711         block contains a subroutine call).
12712         (find_if_case_2): Likewise.
12713
12714 2004-07-11  Roger Sayle  <roger@eyesopen.com>
12715
12716         * rs6000.c (struct processor_costs): Change semantics of fields to
12717         include the COST_N_INSNS scaling, and update all initializers.
12718         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
12719         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
12720         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
12721         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
12722
12723 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12724
12725         * LANGUAGES: Remove obsolete information.
12726
12727 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
12728
12729         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
12730         SIGBUS signal frames, the PSW address points *to* the faulting
12731         instruction, not after it.
12732
12733 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
12734
12735         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
12736         added to TLS symbol addresses.
12737
12738 2004-07-11  Richard Henderson  <rth@redhat.com>
12739
12740         * expmed.c (init_expmed): Use stack-local structures for
12741         temporary rtl.  Don't recognize shifts.
12742
12743 2004-07-11  Richard Henderson  <rth@redhat.com>
12744
12745         * expr.c (store_expr): Don't fiddle subreg promotion for types
12746         with precision smaller than the mode.
12747
12748 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12749
12750         * tree.h (all_types_permanent): Remove.
12751
12752 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12753
12754         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
12755         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
12756         * langhooks.c (lhd_clear_binding_stack): Remove.
12757         * langhooks-def.h (lhd_clear_binding_stack,
12758         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
12759         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
12760         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
12761         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
12762         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
12763         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
12764         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
12765         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
12766         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
12767         * tree.h (poplevel): Don't declare.
12768         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
12769         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
12770         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
12771         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
12772         Remove.
12773
12774 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12775
12776         PR tree-optimization/16437
12777         * c-common.c (shorten_compare): Don't mark result of conversion to
12778         narrower signed type as overflowing.
12779         * fold-const.c (decode_field_reference): Determine whether
12780         signedness comes from outer type using precision rather than size.
12781
12782 2004-07-11  Phil Edwards  <phil@codesourcery.com>
12783
12784         * configure.ac:  Alphabetize --enable-checking list, add
12785         missing valgrind entry.
12786         * configure:  Regenerate.
12787
12788 2004-07-11  Phil Edwards  <phil@codesourcery.com>
12789
12790         * doc/install.texi (Testing):  Fix syntax in "make check" example.
12791
12792 2004-07-10  James E Wilson  <wilson@specifixinc.com>
12793
12794         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
12795
12796 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12797
12798         PR rtl-optimization/16001
12799         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
12800         niter_expr.
12801
12802 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
12803
12804         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
12805
12806 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
12807             James Morrison  <phython@gcc.gnu.org>
12808
12809         * doc/contrib.texi (Contributors): Add gfortran contributors and
12810         fix a couple of typos.
12811
12812 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12813
12814         PR rtl-optimization/15387
12815         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
12816         to incoming args space correctly.
12817
12818 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12819
12820         * pa.c (output_indirect_call): Only use %r2 as the link register in
12821         indirect calls with the long PA 2.0 pc-relative branch.
12822
12823 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
12824
12825         * config/i386/i386.c (override_options): Pick a 64-bit CPU
12826         for the default tuning if TARGET_64BIT.
12827
12828 2004-07-10  Richard Henderson  <rth@redhat.com>
12829
12830         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
12831         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
12832
12833 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
12834
12835         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
12836         * expmed.c (store_bit_field, extract_bit_field): Remove last
12837         argument.
12838         * builtins.c (expand_builtin_signbit): Adjust callers.
12839         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
12840         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
12841         * ifcvt.c (noce_emit_move_insn): Likewise.
12842         * stmt.c (expand_return): Likewise.
12843         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
12844         store_field, expand_expr_real_1): Likewise.
12845
12846 2004-07-10  Richard Henderson  <rth@redhat.com>
12847
12848         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
12849
12850 2004-07-09  Mike Stump  <mrs@apple.com>
12851
12852         * config/darwin.c (no_dead_strip): Add.
12853         (HAVE_DEAD_STRIP): Add.
12854         (darwin_emit_unwind_label): Ensure that we don't dead code strip
12855         the .eh label.
12856
12857 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12858
12859         * tree-ssa-loop-im.c: New file.
12860         * Makefile.in (tree-ssa-loop-im.o): Add.
12861         * cfgloop.c (superloop_at_depth): New function.
12862         * cfgloop.h (superloop_at_depth): Declare.
12863         * common.opt (ftree-lim): New flag.
12864         * expr.c (array_ref_up_bound): New function.
12865         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
12866         * timevar.def (TV_LIM): New timevar.
12867         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
12868         computing immediate uses of a phi node.
12869         * tree-flow.h (struct tree_ann_common_d): Add aux field.
12870         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
12871         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
12872         * tree-pass.h (pass_lim): Declare.
12873         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
12874         functions.
12875         (pass_lim): New pass structure.
12876         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
12877         * tree.c (in_array_bounds_p): New function.
12878         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
12879         (in_array_bounds_p, array_ref_up_bound): Declare.
12880         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
12881         * doc/passes.texi (tree-ssa-loop-im.c): Document.
12882
12883 2004-07-09  Richard Henderson  <rth@redhat.com>
12884
12885         * builtins.c (expand_builtin_stpcpy): Don't modify len.
12886
12887         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
12888         with prejudice.
12889
12890 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
12891
12892         * flags.h: Delete redundant prototypes that are being generated
12893         in options.h from common.opt.
12894         * common.opt: Add in the expository comments formerly in flags.h.
12895
12896 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12897
12898         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
12899         available for use only when TARGET_MMX/_SSE is set, and check for
12900         variable argument function if any register count is non-zero.
12901         (function_arg): Correctly suppress repeated warnings for passing SSE
12902         vectors are arguments without SSE enabled.
12903         (ix86_function_arg_boundary): Without SSE enabled, the use of what
12904         would be SSE register modes does no longer influence the alignment.
12905
12906 2004-07-09  Richard Henderson  <rth@redhat.com>
12907
12908         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
12909         Always align upward to arg boundary.  Use size_in_bytes/round_up.
12910         Maintain type-correctness of constants.
12911         * stor-layout.c (round_up, round_down): Special-case powers of 2.
12912
12913 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
12914
12915         * config/sparc/sparc.c (*_costs): Scale instruction costs
12916         by COSTS_N_INSNS.
12917         (sparc_rtx_costs): Adjust as appropriate.
12918
12919 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12920
12921         * config/i386/mm3dnow.h: New.
12922         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
12923
12924 2004-07-09  Richard Henderson  <rth@redhat.com>
12925
12926         * simplify-rtx.c (simplify_const_relational_operation): Only
12927         look at bounds of scalar integers.
12928
12929 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12930
12931         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
12932
12933 2004-07-09  Andrew Pinski  <apinski@apple.com>
12934
12935         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
12936         always referenced.
12937         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
12938         UOBJC_METACLASS_decl.
12939
12940 2004-07-09  James E Wilson  <wilson@specifixinc.com>
12941
12942         PR target/16364
12943         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
12944         do return a parallel if hfa_mode == XFmode and mode == TImode.
12945
12946 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12947
12948         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
12949         permissible for unary plus.
12950
12951 2004-07-09  Jan Beulich  <jbeulich@novell.com>
12952
12953         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
12954         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
12955         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
12956         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
12957         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
12958         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
12959         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
12960         (BUILTIN_xxxIMAX): New.
12961         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
12962         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
12963         BUILT_IN_PARITYIMAX.
12964
12965 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
12966
12967         * config/sparc/sparc.h (processor_costs): Define.
12968         (sparc_costs): Declare.
12969         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
12970         hypersparc_costs, sparclet_costs, ultrasparc_costs,
12971         ultrasparc3_costs): New.
12972         (sparc_override_options): Set sparc_costs as appropriate.
12973         (sparc_rtx_costs): Use sparc_costs instead of messy
12974         conditionals.
12975
12976 2004-07-09  Steven Bosscher  <stevenb@suse.de>
12977
12978         * doc/md.texi (Processor pipeline description): Mention that
12979         the old pipeline description is deprecated.
12980
12981         * config/rs6000/7450.md (automaton ppc7450): Split up, move
12982         mciu_7450 function unit to...
12983         (automaton ppc7450mciu): ...new automaton.
12984
12985         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
12986         (schedule_block): Don't consider inserting bubbles.
12987         (sched_init): Don't initialize DFA bubbles.
12988         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
12989         TARGET_SCHED_DFA_BUBBLE): Remove.
12990         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
12991         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
12992         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
12993
12994         * stmt.c (conditional_context): Remove prototype.
12995         * tree.h (conditional_context): Remove.
12996         * tree-cfg.c (pre_insert_on_edge): Remove.
12997
12998         * c-common.h (c_expand_asm_operands): Remove prototype.
12999         * c-typeck.c (c_expand_asm_operands): Remove.
13000
13001 2004-07-09  Jan Beulich  <jbeulich@novell.com>
13002
13003         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
13004         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
13005         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
13006         and V8QI are class SSE. All sufficiently small remaining vector modes
13007         must be passed in one or two integer registers.
13008         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
13009         returned in memory.
13010         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
13011         __builtin_ia32_pmuludq128 have non-uniform argument and return types
13012         and must thus be handled explicitly.
13013         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
13014         MMX and XMM regs.
13015         (movv8qi_internal, movv4hi_internal, movv2si_internal,
13016         movv2sf_internal): Permit moving between MMX and XMM registers (since
13017         MMX areguments and return values are passed in XMM registers).
13018         (sse2_umulsidi3): Correct type and mode.
13019
13020 2004-07-09  Richard Henderson  <rth@redhat.com>
13021
13022         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
13023
13024 2004-07-09  Eric Christopher  <echristo@redhat.com>
13025
13026         * config/rs6000/40x.md: Split into two automatons.
13027
13028 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
13029             Andrew Pinski  <apinski@apple.com>
13030
13031         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
13032         on when we have more than one input file.
13033         (c_common_parse_file): Restore loop over all input files.
13034         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
13035
13036         * c-decl.c (set_type_context): New function.
13037         (pop_scope): Use it to set context of types.  When we
13038         encounter a TYPE_DECL, set the context of the attached type too.
13039         (pop_file_scope): Don't call cpp_undef_all here.
13040         (diagnose_mismatched_decls): Do not complain about a second
13041         definition of an 'extern inline' function if it's not in the
13042         same translation unit.  Do not complain about inline
13043         declaration after use if the use was in a different
13044         translation unit.
13045         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
13046         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
13047         the external scope.
13048         (pushdecl_top_level): Likewise.
13049         (grokdeclarator): Clarify what is going on with setting
13050         DECL_EXTERNAL on function types, a little.
13051         (c_write_global_declarations): Don't do anything if
13052         -fsyntax-only or errors have been encountered.
13053
13054 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
13055
13056         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
13057
13058 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13059
13060         PR target/16459
13061         * pa.c (output_indirect_call): Use %r2 as the link register when
13062         calling $$dyncall with a pc-relative branch.
13063
13064 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
13065
13066         * doc/install.texi (Binaries): Mention OpenPKG.
13067
13068 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
13069
13070         Fix PR tree-optimization/15555
13071         * tree-dfa.c (dump_variable): If the variable is a pointer
13072         SSA_NAME, also dump its points-to information.
13073         * tree-flow.h (struct ptr_info_def): Add field
13074         is_dereferenced.
13075         (dump_points_to_info_for): Declare.
13076         (debug_points_to_info_for): Declare.
13077         * tree-optimize.c (init_tree_optimization_passes): Add a
13078         second alias analysis pass after DOM2.
13079         Move pass_del_pta to a later spot.
13080         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
13081         create a name tags when we find a dereferenced pointer.  Just
13082         mark the pointer dereferenced.
13083         (collect_points_to_info_for): Move code to clear points-to
13084         information to create_name_tags.
13085         (create_name_tags): New function.
13086         (compute_flow_sensitive_aliasing): Call it.
13087         (setup_pointers_and_addressables): Mark type tags for renaming
13088         here instead of ...
13089         (create_memory_tag): ... here.
13090         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
13091         (dump_points_to_info_for): Declare extern.
13092         (debug_points_to_info_for): New function.
13093
13094 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
13095
13096         * config/arc/arc.md: Switch to DFA-based scheduler description.
13097         * config/arc/arc.c: Switch to DFA-based scheduler description.
13098
13099 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
13100
13101         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
13102         pointer.
13103
13104 2004-07-09  Richard Henderson  <rth@redhat.com>
13105
13106         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
13107         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13108         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
13109         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
13110
13111         * config/v850/v850-protos.h (v850_va_arg): Remove.
13112         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13113         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
13114         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
13115         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
13116         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
13117
13118 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
13119
13120         PR target/12133
13121         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
13122         and DImode to use +/-4k offset.
13123
13124 2004-07-09  Richard Henderson  <rth@redhat.com>
13125
13126         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
13127         Remove.
13128         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13129         (xstormy16_gimplify_va_arg_expr): Rewrite from
13130         xstormy16_expand_builtin_va_arg.
13131         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
13132
13133         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
13134         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
13135
13136         * config/sh/sh-protos.h (sh_va_arg): Remove.
13137         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13138         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
13139         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
13140
13141         * config/pa/pa-protos.h (hppa_va_arg): Remove.
13142         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13143         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
13144         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
13145
13146         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
13147         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13148         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
13149         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
13150
13151 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13152
13153         * config/sparc/sparc.md (return): Rewrite length formula.
13154         * config/sparc/sparc.c (output_return): Pass 1 as 5th
13155         argument to final_scan_insn when in a delay slot.
13156         (output_sibcall): Likewise.
13157
13158 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
13159
13160         * arm.c (arm_cpp_interwork): New variable.
13161         (arm_override_options): Set it if TARGET_INTERWORK was on the command
13162         line.
13163         * arm.h (arm_cpp_interwork): Declare it.
13164         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
13165         __THUMB_INTERWORK__ in the preprocessor.
13166
13167 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
13168
13169         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
13170
13171 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13172
13173         PR target/16416
13174         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
13175         Override default settings to account for -m32 and -m64.
13176
13177 2004-07-08  Randolph Chung  <tausq@debian.org>
13178
13179         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
13180
13181 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
13182
13183         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
13184         before comparing it as such.
13185
13186 2004-07-08  Richard Henderson  <rth@redhat.com>
13187
13188         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
13189         temporary.  Use bit arithmetic to align.
13190
13191 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
13192
13193         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
13194         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
13195         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
13196         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
13197         add_labels_and_missing_jumps, find_jump_block,
13198         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
13199         Likewise.
13200         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
13201         link_btr_uses, move_btr_def): Likewise.
13202         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
13203         expand_builtin_expect_jump): Likewise.
13204         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
13205         * calls.c (expand_call, emit_library_call_value_1): Likewise.
13206         * cfganal.c (forwarder_block_p): Likewise.
13207         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
13208         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
13209         find_bb_boundaries): Likewise.
13210         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
13211         merge_blocks_move_predecessor_nojumps,
13212         merge_blocks_move_successor_nojumps, insns_match_p,
13213         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
13214         try_optimize_cfg): Likewise.
13215         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
13216         * cfglayout.c (skip_insns_after_block, label_for_bb,
13217         record_effective_endpoints, insn_locators_initialize,
13218         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
13219         * cfgmainloop.c (create_loop_notes): Likewise.
13220         * cfgrtl.c (delete_insn, delete_insn_chain,
13221         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
13222         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
13223         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
13224         redirect_branch_edge, force_nonfallthru_and_redirect,
13225         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
13226         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
13227         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
13228         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
13229         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
13230         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
13231         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
13232         * combine.c (combine_instructions, can_combine_p, try_combine,
13233         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
13234         distribute_notes, distribute_links, insn_cuid): Likewise.
13235         * cse.c (fold_rtx, cse_insn, cse_around_loop,
13236         invalidate_skipped_block, cse_set_around_loop,
13237         cse_end_of_basic_block, cse_main, cse_basic_block,
13238         cse_condition_code_reg): Likewise.
13239         * cselib.c (cselib_process_insn): Likewise.
13240         * ddg.c (create_ddg): Likewise.
13241         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
13242         Likewise.
13243         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
13244         gen_label_die, dwarf2out_var_location): Likewise.
13245         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
13246         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
13247         last_call_insn, active_insn_p, next_label, prev_label,
13248         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
13249         add_insn_before, remove_insn, add_function_usage_to,
13250         reorder_insns, find_line_note, remove_unnecessary_notes,
13251         emit_insn_after_1, classify_insn): Likewise.
13252         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
13253         connect_post_landing_pads, sjlj_mark_call_sites,
13254         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
13255         can_throw_internal, can_throw_external, set_nothrow_function_flags,
13256         convert_to_eh_region_ranges): Likewise.
13257         * explow.c (optimize_save_area_alloca): Likewise.
13258         * expr.c (expand_expr_real): Likewise.
13259         * final.c (insn_current_reference_address, compute_alignments,
13260         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
13261         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
13262         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
13263         propagate_block_delete_insn, propagate_one_insn,
13264         init_propagate_block_info, propagate_block, libcall_dead_p,
13265         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
13266         Likewise.
13267         * function.c (instantiate_virtual_regs, reorder_blocks_1,
13268         expand_function_start, expand_function_end, contains,
13269         thread_prologue_and_epilogue_insns,
13270         reposition_prologue_and_epilogue_notes): Likewise.
13271         * gcse.c (constprop_register, bypass_conditional_jumps,
13272         insert_insn_end_bb, gcse_after_reload): Likewise.
13273         * genemit.c (gen_expand, gen_split): Likewise.
13274         * genpeep.c (gen_peephole, main): Likewise.
13275         * global.c (build_insn_chain): Likewise.
13276         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
13277         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
13278         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
13279         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
13280         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
13281         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
13282         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
13283         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
13284         dead_or_predicable): Likewise.
13285         * integrate.c (try_constants): Likewise.
13286         * jump.c (rebuild_jump_labels, cleanup_barriers,
13287         purge_line_number_notes, init_label_info, mark_all_labels,
13288         squeeze_notes, get_label_before, get_label_after,
13289         reversed_comparison_code_parts, simplejump_p, pc_set,
13290         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
13291         delete_barrier, delete_prior_computation, delete_computation,
13292         delete_related_insns, delete_for_peephole, redirect_jump):
13293         Likewise.
13294         * lcm.c (optimize_mode_switching): Likewise.
13295         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
13296         Likewise.
13297         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
13298         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
13299         * loop-iv.c (simplify_using_assignment): Likewise.
13300         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
13301         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
13302         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
13303         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
13304         check_insn_for_givs, check_final_value, update_giv_derive,
13305         basic_induction_var, product_cheap_p, check_dbra_loop,
13306         loop_insn_first_p, last_use_this_basic_block,
13307         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
13308         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
13309         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
13310         sms_schedule_by_order): Likewise.
13311         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
13312         * postreload.c (reload_cse_simplify_operands, reload_combine,
13313         reload_cse_move2add): Likewise.
13314         * predict.c (can_predict_insn_p, estimate_probability,
13315         expected_value_to_br_prob, process_note_predictions): Likewise.
13316         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
13317         * profile.c (branch_prob): Likewise.
13318         * ra-build.c (live_out_1, livethrough_conflicts_bb,
13319         detect_webs_set_in_cond_jump): Likewise.
13320         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
13321         ra_print_rtl_with_bb): Likewise.
13322         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
13323         * recog.c (next_insn_tests_no_inequality, find_single_use,
13324         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
13325         * reg-stack.c (next_flags_user, record_label_references,
13326         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
13327         compensate_edge, convert_regs_1): Likewise.
13328         * regclass.c (scan_one_insn): Likewise.
13329         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
13330         regmove_optimize, fixup_match_1, single_set_for_csa,
13331         combine_stack_adjustments_for_block): Likewise.
13332         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
13333         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
13334         find_equiv_reg): Likewise.
13335         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
13336         reload_as_needed, emit_input_reload_insns, do_output_reload,
13337         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
13338         Likewise.
13339         * reorg.c (find_end_label, emit_delay_sequence,
13340         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
13341         get_jump_flags, rare_destination, mostly_true_jump,
13342         try_merge_delay_insns, redundant_insn, own_thread_p,
13343         fill_simple_delay_slots, fill_slots_from_thread,
13344         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
13345         dbr_schedule): Likewise.
13346         * resource.c (find_basic_block, next_insn_no_annul,
13347         find_dead_or_set_registers, mark_target_live_regs): Likewise.
13348         * rtl.h (RTX_PREV): Likewise.
13349         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
13350         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
13351         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
13352         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
13353         tablejump_p, computed_jump_p, insns_safe_to_move_p,
13354         find_first_parameter_load, can_hoist_insn_p): Likewise.
13355         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
13356         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
13357         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
13358         schedule_ebbs): Likewise.
13359         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
13360         is_conditionally_protected, can_schedule_ready_p,
13361         add_branch_dependences, debug_dependencies): Likewise.
13362         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
13363         Likewise.
13364         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
13365         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
13366         set_dominates_use, ujump_to_loop_cont): Likewise.
13367         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
13368         * varasm.c (output_constant_pool_1): Likewise.
13369
13370 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13371
13372         * tree-scalar-evolution.c: New file.
13373         * tree-scalar-evolution.h: New file.
13374         * tree-ssa-loop-niter.c: New file.
13375         * Makefile.in (SCEV_H): New.
13376         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
13377         * cfgloop.h (struct loop): Add bounds field.
13378         * tree-flow.h (struct tree_niter_desc): New type.
13379         (number_of_iterations_cond, number_of_iterations_exit,
13380         loop_niter_by_eval, find_loop_niter_by_eval,
13381         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
13382         free_numbers_of_iterations_estimates): Declare.
13383         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
13384         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
13385         * doc/invoke.texi (max-iterations-to-track): Document.
13386
13387 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
13388
13389         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
13390         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
13391         (MODE_AFTER): Add cast appropriately.
13392         * config/sh/sh.md (movdi splitter): Likewise.
13393         (casesi_worker_2): Add const qualifier appropriately.
13394         (eh_return): Remove unused variable.
13395         (insv): Initialize v;
13396
13397 2004-07-08  Richard Henderson  <rth@redhat.com>
13398
13399         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
13400         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13401         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
13402         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
13403         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
13404
13405         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
13406         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13407         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
13408         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
13409
13410         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
13411         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13412         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
13413         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
13414
13415         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
13416         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13417         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
13418         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
13419
13420         * config/i860/i860-protos.h (i860_va_arg): Remove.
13421         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13422         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
13423         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
13424
13425 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
13426
13427         * system.h: Prototype getpagesize if missing.
13428         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
13429         * configure: Regenerate.
13430         * config.in: Regenerate.
13431
13432 2004-07-08  Richard Henderson  <rth@redhat.com>
13433
13434         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
13435         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13436         (fr30_gimplify_va_arg_expr): New.
13437         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
13438         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
13439
13440 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
13441
13442         PR target/16414
13443         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
13444         of asm_noperands result.
13445
13446 2004-07-08  Richard Henderson  <rth@redhat.com>
13447
13448         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
13449         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13450         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
13451         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
13452
13453 2004-07-08  Richard Henderson  <rth@redhat.com>
13454
13455         * builtins.c (ind_gimplify_va_arg_expr): New.
13456         * tree.h (ind_gimplify_va_arg_expr): Declare.
13457         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
13458
13459 2004-07-08  Jan Beulich  <jbeulich@novell.com>
13460
13461         * expmed.c (extract_bit_field): Correct condition to use vec_extract
13462         patterns also on vector elements other than the first one.
13463         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
13464         break statements.
13465
13466 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
13467
13468         * config/rs6000/darwin-ldouble.c: Correct reference
13469         to the Linnainmaa paper.
13470
13471 2004-07-08  Richard Henderson  <rth@redhat.com>
13472
13473         * config/arc/arc-protos.h (arc_va_arg): Remove.
13474         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13475         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
13476         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
13477
13478         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
13479         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
13480         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
13481         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
13482
13483 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13484
13485         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
13486
13487 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
13488
13489         * c-decl.c (static_ctors, static_dtors): Make static.
13490         (pop_file_scope): Call c_common_write_pch and
13491         cgraph_finalize_compilation_unit here.
13492         (build_cdtor): Moved here from c-objc-common.c; simplify.
13493         (c_write_global_declarations_1): Clarify comment.
13494         (c_write_global_declarations): Close the external scope before
13495         doing anything else.  Call build_cdtor, cgraph_optimize, and
13496         mudflap_finish_file here.
13497         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
13498         Clarify comment.
13499         * c-objc-common.c: No need to include cgraph.h.
13500         (build_cdtor): Moved to c-decl.c.
13501         (c_objc_common_finish_file): Delete.
13502         * c-tree.h: Update to match.
13503         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
13504         (generate_static_references): Set TREE_USED before calling finish_decl.
13505         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
13506         on the static_instances_decl.
13507
13508 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
13509
13510         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
13511         decls when there is only one input translation unit.
13512         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
13513         change of 2004-07-05; do not treat declarations with
13514         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
13515         * opts.c (cur_in_fname): Delete.
13516         * opts.h: Likewise.
13517         * tree.c: Revert changes of 2004-07-05; no special treatment
13518         for TRANSLATION_UNIT_DECLs.
13519         * Makefile.in (tree.o): Update dependencies.
13520
13521 2004-07-08  Roger Sayle  <roger@eyesopen.com>
13522
13523         * builtins.c (fold_builtin_strcpy): Merge functionality from
13524         simplify_builtin_strcpy.  Add additional len argument.  No longer
13525         static.  Remove function prototype.
13526         (fold_builtin_strncpy): Likewise integrate functionality from
13527         simplify_builtin_strncpy.  Add additional slen argument.  No
13528         longer static.  Remove function prototype.
13529         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
13530         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
13531         types of "ignore" and "unlocked" parameters to bool.
13532         (fold_builtin_1):  Add additional ignore argument.  Call renamed
13533         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
13534         builtins.  Update arguments to fold_builtin_strncpy and
13535         fold_builtin_strcpy.  Add function prototype.
13536         (fold_builtin): Add additional Boolean ignore argument to pass
13537         to fold_builtin_1.
13538         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
13539         and fold_builtin_strncpy instead of simplify_builtin_fputs,
13540         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
13541
13542         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
13543         simplify_builtin_strncpy): Delete function prototypes.
13544         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
13545         fold_builtin_strncpy): Add function prototypes here.
13546         (fold_builtin): Update function prototype with new "bool ignore".
13547
13548         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
13549         (ccp_fold_builtin):  Update call to fold_builtin.  Call
13550         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
13551         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
13552         simplify_builtin_strncpy respectively.
13553         * fold-const.c (fold): Update call to fold_builtin.
13554
13555 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
13556
13557         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
13558         to strcpy.
13559
13560         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
13561         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
13562         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
13563         * calls.c: Remove ifdefs of macros above.
13564         * functions.c: Likewise.
13565         * expr.c: Likewise.
13566
13567 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
13568
13569         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
13570         (arch attribute): Delete.
13571         (current_function_calls_alloca attribute): Rename into calls_alloca.
13572         (calls_eh_return): New attribute.
13573         (leaf_function): Likewise.
13574         (length attribute): Fix formula for sibcalls.
13575         (return insn): Correctly compute the 'length' attribute.
13576         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
13577
13578 2004-07-08  Richard Henderson  <rth@redhat.com>
13579
13580         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
13581         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
13582         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
13583         * tree-eh.c (lower_eh_constructs_1): Likewise.
13584         * tree-sra.c (sra_walk_modify_expr): Likewise.
13585         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
13586         (eliminate_unnecessary_stmts): Likewise.
13587         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
13588         * tree-tailcall.c (optimize_tail_call): Likewise.
13589         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
13590
13591 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
13592             Jakub Jelinek  <jakub@redhat.com>
13593
13594         * config/i386/i386.c (override_options): Enable
13595         SSE prefetches with -mtune, as long as we are
13596         compiling for i686 or higher.  All i686 processors
13597         accept SSE prefetches as NOPS, some i586's don't.
13598
13599 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
13600
13601         PR target/10567
13602         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
13603
13604 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
13605
13606         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
13607         the handling of clobbering ASM_EXPRs.
13608
13609 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
13610
13611         PR target/16430
13612         * config/sparc/sparc.c (function_value): In 64-bit mode,
13613         return the aggregates larger than 16 bytes like unions.
13614
13615 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
13616
13617         PR target/16199
13618         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
13619         'temp' is zero, generate new pseudos as needed and emit the
13620         sequence of insns in single-assignment form.  Resync comments
13621         with code.
13622         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
13623         function before reload.
13624
13625 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
13626
13627         * vec.c (vec_assert_fail): Remove duplicate 'function'.
13628
13629         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
13630
13631         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
13632         Allocation is signed.
13633         (VEC_reserve): Return flag, allocation is signed.
13634
13635 2004-07-08  Richard Henderson  <rth@redhat.com>
13636
13637         * tree-ssa-ccp.c (fold_stmt): Get type directly from
13638         OBJ_TYPE_REF_OBJECT.
13639
13640 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13641             Neil Booth  <neil@daikokuya.co.uk>
13642
13643         PR c/2511
13644         PR c/3325
13645         * c-decl.c (finish_struct): Ensure bit-fields are given the
13646         correct type.
13647         * c-common.c (c_common_signed_or_unsigned_type): For C, require
13648         the precision to match as well as the mode.
13649         * expr.c (reduce_to_bit_field_precision): New function.
13650         (expand_expr_real_1): Reduce expressions of bit-field type to
13651         proper precision.
13652         * langhooks.h (reduce_bit_field_operations): New hook.
13653         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
13654         Define.
13655         * c-lang.c, objc/objc-lang.c
13656         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
13657         * objc/objc-act.c (check_ivars): Convert types to bit-field types
13658         before checking.
13659         * tree.c (build_nonstandard_integer_type): New function.
13660         * tree.h (build_nonstandard_integer_type): New prototype.
13661         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
13662         conversions between integer and boolean types as useless.
13663
13664 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
13665
13666         * c-common.c (c_common_nodes_and_builtins): Do not
13667         create __builtin_ptrdiff_t and __builtin_size_t.
13668
13669 2004-07-08  Andrew Pinski  <apinski@apple.com>
13670
13671         * Makefile.in (libbackend.o): Add -combine to the gcc
13672         command line.
13673
13674 2004-07-08  Nick Clifton  <nickc@redhat.com>
13675
13676         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
13677         Set to -Os.
13678
13679 2004-07-08  Richard Henderson  <rth@redhat.com>
13680
13681         * except.c (expand_eh_region_start, expand_eh_region_end,
13682         expand_eh_handler, expand_eh_region_end_cleanup,
13683         expand_start_all_catch, expand_start_catch, expand_end_catch,
13684         expand_end_all_catch, expand_eh_region_end_allowed,
13685         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
13686         expand_eh_region_end_fixup): Remove.
13687         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
13688         cleanups, outer_cleanups, label_chain, exception_region.
13689         (struct goto_fixup): Remove stack_level, cleanup_list_list.
13690         (struct label_chain): Remove.
13691         (struct stmt_status): Remove x_stack_block_stack.
13692         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
13693         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
13694         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
13695         end_cleanup_deferral, last_cleanup_this_contour,
13696         containing_blocks_have_cleanups_or_stack_level,
13697         any_pending_cleanups): Remove.
13698         (expand_null_return_1): Take no arguments.
13699         (expand_label, expand_naked_return, expand_return,
13700         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
13701         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
13702         expand_end_case_type): Don't use any of them.
13703         * calls.c (expand_call): Likewise.
13704         * dojump.c (do_jump): Likewise.
13705         * function.c (expand_function_end): Likewise.
13706         * expr.c (store_expr, expand_expr_real_1): Likewise.
13707         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
13708         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
13709         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
13710         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
13711         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
13712         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
13713         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
13714         for WITH_CLEANUP_EXPR.
13715         (gimple_push_cleanup): Likewise.
13716         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
13717         * print-tree.c (print_node): Likewise.
13718         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
13719         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
13720         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
13721         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
13722         (GOTO_SUBROUTINE_EXPR): Remove.
13723         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
13724         (DECL_TOO_LATE): Remove.
13725         * except.h, tree.h: Update decls.
13726
13727 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
13728
13729         * explow.c (optimize_save_area_alloca): Do not accept parameters.
13730         * passes.c (rest_of_handle_final): Handle symout.
13731         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
13732         Push timevar here.
13733         (rest_of_handle_sched): Break out SMS.  Remove ifs for
13734         flag_schedule_insns and flag_modulo_sched.
13735         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
13736         collect at the end.
13737         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
13738         (rest_of_handle_partition_blocks, rest_of_handle_sms,
13739         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
13740         rest_of_handle_mode_switching, rest_of_handle_jump,
13741         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
13742         rest_of_handle_jump2, rest_of_handle_postreload,
13743         rest_of_handle_flow2, rest_of_clean_state,
13744         rest_of_handle_shorten_branches,
13745         rest_of_handle_prologue_epilogue,
13746         rest_of_handle_branch_target_load_optimize): New.
13747         (rest_of_compilation): Call the above.  Remove ggc_collect
13748         calls moved to rest_of_handle_*.
13749         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
13750
13751         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
13752         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
13753         * except.h (set_nothrow_function_flags): Update comment.
13754         * function.c (current_function_nothrow): Remove.
13755         * output.h (current_function_nothrow): Remove.
13756         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
13757         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
13758
13759 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
13760
13761         PR bootstrap/16326
13762         * reorg.c: Revert 2004-06-30 change.
13763         (find_end_label): If HAVE_epilogue and !HAVE_return,
13764         return 0 instead of creating a label at the end of the insn chain.
13765         (optimize_skip): Account for the failure mode of find_end_label.
13766         (fill_simple_delay_slots): Likewise.
13767         (fill_slots_from_thread): Likewise.
13768         (relax_delay_slots): Likewise.
13769
13770 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
13771
13772         * tree-flow.h (addressable_vars): Declare.
13773         * tree-ssa-alias.c (addressable_vars): Define.
13774         (setup_pointers_and_addressables): Add addressable variables
13775         to addressable_vars.
13776         * tree-ssa-operands.c (get_stmt_operands): Move
13777         handling of ASM_EXPRs ...
13778         (get_asm_expr_operands): ... here.
13779         When the ASM_EXPR clobbers memory, also clobber addressable
13780         variables.
13781         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
13782         (delete_tree_ssa): Reset addressable_vars.
13783
13784 2004-07-07  Jan Beulich  <jbeulich@novell.com>
13785             Richard Henderson  <rth@redhat.com>
13786
13787         * varasm.c (assemble_variable): Use assemble_zeros for
13788         zero-initialized variables.
13789         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
13790         for SECCAT_BSS and SECCAT_TBSS.
13791
13792 2004-07-07  Jan Beulich  <jbeulich@novell.com>
13793
13794         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
13795
13796         * expmed.c (emit_store_flag): Also special-case double-word
13797         (in-)equality comparison against -1.
13798
13799         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
13800         passing arguments the containers for which are registers.
13801
13802         * calls.c (emit_library_call_value_1): Use mode of function parameter
13803         rather than that of argument since constants have none.
13804
13805 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
13806
13807         Introduce H8SX support.
13808         * expr.c (expand_strcpy): Renamed and moved to...
13809         * builtins.c (expand_movstr): ... here.  Tweak.
13810         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
13811         computed or has side effects.
13812         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
13813         unused, or if mempcpy fails.  Adjust the return value in the
13814         latter case.  Use movstr if everything else fails.
13815         * doc/md.texi (movstr): Document.
13816         (movmemM, clrmemM): Fix explanation of memory block operands.
13817         * config/h8300/h8300.md (stpcpy): Renamed to...
13818         (movstr): ... this.  Adjust.
13819         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
13820         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
13821         movmem* and clrstr* to clrmem*.
13822         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
13823         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
13824         GENERAL_REGS, always.
13825         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
13826         getting the stack pointer as addr.
13827         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
13828         from general_operand_dst.
13829         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
13830         variant of...
13831         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
13832         instead of requiring it to match only before reload.
13833         (stpcpy_internal_normal): New, normal-mode variant of...
13834         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
13835         `D' instead of requiring it to match only before reload.
13836         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
13837         mode argument.
13838         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
13839         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
13840         h8300_get_index.
13841         * config/h8300/h8300.md (attr type): Add call.
13842         (attr can_delay): If type is call, set it no.
13843         (call, call_value): Set type to call.
13844         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
13845         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
13846         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
13847         * tree.c (get_narrower): Don't narrow integral types into
13848         non-integral types.
13849         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
13850         frame_size *before* the first use.
13851         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
13852         on input.
13853         (peephole2): Don't widen instructions that push SP.  Move
13854         decrement of SP to the end of all stm-generating peepholes.
13855         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
13856         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
13857         and OR to set it to all ones.
13858         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
13859         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
13860         (call, call_value): Set can_delay to "no".
13861         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
13862         * config/h8300/h8300.md (extzv): Make subreg check more robust.
13863         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
13864         * config/h8300/h8300.md (*brabit): Remove.
13865         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
13866         zero_extract.  Use bit_memory_operand as the predicate for
13867         operand 1 and 'WU' as the constraint.  Check the difference
13868         between the base length and the final one when deciding which
13869         type of branch to use.
13870         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
13871         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
13872         Use convert_move to extend the result for TARGET_H8300SX.  Check
13873         for QImode memory references.  Optimize the case where the
13874         destination is a paradoxical subreg.
13875         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
13876         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
13877         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
13878         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
13879         * config/h8300/h8300.md: Include mova.md
13880         (length_table): Add mova and mova_zero.
13881         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
13882         after all constant addresses for '%R', '%X', '%T' and '%S'.
13883         (h8300_mova_length): New function.
13884         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
13885         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
13886         dependencies for s-config, etc.
13887         * config/h8300/gemova.sh: New file.
13888         * config/h8300/mova.md: Generated.
13889         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
13890         * config/h8300/h8300.c (h8300_bitfield_length): New.
13891         (nibble_operand): Adjust.
13892         (h8300_binary_length): Handle conditional binary op.
13893         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
13894         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
13895         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
13896         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
13897         constraints.  WU is introduced as a variant of U that requires a
13898         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
13899         * config/h8300/h8300.md (attr type): Added bitbranch.
13900         (attr length_table): Added bitfield and bitbranch.
13901         (attr length): Compute bitbranch length.
13902         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
13903         least-significant bit of a byte.
13904         (brabit, brabc, brabs): New.
13905         (insv, extzv): Emit bfst and bfld on H8300SX.
13906         (bfld, bfst, seq, sne): New.
13907         (bstzhireg, cmpstz, bstz, bistz): New.
13908         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
13909         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
13910         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
13911         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
13912         (h8sx_unary_memory_operator): New function.
13913         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
13914         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
13915         * config/h8300/h8300.md: Add peepholes to combine reloads and
13916         arithmetic insns.
13917         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
13918         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
13919         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
13920         (and?i, ior?i, xor?i): Likewise.
13921         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
13922         * config/h8300/h8300.c: Move enums and prototypes to head of file.
13923         Various whitespace fixes.
13924         (h8300_constant_length): New function, split out from...
13925         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
13926         (h8300_classify_operand): Use IN_RANGE.
13927         (h8300_classify_operand): Use h8300_constant_length.
13928         (h8300_short_move_mem_p): Tighten size check.
13929         (h8sx_mergeable_memrefs_p): Tighten equality check.
13930         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
13931         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
13932         for -msx.
13933         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
13934         * config/h8300/crtn.asm: Likewise.
13935         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
13936         if __H8300SX__ is defined.
13937         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
13938         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
13939         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
13940         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
13941         addresses as mode-dependent.
13942         * config/h8300/h8300.c (print_operand_address): Update call to
13943         h8300_get_index.
13944         (h8300_get_index): Take a mode argument.  Rework to fix an
13945         earlier misunderstanding.
13946         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
13947         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
13948         into a register if TARGET_H8300SX.
13949         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
13950         TARGET_H8300SX.  Also disable related define_splits.
13951         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
13952         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
13953         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
13954         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
13955         * config/h8300/h8300.h (OK_FOR_Z): New macro.
13956         (EXTRA_CONSTRAINT_STR): Check it.
13957         * config/h8300/h8300.c (h8300_classify_operand): Accept null
13958         class arguments.
13959         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
13960         * config/h8300/h8300.md (length_table): Add mov_imm4.
13961         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
13962         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
13963         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
13964         be a label.
13965         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
13966         * config/h8300/h8300.c (h8300_reorg): New function.
13967         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13968         * config/h8300/h8300.md (length): Subtract the length of the
13969         delay slot from (pc) when checking the range of forward branches.
13970         (delay_slot, can_delay): New attributes.
13971         (define_delay): Add bra/s handling.
13972         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
13973         (jump): Add delayed-branch handling.
13974         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
13975         * expr.c (expand_strcpy): New function.
13976         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
13977         (expand_builtin_stpcpy): Likewise.
13978         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
13979         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
13980         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
13981         handling to improve register allocation for -fno-omit-frame-pointer.
13982         (h8sx_split_movmd): Delete, moving er6 handling into...
13983         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
13984         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
13985         (movmd): Add calls to copy_rtx.
13986         (movmd_internal): In the second alternative, allow the initial and
13987         final destination registers to be different .  Update the splitter
13988         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
13989         instead of h8sx_split_movmd.
13990         (stpcpy, movsd): New expanders.
13991         (movsd_internal): New define_insn.
13992         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
13993         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
13994         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
13995         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
13996         and DESTINATION_REGS.
13997         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
13998         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
13999         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
14000         (h8300_move_ratio): Declare.
14001         (MOVE_RATIO): Use it.
14002         * config/h8300/h8300.c (h8300_move_ratio): New variable.
14003         (h8300_init_once): Initialize it.
14004         (h8300_reg_class_from_letter): New function.
14005         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
14006         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
14007         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
14008         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
14009         (movstrsi, movmd): New expanders.
14010         (movmd_internal): New insn.
14011         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
14012         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
14013         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
14014         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
14015         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
14016         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
14017         * config/h8300/h8300.c (nibble_operand): Fix warning.
14018         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
14019         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
14020         (movsf_h8300h): Disable for TARGET_H8300SX.
14021         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
14022         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
14023         h8300_stm_parallel and h8300_return_parallel.
14024         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
14025         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
14026         h8300_stm_parallel, h8300_return_parallel): New functions.
14027         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
14028         if TARGET_H8300SX.  Use h8300_push_pop.
14029         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
14030         and final pop when generating h8sx code.  Always emit some form
14031         of return insn.
14032         * config/h8300/h8300.md: Don't enforce register alignment in
14033         stm peepholes if TARGET_H8300SX.
14034         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
14035         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
14036         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
14037         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
14038         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
14039         (MULTILIB_DIRNAMES): Add a directory for it.
14040         (MULTILIB_MATCHES): Delete.
14041         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
14042         * final.c (walk_alter_subreg): Handle addresses with subregs
14043         inside a ZERO_EXTEND or AND.
14044         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
14045         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
14046         if TARGET_H8300SX.
14047         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
14048         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
14049         @(dd,Rn.w) and @(dd,ERn.L).
14050         (h8300_displacement_size): Take the whole address as argument.
14051         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
14052         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
14053         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
14054         (h8sx_mergeable_memrefs_p): Declare.
14055         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
14056         (HAVE_PRE_INCREMENT): Likewise.
14057         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
14058         addresses for TARGET_H8300SX,
14059         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
14060         and POST_DEC.
14061         (movb_length_table, movl_length_table): New tables.
14062         (movw_length_table): Define to movb_length_table.
14063         (h8300_displacement_size): New, split out from...
14064         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
14065         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
14066         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
14067         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
14068         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
14069         (compute_plussi_length, compute_plussi_cc): Update accordingly.
14070         (h8sx_unary_shift_operator): Get the mode from the operator.
14071         (binary_shift_operator): Likewise.
14072         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
14073         a memory reference, check whether the reference is offsettable.
14074         (length_table): Add movb, movw and movl.
14075         (movqi): Add new h8sx pattern.  Don't force one operand to be a
14076         register when generating h8sx code.
14077         (movhi, movsi, movsf): Likewise.
14078         (movstrictqi): Use the length_table attribute.
14079         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
14080         (addqi3): Split into a define_expand and define_insn.  Don't accept
14081         memory operands in the expander.  Use h8300_operands_match_p to
14082         check for matching operands in the define_insn.
14083         (subqi3, negqi2, one_cmplqi2): Likewise.
14084         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
14085         in any patterns that are unused in h8sx code.  In the h8sx patterns,
14086         use h8300_operands_match_p to check whether operands match.
14087         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
14088         one_cmpl[hs]i3): Likewise.
14089         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
14090         in the expander.
14091         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
14092         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
14093         (h8300_insn_length_from_table): Add a second parameter.
14094         (output_h8sx_shift): Declare.
14095         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
14096         (EXTRA_CONSTRAINT): Replace with...
14097         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
14098         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
14099         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
14100         and h8sx_binary_shift_operator.
14101         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
14102         for TARGET_H8300SX.
14103         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
14104         (bit_memory_operand, fix_bit_operand): Likewise.
14105         (h8300_length_table_for_insn): Remove.
14106         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
14107         instructions.
14108         (h8300_short_immediate_length, h8300_binary_length): New functions.
14109         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
14110         (output_plussi): Use sub to add negative constants.
14111         (compute_plussi_length): Adjust accordingly.
14112         (h8sx_single_shift_type): New enum.
14113         (h8sx_single_shift, h8sx_unary_shift_operator,
14114         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
14115         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
14116         single h8sx instruction.  Return false in this case.
14117         * config/h8300/h8300.md (length_table): Add short_immediate.
14118         (length): Pass the operand array to h8300_insn_length_from_table.
14119         (adjust_length): Assume "no" for insns with a length_table attribute.
14120         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
14121         (*addhi3_h8300hs): Don't use for h8sx.
14122         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
14123         and sub.w #xx:3.
14124         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
14125         1's predicate to nonimmediate_operand.  Only skip default expansion
14126         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
14127         for single h8sx shift instructions.
14128         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
14129         * config/h8300/h8300.c (nibble_operand): Split out of...
14130         (reg_or_nibble_operand): ... this.
14131         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
14132         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
14133         umulhisi3): Introduce expand, and introduce separate insns for
14134         sign- or zero-extended REG and already-extended CONST_INT.
14135         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
14136         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
14137         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
14138         (subhi3): Likewise.  Don't accept immediates for operand 1.
14139         Remove the early clobber from second alternative of the h8300s pattern.
14140         (subsi3): Generalize for h8sx.  Force operand 2 into a register
14141         on plain h8300 targets.
14142         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
14143         (subsi3_h8300h): Generalize for h8sx.
14144         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
14145         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
14146         * config/h8300/h8300.c (reg_or_nibble_operand): New.
14147         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
14148         (TARGET_H8300SXMUL): New.
14149         (CONST_OK_FOR_P): New.
14150         (CONST_OK_FOR_LETTER_P): Adjust.
14151         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
14152         umulhisi3): Accept 4-bit immediate on H8SX.
14153         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
14154         (udivsi3, divhi3, udivsi3, divsi3): New.
14155         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
14156         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
14157         * config/h8300/h8300.h (OK_FOR_Q): New macro.
14158         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
14159         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
14160         Add ADDRESSOF to the bit_operand entry.
14161         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
14162         (h8300_src_operand): Likewise.
14163         (bit_operand): Check nonimmediate_operand rather than general_operand.
14164         Accept any nonimmediate_operand in h8sx code.
14165         (h8300_and_costs): Initialize operands[1].
14166         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
14167         (h8300_operand_class): New enum.
14168         (h8300_length_table): New typedef.
14169         (addb_length_table, addw_length_table, addl_length_table,
14170         logicl_length_table): New tables.
14171         (logicb_length_table, logicw_length_table): New macros.
14172         (h8300_classify_operand, h8300_length_from_table,
14173         h8300_length_table_for_insn, h8300_unary_length,
14174         h8300_insn_length_from_table): New functions.
14175         (output_plussi): Only use adds and subs for register destinations.
14176         Disable redundant clause.
14177         (compute_plussi_cc): Likewise.
14178         (compute_plussi_length): Likewise.  Use h8300_length_from_table
14179         to work out the length of an insn.
14180         (output_logical_op): Only use narrower immediate instructions
14181         if the destination is a register.
14182         (compute_logical_op_cc): Likewise.
14183         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
14184         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
14185         * config/h8300/h8300.md (length_table): New attribute.
14186         (length): When an instruction has a length_table attribute, use
14187         h8300_insn_length_from_table to calculate its default length.
14188         (cmpqi): Use h8300_dst_operand for the first operand and
14189         h8300_src_operand for the second.
14190         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
14191         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
14192         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
14193         iorsi3, xorhi3, xorsi3): Likewise.
14194         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
14195         so that it allows any combination of operands for TARGET_H8300SX.
14196         (iorqi3, xorqi3): Likewise.
14197         (cmpqi): Use the length_table attribute.
14198         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
14199         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
14200         (cmpqi): Add 'Q' constraint.
14201         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
14202         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
14203         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
14204         * config/h8300/h8300.h (MASK_H8300SX): New macro.
14205         (TARGET_H8300S): True for both -ms and -msx.
14206         (TARGET_H8300SX): New macro.
14207         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
14208         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
14209         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
14210         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
14211         [Temporary change.]
14212         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
14213         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
14214         16-bit pointers and 32-bit ints.
14215         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
14216         CONST_DOUBLE with mode no wider than SImode.
14217         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
14218         output operand.
14219         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
14220         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
14221         or SUBREG thereof.
14222         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
14223         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
14224         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
14225
14226 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
14227
14228         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
14229
14230 2004-07-07  Per Bothner  <per@bothner.com>
14231
14232         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
14233
14234 2004-07-07  Mike Stump  <mrs@apple.com>
14235
14236         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
14237         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
14238         (machopic_finish): Likewise.
14239
14240 2004-07-07  Richard Henderson  <rth@redhat.com>
14241
14242         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
14243         through any value-preserving cast.
14244
14245 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
14246
14247         * function.c (assign_parm_find_data_types): Call
14248         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
14249
14250 2004-07-07  Steven Bosscher  <stevenb@suse.de>
14251
14252         * tree-cfg.c (group_case_labels): Remove case labels that have
14253         the same target as the default case.
14254
14255 2004-07-07  Steven Bosscher  <stevenb@suse.de>
14256
14257         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
14258         regardless of DECL_LANG_SPECIFIC being present or not.
14259         * tree.h (DECL_NUM_STMTS): Purge.
14260
14261 2004-07-07  Andrew Pinski  <apinski@apple.com>
14262
14263         * configure: Regenerate with the right autoconf.
14264
14265 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
14266
14267         * ifcvt.c (total_bb_rtx_cost): New function.
14268         (find_if_case_1): Compare rtx_cost of basic block to cost of
14269         BRANCH_COST insns.
14270         (find_if_case_2): Same.
14271
14272 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
14273
14274         PR target/10567
14275         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
14276         (output_return): Likewise.
14277         (output_sibcall): Abort if !flag_delayed_branch.
14278         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
14279         (emit_and_preserve): New function.
14280         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
14281         indirect jump to the thunked-to function if !flag_delayed_branch.
14282         * config/sparc/sparc.md (delayed_branch): New attribute.
14283         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
14284         attribute to compute the length of the insn.
14285         (goto_handler_and_restore): Likewise.
14286
14287 2004-07-07  Andrew Pinski  <apinski@apple.com>
14288
14289         PR tree-optimization/15777
14290         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
14291
14292         * expr.c (expand_expr_real_1): Fix formating.
14293         BUFFER_REF and IN_EXPR are dead.
14294         * fold-const.c (non_lvalue): BUFFER_REF is dead.
14295         * tree-inline.c (estimate_num_insns_1): Likewise.
14296         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
14297         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
14298         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
14299
14300 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
14301
14302         * collect2.c (dump_file): Don't call cplus_demangle if
14303         HAVE_LD_DEMANGLE is defined.
14304         (main): Pass "--demangle" to ld if no_demangle is not 0 and
14305         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
14306         if HAVE_LD_DEMANGLE is defined.
14307
14308         * configure.ac (--with-demangler-in-ld): Added
14309         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
14310         --with-demangler-in-ld is used.
14311         * config.in: Regenerated.
14312         * configure: Likewise.
14313
14314 2004-07-07  Roger Sayle  <roger@eyesopen.com>
14315
14316         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
14317         for simple floating point operations "fp", double precision
14318         multiplication "dmul", and single and double precision division
14319         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
14320         (ppc630_cost): New table split from ppc620_cost, to distinguish
14321         differences in floating point latencies.
14322         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
14323         (rs6000_rtx_costs): Add support for single and double precision
14324         floating point addition, subtraction, multiplication, division,
14325         fused-multiply-add, fused-multiply-sub, negation, absolute value
14326         and negative absolute value.  Tweak MEM case to use prefered idiom.
14327
14328 2004-07-07  Richard Henderson  <rth@redhat.com>
14329
14330         * tree-flow-inline.h (may_propagate_copy): Move...
14331         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
14332         attempt to copy between types requiring conversion.
14333         * tree-flow.h (may_propagate_copy): Update decl.
14334         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
14335
14336 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
14337
14338         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
14339         from -mtune= option.
14340
14341 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
14342
14343         * builtins.c: Rename movstr*, except for movstrict*, to
14344         movmem* and clrstr* to clrmem*.
14345         * expr.c: Likewise.
14346         * expr.h: Likewise.
14347         * genopinit.c: Likewise.
14348         * integrate.c: Likewise.
14349         * local-alloc.c: Likewise.
14350         * optabs.c: Likewise.
14351         * optabs.h: Likewise.
14352         * config/alpha/alpha.h: Likewise.
14353         * config/alpha/alpha.md: Likewise.
14354         * config/arm/arm-protos.h: Likewise.
14355         * config/arm/arm.c: Likewise.
14356         * config/arm/arm.md: Likewise.
14357         * config/avr/avr.md: Likewise.
14358         * config/c4x/c4x.c: Likewise.
14359         * config/c4x/c4x.md: Likewise.
14360         * config/frv/frv.md: Likewise.
14361         * config/i386/i386-protos.h: Likewise.
14362         * config/i386/i386.c: Likewise.
14363         * config/i386/i386.h: Likewise.
14364         * config/i386/i386.md: Likewise.
14365         * config/i860/i860.c: Likewise.
14366         * config/i860/i860.md: Likewise.
14367         * config/ip2k/ip2k.md: Likewise.
14368         * config/ip2k/libgcc.S: Likewise.
14369         * config/ip2k/t-ip2k: Likewise.
14370         * config/m32r/m32r.c: Likewise.
14371         * config/m32r/m32r.md: Likewise.
14372         * config/mcore/mcore.md: Likewise.
14373         * config/mips/mips.c: Likewise.
14374         * config/mips/mips.md: Likewise.
14375         * config/ns32k/ns32k.c: Likewise.
14376         * config/ns32k/ns32k.h: Likewise.
14377         * config/ns32k/ns32k.md: Likewise.
14378         * config/pa/pa.c: Likewise.
14379         * config/pa/pa.md: Likewise.
14380         * config/pdp11/pdp11.h: Likewise.
14381         * config/pdp11/pdp11.md: Likewise.
14382         * config/rs6000/rs6000.c: Likewise.
14383         * config/rs6000/rs6000.md: Likewise.
14384         * config/s390/s390-protos.h: Likewise.
14385         * config/s390/s390.c: Likewise.
14386         * config/s390/s390.md: Likewise.
14387         * config/sh/lib1funcs.asm: Likewise.
14388         * config/sh/sh.c: Likewise.
14389         * config/sh/sh.md: Likewise.
14390         * config/sh/t-sh: Likewise.
14391         * config/sparc/sparc.h: Likewise.
14392         * config/vax/vax.md: Likewise.
14393         * config/xtensa/xtensa.c: Likewise.
14394         * config/xtensa/xtensa.md: Likewise.
14395         * doc/invoke.texi: Likewise.
14396         * doc/md.texi: Likewise.
14397         * doc/rtl.texi: Likewise.
14398
14399 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
14400
14401         PR target/16407
14402         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
14403         * config/mips/mips.c (mips_declare_common_object): New function,
14404         mostly split out from...
14405         (mips_output_aligned_decl_common): ...here.
14406         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
14407         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
14408         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
14409         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
14410
14411 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14412
14413         PR c/16392
14414         * function.c (assign_parms): Fix typo from previous change.
14415
14416 2004-07-07  Jason Merrill  <jason@redhat.com>
14417
14418         PR c++/15815
14419         * doc/extend.texi (C++ Interface): Correct information and
14420         discourage use.
14421
14422 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
14423
14424         PR target/16130
14425         PR target/16142
14426         PR target/16143
14427         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
14428         insn.
14429
14430 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14431
14432         PR target/1679.
14433         * config/m32r/m32r.c (m32r_function_symbol): New function:
14434         Generate a symbol name RTX with the correct m32r specific flags
14435         set.
14436         (block_move_call): Use new function to generate correct symbol.
14437         * config/m32r/m32r-protos.h: Add prototype for new funcion.
14438         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
14439         function.
14440
14441 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
14442
14443         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
14444         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
14445         TYPE_BINFO_BASETYPE): Remove.
14446         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
14447         to ...
14448         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
14449         here.
14450         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
14451         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
14452         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
14453         (struct tree_binfo): Rename base_types to base_binfos.
14454         * alias.c (record_component_aliases): Adjust BINFO macros.
14455         * dbxout.c (dbxout_type): Likewise.
14456         * dwarf2out.c (gen_member_die): Likewise.
14457         * sdbout.c (sdbout_one_type): Likewise.
14458         * tree-dump.c (deque_and_dump): Likewise.
14459         * config/i386/i386.c (classify_argument,
14460         contains_128bit_aligned_vector_p): Likewise.
14461
14462 2004-07-07  Nick Clifton  <nickc@redhat.com>
14463
14464         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
14465         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
14466
14467 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
14468
14469         * vec.h: Fix the example use.
14470
14471 2004-07-06  Richard Henderson  <rth@redhat.com>
14472
14473         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
14474         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
14475         * tree-inline.c (copy_body_r, setup_one_parameter,
14476         initialize_inlined_parameters, expand_call_inline,
14477         declare_inline_vars): Don't check it.
14478         (expand_calls_inline): Remove old version, rename new version
14479         from gimple_expand_calls_inline.
14480         * tree-optimize.c (execute_gimple): Remove.
14481         (pass_gimple): Don't run anything.
14482
14483 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
14484
14485         * doc/sourcebuild.texi: Use semicolons instead of commas in
14486         section title.
14487
14488 2004-07-06  Richard Henderson  <rth@redhat.com>
14489
14490         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
14491         (sra_walk_modify_expr, scan_init): Likewise.
14492         (generate_element_zero): Check visited before scanning children.
14493         (generate_element_init): Set visited on error.
14494         (scalarize_init): Handle generate_element_init failure similar
14495         to use_block_copy.
14496
14497 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
14498
14499         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
14500         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
14501
14502 2004-07-06  Richard Henderson  <rth@redhat.com>
14503
14504         * config/i386/i386.c (legitimize_pic_address): Make static.
14505         (legitimize_address): Handle CONST with TLS operand.
14506         (ix86_expand_move): Don't call legitimize_pic_address directly.
14507         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
14508
14509 2004-07-06  Roger Sayle  <roger@eyesopen.com>
14510
14511         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
14512         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
14513         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
14514         is currently executed unconditionally, i.e. not in "else_bb".
14515
14516 2004-07-06  Steven Bosscher  <stevenb@suse.de>
14517
14518         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
14519         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14520         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
14521         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14522         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
14523         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14524         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
14525         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14526         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
14527         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14528         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
14529         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14530         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
14531         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14532         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
14533         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14534
14535 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
14536
14537         * dojump.c (do_jump): REFERENCE_EXPR is dead.
14538         * expr.c (expand_expr_real_1): Ditto.
14539         * tree-inline.c (estimate_num_insns_1): Ditto.
14540         * tree-pretty-print.c (dump_generic_node): Ditto.
14541         (op_symbol): Ditto.
14542         * tree.def: Ditto.
14543
14544 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
14545
14546         * tree-ssa-pre.c (reference_node_pool): New pool.
14547         (find_or_generate_expression): Class 'r' is okay too.
14548         (create_value_expr_from): Ditto.
14549         (add_to_sets): LHS should not include vuses.
14550         (eliminate): Ditto.
14551         (compute_avail): Reverse ordering of tests.
14552         Valuize INDIRECT_REF as well.
14553
14554 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
14555
14556         PR rtl-optimization/16380
14557         * loop.c (check_dbra_loop): Sink comparison instructions if they
14558         do something other than set cc0.
14559
14560 2004-07-06  James E Wilson  <wilson@specifixinc.com>
14561
14562         * doc/interface.texi (longjmp and automatic variables): Delete
14563         paragraph recommending taking the address of a variable.
14564
14565 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
14566
14567         * vec.h (VEC_embedded_alloc): Remove.
14568         (VEC_embedded_size, VEC_embedded_init): New.
14569         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
14570         MEM_STAT_INFO.
14571         (VEC_truncate): New.
14572         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
14573         (vec_embedded_alloc): Remove.
14574         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
14575         (vec_embedded_alloc): Remove.
14576
14577 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
14578
14579         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
14580         (gt-langhooks.h): Remove.
14581
14582 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
14583
14584         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
14585
14586 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
14587
14588         * config/sparc/sparc.c (get_pc_symbol): Rename into
14589         add_pc_to_pic_symbol.
14590         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
14591         (load_pic_register): Account for previous changes.
14592         Use reg_names.  Don't create the label twice.
14593         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
14594         UNSPEC_LOAD_PCREL_SYM.
14595         (get_pc): Rename into load_pcrel_sym.  Add predicate to
14596         operands.  Remove condition.
14597
14598 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
14599
14600         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
14601         RECORD, UNION & QUAL_UNION is actually a binfo.
14602
14603         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
14604         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
14605         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
14606         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
14607         * dwarf2out.c (add_data_member_location_attribute): Likewise.
14608         (gen_inheritance_die): Likewise.
14609         * tree-dump.c (deque_and_dump): Likewise.
14610         * doc/c-tree.texi (Binfos): Add under reconstruction note.
14611
14612 2004-07-06  Steven Bosscher  <stevenb@suse.de>
14613
14614         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
14615         Define.
14616         * config/mcore/mcore.md: Model memory latency with a simple DFA
14617         pipeline description instead of a define_function_unit.
14618
14619 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14620
14621         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
14622         * langhooks.h (var_mod_type_p): Likewise.
14623         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
14624         * expr.c (count_type_elements): Properly handle return from
14625         array_type_nelts and properly test for overflow.
14626         * gimplify.c (gimplify_init_constructor): Properly handle return
14627         from array_type_nelts.
14628         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
14629         * integrate.c (copy_decl_for_inlining): Correct comments.
14630         * tree-inline.c (remap_decl): Update comments, remove dead code,
14631         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
14632         (remap_type): Only remap if variably modified by vars in function
14633         being inlined.
14634         (copy_body_r): Use compatible_type langhooks to see when can fold.
14635         (setup_one_parameter): Don't remap type.
14636         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
14637         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
14638         compute TREE_INVARIANT for decl case.
14639         (find_var_from_fn): New function.
14640         (variably_modified_type_p): Add arg and call new function.
14641         * tree.h (variably_modified_type_p): Add extra arg.
14642
14643 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
14644
14645         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
14646         (goto_handler_and_restore_v9): Delete disabled insn.
14647         (goto_handler_and_restore_v9_sp64): Likewise.
14648
14649 2004-07-05  Roger Sayle  <roger@eyesopen.com>
14650
14651         * calls.c (load_register_parameters): Call expand_shift instead
14652         of expand_binop with ashl_optab (or other shift optab) directly.
14653         * expr.c (emit_group_load, emit_group_store): Likewise.
14654         * function.c (assign_parm_setup_block): Likewise.
14655         * stmt.c (shift_return_value): Likewise.
14656
14657 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
14658
14659         * expr.c (expand_assignment): Disable the bitfield += optimizations.
14660
14661 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14662
14663         * doc/sourcebuild.texi: Revert previous patch.
14664
14665 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14666
14667         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
14668         TARGET_MEM_FUNCTIONS.
14669         * system.h: Poison TARGET_MEM_FUNCTIONS.
14670         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
14671         bcmp_libfunc, bzero_libfunc): Remove.
14672         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
14673         bzero_libfunc.
14674         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
14675         * doc/standards.texi: Don't mention calling BSD string functions.
14676         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
14677         * config/vax/t-memfuncs: New.
14678         * config/memcmp.c, config/memcpy.c, config/memmove.c,
14679         config/memset.c: New.
14680         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
14681         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
14682         vax/t-memfuncs.
14683         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
14684         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
14685         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
14686         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
14687         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
14688         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
14689         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
14690         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
14691         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
14692         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
14693
14694 2004-07-05  Richard Henderson  <rth@redhat.com>
14695
14696         * function.c (assign_parm_setup_reg): Properly rename variables in
14697         FUNCTION_ARG_CALLEE_COPIES section.
14698
14699 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
14700
14701         * tree-mudflap.c: Include cgraph.h.
14702         (mf_init_extern_trees): Rename to mudflap_init.  Export.
14703         Rewrite to create synthetic declarations instead of looking
14704         up declarations from mf-runtime.h.
14705         (mf_make_builtin, mf_make_cache_struct_type): New functions.
14706         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
14707         Correct commentary.
14708         (execute_mudflap_function_decls, mudflap_register_call):
14709         Don't call mf_init_extern_trees.
14710         (mudflap_finish_file): Use cgraph_build_static_cdtor.
14711
14712         * tree-mudflap.h: Update prototypes.
14713         * c-mudflap.c: Delete file.
14714         * c-common.c: Include tree-mudflap.h.
14715         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
14716         * Makefile.in: Remove all references to c-mudflap.o.
14717         Update dependencies.
14718
14719 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14720
14721         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
14722         displacements with the spatial-locality cache-control completer.
14723
14724 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
14725
14726         * langhooks.c: Don't include gt-langhooks.h.
14727         (var_labelno): Delete.
14728         (lhd_set_decl_assembler_name): Do not append a distinguishing
14729         number to file-scope internal-linkage declarations for the first
14730         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
14731         the declaration itself (if at block scope), or its containing
14732         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
14733         number.
14734
14735         * opts.c (cur_in_fname): New global.
14736         * opts.h: Declare it.
14737         * tree.c: Include opts.h.
14738         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
14739         DECL_UID equal to cur_in_fname.
14740         (copy_node_stat): Do not change DECL_UID when copying a
14741         TRANSLATION_UNIT_DECL.
14742         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
14743         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
14744
14745         * c-decl.c (c_static_assembler_name): Delete.
14746         * c-tree.h (c_static_assembler_name): Delete prototype.
14747         * c-lang.c, objc/objc-lang.c: Don't override
14748         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
14749
14750         * Makefile.in (tree.o): Update dependencies.
14751         (GTFILES): Remove langhooks.c.
14752
14753 2004-07-05  Roger Sayle  <roger@eyesopen.com>
14754
14755         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
14756         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
14757         Normalize "X % C" as "X % -C" for signed modulus and negative C.
14758         Optimize "X % -Y" as "X % Y" for signed modulus.
14759         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
14760         into "((unsigned) X % Y) == 0".
14761
14762 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14763
14764         * sourcebuild.texi (Config Fragments): Use @comma{} in
14765         cross-reference to section title.
14766
14767 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14768
14769         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
14770         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
14771         (gimplify_target_expr, gimplify_expr): Likewise.
14772         (copy_if_shared_r): No longer need special case for BIND_EXPR.
14773         (unshare_body, unvisit_body): Only look at nested if BODY_P is
14774         whole function.
14775         (gimplify_compound_lval): See if we can strip any useless conversion.
14776         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
14777         from RHS, not LHS.
14778         (gimplify_modify_expr_to_memset): Likewise.
14779         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
14780         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
14781         (declare_inline_vars): Likewise.
14782         (walk_type_fields): New function.
14783         (walk_tree): Use it.
14784         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
14785
14786         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
14787         (sra_walk_modify_expr): Allow init function to fail.
14788         (scan_init): Now returns bool.
14789         (generate_element_init): If can't understand INIT, return false.
14790         (scalarize_init): Return false if generate_element_init does.
14791
14792         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
14793         print bounds.
14794
14795         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
14796         bounds if bounds aren't constant.
14797
14798         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
14799
14800         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
14801         to type hooks; remove bogus PARAMS.
14802
14803 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
14804
14805         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
14806         * dwarf2out.c (add_data_member_location_attribute): Check for
14807         TREE_BINFO.
14808         * tree.c (tree_node_kinds): Add "binfos".
14809         (binfo_lang_slots): New.
14810         (make_node_stat): Add TREE_BINFO.
14811         (make_tree_binfo_stat): New.
14812         (tree_node_structure): Add TREE_BINFO.
14813         * tree.def (TREE_BINFO): New.
14814         * tree.h (REC_OR_UNION_CHECK): Rename to ...
14815         (RECORD_OR_UNION_CHECK): ... here.
14816         (NOT_RECORD_OR_UNION_CHECK): New.
14817         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
14818         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
14819         RECORD_OR_UNION_CHECK.
14820         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
14821         (TYPE_LANG_SLOT_1): New.
14822         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
14823         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
14824         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
14825         (BINFO_ELTS): Remove.
14826         (BINFO_LANG_SLOT): New.
14827         (struct tree_binfo): New.
14828         (binfo_lang_slots): Declare.
14829         (enum tree_node_structure_enum): Add TS_BINFO.
14830         (union tree_node): Add binfo.
14831         (make_tree_binfo_stat): Declare.
14832         (make_tree_binfo): New.
14833         (enum tree_node_kind): Add binfo_kind.
14834
14835         * objc/objc-act.c (start_class, objc_declare_protocols,
14836         start_protocols): Use TYPE_LANG_SLOT_1.
14837         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
14838         to ...
14839         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
14840         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
14841         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
14842         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
14843
14844 2004-07-05  Steven Bosscher  <stevenb@suse.de>
14845
14846         * rtl.h (struct rtx_def): Remove the integrated flag.
14847         Use the return_val flag for MEM_SCALAR_P.
14848         Reshuffle and update flags in CLEAR_RTX_FLAGS.
14849
14850 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
14851
14852         PR target/16357
14853         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
14854         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
14855         move_by_pieces.
14856
14857 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
14858
14859         * var-tracking.c: Fix some comments.
14860         (frame_stack_adjust): New.
14861         (vt_stack_adjustments): Init stack_adjust of entry block to
14862         minus stack adjustment of function prologue.
14863         (adjust_stack_reference): Do not adjust if adjustment == 0.
14864         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
14865         (emit_notes_in_bb): Likewise.
14866         (vt_add_function_parameters): Do not adjust locations of
14867         function arguments.
14868         (vt_initialize): Compute the stack adjustment of function
14869         prologue and offset the initial "location" of frame_base_decl
14870         from the stack pointer after prologue.
14871
14872 2004-07-04  Richard Henderson  <rth@redhat.com>
14873
14874         * function.c (struct assign_parm_data_all): New.
14875         (struct assign_parm_data_one): New.
14876         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
14877         assign_parm_find_data_types, assign_parms_setup_varargs,
14878         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
14879         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
14880         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
14881         assign_parm_setup_block, assign_parm_setup_reg,
14882         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
14883         (assign_parms): ... here.
14884
14885 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
14886
14887         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
14888         now are bitmap_set_t's.
14889         (bitmap_insert_into_set): No point in inserting the value if
14890         it's invariant.
14891         (bitmap_set_contains): New function.
14892         (bitmap_set_replace_value): Add comment on why we do it
14893         this way.
14894         (set_contains): Removed.
14895         (bitmap_set_subtract_from_value_set): New name of
14896         set_subtract now that it's arguments are two different
14897         types of sets.
14898         Update callers.
14899         (bitmap_find_leader): Change algorithm used.
14900         (find_or_generate_expression): Update use of functions for new
14901         bitmap sets.
14902         (create_expression_by_pieces): Ditto.
14903         (insert_aux): Ditto.
14904         (insert): Ditto.
14905         (add_to_sets): Ditto.
14906         (init_pre): Ditto.
14907         (execute_pre): Ditto.
14908         (compute_avail): Ditto.
14909         Also ignore virtual phis.
14910
14911 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
14912
14913         * combine.c (simplify_comparison): Fix comment typo.
14914
14915 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14916
14917         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
14918         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
14919         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
14920         (output_restore): Change parameter from 'insn' to 'pat'.
14921         (output_return): Adjust call to output_restore.
14922         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
14923         Adjust call to output_restore.
14924
14925 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
14926
14927         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
14928         and assert system is bsd.
14929
14930 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
14931
14932         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
14933         (TARGET_SWITCHES): Remove -mdebugc.
14934         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
14935         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
14936         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
14937         (sle_[sd]i_reg): Delete.
14938
14939 2004-07-04  Steven Bosscher  <stevenb@suse.de>
14940
14941         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
14942         Define.
14943         * config/iq2000/iq2000.md: Translate old pipeline description to an
14944         equivalent new one.
14945
14946 2004-07-04  Roger Sayle  <roger@eyesopen.com>
14947
14948         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
14949         Ensure the replacement rhs is valid gimple before performing
14950         the substitution.  Return false if these sanity checks fail.
14951         (fold_stmt): Only set changed to true, if set_rhs returns true.
14952         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
14953         succeeds.
14954
14955 2004-07-04  Richard Henderson  <rth@redhat.com>
14956
14957         PR c/16348
14958         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
14959
14960 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
14961
14962         * configure.ac (ranlib_flags): New variable.
14963         * Makefile.in (RANLIB_FLAGS): New variable.
14964         (libbackend.a): Use it.
14965         * configure: Regenerated.
14966
14967 2004-07-04  Roger Sayle  <roger@eyesopen.com>
14968
14969         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
14970         a "sign mask" instead of using ashr_optab directly.
14971
14972 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
14973
14974         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
14975         * doc/cppopts.texi: Clarify processing of command-line defines.
14976
14977 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
14978
14979         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
14980
14981 2004-07-04  Richard Henderson  <rth@redhat.com>
14982
14983         * rtl.def (ADDRESSOF): Remove.
14984         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
14985         (find_base_term, memrefs_conflict_p): Likewise.
14986         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
14987         (fold_rtx, cse_insn, set_live_p): Likewise.
14988         * dwarf2out.c (mem_loc_descriptor): Likewise.
14989         (add_location_or_const_value_attribute): Likewise.
14990         * emit-rtl.c (copy_insn_1): Likewise.
14991         * explow.c (memory_address): Likewise.
14992         * expmed.c (store_split_bit_field): Likewise.
14993         * expr.c (expand_expr_real_1): Likewise.
14994         * function.c (instantiate_decl
14995         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
14996         * genrecog.c (preds, validate_pattern): Likewise.
14997         * integrate.c (copy_rtx_and_substitute): Likewise.
14998         * recog.c (general_operand, register_operand): Likewise.
14999         (memory_address_p): Likwise.
15000         * reload1.c (eliminate_regs, elimination_effects): Likewise.
15001         * rtl.c (copy_rtx): Likewise.
15002         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
15003         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
15004         * rtlhooks.c (gen_lowpart_general): Likewise.
15005         * stmt.c (expand_asm_operands): Likewise.
15006         * web.c (entry_register, replace_ref, web_main): Likewise.
15007         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
15008         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
15009         * config/arm/arm.c (thumb_rtx_costs): Likewise.
15010         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
15011         * config/frv/frv.c (move_destination_operand, move_source_operand,
15012         condexec_dest_operand, condexec_source_operand,
15013         condexec_memory_operand): Likewise.
15014         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
15015         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
15016         (destination_xfmode_operand): Likewise.
15017         * config/mips/mips.h (PREDICATE_CODES): Likewise.
15018         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
15019         * config/s390/s390.c (general_s_operand): Likewise.
15020         * config/s390/s390.md (mov*): Likewise.
15021         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
15022
15023         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
15024         * expr.c (expand_expr_real_1): Likewise.
15025         * stmt.c (expand_decl): Likewise.
15026         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
15027
15028         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
15029         postponed_insns, put_var_into_stack, put_reg_into_stack,
15030         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
15031         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
15032         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
15033         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
15034         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
15035         purge_bitfield_addressof_replacements, purge_addressof_replacements,
15036         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
15037         struct insns_for_mem_walk_info, insns_for_mem_walk,
15038         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
15039         setjmp_protect_args): Remove.
15040         (push_function_context_to): Don't handle var_refs_queue.
15041         (pop_function_context_from, free_after_compilation): Likewise.
15042         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
15043         (assign_parms, allocate_struct_function): Likewise.
15044         (use_register_for_decl): New.
15045         (expand_function_end): Don't setjmp_protect.
15046         * function.h (struct emit_status): Update commentary.
15047         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
15048         (max_parm_reg, parm_reg_stack_loc): Remove.
15049         * passes.c (DFI_addressof): Remove.
15050         (dump_file_info): Remove addressof.
15051         (rest_of_handle_addressof): Remove.
15052         (rest_of_compilation): Don't call it.
15053         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
15054         * stmt.c (expand_decl): Use use_register_for_decl.
15055         * tree.h: Update decls.
15056         * web.c (mark_addressof): Remove.
15057         * doc/invoke.texi (-dF): Remove.
15058
15059 2004-07-03  Richard Henderson  <rth@redhat.com>
15060
15061         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
15062         instead of gen_mem_addressof.
15063         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
15064         TImode output register.
15065
15066 2004-07-03  Richard Henderson  <rth@redhat.com>
15067
15068         PR tree-optimization/16341
15069         * tree-sra.c (sra_walk_function): Increment to next stmt before
15070         processing the current stmt.
15071         (sra_insert_after): Always use BSI_SAME_STMT.
15072
15073 2004-07-03  Richard Henderson  <rth@redhat.com>
15074
15075         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
15076         fp plus with minus.
15077
15078 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
15079
15080         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
15081         with tree_int_cst_equal.
15082
15083 2004-07-03  Andreas Schwab  <schwab@suse.de>
15084
15085         * config/ia64/ia64.md: Define new attribute "empty".
15086         (prologue_use, nop_x, insn_group_barrier): Set it.
15087
15088         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
15089         skip over "empty" insns.
15090
15091 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15092
15093         * tree-inline.c (initialize_inlined_parameters): Pass proper function
15094         context to gimplify_body.
15095         (walk_tree): Don't walk into types twice.
15096         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
15097
15098         * tree-sra.c (generate_element_init): Remove any useless conversions.
15099
15100         * gimplify.c (gimplify_conversion): Remove stripping useless
15101         conversions from here.
15102         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
15103         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
15104         Unshare before substituting PLACEHOLDER_EXPR.
15105         (gimplify_modify_expr_to_memset): Likewise.
15106         Pass address of TO to memset, not TO itself.
15107         (gimplify_init_constructor): Make copy of OBJECT so we have it each
15108         time we make an expression (to match a PLACEHOLDER_EXPR).
15109
15110         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
15111         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
15112         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
15113         * tree-ssa-dom.c (local_fold): Likewise.
15114
15115         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
15116         * langhooks.h (strct lang_hooks): New field type_max_size.
15117         * function.c (assign_temp): Call it.
15118
15119 2004-07-03  Steven Bosscher  <stevenb@suse.de>
15120
15121         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
15122         * config/sh/sh.md: Convert the SH1 pipeline description to
15123         a DFA model.
15124
15125 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
15126
15127         * c-decl.c (struct c_binding): Remove contour field; add
15128         depth, invisible, nested fields.
15129         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
15130         (B_IN_EXTERNAL_SCOPE): New convenience macros.
15131         (bind): Add invisible and nested arguments. Initialize
15132         new fields of struct c_binding; adjust loop scanning for
15133         insertion point.
15134         (free_binding_and_advance): Clear structure with memset.
15135         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
15136         in file scope, even if it's in external scope too.
15137         (pushdecl): Adjust to match.  Create invisible file-scope
15138         declarations for block-scope forward declarations of static functions.
15139         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
15140         (undeclared_variable, lookup_label, declare_label, define_label)
15141         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
15142         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
15143         (store_parm_decls_oldstyle): Adjust to match.
15144         (diagnose_mismatched_decls): Correct handling of linkage clashes.
15145         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
15146
15147         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
15148         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
15149
15150 2004-07-02  Richard Henderson  <rth@redhat.com>
15151
15152         * c-decl.c (grokdeclarator): Don't frob current_function_decl
15153         around variable_size.
15154         (set_decl_nonlocal): Remove.
15155         (store_parm_decls): Add stmts for pending sizes.
15156         * calls.c (calls_function, calls_function_1): Remove.
15157         (precompute_arguments): Don't call it.
15158         * cfgexpand.c (set_save_expr_context): Remove.
15159         (tree_expand_cfg): Don't call it.
15160         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
15161         (dwarf2out_finish): Likewise.
15162         * expr.c (emit_block_move): Adjust addresses to BLKmode.
15163         (store_constructor): Don't pre-evaluate SAVE_EXPR.
15164         (safe_from_p): Don't queue SAVE_EXPRs.
15165         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
15166         or build plain VAR_DECLs.
15167         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
15168         (fold): Likewise.
15169         (fold_checksum_tree): Don't special-case SAVE_EXPR.
15170         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
15171         (put_var_into_stack): Don't handle SAVE_EXPR.
15172         (gen_mem_addressof): Likewise.
15173         * function.h (struct function): Remove x_save_expr_regs.
15174         (save_expr_regs): Remove.
15175         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
15176         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
15177         * stor-layout.c (variable_size): Don't set it.
15178         (force_type_save_exprs, force_type_save_exprs_1): Remove.
15179         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
15180         all callers.  Don't set SAVE_EXPR_CONTEXT.
15181         * tree-inline.h (remap_save_expr): Update decl.
15182         * tree.c (save_expr): Update build size.
15183         (first_rtl_op): Don't handle SAVE_EXPR.
15184         (unsave_expr_1, contains_placeholder_p): Likewise.
15185         (decl_function_context): Likewise.
15186         * tree.def (SAVE_EXPR): Remove args 1 and 2.
15187         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
15188         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
15189
15190 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
15191
15192         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
15193         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
15194         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
15195         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
15196         some first-person references and patronizing comments.  Based on
15197         printed manual.
15198         * doc/invoke.texi: Don't reference fortran@gnu.org.
15199         * doc/trouble.texi (Warning when a non-void function value is
15200         ignored): Rewrite.  From Russ Allbery and Chris Devers.
15201
15202 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
15203
15204         * tree-ssa-pre.c (bitmap_set_t): New.
15205         (bb_value_sets): avail_out is now a bitmap_set_t.
15206         (bitmap_find_leader): New function.
15207         (bitmap_value_insert_into_set): Ditto.
15208         (bitmap_set_copy): Ditto.
15209         (bitmap_value_replace_in_set): Ditto.
15210         (bitmap_set_contains_value): Ditto.
15211         (bitmap_set_new): Ditto.
15212         (bitmap_set_pool): New pool.
15213         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
15214         (insert_aux): Ditto.
15215         (add_to_sets): Ditto.
15216         (compute_avail): Ditto
15217         (eliminate): Ditto.
15218         (init_pre): Ditto.
15219         (fini_pre): Ditto.
15220         (execute_pre): Ditto.
15221
15222 2004-07-02  Roger Sayle  <roger@eyesopen.com>
15223
15224         * config/rs6000/rs6000.c (struct processor_costs): New structure
15225         used to hold instruction latencies/sizes for processor types.
15226         (rs6000_cost): New global variable pointing to current CPU's costs.
15227         (rs6000_override_options): Initialize rs6000_cost to point to the
15228         appropriate cost table based upon rs6000_cpu and optimize_size.
15229         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
15230         timings inline.
15231
15232 2004-07-02  Richard Henderson  <rth@redhat.com>
15233
15234         * expmed.c (make_tree): Don't use SET_DECL_RTL.
15235
15236 2004-07-02  Steven Bosscher  <stevenb@suse.de>
15237
15238         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
15239
15240 2004-07-01  Richard Henderson  <rth@redhat.com>
15241
15242         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
15243         (alpha_gp_save_rtx): Use assign_stack_local instead of
15244         gen_mem_addressof.
15245
15246 2004-07-01  Richard Henderson  <rth@redhat.com>
15247
15248         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
15249         (alpha_rtx_cost_data): Update to match.
15250         (alpha_rtx_cost_size): New.
15251         (alpha_rtx_costs): Honor optimize_size.
15252
15253 2004-07-01  Richard Henderson  <rth@redhat.com>
15254
15255         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
15256         * cfgexpand.c (tree_expand_cfg): Do it here.
15257         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
15258         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
15259         * config/mips/mips.c (mips_output_mi_thunk): And here.
15260         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
15261         * config/sh/sh.c (sh_output_mi_thunk): And here.
15262         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
15263
15264 2004-07-01  Richard Henderson  <rth@redhat.com>
15265
15266         * tree.def (RTL_EXPR): Remove.
15267         * c-typeck.c (lvalue_p): Don't handle it.
15268         * expr.c (safe_from_p): Likewise.
15269         (expand_expr_real_1): Likewise.
15270         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
15271         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
15272         * gengtype.c (adjust_field_tree_exp): Likewise.
15273         * stmt.c (warn_if_unused_value): Likewise.
15274         * tree-gimple.c (recalculate_side_effects): Likewise.
15275         * tree-pretty-print.c (dump_generic_node): Likewise.
15276         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
15277         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
15278         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
15279
15280         * stmt.c (struct stmt_status): Remove x_last_expr_type,
15281         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
15282         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
15283         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
15284         all the bits that tracked last_expr.
15285         (expand_end_bindings): Don't track last_expr.
15286         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
15287         (clear_last_expr): Remove.
15288         (expand_asm): Don't call it.
15289         (expand_asm_operands, expand_end_cond): Likewise.
15290         (expand_naked_return, expand_null_return_1): Likewise.
15291         * c-typeck.c (c_begin_compound_stmt): Likewise.
15292         * cfgexpand.c (expand_block): Use expand_expr_stmt.
15293         * expr.c (expand_expr_real_1): Likewise.
15294         * tree.h: Update prototypes.
15295
15296         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
15297         (struct emit_status): Remove sequence_rtl_expr.
15298         (struct function): Remove x_rtl_expr_chain.
15299         (seq_rtl_expr, rtl_expr_chain): Remove.
15300         * function.c (struct temp_slot): Remove rtl_expr.
15301         (assign_stack_temp_for_type): Don't set it.
15302         (free_temp_slots, pop_temp_slots): Don't check it.
15303         (free_after_compilation): Don't clear x_rtl_expr_chain.
15304         (fixup_var_refs): Don't search it.
15305         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
15306         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
15307         or seq_rtl_expr.
15308         (push_topmost_sequence): Likewise.
15309         (end_sequence, init_emit): Likewise.
15310         (start_sequence_for_rtl_expr): Remove.
15311         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
15312         * rtl.h (preserve_rtl_expr_result): Remove.
15313
15314 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
15315
15316         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
15317         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
15318         typos.
15319
15320 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
15321
15322         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
15323         (STANDARD_STARTFILE_PREFIX_2): Define.
15324         (standard_startfile_prefix_1): Initialize to
15325         STANDARD_STARTFILE_PREFIX_1.
15326         (standard_startfile_prefix_2): Initialize to
15327         STANDARD_STARTFILE_PREFIX_2.
15328         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
15329         (STANDARD_STARTFILE_PREFIX_1): Define.
15330         (STANDARD_STARTFILE_PREFIX_2): Define.
15331         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
15332         (STANDARD_STARTFILE_PREFIX_2): Document.
15333
15334 2004-07-01  Richard Henderson  <rth@redhat.com>
15335
15336         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
15337         in order to disable scalarization.  Instead set a flag and wait
15338         for a candidate decl.
15339
15340 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
15341
15342         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
15343         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
15344         Use terminology "testsuite" and "enumerated".
15345
15346 2004-07-01  Richard Henderson  <rth@redhat.com>
15347
15348         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
15349         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
15350         (initial_return_save): Likewise.
15351         (flush_queued_reg_saves): Remap register numbers.
15352         (dwarf2out_return_reg): Likewise.
15353
15354 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15355
15356         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
15357
15358         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
15359         access functions for lower bound and element size and only output
15360         if lower bound nonzero or element size not same as that of type.
15361         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
15362
15363 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
15364
15365         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
15366
15367 2004-07-01  Per Bothner  <per@bothner.com>
15368
15369         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
15370
15371 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
15372
15373         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
15374         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
15375         first operand.  Don't optimize if the bitfield is volatile.
15376
15377 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
15378
15379         * c-pretty-print.c (pp_c_postfix_expression): Handle
15380         floating-point comparison operators.
15381         (pp_c_expression): Pass floating-point comparison
15382         operators to pp_c_postfix_expression.
15383
15384 2004-07-01  Roger Sayle  <roger@eyesopen.com>
15385
15386         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
15387         rtx_cost instead of "had_mult" to determine whether the transformed
15388         expression is cheaper than the original.
15389
15390 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
15391
15392         * alias.c (get_alias_set, canon_rtx, get_addr,
15393         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
15394         Use MEM_P.
15395         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
15396         expand_builtin): Likewise.
15397         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
15398         Likewise.
15399         * combine.c (can_combine_p, combinable_i3pat, try_combine,
15400         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
15401         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
15402         record_dead_and_set_regs_1, get_last_value_validate,
15403         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
15404         * cse.c (check_dependence, canon_hash, equiv_constant,
15405         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
15406         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
15407         count_reg_usage): Likewise.
15408         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
15409         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
15410         cselib_record_sets): Likewise.
15411         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
15412         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
15413         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
15414         * df.c (df_uses_record): Likewise.
15415         * dojump (do_jump): Likewise.
15416         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
15417         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
15418         decl_start_label): Likewise.
15419         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
15420         operand_subword, change_address_1, make_safe_from): Likewise.
15421         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
15422         stabilize, force_not_mem): Likewise.
15423         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
15424         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
15425         * expr.c (convert_move, convert_modes, emit_block_move,
15426         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
15427         emit_move_insn_1, expand_assignment, store_expr,
15428         store_constructor_field, store_constructor, store_field,
15429         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
15430         Likewise.
15431         * final.c (cleanup_subreg_operands, alter_subreg,
15432         get_mem_expr_from_op): Likewise.
15433         * flow.c (notice_stack_pointer_modification_1,
15434         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
15435         Likewise.
15436         * function.c (mark_temp_addr_taken, preserve_temp_slots,
15437         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
15438         optimize_bit_field, flush_addressof, purge_addressof_1,
15439         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
15440         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
15441         keep_stack_depressed): Likewise.
15442         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
15443         noce_process_if_block, find_memory): Likewise.
15444         * integrate.c (subst_constants, allocate_initial_values): Likewise.
15445         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
15446         update_equiv_regs): Likewise.
15447         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
15448         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
15449         * optabs.c (expand_abs, emit_unop_insn): Likewise.
15450         * passes.c (rest_of_handle_final): Likewise.
15451         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
15452         move2add_note_store): Likewise.
15453         * ra-build.c (detect_remat_webs): Likewise.
15454         * ra-debug.c (dump_static_insn_cost): Likewise.
15455         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
15456         * recog.c (validate_change, apply_change_group, cancel_changes,
15457         validate_replace_rtx_1, general_operand, register_operand,
15458         nonmemory_operand, push_operand, pop_operand, memory_operand,
15459         indirect_operand, asm_operand_ok, offsettable_memref_p,
15460         offsettable_nonstrict_memref_p, constrain_operands,
15461         store_data_bypass_p): Likewise.
15462         * reg-stack.c (subst_stack_regs_pat): Likewise.
15463         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
15464         copy_cost, reg_scan_mark_refs): Likewise.
15465         * regmove.c (optimize_reg_copy_3, stack_memref_p,
15466         combine_stack_adjustments_for_block): Likewise.
15467         * regrename.c (copyprop_hardreg_forward_1): Likewise.
15468         * reload.c (can_reload_into, push_reload, decompose, immune_p,
15469         find_reloads, find_reloads_address, find_reloads_address_1,
15470         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
15471         find_equiv_reg): Likewise.
15472         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
15473         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
15474         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
15475         delete_address_reloads): Likewise.
15476         * resource.c (mark_referenced_resources): Likewise.
15477         * rtlanal.c (get_jump_table_offset, count_occurrences,
15478         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
15479         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
15480         num_sign_bit_copies1): Likewise.
15481         * rtlhooks.c (gen_lowpart_general): Likewise.
15482         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15483         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
15484         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
15485         sdbout_global_decl): Likewise.
15486         * simplify-rtx.c (simplify_subreg): Likewise.
15487         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
15488         expand_anon_union_decl, expand_end_case_type): Likewise.
15489         * unroll.c (calculate_giv_inc): Likewise.
15490         * var-tracking.c (stack_adjust_offset_pre_post,
15491         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
15492         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
15493         vt_add_function_parameters): Likewise.
15494         * varasm.c (make_var_volatile, notice_global_symbol,
15495         assemble_external, decode_addr_const, mark_weak,
15496         default_encode_section_info): Likewise.
15497
15498 2004-07-01  Steven Bosscher  <stevenb@suse.de>
15499
15500         * stmt.c (check_seenlabel): Remove.
15501         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
15502
15503 2004-07-01  Richard Henderson  <rth@redhat.com>
15504
15505         * function.h (struct function): Remove x_function_call_count.
15506         (function_call_count): Remove.
15507         * calls.c (expand_call): Don't set it.
15508         * integrate.c (copy_rtx_and_substitute): Likewise.
15509
15510         * function.h (struct function): Remove x_cleanup_label.
15511         (cleanup_label): Remove.
15512         * stmt.c (expand_value_return): Don't use it.
15513         * function.c (free_after_compilation): Don't set it.
15514         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
15515         * cfgexpand.c (tree_expand_cfg): Update call.
15516         * tree.h (expand_function_start): Update decl.
15517
15518 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
15519
15520         PR c/1027
15521         * c-lang.c (c_initialize_diagnostics): Move from here ...
15522         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
15523         (c_tree_printer): Use pretty-printer to format %T.
15524         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
15525         before '*' if not C++.
15526         (pp_c_direct_abstract_declarator): Don't try to print array upper
15527         bound for flexible array members.
15528         * c-tree.h: Include "diagnostic.h".
15529         (c_initialize_diagnostics): Declare.
15530         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
15531         * c-format.c (format_type_warning): New function.  Improve
15532         diagnostics for incorrect format argument types.
15533         (check_format_types): Use it.  Add two parameters.  Use the
15534         TYPE_MAIN_VARIANT of wanted_type.
15535         (check_format_info_main): Pass new parameters to
15536         check_format_types.
15537         (struct format_wanted_type): Update comment.
15538
15539 2004-07-01  Nick Clifton  <nickc@redhat.com>
15540
15541         * target.h (struct gcc_target): Add new field to struct cxx:
15542         import_export_class.
15543         * target-def.h (TARGET_CXX): Initialise the new field.
15544         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
15545         the new field.
15546         * doc/tm.texi: Document the new target hook.
15547
15548 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
15549
15550         * builtins.c (fold_builtin_classify): Fix typo.
15551
15552 2004-07-01  Richard Henderson  <rth@redhat.com>
15553
15554         * function.c (identify_blocks, identify_blocks_1): Remove.
15555         * function.h (identify_blocks): Remove.
15556         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
15557
15558 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
15559
15560         * builtins.c (fold_builtin_classify): New.
15561         (fold_builtin_unordered_cmp): Fix commentary.
15562         (fold_builtin): Use it.
15563         * builtins.def: Define builtins for isnan,
15564         isnanf, isnanl, finite, finitef, finitel,
15565         isinf, isinff, isinfl.
15566
15567 2004-07-01  Richard Henderson  <rth@redhat.com>
15568
15569         * function.h (struct function): Remove dont_emit_block_notes.
15570         * gimple-low.c (lower_function_body): Don't set it.
15571         * cfgexpand.c (expand_block): Don't check it.
15572         * cfglayout.c (insn_locators_initialize): Likewise.
15573         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
15574         * passes.c (rest_of_compilation): Likewise.
15575         * stmt.c (expand_start_bindings_and_block): Likewise.
15576         (expand_end_bindings): Likewise.
15577
15578 2004-07-01  Richard Henderson  <rth@redhat.com>
15579
15580         * cgraph.h (cgraph_build_static_cdtor): Declare.
15581         * cgraphunit.c (cgraph_build_static_cdtor): New.
15582         * c-objc-common.c (build_cdtor): Use it.
15583         * coverage.c (create_coverage): Likewise.
15584         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
15585         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
15586
15587 See ChangeLog.11 for earlier changes.