OSDN Git Service

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