OSDN Git Service

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