OSDN Git Service

77f8f98e00c188a3bee92f418ae354a246eee91e
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-21  Richard Henderson  <rth@redhat.com>
2
3         * c-common.c (verify_sequence_points): Export.
4         (c_expand_expr_stmt): Move to c-typeck.c.
5         * c-common.h (c_expand_expr_stmt): Remove.
6         (verify_sequence_points): Declare.
7         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
8         * c-parse.in (for_init_stmt, stmt): Likewise.
9         * c-tree.h (c_finish_expr_stmt): Declare.
10         (c_tree_expr_nonnegative_p): Remove.
11         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
12         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
13         (emit_side_effect_warnings): New.
14         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
15         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
16         Use emit_side_effect_warnings.
17         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
18         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
19         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
20         with void initializer.
21         (gimplify_target_expr): Handle void BIND_EXPR initializer.
22         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
23         INIT_EXPR and MODIFY_EXPR.
24         * objc/objc-act.c (build_module_descriptor): Use add_stmt
25         instead of c_expand_expr_stmt.
26
27 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
28
29         * fold-const.c (fold_cond_expr_with_comparison):
30         New function, extracted from fold.
31         (fold): Extract code to fold A op B ? A : C, use
32         it to fold A op B ? C : A.  Really optimize
33         A & N ? N : 0 where N is a power of two.  Avoid
34         relying on canonicalization and recursion for
35         foldings of COND_EXPR to happen.
36         
37 2004-06-20  David Ayers  <d.ayers@inode.at>
38
39         * objc/objc-act.h (get_object_reference): Rename to
40         get_protocol_reference.
41         (super_type): Rename to objc_super_type.
42         (selector_type): Rename to objc_selector_type.
43         (id_type): Rename to objc_id_type.
44         (instance_type): Rename to objc_instance_type.
45         (protocol_type): Rename to objc_protocol_type.
46         (IS_ID): Update reference to id_type.
47         * objc/objc-act.c (get_object_reference): Rename to
48         get_protocol_reference; add documentation; update references to
49         id_type.
50         (lookup_method_in_protocol_list): Rename class_meth to
51         is_class; add documentation.
52         (finish_message_expr): Rename is_class to class_tree.
53         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
54         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
55         build_next_objc_exception_stuff, get_arg_type_list,
56         build_objc_method_call): Update references to id_type.
57         (synth_module_prologue, build_objc_symtab_template,
58         build_selector_reference_decl, build_selector,
59         build_selector_translation_table, build_typed_selector_reference,
60         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
61         synth_self_and_ucmd_args): Update references to selector_type.
62         (build_private_template, build_ivar_reference): Update references
63         to instance_type.
64         (synth_module_prologue, build_protocol_reference,
65         build_protocol_expr, start_protocol): Update references to
66         protocol_type.
67         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
68         Update references to super_type.
69         * c-parse.in: (typespec_nonreserved_nonattr): Update
70         references to get_object_reference.
71         * objc/objc-tree.def: Add C mode identifier sequence.
72
73 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
74
75         * loop-invariant.c: New file.
76         * Makefile.in (loop-invariant.o): New.
77         * cfgloop.h (global_cost_for_size, init_set_costs,
78         move_loop_invariants): Declare.
79         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
80         functions.
81         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
82         variables.
83         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
84         * loop-init.c (loop_optimizer_init): Call init_set_costs.
85         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
86         (rest_of_compilation): Check flag_loop_optimize2.
87         * toplev.c (process_options): Handle flag_loop_optimize2.
88         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
89         * doc/passes.texi (loop-invariant.c): Document.
90
91 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
92
93         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
94
95 2004-06-20  Richard Henderson  <rth@redhat.com>
96
97         * stmt.c (warn_if_unused_value): Add locus argument.
98         * tree.h (warn_if_unused_value): Update decl.
99         * c-typeck.c (internal_build_compound_expr): Update call.
100         * c-gimplify.c (gimplify_expr_stmt): Likewise.
101
102 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
103
104         PR middle-end/16089
105         * builtins.c (entry_of_function): Move to ...
106         * cfgrtl.c (entry_of_function): Here and make non-static.
107         * integrate.c (emit_initial_value_sets): Use entry_of_function.
108         * rtl.h (entry_of_function): Prototype.
109
110 2004-06-20  Roger Sayle  <roger@eyesopen.com>
111
112         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
113         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
114         TARGET_DECOMPOSE_LEA.
115
116 2004-06-20  Richard Henderson  <rth@redhat.com>
117
118         * c-common.h (add_decl_stmt): Move to cp-tree.h.
119         * c-decl.c (finish_decl): Don't use add_decl_stmt.
120         * c-parse.in: Likewise.
121         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
122         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
123         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
124
125 2004-06-20  Richard Henderson  <rth@redhat.com>
126
127         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
128         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
129         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
130         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
131         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
132         * c-pretty-print.c (pp_c_statement): Similarly.
133         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
134         gimplify_if_stmt): Move to cp-gimplify.c.
135         (c_genericize, c_gimplify_expr): Don't call them.
136         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
137         * c-typeck.c (push_cleanup): New.
138         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
139         c_finish_if_stmt): Use COND_EXPR.
140         * tree.h (CLEANUP_EH_ONLY): Update documentation.
141
142 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
143
144         * c-common.h (has_c_linkage): New interface.
145         * c-cppbuiltin.c: Include target.h.
146         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
147         __PRAGMA_EXTERN_PREFIX when appropriate.
148         * c-pragma.c: Include target.h.
149         Document clarified semantics of symbol-renaming #pragmas.
150         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
151         (maybe_apply_renaming_pragma): Rewrite according to clarified
152         semantics.  Always recognize, but do not necessarily execute.
153         (init_pragma): Unconditionally register symbol-renaming pragmas.
154         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
155         and HANDLE_PRAGMA_EXTERN_PREFIX.
156         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
157         and handle_pragma_extern_prefix flags.
158         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
159         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
160         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
161         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
162         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
163         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
164         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
165         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
166         not HANDLE_PRAGMA_EXTERN_PREFIX.
167         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
168         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
169         into one section "Symbol-Renaming Pragmas"; clarify; document
170         adjusted semantics.
171
172         * builtins.c (expand_builtin): Do not issue error for a builtin
173         with no special case code and no DECL_ASSEMBLER_NAME; just do the
174         library call.
175         * c-decl.c (builtin_function): Don't call make_decl_rtl.
176         * c-objc-common.c (has_c_linkage): Stub implementation.
177         * cgraphunit.c (cgraph_expand_function)
178         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
179
180 2004-06-19  Roger Sayle  <roger@eyesopen.com>
181
182         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
183         instead of both an ARGLIST and a result TYPE.  Handle these C99
184         comparison functions as "polymorphic" builtins.  Also handle
185         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
186         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
187         Move handling of BUILT_IN_ISUNORDERED from here to there.
188
189 2004-06-19  Richard Henderson  <rth@redhat.com>
190
191         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
192         * c-gimplify.c: Remove unnecessary prototypes.
193         (c_gimplify_stmt): Merge into ...
194         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
195         * c-semantics.c (prep_stmt): Remove.
196         * gimplify.c (annotate_one_with_locus): Break out from ...
197         (annotate_all_with_locus): ... here.
198         (gimplify_expr): Add locus to expressions even if pre/post queues
199         are not present.
200
201 2004-06-19  Richard Henderson  <rth@redhat.com>
202
203         PR target/15941
204         * function.c (assign_parms): If not padding upward or intentionally
205         forcing upward padding, take offset_rtx into account when determining
206         the alignment for stack_parm.
207
208 2004-06-19  Richard Henderson  <rth@redhat.com>
209
210         PR target/15550
211         * ifcvt.c (noce_try_move): Recognize all generated instructions.
212
213 2004-06-19  Jan Hubicka  <jh@suse.cz>
214
215         * function.c (free_after_compilation): Do not free computed_goto_common*.
216         * function.h (struct function): Kill computed_goto_common*.
217         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
218         * tree-cfg.c (disband_implicit_edges): Do not forward across the
219         commonized computed goto.
220
221 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
222
223         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
224         in binutils.
225
226 2004-06-19  Andrew Pinski  <apinski@apple.com>
227
228         PR c++/15721
229         * toplev.c (wrapup_global_declarations): Do not check
230         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
231         cgraph_varpool_node's needed field.
232
233 2004-06-19  Jan Hubicka  <jh@suse.cz>
234             Steven Bosscher  <stevenb@suse.de>
235
236         CFG transparent RTL expansion:
237         * Makefile.in (cfgexpand.o): New object file.
238         (builtins.o): Add dependency on basic-block.h
239         * builtins.c: Include basic-block.h
240         (entry_of_function): New function.
241         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
242         * cfgexpand.c: New file.
243         * expr.c (execute_expand, pass_expand): Kill.
244         * pass.c (rest_of_compilation): Do not build CFG unless called from
245         coverage code.
246         * tree-cfg.c (delete_tree_cfg): Rename to..
247         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
248         * tree-flow.h (delete_tree_cfg_annotations): Declare.
249         (dleete_tree_cfg): Kill.
250         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
251         (execute_del_cfg): Rename to...
252         (execute_free_datastructures): This one...
253         (pass_del_cfg): Rename to...
254         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
255         (init_tree_optimization_passes): Make cfg build and profiling to happen
256         unconditionally.
257
258 2004-06-19  Steven Bosscher  <stevenb@suse.de>
259
260         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
261         inserting the cache variables.
262
263         * tree-mudflap.c: Include headers to make basic_block available.
264         Move functions around such that related functions are near each
265         other.  Add prototypes for all static functions.  Add comments
266         briefly explaining what IR the mudflap1 and mudflap2 work on and
267         what they do.
268         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
269         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
270         (pass_mudflap_1, pass_mudflap_2): Update.
271         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
272         function tree.
273         (mf_build_check_statement_for): Make it work on the CFG.
274         (mf_xform_derefs_1): Likewise.  Cleanup code style.
275         (mf_xform_derefs): Likewise.
276
277 2004-06-19  Jan Hubicka  <jh@suse.cz>
278
279         * tree-cfg.c (label_to_block): Invent the label destination for
280         undefined labels.
281         (cleanup_dead_labels): Update table in the case label_to_block added
282         new label.
283
284 2004-06-18  Richard Henderson  <rth@redhat.com>
285
286         PR c++/16036
287         * gimple-low.c (lower_function_body): Generate return statement for
288         fall off the end of the function here ...
289         * tree-cfg.c (make_edges): ... instead of here.
290         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
291
292 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
293
294         * tree-ssa.c (raise_value): Removed.
295         (get_eq_name, check_phi_redundancy): New functions.
296         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
297
298 2004-06-18  Roger Sayle  <roger@eyesopen.com>
299
300         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
301         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
302         constant folding for unordered comparison tree nodes.  If both
303         operands are real constants, call fold_relational_const.  If either
304         operand is a NaN, evaluate the other for side-effects and return a
305         constant.  Optimize (double)float1 CMP (double)float2 into the
306         equivalent float1 CMP float2.
307         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
308         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
309         LTGT_EXPR>: Call fold_relational_const for constant operands.
310         (fold_relational_const): Add support for unordered comparison tree
311         nodes.  Don't constant fold "ordered" floating point comparisons
312         against NaN if when flag_trapping_math is set.
313
314 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
315
316         * fold-const.c (build_range_check): If !in_p and recursive call
317         fails, exit immediately.  If high - low overflows and etype is
318         a signed type, retry with unsigned etype.
319         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
320         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
321
322 2004-06-18  Richard Henderson  <rth@redhat.com>
323
324         * c-gimplify.c (gimplify_condition): Remove.
325         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
326         call it.
327
328 2004-06-18  Richard Henderson  <rth@redhat.com>
329
330         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
331         switch estimates.
332
333 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
334
335         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
336         (NORMAL_TEXT_SECTION_NAME): Define.
337         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
338         (SECTION_FORMAT_STRING): Define.
339
340 2004-06-18  Steven Bosscher  <stevenb@suse.de>
341
342         * config/xtensa/xtensa.c
343         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
344         * xtensa.md: Replace the old pipeline description with a DFA model.
345
346 2004-06-18  Steven Bosscher  <stevenb@suse.de>
347             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
348
349         * config/s390/s390.md: Remove the generic pipeline description.
350         * config/s390/2064.md: Make all insn reservations apply to
351         the z900, g5 and g6.
352         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
353         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
354         Define to hook_int_void_1.
355         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
356         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
357
358 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
359                         Diego Novillo  <dnovillo@redhat.com>
360
361         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
362         (create_stmt_ann): Ditto.
363         (create_tree_ann): New function.
364         (create_cst_ann): Remove.
365         (create_expr_ann): Ditto.
366
367         * tree-flow-inline.h (cst_ann): Remove.
368         (get_cst_ann): Ditto.
369         (get_expr_ann): Ditto.
370         (expr_ann): Ditto.
371         (get_tree_ann): New function.
372         (tree_ann): Ditto.
373         (ann_type): tree_ann -> tree_ann_t.
374         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
375         (struct cst_ann_d): Removed.
376         (struct expr_ann_d): Ditto.
377         (union tree_ann_d): Removed cst and expr.
378         (tree_ann): Renamed to tree_ann_t.
379         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
380         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
381         annotation.
382         (set_value_handle): Ditto.
383         (phi_translate): Ditto.
384         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
385
386 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
387
388         * config/sh/t-linux64: New file.
389         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
390
391 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
392
393         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
394         (unshare_all_rtl_again): Call unshare_all_rtl_1.
395         (unshare_all_rtl): New.
396         * function.c (instantiate_virtual_regs): Remove parameters.
397         * function.h (instantiate_virtual_regs): Add prototype.
398         * rtl.h (unshare_all_rtl): Add prototype.
399         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
400         prototype.
401         * passes.c: Remove assertions on the parameters to
402         rest_of_handle_* functions.  Remove the parameters to
403         the functions, replacing decl with current_function_decl
404         and insns with get_insns ().
405
406 2004-06-17  Roger Sayle  <roger@eyesopen.com>
407
408         * fold-const.c (constant_boolean_node): Handle boolean_type_node
409         directly, return either boolean_true_node or boolean_false_node.
410
411 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
412
413         * opts.sh: Delete.  Break out generated code to next four files.
414         * opt-gather.awk: New file.
415         * optc-gen.awk: New file.
416         * opth-gen.awk: New file.
417         * opt-functions.awk: New common file.
418         * Makefile.in: Update for above.
419         * configure.ac: Update comment.
420         * configure: Regenerate.
421
422 2004-06-17  Richard Henderson  <rth@redhat.com>
423
424         * c-common.c (flag_objc_sjlj_exceptions): New.
425         * c-common.h (flag_objc_sjlj_exceptions): Declare.
426         * c-opts.c (c_common_handle_option): Set it.
427         (c_common_post_options): Handle interation of different
428         objective-c exception and runtime switches.
429         * c-decl.c (c_eh_initialized_p): New.
430         (finish_decl): Use it instead of local eh_initialized_p.
431         * c-parse.in (nested_function, notype_nested_function): Record
432         the result of compstmt.
433         (compstmt_or_error): Likewise.
434         (compstmt): Don't add_stmt the result.
435         (stmt): Don't return anything.  Rewrite objc try and sync rules.
436         (objc_try_stmt, objc_catch_list): Remove.
437         (objc_catch_block, objc_finally_block): Remove.
438         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
439         (objc_try_catch_clause, objc_finally_clause): New.
440         (objc_try_catch_stmt): Rewrite.
441         * c-tree.h (c_eh_initialized_p): Declare.
442         * c-opt (fobjc-sjlj-exceptions): New.
443         * except.c (output_function_exception_table): Don't call cgraph
444         on non-decls.
445         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
446         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
447         catch_count_stack, exc_binding_stack, if_nesting_count,
448         blk_nesting_count, objc_enter_block, objc_exit_block,
449         objc_declare_variable, val_stack_push, val_stack_pop,
450         objc_build_try_enter_fragment, objc_build_extract_expr,
451         objc_build_try_exit_fragment, objc_build_extract_fragment,
452         objc_build_try_prologue, objc_build_try_epilogue,
453         objc_build_catch_stmt, objc_build_catch_epilogue,
454         objc_build_finally_prologue, objc_build_finally_epilogue,
455         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
456         objc_build_synchronized_epilogue): Remove.
457         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
458         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
459         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
460         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
461         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
462         objc_begin_catch_clause, objc_finish_catch_clause,
463         objc_build_finally_clause, objc_finish_try_stmt,
464         objc_build_synchronized): New.
465         (objc_is_object_id, objc_is_class_id): New.
466         (objc_comptypes): Use them.
467         (build_next_objc_exception_stuff): Break NeXT sjlj out from
468         build_objc_exception_stuff.
469         (synth_module_prologue): Update to match.
470         (objc_build_throw_stmt): Use cur_try_context to decide if
471         we're in a @catch.
472         * objc/objc-act.h: Update prototypes.
473         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
474
475 2004-06-17  Andrew Pinski <apinski@apple.com>
476
477         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
478         Use TYPE_FIELDS instead of TYPE_VALUES.
479
480 2004-06-17  Jason Merrill  <jason@redhat.com>
481
482         PR c++/16015
483         * gimplify.c (gimplify_target_expr): Handle void initializer.
484         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
485         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
486         and AGGR_INIT_EXPR.
487
488 2004-06-17  Roger Sayle  <roger@eyesopen.com>
489
490         * fold-const.c (fold_relational_const): Use constant_boolean_node.
491
492 2004-06-17  Jan Hubicka  <jh@suse.cz>
493
494         PR target/15433
495         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
496         operand numbering in the output template.
497         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
498
499 2004-06-17  Jan Hubicka  <jh@suse.cz>
500
501         * except.c (can_throw_internal): Recognize RESX expresisons.
502
503 2004-06-17  Jan Hubicka  <jh@suse.cz>
504
505         * cfgbuild.c (make_edges): Do not use label_value_list.
506         (find_basic_blocks_1): Do not collect label_value_list.
507         (find_sub_basic_blocks): Update call of make_edges.
508
509 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
510
511         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
512         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
513         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
514         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
515         (get_v_may_def_result_ptr):  Return a def_operand_p.
516         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
517         (get_v_must_def_op_ptr):  Return a def_operand_p.
518         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
519         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
520         (phi_element_for_edge):  Remove.
521         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
522         (propagate_tree_value):  Add new prototype.
523         (phi_element_for_edge):  Remove prototype.
524         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
525         (prepare_operand_for_rename):  Split into two functions.
526         (prepare_use_operand_for_rename):  Prepare use operands.
527         (prepare_def_operand_for_rename):  Prepare def operands.
528         (rewrite_stmt):  Use new operand types.
529         (rewrite_operand):  Use new operand types, change parameter type.
530         * tree-outof-ssa.c (replace_variable):  Split into two functions.
531         (replace_use_variable):  Rewrite uses.
532         (replace_def_variable):  Rewrite defs.
533         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
534         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
535         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
536         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
537         (ccp_fold, replace_uses_in):  Use new operand types.
538         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
539         and no longer set the value, change parameter type.
540         (replace_exp_1):  Use new operand types.
541         (propagate_value):  Change parameter type, use new operand types.
542         (propagate_tree_value):  Propagate_value without SSA operands.
543         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
544         (cprop_into_successor_phis):  Use new operand types.
545         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
546         (eliminate_redundant_computations):  Use new operand types.
547         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
548         (fix_stmt_v_may_defs):  Use new operand_types.
549         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
550         (build_tree_conflict_graph):  Use new operand_types.
551         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
552         * tree-ssa-operands.c (struct freelist_d):  Remove.
553         (check_optype_freelist, add_optype_freelist):  Remove.
554         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
555         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
556         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
557         Call ggc_free instead of add_optype_freelist.
558         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
559         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
560         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
561         (struct use_optype_d):  Change underlying type.
562         (def_operand_p, use_operand_p):  New types for pointers to operands.
563         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
564         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
565         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
566         pointer types.
567         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
568         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
569         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
570         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
571         PHI result as an operand.
572         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
573         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
574         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
575         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
576         PHI_ARG_DEF_FROM_EDGE.
577         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
578         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
579
580 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
581
582         PR tree-optimization/15991
583         * tree-cfg.c (tree_block_label): Export.
584         * tree-flow-inline.h (bsi_after_labels): New function.
585         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
586         * tree-ssa.c (propagate_into_addr): New function.
587         (replace_immediate_uses): Handle propagation of pointer constants.
588         (raise_value): Do not restrict propagation of pointer constants.
589         * tree-ssanames.c (duplicate_ssa_name): New function.
590         * tree.h (duplicate_ssa_name): Declare.
591
592 2004-06-17  David Ayers  <d.ayers@inode.at>
593
594         * c-parse.in: Unify Objective-C token names.
595
596 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
597
598         Bug 14610
599         * Makefile.in (min-insn-modes.o): Correct dependencies.
600         * real.c (encode_ieee_extended, decode_ieee_extended): Always
601         produce/consume 12-byte little-endian Intel format.
602         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
603         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
604         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
605         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
606         New functions which convert between 12-byte little-endian Intel
607         format and the desired format.
608         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
609         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
610         Update.
611
612 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
613
614         * expmed.c (expand_mult_const): In sanity check, compare only
615         the bits of val and val_so_far that are significant in the
616         result mode.
617
618 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
619
620         * tree-ssa-pre.c:  Update comments.
621         (val_expr_pair_eq): Factor code from here.
622         (expr_pred_trans_eq): and here.
623         (expressions_equal_p): To here.
624         (print_value_set): Print value for expression.
625         (phi_trans_lookup): Rename some variables.
626         (lookup): Ditto.
627         (value_exists_in_set_bitmap): Ditto.
628         (value_remove_from_set_bitmap): Ditto.
629         (value_insert_into_set_bitmap): Ditto.
630
631 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
632
633         * config/s390/s390-modes.def (CCL3mode): New machine mode.
634         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
635         (s390_alc_comparison, s390_slb_comparison): Likewise.
636         (s390_branch_condition_mask): Likewise.
637         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
638         ("*subsi3_cc2", "*subsi3_cconly2"): New.
639
640         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
641         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
642         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
643         Handle SIGN_EXTEND and ZERO_EXTEND.
644
645         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
646         * config/s390/s390.c (s390_expand_addcc): New function.
647         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
648         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
649         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
650
651 2004-06-17  Ben Elliston  <bje@au.ibm.com>
652
653         * tree-alias-common.c: Add whitespace.
654         * tree-inline.c: Correct comment about this file's purpose.
655         * tree-optimize.c: Likewise.
656         * tree-tailcall.c: Likewise.
657
658         * tree-alias-ander.h: Add standard top-of-file comment.
659         * tree-alias-common.h: Likewise.
660         * tree-alias-type.h: Likewise.
661
662 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
663
664         * tree-ssa-pre.c (compute_avail): Value number uses as well.
665         Strip useless type conversions.
666         Casts have to be treated slightly different than normal unaries.
667
668 2004-06-16  Richard Henderson  <rth@redhat.com>
669
670         * c-common.def (COMPOUND_STMT): Remove.
671         * c-common.c (finish_fname_decls): Don't look through it.
672         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
673         * c-common.h (COMPOUND_BODY): Remove.
674         (c_common_stmt_codes): Remove COMPOUND_STMT.
675         * c-dump.c (c_dump_tree): Likewise.
676         * c-gimplify.c (c_gimplify_stmt): Likewise.
677         * c-pretty-print.c (pp_c_statement): Likewise.
678         * tree.h (DECL_SAVED_TREE): Update commentary.
679         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
680         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
681         (GOTO_EXPR): Rename from GOTO_STMT.
682         (GOTO_FAKE_P): Remove.
683         (COMPOUND_STMT): Remove.
684         (HANDLER): Update wrt COMPOUND_STMT.
685         (STMT_EXPR): Likewise.
686         (LABEL_EXPR): Rename from LABEL_STMT.
687         (SCOPE_STMT): Remove.
688         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
689         through COMPOUND_STMT.
690
691 2004-06-16  Richard Henderson  <rth@redhat.com>
692
693         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
694         c_finish_while_stmt_cond): Remove decls.
695         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
696         * c-typeck.c (c_begin_if_stmt): Return void.
697         (c_begin_else): Tidy.  Save stmt_count.
698         * c-tree.h (c_begin_if_stmt): Update decl.
699
700         * objc/objc-act.c (objc_build_try_enter_fragment,
701         objc_build_extract_fragment, objc_build_try_epilogue,
702         objc_build_catch_stmt, objc_build_catch_epilogue,
703         objc_build_finally_prologue, objc_build_finally_epilogue): Update
704         for if builder function changes.
705
706 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
707
708         * config/s390/s390.c (struct machine_function):  New member
709         last_restore_gpr.
710         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
711         Do not modify machine->save_return_addr_p or regs_ever_live.
712         Fill in machine->last_restore_gpr.
713         (s390_optimize_prolog): Use s390_frame_info to compute registers
714         to save/restore, remove duplicated code.
715         (s390_arg_frame_offset): Use s390_frame_info to compute frame
716         size, remove duplicated code.
717         (s390_emit_prologue): Adapt s390_frame_info call.  Update
718         machine->save_return_addr_p and regs_ever_live.
719         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
720         machine->last_save_gpr.
721
722 2004-06-16  Richard Henderson  <rth@redhat.com>
723
724         * c-parse.in (if_stmt_locus): Remove.
725         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
726         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
727         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
728         empty_locus.  Add stmt_count, saw_else.
729         (c_begin_if_stmt): Push if_stack here.
730         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
731         (c_finish_then, c_finish_else): Record empty_locus.
732         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
733         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
734         if or else body.
735         * c-tree.h: Update prototypes.
736
737 2004-06-16  Steven Bosscher  <stevenb@suse.de>
738
739         * tree.h (PHI_CHAIN): New.
740         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
741         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
742         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
743         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
744         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
745         when traversing a list of PHI_NODEs.
746
747 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
748
749         PR target/13292
750         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
751         on -msoft-float.
752         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
753         68040 and soft-float.
754         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
755         in the TARGET_68040_ONLY case.
756
757 2004-06-16 Peter Barada  <peter@the-baradas.com>
758
759         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
760         (movsi_cf): Make named, don't match TARGET_CFV4.
761         (pushexthisi_const): Use mov3q if possible.
762         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
763         to special case mvz.w for ColdFire V4.
764         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
765         to special case mvz.b for ColdFire V4.
766         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
767         divide.
768         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
769         * config/m68k/m68k.c(valid_mov3q_const):  New function.
770         (const_method): SWAP is valid for ColdFire.
771         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
772         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
773
774 2004-06-16  Richard Henderson  <rth@redhat.com>
775
776         * c-common.def (CASE_LABEL): Remove.
777         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
778         (match_case_to_enum_1): Likewise.
779         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
780         * c-dump.c (c_dump_tree): Likewise.
781         * c-gimplify.c (c_gimplify_stmt): Likewise.
782         * c-pretty-print.c (pp_c_statement): Likewise.
783         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
784         * tree.h (CASE_LOW): Update commentary.
785
786 2004-06-16  Richard Henderson  <rth@redhat.com>
787
788         * c-common.def (ASM_STMT): Remove.
789         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
790         * c-dump.c (c_dump_tree): Likewise.
791         * c-gimplify.c (c_gimplify_stmt): Likewise.
792         * c-pretty-print.c (pp_c_statement): Likewise.
793         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
794         * tree.h: Fix commentary.
795
796 2004-06-16  Richard Henderson  <rth@redhat.com>
797
798         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
799         * c-common.c (c_add_case_label): Use LABEL_EXPR.
800         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
801         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
802         * c-dump.c (c_dump_tree): Likewise.
803         * c-gimplify.c (c_gimplify_stmt): Likewise.
804         * c-pretty-print.c (pp_c_statement): Likewise.
805         * c-parse.in (stmt): Use GOTO_EXPR.
806         (label): Use LABEL_EXPR.
807         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
808         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
809
810 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
811
812         * cfgcleanup.c (try_simplify_condjump): Update test to make
813         sure we have a conditional branch around am unconditional branch.
814
815 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
816
817         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
818
819 2004-06-16  Dale Johannesen  <dalej@apple.com>
820
821         * loop.c (loop_givs_reduce): Avoid miscompilation of
822         loops entered at bottom.
823
824 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
825
826         * cfglayout.c (fixup_reorder_chain): Handle case where the
827         destination of E_FALL is EXIT_BLOCK_PTR.
828
829 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
830
831         PR target/15653
832         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
833         after shifts before asm.
834
835 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
836
837         PR tree-optimization/15993
838         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
839         destination is unchanged.
840
841 2004-06-16  Andreas Jaeger  <aj@suse.de>
842
843         * doc/install.texi (Configuration): Update description for
844         --enable-version-specific-runtime-libs.
845
846 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
847
848         * doc/install.texi: boehm-gc now uses automake 1.8.5.
849
850 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
851
852         * toplev.h (rest_of_compilation): Adjust prototype.
853
854 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
855
856         * coverage.c: Remove argument to rest_of_compilation.
857         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
858         * passes.c (rest_of_compilation): Remove argument.
859         (pass_rest_of_compilation): New.
860         (rest_of_handle_final, rest_of_handle_delay_slots,
861         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
862         rest_of_handle_machine_reorg, rest_of_handle_regrename
863         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
864         rest_of_handle_regmove, rest_of_handle_tracer
865         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
866         rest_of_handle_web, rest_of_handle_branch_prob
867         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
868         rest_of_handle_addressof, rest_of_handle_jump_bypass
869         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
870         Check that the two arguments are actually superfluous.
871         * tree-optimize.c (register_dump_files): Add properties argument.
872         Track validity of passes.  Only initialize dump files for
873         tree-based passes.  Store the full set of provided passes in
874         the pass.
875         (init_tree_optimization_passes): Register pass_expand and
876         pass_rest_of_compilation.
877         (execute_one_pass): Do not track the presence of required properties
878         here.  Set in_gimple_form.  Do not update current_properties.
879         (current_properties): Remove.
880         (set_save_expr_context): Remove.
881         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
882         expand to RTL here, and do not call rest_of_compilation.  Push
883         GGC context even before gimplification.
884         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
885         (pass_expand, pass_rest_of_compilation): Declare.
886
887 2004-06-15  Jeff Law  <law@redhat.com>
888
889         * fold-const.c (swap_tree_comparison): No longer static.
890         (tree_swap_operands_p): Similarly.  Return true if both operands
891         are SSA_NAMEs and the first operand has a higher version number than
892         the second operand.
893         * tree.h (swap_tree_comparison): Prototype.
894         (tree_swap_operands_p): Prototype.
895         * tree-ssa-operands.c (get_expr_operands): For commutative
896         operators and relational comparisons, canonicalize the
897         order of the operands.
898
899 2004-06-15  Richard Henderson  <rth@redhat.com>
900
901         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
902         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
903         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
904         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
905         (finish_fname_decls, fname_decl): Use statement_lists.
906         (c_expand_expr_stmt): Don't set last_expr_type.
907         (c_type_hash): Fix indentation.
908         (c_safe_from_p): Don't follow TREE_CHAIN.
909         (c_tree_chain_matters_p): Remove.
910         * c-common.def (SCOPE_STMT): Remove.
911         (CLEANUP_STMT): Redefine to contain its own body.
912         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
913         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
914         Add x_cur_stmt_list.
915         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
916         (cur_stmt_list): New.
917         (STATEMENT_LIST_STMT_EXPR): New.
918         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
919         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
920         (CLEANUP_BODY): New.
921         (CLEANUP_DECL): Move to operand 2.
922         (c_common_stmt_codes): Remove SCOPE_STMT.
923         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
924         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
925         (c_push_function_context, c_pop_function_context): Don't save it.
926         (finish_decl): Set TREE_USED on the decl for a cleanup.
927         Use push_cleanup.
928         (store_parm_decls): Use statement lists.
929         (finish_function): Remove compstmt rule workaround.  Use statement
930         lists.  Call finish_fname_decls after finalizing the body.
931         (c_begin_compound_stmt): Move to c-typeck.c.
932         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
933         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
934         (c_genericize): Invoke them.
935         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
936         (c_build_bind_expr): Export.
937         (gimplify_block, gimplify_cleanup): Remove.
938         (gimplify_condition): Use gimplify_stmt.
939         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
940         (gimplify_if_stmt): Remove recursion hack.
941         (c_gimplify_expr): Remove STMT_EXPR handling.
942         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
943         (is_last_stmt_of_scope): Remove.
944         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
945         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
946         c_end_compound_stmt.
947         * c-objc-common.c (build_cdtor): Likewise.
948         * c-parse.in (primary): Use c_finish_stmt_expr.
949         (push_scope, pop_scope): Remove.
950         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
951         (c99_block_end, compstmt): Use c_end_compound_stmt.
952         (c99_block_lineno_labeled_stmt): Likewise.
953         (compstmt_primary_start): Use c_begin_stmt_expr.
954         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
955         (do_stmt_start): Fill in body directly.
956         (lineno_stmt): Avoid setting lineno on constants.
957         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
958         Remove SCOPE_STMT.
959         * c-semantics.c (begin_stmt_tree): Remove.
960         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
961         (add_stmt): Use statement lists.
962         (add_scope_stmt, finish_stmt_tree): Remove.
963         (push_cleanup): New.
964         * c-tree.h: Move some decls from c-common.h.
965         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
966         (do_case, c_finish_case): Likewise.
967         (c_finish_then): Take body for then as argument.
968         (c_finish_else): Similarly.
969         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
970         c_finish_for_stmt_incr, c_finish_for_stmt): New.
971         (c_begin_stmt_expr, c_finish_stmt_expr): New.
972         (c_begin_compound_stmt): Do scope management.
973         (c_end_compound_stmt): New.
974         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
975         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
976         Look through exception handling constructs.
977         (gimplify_bind_expr): Accept temporary argument.
978         (gimplify_target_expr): Special case BIND_EXPR bodies.
979         (gimplify_expr): Handle fallback == fb_none like a statement.
980         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
981         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
982         * langhooks.h (tree_chain_matters_p): Remove.
983         * stub-objc.c (objc_clear_super_receiver): New.
984         * tree-gimple.h (voidify_wrapper_expr): Update decl.
985         (append_to_statement_list, append_to_statement_list_force): Move
986         to tree-iterator.h.
987         * tree-inline.c (expand_call_inline): Update call.
988         (clone_body): Use statement lists.
989         (walk_tree): Don't check tree_chain_matters_p.
990         (copy_tree_r): Likewise.
991         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
992         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
993         * tree-iterator.h (append_to_statement_list,
994         append_to_statement_list_force): Moved from tree-gimple.h.
995         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
996         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
997         (objc_enter_block): Likewise.
998         (objc_exit_block): Use c_end_compound_stmt.
999         (objc_build_try_enter_fragment): Add #error and comment for
1000         rewriting for OBJCPLUS.
1001         (objc_build_extract_fragment, objc_build_try_epilogue,
1002         objc_build_catch_stmt, objc_build_finally_prologue,
1003         objc_build_finally_epilogue): Update for C statement builders.
1004         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
1005         Remove.
1006
1007 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1008
1009         * df.c (df_reg_clobber_gen): Removed.
1010         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
1011         Make more effective for hard regs.
1012         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
1013
1014 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
1015
1016         * c-pragma.h (c_lex_string_translate): Change type to int.
1017         * c-parse.in: Change all assignments of c_lex_string_translate
1018         to true and false to 1 and 0.
1019         * c-lex.c (c_lex_string_translate): Likewise.
1020         (lex_string): Convert string without translation in the -1
1021         case.
1022
1023 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
1024
1025         * convert.h: Add include guards
1026
1027 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
1028
1029         * tree-flow-inline.h: Document all functions.
1030
1031 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
1032
1033         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1034         * tree-dfa.c (create_stmt_ann): Ditto.
1035         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1036         * tree-inline.c (estimate_num_insns_1): Ditto.
1037         * tree.c (tree_size): Ditto.
1038         (make_node_stat): Ditto.
1039         (tree_node_structure): Ditto.
1040         (ephi_node_elt_check_failed): Remove.
1041         (is_essa_node): Ditto.
1042         * tree.def (EPHI_NODE): Ditto.
1043         (EEXIT_NODE): Ditto.
1044         (EUSE_NODE): Ditto.
1045         (EKILL_NODE): Ditto.
1046         * tree.h (EREF_NODE_CHECK): Remove.
1047         (EPHI_NODE_ELT_CHECK): Ditto.
1048         (struct tree_eref_common): Ditto.
1049         (struct tree_euse_node): Ditto.
1050         (struct ephi_arg_d): Ditto.
1051         (struct tree_ephi_node): Ditto.
1052         (ephi_node_elt_check_failed): Remove prototype.
1053         (is_essa_node): Ditto.
1054         (enum tree_node_structure_enum): Remove TS_E*_NODE.
1055         (union tree_node): Remove E*_NODE uses.
1056
1057 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
1058
1059         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1060         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1061         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1062         Likewise.
1063         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1064         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1065         expand_builtin_strcmp, expand_builtin_strncmp,
1066         expand_builtin_frame_address): Likewise.
1067         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1068         insert_one_insn): Likewise.
1069         * calls.c (prepare_call_address, precompute_register_parameters,
1070         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1071         * cfganal.c (flow_active_insn_p): Likewise.
1072         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1073         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1074         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1075         make_extraction, recog_for_combine, gen_lowpart_for_combine,
1076         simplify_comparison, record_dead_and_set_regs_1,
1077         record_dead_and_set_regs, record_promoted_value,
1078         check_promoted_subreg, get_last_value_validate, get_last_value,
1079         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1080         unmentioned_reg_p_1): Likewise.
1081         * conflict.c (mark_reg): Likewise.
1082         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1083         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1084         merge_equiv_classes, flush_hash_table, invalidate,
1085         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1086         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1087         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1088         record_jump_cond, cse_insn, addr_affects_sp_p,
1089         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1090         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1091         cse_cc_succs, cse_condition_code_reg): Likewise.
1092         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1093         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1094         cselib_record_set, cselib_record_sets): Likewise.
1095         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1096         dbxout_block): Likewise.
1097         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1098         * dojump.c (do_jump): Likewise.
1099         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1100         is_based_loc, rtl_for_decl_location): Likewise.
1101         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1102         set_decl_incoming_rtl, mark_user_reg): Likewise.
1103         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1104         copy_to_suggested_reg, allocate_dynamic_stack_space,
1105         probe_stack_range, hard_function_value): Likewise.
1106         * expmed.c (store_bit_field, store_fixed_bit_field,
1107         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1108         extract_split_bit_field, expand_divmod, emit_store_flag_force):
1109         Likewise.
1110         * expr.c (convert_move, convert_modes,
1111         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1112         use_group_regs, emit_move_insn, emit_move_insn_1,
1113         compress_float_constant, push_block, emit_single_push_insn,
1114         emit_push_insn, get_subtarget, expand_assignment, store_expr,
1115         store_constructor, store_field, force_operand, safe_from_p,
1116         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1117         Likewise.
1118         * final.c (profile_function, final_scan_insn, alter_subreg,
1119         get_mem_expr_from_op, output_asm_operand_names, output_operand,
1120         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1121         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1122         find_regno_partial, propagate_one_insn, init_propagate_block_info,
1123         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1124         attempt_auto_inc, find_auto_inc, mark_used_regs,
1125         count_or_remove_death_notes_bb): Likewise.
1126         * function.c (find_temp_slot_from_address, update_temp_slot_address,
1127         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1128         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1129         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1130         purge_single_hard_subreg_set, instantiate_decl,
1131         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1132         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1133         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1134         expand_function_start, diddle_return_value, clobber_return_register,
1135         expand_function_end, keep_stack_depressed, handle_epilogue_set,
1136         update_epilogue_consts): Likewise.
1137         * genemit.c (gen_exp, gen_insn): Likewise.
1138         * genrecog.c (make_insn_sequence): Likewise.
1139         * global.c (global_conflicts, expand_preferences, mark_reg_store,
1140         mark_reg_conflicts, set_preference, reg_becomes_live,
1141         build_insn_chain, mark_reg_change): Likewise.
1142         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1143         Likewise.
1144         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1145         Likewise.
1146         * integrate.c (copy_rtx_and_substitute, try_constants,
1147         subst_constants, mark_stores, allocate_initial_values): Likewise.
1148         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1149         delete_computation, rtx_renumbered_equal_p, true_regnum,
1150         reg_or_subregno): Likewise.
1151         * lcm.c (reg_dies, reg_becomes_live): Likewise.
1152         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1153         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1154         wipe_dead_reg, no_conflict_p): Likewise.
1155         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1156         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1157         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1158         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1159         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1160         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1161         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1162         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1163         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1164         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1165         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1166         try_swap_copy_prop): Likewise.
1167         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1168         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1169         Likewise.
1170         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1171         reload_cse_simplify_operands, reload_combine,
1172         reload_combine_note_store, reload_combine_note_use,
1173         reload_cse_move2add, move2add_note_store): Likewise.
1174         * print-rtl.c (print_rtx): Likewise.
1175         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1176         contains_pseudo, handle_asm_insn): Likewise.
1177         * ra-debug.c (ra_print_rtx_object, dump_constraints,
1178         dump_static_insn_cost): Likewise.
1179         * ra-rewrite.c (slots_overlap_p, emit_colors,
1180         remove_suspicious_death_notes): Likewise.
1181         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1182         register_operand, scratch_operand, nonmemory_operand,
1183         constrain_operands): Likewise.
1184         * reg-stack (check_asm_stack_operands, remove_regno_note,
1185         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1186         subst_asm_stack_regs): Likewise.
1187         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1188         record_address_regs, reg_scan_mark_refs): Likewise.
1189         * regmove.c (discover_flags_reg, replacement_quality,
1190         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1191         fixup_match_1): Likewise.
1192         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1193         kill_set_value, copyprop_hardreg_forward_1): Likewise.
1194         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1195         reload_inner_reg_of_subreg, can_reload_into, push_reload,
1196         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1197         operands_match_p, decompose, find_reloads, find_reloads_toplev,
1198         find_reloads_address, subst_indexed_address, find_reloads_address_1,
1199         find_reloads_subreg_address, find_replacement,
1200         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1201         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1202         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1203         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1204         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1205         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1206         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1207         do_output_reload, emit_reload_insns, gen_reload,
1208         delete_address_reloads_1, inc_for_reload): Likewise.
1209         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1210         update_reg_unused_notes, fill_slots_from_thread): Likewise.
1211         * resource.c (update_live_status, mark_referenced_resources,
1212         mark_set_resources, mark_target_live_regs): Likewise.
1213         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1214         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1215         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1216         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1217         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1218         parms_set, find_first_parameter_load, keep_with_call_p,
1219         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1220         num_sign_bit_copies1): Likewise.
1221         * rtlhooks.c (gen_lowpart_general): Likewise.
1222         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1223         sched_analyze): Likewise.
1224         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1225         Likewise.
1226         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1227         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1228         simplify_binary_operation, simplify_const_relational_operation,
1229         simplify_subreg): Likewise.
1230         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1231         expand_end_stmt_expr, expand_return, expand_decl,
1232         expand_anon_union_decl): Likewise.
1233         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1234         find_splittable_regs, find_splittable_givs, find_common_reg_term,
1235         loop_iterations): Likewise.
1236         * var-tracking.c (variable_union, variable_part_different_p,
1237         variable_different_p, count_uses, add_uses, add_stores,
1238         compute_bb_dataflow, set_variable_part, delete_variable_part,
1239         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1240         Likewise.
1241         * varasm.c (assemble_variable): Likewise.
1242
1243 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
1244
1245         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1246         definition.
1247         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1248         #undef and #if 0'd definition.
1249
1250 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1251
1252         * combine.c (distribute_notes): Comment typo fix.
1253
1254 2004-06-15  Roger Sayle  <roger@eyesopen.com>
1255
1256         * expmed.c (synth_mult): Mask bits of the multiplier to the
1257         machine mode of the multiplication.  Don't consider shifts
1258         by more than (or equal to) the width of the operation's mode.
1259
1260 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1261
1262         * doc/install.texi: Yet another update for autoconf
1263         and automake versions.
1264
1265 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1266
1267         * function.h (struct function): Remove cannot_inline field.
1268         (current_function_cannot_inline): Remove.
1269         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1270         Simplify conditionals to ignore warn_return_type.
1271         * tree-optimize.c (tree_rest_of_compilation): Do not reset
1272         DECL_DEFER_OUTPUT.
1273         * objc/objc-act.c (build_module_descriptor, finish_method_def):
1274         Do not set current_function_cannot_inline.
1275
1276 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1277
1278         * cfglayout.c (fixup_reorder_chain): Handle case where the
1279         destination of E_TAKEN is EXIT_BLOCK_PTR.
1280
1281 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
1282
1283         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1284
1285 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1286
1287         * fold-const.c (operand_equal_p): Update comment.
1288
1289 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1290
1291         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1292         (INCOMING_RETURN_ADDR_RTX): Define.
1293         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1294         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1295         __builtin_return_address(0).
1296         (m32r_return_addr): Added for __builtin_return_address(0).
1297         (m32r_reload_lr): Ditto.
1298
1299         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1300
1301 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1302
1303         * doc/install.texi (Prerequisites): Update libbanshee,
1304         fastjar, libcpp, libjava/libltdl entries to
1305         automake 1.8.5.
1306
1307 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1308             Olivier Hainque  <hainque@act-europe.fr>
1309
1310         * function.c (fixup_var_refs): Also adjust the start of sequence
1311         after fixing up the insns.
1312
1313 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1314
1315         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1316
1317 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1318
1319         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1320         automake 1.8.5.
1321
1322 2004-06-14  Eric Christopher  <echristo@redhat.com>
1323
1324         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1325         to -mtpf-trace (-mno-tpf-trace).
1326         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1327         documentation.
1328
1329 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1330
1331         * real.c: Fix bit count in head comment.
1332
1333 2004-06-14  Jeff Law  <law@redhat.com>
1334
1335         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1336         PHIs where the destination or an argument is marked with
1337         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1338
1339 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1340
1341         PR middle-end/15945
1342         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1343         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1344
1345 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1346
1347         * opts.sh (var_args): Fix regexp.
1348
1349 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1350
1351         PR target/15178
1352         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1353
1354 2004-06-14  Paul Brook  <paul@codesourcery.com>
1355
1356         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1357
1358 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1359
1360         * Makefile.in (FLAGS_H): New.
1361         (flags.h): Replace by FLAGS_H.
1362         * c.opt: Document Var, VarExists, Init and Report attributes.
1363         * common.opt: Fill the values of the attributes.
1364         * diagnostic.c (flag_fatal_errors): Do not define.
1365         * except.c (flag_non_call_exceptions): Do not define.
1366         * flags.h: Include options.h.  Remove declarations conflicting with
1367         the automatically defined ones.
1368         * opts.c: Remove automatically defined variables.
1369         (handle_option): Perform default initialization.
1370         (common_handle_option): Do not handle options covered by the
1371         default initialization.
1372         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1373         fields.
1374         (CL_REPORT): New.
1375         * opts.sh: Generate variable declarations, handle CL_REPORT.
1376         * toplev.c: Remove automatically defined variables.
1377         (f_options): Removed.
1378         (print_switch_values): Use cl_options instead of f_options.
1379         * toplev.h (version_flag): Declaration removed.
1380
1381 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1382
1383         * config/sparc/sparc.h: Correct comment about availability of
1384         little endian option.
1385
1386         * config.gcc: Remove sparc64-*-aout*.
1387         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1388         * config/sparc/sp64-aout.h: Remove.
1389         * config/sparc/aout.h: Remove.
1390
1391 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1392
1393         * config/s390/s390.c: Include "tree-gimple.h".
1394         (s390_gimplify_va_arg): New function.
1395         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1396         (s390_va_arg): Remove.
1397         * config/s390/s390-protos.h (s390_va_arg): Remove.
1398         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1399
1400 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1401
1402         * basic-block.h (could_fall_through): Declare.
1403         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1404         Fail if the source already has a fallthrough edge to the exit
1405         block pointer.
1406         (could_fall_through): New function.
1407         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1408         edge to the exit block pointer.
1409         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1410         not called before reload has completed.
1411         Handle special case of first block having a fall-through exit edge.
1412         (cfg_layout_finalize): Don't call it before reload or if we have
1413         rtl epilogues.
1414         (fixup_reorder_chain): A fall through to the exit block does not
1415         require the block to come last.  Add sanity checks.
1416         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1417         edges to the exit block.
1418         * function.c (cfglayout.h): #include.
1419         (thread_prologue_and_epilogue_insns): If we have neither return nor
1420         epilogue, but a fall through to the exit block from mid-function,
1421         force a non-fall-through exit.
1422         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1423
1424 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1425
1426         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1427         for power5 and rs64a.  Correct condition for default.  Correct power3,
1428         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1429
1430 2004-06-13  Steven Bosscher <stevenb@suse.de>
1431
1432         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1433         Revert previous change, don't use CALL_P.
1434
1435 2004-06-13  Jason Merrill  <jason@redhat.com>
1436
1437         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1438         * tree-gimple.h: From here.
1439
1440 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1441
1442         Fix PR tree-optimization/15979
1443         Fix PR tree-optimization/15981
1444         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1445         try to insert values undefined along some path.
1446
1447 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1448
1449         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1450         are available everywhere too.
1451
1452 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1453
1454         * fold-const.c (fold_checksum_tree <case 't'>): Only
1455         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1456         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1457         EXPR is an INTEGERAL_TYPE or a scalar float type.
1458
1459 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1460
1461         * tree-sra.c (tree_sra): Update documentation.
1462
1463 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1464
1465         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1466         function_types_compatible_p, type_lists_compatible_p): Remove
1467         flags parameter.
1468         * c-tree.h (comptypes): Likewise.
1469         (COMPARE_STRICT): Remove.
1470         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1471         callers changed.
1472
1473 2004-06-13  Eric Christopher  <echristo@redhat.com>
1474
1475         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1476         Remove unused code.
1477         * c-typeck.c (comptypes): Add location in standard we're checking.
1478
1479 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1480
1481         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1482         version 3.3.4.
1483
1484 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1485
1486         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1487         index by machine mode.
1488         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1489         tables inside the loop over machine modes.
1490         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1491         expand_divmod): Index shift*_cost by the appropriate machine mode.
1492
1493 2004-06-12  Eric Christopher  <echristo@redhat.com>
1494
1495         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1496         * config/s390/s390.md: Ditto.
1497         * config/s390/s390.c: Ditto.
1498         (s390_frame_info): Conditionalize frame and setup info on
1499         TARGET_TPF_PROFILING.
1500         (s390_arg_frame_offset): Ditto.
1501
1502 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1503
1504         * fold-const.c (omit_two_operands): New function.
1505         * tree.h (omit_two_operands): Prototype here.
1506         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1507         C99 unordered comparison builtins to the appropriate tree nodes.
1508         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1509         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1510         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1511         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1512         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1513         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1514         omit_two_operands function to build the required COMPOUND_EXPRs.
1515
1516 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1517             Andreas Jaeger  <aj@suse.de>
1518
1519         * gcse.c (record_set_info): Use predicates like REG_P.
1520         (mems_conflict_for_gcse_p): Likewise.
1521         (load_killed_in_block_p): Likewise.
1522         (hash_expr_1): Likewise.
1523         (insert_set_in_table): Likewise.
1524         (gcse_constant_p): Likewise.
1525         (hash_scan_set): Likewise.
1526         (hash_scan_insn): Likewise.
1527         (canon_list_insert): Likewise.
1528         (record_last_mem_set_info): Likewise.
1529         (record_last_set_info): Likewise.
1530         (compute_hash_table_work): Likewise.
1531         (mark_set): Likewise.
1532         (mark_clobber): Likewise.
1533         (mark_oprs_set): Likewise.
1534         (compute_transp): Likewise.
1535         (find_avail_set): Likewise.
1536         (cprop_insn): Likewise.
1537         (do_local_cprop): Likewise.
1538         (cprop): Likewise.
1539         (find_implicit_sets): Likewise.
1540         (find_bypass_set): Likewise.
1541         (bypass_conditional_jumps): Likewise.
1542         (insert_insn_end_bb): Likewise.
1543         (pre_insert_copy_insn): Likewise.
1544         (compute_transpout): Likewise.
1545         (next_ls_expr): Likewise.
1546         (invalidate_any_buried_refs): Likewise.
1547         (compute_ld_motion_mems): Likewise.
1548         (reg_set_info): Likewise.
1549         (reg_clear_last_set): Likewise.
1550         (find_moveable_store): Likewise.
1551         (compute_store_table): Likewise.
1552         (find_loads): Likewise.
1553         (store_killed_in_insn): Likewise.
1554         (insert_insn_start_bb): Likewise.
1555         (reg_set_between_after_reload_p): Likewise.
1556         (reg_used_between_after_reload_p): Likewise.
1557         (is_jump_table_basic_block): Likewise.
1558         (gcse_after_reload): Likewise.
1559         (hash_scan_set_after_reload): Likewise.
1560         (compute_hash_table_after_reload): Likewise.
1561
1562 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1563
1564         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1565         (INSN_P): Don't look at the rtx code class, just explicitly
1566         check for one of the tree RTX_INSN codes.
1567
1568 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1569
1570         * c-typeck.c (default_function_array_conversion): Use
1571         build_pointer_type not TYPE_POINTER_TO.
1572
1573 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1574
1575         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1576         * configure, config.in: Regenerate.
1577         * system.h: Unconditionally define bool as unsigned char,
1578         BOOL_BITFIELD as unsigned int.
1579         * domwalk.h: Use BOOL_BITFIELD.
1580
1581 2004-06-12  Andreas Jaeger  <aj@suse.de>
1582
1583         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1584         * libgcc-darwin.ver: Likewise.
1585
1586 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1587
1588         * reload.c (find_reloads): Force reload for pseudo registers on big
1589         endian machines.
1590
1591 2004-06-11  Steven Bosscher <stevenb@suse.de>
1592
1593         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1594         Don't try to mark anything control dependent on the entry or
1595         exit blocks.
1596
1597 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1598
1599         Fix Bug 15899
1600         Fix Bug 15460
1601         * tree.h (SSA_NAME_VALUE): New macro.
1602         (struct tree_ssa_name): Add value_handle member.
1603         * tree-ssa-pre.c: Replaced.
1604         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1605         (struct cst_ann_d): New.
1606         (struct expr_ann_d): New.
1607         (union tree_ann_d): Add cst_ann, expr_ann.
1608         * tree-dfa.c (create_cst_ann): New function.
1609         (create_expr_ann): Ditto.
1610         * tree-flow-inline.h (cst_ann): New function.
1611         (expr_ann): Ditto.
1612         (get_cst_ann): Ditto.
1613         (get_expr_ann): Ditto..
1614
1615 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1616
1617         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1618         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1619         _U_Qfcmp library function.
1620         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1621         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1622
1623         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1624         unspec used for loading address from DLT.
1625         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1626         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1627         Don't use short code sequence when loading the address of a nonlocal
1628         label.
1629         (nonlocal_goto): New expander.
1630         (indirect_goto): New jump pattern for nonlocal gotos.
1631         (short_jump): Remove extra whitespace.
1632         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1633         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1634         pattern.
1635
1636 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1637
1638         * expmed.c (synth_mult): Add an additional MODE argument for the
1639         machine mode of the multiplication.  Update recursive calls.  Use
1640         mode instead of word_mode for determining operation costs.
1641         (choose_mult_variant): Update calls to synth_mult with "mode".
1642
1643 2004-06-11  Richard Henderson  <rth@redhat.com>
1644
1645         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1646         and makes_aliased_stores.
1647
1648 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1649
1650         * doc/install.text (--enable-shared): Fix typo.
1651
1652 2004-06-11  Richard Henderson  <rth@redhat.com>
1653
1654         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1655         argument.  Use internal post for call to gimplify_expr.  Tidy
1656         rounded type size computation.
1657         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1658         get_initialized_tmp_var.
1659
1660 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1661
1662         * doc/install.texi (--enable-shared): Update libobjc's shared library
1663         status.  Remove reference to libf2c.
1664
1665 2004-06-11  Jason Merrill  <jason@redhat.com>
1666
1667         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1668         * config/i386/i386.c (ix86_va_arg): Remove.
1669         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1670         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1671         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1672         * config/alpha/alpha.c (alpha_va_arg): Remove.
1673         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1674         * config/sparc/sparc.c (sparc_va_arg): Remove.
1675
1676         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1677         assignment might throw.
1678         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1679         expressions.
1680
1681 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1682
1683         PR 15886:
1684         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1685
1686 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1687
1688         * doc/install.texi (Prerequisites): Update documentation of
1689         required versions of autoconf and automake.  Remove mention of
1690         libf2c.
1691
1692 2004-06-11  Jason Merrill  <jason@redhat.com>
1693
1694         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1695         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1696
1697 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1698
1699         * typeclass.h: Add GPL plus exception license.  Add include
1700         guard.
1701
1702 2004-06-10  Jason Merrill  <jason@redhat.com>
1703
1704         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1705         of an aggregate_value_p type.
1706
1707 2004-06-10  Jeff Law  <law@redhat.com>
1708
1709         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1710         code when we are in gimple form.
1711
1712 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1713
1714         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1715         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1716         (highest_ssa_version): Remove.
1717         * tree-outof-ssa.c (new_temp_expr_table): Replace
1718         highest_ssa_version with num_ssa_names.
1719         (dump_replaceable_exprs): Likewise.
1720         (rewrite_vars_out_of_ssa): Likewise.
1721         * tree-ssa-ccp.c (initialize): Likewise
1722         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1723         * tree-ssa-dce.c (tree_dce_init): Likewise.
1724         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1725         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1726         (dump_var_map): Likewise.
1727         * tree-ssa.c (verify_ssa): Likewise.
1728         (kill_redundant_phi_nodes): Likewise.
1729         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1730         * tree-ssanames.c: Include tree-flow.h
1731         (ssa_names): New varray.
1732         (init_ssa_names): Initialize ssa_names.
1733         Reserve the first slot of the ssa_names table.
1734         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1735         Assign version numbers using num_ssa_names.
1736
1737 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1738
1739         * doc/sourcebuild.texi (Front End): Add details of more
1740         installation documentation required.
1741
1742 2004-06-10  Brian Booth  <bbooth@redhat.com>
1743
1744         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1745         of V_MAY_DEF and V_MUST_DEF.
1746         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1747         num_vdefs to num_v_may_defs.
1748         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1749         to v_may_def.
1750         (redirect_immediate_uses): Ditto.
1751         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1752         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1753         Also add code to sum up the number of v_must_defs.
1754         (vdefs_disappeared_p): Replace with...
1755         (v_may_defs_disappeared_p): This.
1756         (v_must_defs_disappeared_p): New function.
1757         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1758         Also add code to mark new variables found in V_MUST_DEFs for
1759         renameing.
1760         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1761         vdef_ops to v_may_def_ops.
1762         (get_vdef_ops): Replace with...
1763         (get_v_may_def_ops): This.
1764         * tree-flow-inline.h (get_vdef_ops): Replace with...
1765         (get_v_may_def_ops): This.
1766         (get_v_must_def_ops): New function.
1767         (get_vdef_result_ptr): Replace with...
1768         (get_v_may_def_result_ptr): This.
1769         (get_vdef_op_ptr): Ditto with...
1770         (get_v_may_def_op_ptr); This.
1771         (get_v_must_def_op_ptr): New function.
1772         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1773         to v_may_def. Also add code to mark statements with
1774         V_MUST_DEFs as definition sites.
1775         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1776         add code to register new V_MUST_DEFs made by the statement.
1777         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1778         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1779         add check for V_MUST_DEFs.
1780         (find_replaceable_in_bb): Ditto.
1781         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1782         to v_may_def. Also add code to dump V_MUST_DEFs.
1783         * tree-sra.c (mark_all_vdefs): Replace with...
1784         (mark_all_v_may_defs): This.
1785         (mark_all_v_must_defs): New function.
1786         (create_scalar_copies): Replace call to mark_all_vdefs with
1787         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1788         (scalarize_structures): Rename occurences of vdef to v_may_def.
1789         Also add a check for V_MUST_DEFs.
1790         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1791         * tree-ssa-alias.c (global_var): Update comment.
1792         (compute_may_aliases): Ditto.
1793         (compute_points_to_and_addr_escape): Rename occurences of vdef
1794         to v_may_def. Also add code to mark variables in V_MUST_DEF
1795         operands as being written to.
1796         (group_aliases): Update comment.
1797         (maybe_create_global_var): Ditto.
1798         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1799         Also add a check for V_MUST_DEFs on GIMPLE registers.
1800         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1801         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1802         to v_may_def. Also add code to mark all V_MUST_DEF operands
1803         VARYING.
1804         (initialize): Ditto.
1805         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1806         code to update SSA_NAMEs in V_MUST_DEFs.
1807         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1808         to v_may_def.
1809         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1810         occurences of vdef to v_may_def. Also add code to mark statements
1811         with V_MUST_DEFs as necessary.
1812         (propagate_necessity): Rename occurences of vdef to v_may_def.
1813         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1814         occurences of vdef to v_may_def. Also add code to mark operands
1815         in V_MUST_DEFs for renaming.
1816         (eliminate_redundant_computations): Rename occurences of vdef
1817         to v_may_def.
1818         (record_equivalences_from_stmt): Rename occurences of vdef
1819         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1820         (optimize_stmt): Remove unnesessary variable vdefs. Update
1821         comment.
1822         (register_definitions_for_stmt): Rename occurences of vdef
1823         to v_may_def. Also add code to register definitions made with
1824         V_MUST_DEFs.
1825         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1826         (fix_stmt_v_may_defs): This.
1827         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1828         (dse_optimize_stmt): Ditto.
1829         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1830         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1831         used in virtual operators.
1832         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1833         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1834         renaming.
1835         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1836         definitions.
1837         (build_vdefs): Renamed to...
1838         (build_v_may_defs): This.
1839         (build_v_must_defs): New variable.
1840         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1841         v_may_def_ops.
1842         (append_vdef): Replace with...
1843         (append_v_may_def): This.
1844         (append_v_must_def): New function.
1845         (NUM_FREE): Increment for V_MUST_DEF
1846         (optype_freelist): Increment its size for V_MUST_DEF
1847         (allocate_vdef_optype): Replace with...
1848         (allocate_v_may_def_optype): This.
1849         (allocate_v_must_def_optype): New function.
1850         (free_vdefs): Replace with...
1851         (free_v_may_defs): This.
1852         (free_v_must_defs): New function.
1853         (remove_vdefs): Replace with...
1854         (remove_v_may_defs): This.
1855         (remove_v_must_defs): New function.
1856         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1857         add code to initialize build_v_must_defs.
1858         (finalize_ssa_vdefs): Replace with...
1859         (finalize_ssa_v_may_defs): This.
1860         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1861         (finalize_ssa_v_must_defs): New function.
1862         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1863         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1864         (verify_start_operands): Rename occurences of vdef to v_may_def.
1865         Also add check for build_v_must_defs.
1866         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1867         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1868         killing definitions.
1869         (get_expr_operands): Update comment and use opf_kill_def for
1870         killing definitions.
1871         (add_stmt_operand): Replace code that appends VDEFs with code
1872         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1873         otherwise.
1874         (add_call_clobber_ops): Update comments.
1875         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1876         (v_may_def_optype_d): This.
1877         (v_must_def_optype_d): New structure.
1878         (VDEF_OPS): Replace with...
1879         (V_MAY_DEF_OPS): This.
1880         (STMT_VDEF_OPS): Same with...
1881         (STMT_V_MAY_DEF_OPS): This.
1882         (NUM_VDEFS): And...
1883         (NUM_V_MAY_DEFS): This.
1884         (VDEF_RESULT_PTR): As well as...
1885         (V_MAY_DEF_RESULT_PTR): This.
1886         (VDEF_RESULT): Same goes for...
1887         (V_MAY_DEF_RESULT): This.
1888         (VDEF_OP_PTR): And...
1889         (V_MAY_DEF_OP_PTR): This.
1890         (VDEF_OP): And...
1891         (V_MAY_DEF_OP): This.
1892         (V_MUST_DEF_OPS): New macro.
1893         (STMT_V_MUST_DEF_OPS): Ditto.
1894         (NUM_V_MUST_DEFS): Ditto.
1895         (V_MUST_DEF_OP_PTR): Ditto.
1896         (V_MUST_DEF_OP): Ditto.
1897         (remove_vdefs): Replace signature with...
1898         (remove_v_may_defs): This.
1899         (remove_v_must_defs): New function signature.
1900         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1901         with calls to remove_v_may_defs and remove_v_must_defs.
1902         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1903         Also add code that marks left occurences of operands in V_MUST_DEFs.
1904         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1905         to v_may_def. Also add check for V_MUST_DEFs.
1906         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1907
1908 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1909
1910         PR target/15653
1911         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1912         insn.
1913
1914 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1915
1916         PR web/15263
1917         * doc/install.texi: Remove superfluous linebreak.
1918
1919 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1920
1921         * builtins.c (expand_builtin): Fall back to library function call for
1922         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1923         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1924         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1925         IMAGPART_EXPR respectively.
1926
1927 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1928
1929         * sh.c (dump_table): New argument start.  Changed caller.
1930         (fixup_mova): New function.
1931         (find_barrier): Use it.
1932         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1933         If the label a mova refers to is above the mova itself, change
1934         the mova into a load.
1935         * sh.md (*casesi_worker): Rename to:
1936         (casesi_worker_1).
1937         (casesi_worker_2): New insn.
1938
1939 2004-06-10  Jason Merrill  <jason@redhat.com>
1940
1941         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1942         hook signature.
1943         * tree-gimple.h: Adjust.
1944         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1945         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1946         Use fold_convert.
1947         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1948         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1949         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1950         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1951         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1952         Gimplify valist rather than calling stabilize_va_list.
1953
1954 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1955
1956         * Makefile.in (df.o): Remove fibheap dependency.
1957         * df.h: Do not include sbitmap.h.
1958         (struct ref): New field "data".
1959         (DF_REF_DATA): New accessor macro.
1960         (struct df): Field "dom" removed.
1961         (df_analyze_subcfg): New function.
1962         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1963         (transfer_function): ... new type.
1964         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1965         (iterative_dataflow): ... new function.
1966         (enum set_representation, struct dataflow): New.
1967         * df.c: Do not include fibheap.h.
1968
1969         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1970         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1971         prune_to_subcfg, df_bb_modify): New functions.
1972         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1973         df_refs_update, df_reg_table_realloc, df_ref_create,
1974         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1975         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1976         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1977
1978         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1979         (df_rd_transfer_function, df_ru_transfer_function,
1980         df_lr_transfer_function): Type of bitmaps changed to void *.
1981         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1982         (hybrid_search): ... new function.
1983         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1984         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1985         a worklist.  Do not process basic blocks unnecessarily.
1986
1987 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1988
1989         * fold-const.c (fold_abs_const): Make extern.
1990         * tree.h (fold_abs_const): Prototype here.
1991         * builtins.c (fold_builtin_fabs): New function to transform
1992         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1993         (fold_builtin_abs): New function to transform abs, labs, llabs
1994         and imaxabs builtins into ABS_EXPR tree nodes.
1995         (expand_builtin): Fall back to a function call for abs, labs,
1996         llabs and imaxabs builtins that survive constant folding.
1997         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1998         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1999
2000 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2001
2002         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
2003         leaf function without unwind info at RP 0.
2004
2005 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2006
2007         PR c++/14791
2008         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
2009         (fileptr_type_node): Define.
2010         * tree.c (build_common_tree_nodes_2): Initialize
2011         fileptr_type_node to ptr_type_node.
2012         * c-common.c (c_common_nodes_and_builtins): For C++, make
2013         fileptr_type_node a distinct type copy.
2014         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
2015         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
2016         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
2017         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
2018         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
2019         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
2020         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
2021         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
2022         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
2023         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
2024         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
2025         the above *FILEPTR* types instead of *PTR*.
2026
2027 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
2028
2029         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2030         match.
2031
2032 2004-06-09  Roger Sayle  <roger@eyesopen.com>
2033
2034         * fold-const.c (fold_not_const): New function.
2035         (fold) <ABS_EXPR>: Don't bother testing wins.
2036         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2037         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2038
2039 2004-06-09  Richard Henderson  <rth@redhat.com>
2040
2041         PR middle-end/15228
2042         * function.c (assign_parms): Always set_mem_align with the computed
2043         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
2044
2045 2004-06-09  Richard Henderson  <rth@redhat.com>
2046
2047         PR opt/15108
2048         * tree-tailcall.c (find_tail_calls): Don't check early for
2049         tail_recursion failure.
2050
2051 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
2052
2053         Move SSA_NAME annotations into tree_ssa_name.
2054
2055         * tree-dfa.c (create_ssa_name_ann): Remove.
2056         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2057         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2058         (struct ssa_name_ann_d): Remove.
2059         (union tree_ann_d): Update.
2060         (ssa_name_ann_t): Remove.
2061         * tree-ssa-alias.c: (get_ptr_info): New local function.
2062         Replace references to ssa_name_ann_t with struct ptr_info_def.
2063         * tree-ssa-operands.c (get_expr_operands): Likewise.
2064         * tree.h (SSA_NAME_PTR_INFO): Define.
2065         (struct ptr_info_def): Declare.
2066         (struct tree_ssa_name): Add field 'ptr_info'.
2067
2068 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
2069
2070         * config/i386/winnt.c (i386_pe_output_labelref): Correct
2071         misplaced ')'.
2072
2073 2004-06-09  Steven Bosscher  <stevenb@suse.de>
2074
2075         * config/i386/k6.md: Rewrite using the DFA model.
2076         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2077         cost of load-operation insns for the K6.
2078         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2079         (ia32_multipass_dfa_lookahead): Likewise.
2080
2081 2004-06-09  Richard Henderson  <rth@redhat.com>
2082
2083         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2084         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2085
2086 2004-06-09  Richard Henderson  <rth@redhat.com>
2087
2088         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2089
2090 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
2091
2092         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2093         (CPP_ID_DATA_H): New.
2094         (gtype-desc.o): Update dependencies.
2095         (GTFILES): Use CPP_ID_DATA_H.
2096
2097 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
2098
2099         Revert:
2100         PR c++/15815
2101         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2102         * doc/extend.texi: Deprecate #pragma interface and #pragma
2103         implementation.
2104
2105 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
2106
2107         * config/sparc/sparc.h (MOVE_RATIO): New definition.
2108
2109 2004-06-09  Richard Henderson  <rth@redhat.com>
2110
2111         * basic-block.h (struct edge_def): Add goto_locus.
2112         * tree-cfg.c (make_goto_expr_edges): Set it.
2113         (disband_implicit_edges): Use it.
2114         * tree-pretty-print.c (dump_implicit_edges): Print it.
2115
2116 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2117
2118         * h8300.md (ldm_h8300s_4): Fix condition for expander.
2119
2120 2004-06-08  Jason Merrill  <jason@redhat.com>
2121
2122         Gimplify VA_ARG_EXPR into simpler forms.
2123         * target.h: Add gimplify_va_arg_expr hook.
2124         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2125         * fold-const.c (build_fold_addr_expr)
2126         (build_fold_addr_expr_with_type): Move from gimplify.c.
2127         * tree.h: Declare them.
2128         * gimplify.c (gimplify_and_add): New fn.
2129         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2130         (gimplify_array_ref_to_plus, gimplify_modify_expr)
2131         (gimplify_expr): Use build_fold_*.
2132         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2133         don't know how to gimplify it.
2134         * builtins.c (std_gimplify_va_arg_expr): New fn.
2135         (dummy_object): New static fn.
2136         (gimplify_va_arg_expr): New fn.
2137         (stabilize_va_list): Use build_fold_*.
2138         * tree-gimple.h: Declare new fns.
2139         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2140         (ix86_gimplify_va_arg): New fn.
2141         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2142         (ia64_gimplify_va_arg): New fn.
2143         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2144         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2145         * alias.c (get_varargs_alias_set): Just return 0 for now.
2146
2147         * c-objc-common.c (c_tree_printer): Improve handling of %T.
2148
2149 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
2150
2151         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2152         of convert.
2153         * tree-inline.c (setup_one_parameter): Likewise.
2154         * tree-sra.c (csc_build_component_ref): Likewise.
2155         * tree-ssa-ccp.c (ccp_fold): Likewise.
2156         * tree-ssa-copy.c (cprop_operand): Likewise.
2157         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2158         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2159
2160 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
2161
2162         PR rtl-optimization/15521:
2163         * sched-int.h (in_post_call_group_p): Change type to enum.
2164         * sched-deps.c (sched_analyze_insn):
2165         (sched_analyze): When in_post_call_group_p is post_call_initial,
2166         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2167         and also reset in_post_call_group_p to post_call.
2168         (sched_analyze): When the previous basic block ended in a CALL_INSN,
2169         initialize in_post_call_group_p as post_call_initial.
2170         (init_deps): initialize in_post_call_group_p to not_post_call.
2171
2172 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
2173
2174         PR ada/6637
2175         * doc/install.texi: List ada, libada as options to --enable-shared
2176
2177 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
2178
2179         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2180         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2181         config.in entries.
2182         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2183         if hard links are not available.
2184         * configure: Regenerate.
2185         * config.in: Regenerate.
2186
2187 2004-06-08  Per Bothner  <per@bothner.com>
2188
2189         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
2190
2191 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2192
2193         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2194         Correct formatting.
2195
2196 2004-06-08  James E Wilson  <wilson@specifixinc.com>
2197
2198         PR target/15790
2199         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2200
2201 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2202
2203         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2204         POINTER_TYPE and INTEGER_TYPE.
2205
2206 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
2207
2208         * modulo-sched.c: Compile only when INSN_SCHEDULING is
2209         defined.
2210
2211 2004-06-08  Jeff Law  <law@redhat.com>
2212
2213         * doc/contrib.texi: Add entries for Stefan Olsson and
2214         Ola Ronnerup.
2215
2216 2004-06-08  DJ Delorie  <dj@redhat.com>
2217
2218         * toplev.c (floor_log2_wide): Replace loop with faster bit
2219         operations.
2220         (exact_log2_wide): Define in terms of the above.
2221         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2222         available.
2223
2224 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2225
2226         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2227         Make sure that we are in INDIRECT mode when getting the
2228         stub name.
2229
2230 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2231
2232         * h8300.md (extendqisi2_h8300): Add constraints.
2233         (ldm_h8300s_4_normal): Fix typo.
2234
2235 2004-06-08  Richard Henderson  <rth@redhat.com>
2236
2237         * gimple-low.c (struct lower_data): Replace the_return_label and
2238         one_return_stmt with return_statements.
2239         (lower_function_body): Process the entire list of return_statements.
2240         (lower_return_expr): Check source value before unifying return_exprs.
2241         * gimplify.c (gimplify_return_expr): Force the use of a temporary
2242         for !aggregate_value_p.
2243         * tree-gimple.c: Update RETURN_EXPR grammer.
2244
2245 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
2246
2247         PR target/15598
2248         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2249
2250 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2251
2252         PR rtl-optimization/15717
2253         * config/i386/i386.c (legitimate_constant_p): Do not allow
2254         x - symbol_ref.
2255
2256 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
2257
2258         * gimplify.c (copy_if_shared_r): Revert:
2259         2004-05-21  Richard Henderson  <rth@redhat.com>
2260         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2261
2262 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2263
2264         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2265         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
2266         (init_expmed): Initialize these cost arrays as appropriate.
2267         (store_bit_field, extract_bit_field): Correct whitespace.
2268         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2269         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2270         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2271         word_mode or compute_mode as appropriate.
2272
2273 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2274
2275         PR target/15783
2276         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2277         parameter.  Enumerate the registers inside the PARALLEL.
2278         (function_arg): Adjust call to function_arg_union_value.
2279         (function_value): Likewise.
2280
2281         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2282
2283 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2284
2285         * real.c (real_copysign): New function to implement libm's copysign.
2286         * real.h (real_copysign): Prototype here.
2287         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2288         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
2289         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2290         fold_builtin_isdigit): Add function prototypes.
2291         (fold_builtin_copysign): New function to fold copysign, copysignf
2292         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
2293         constant arguments at compile-time using real_copysign.  Fold
2294         copysign(X,Y) as fabs(X) if Y is always non-negative.
2295         (fold_builtin_1): Correct minor whitespace/style issues.  Call
2296         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2297
2298 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2299
2300         * tree.c (iterative_hash_expr): Use real_hash.
2301
2302 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2303
2304         PR c/14765
2305         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2306         NULL_TREE.
2307
2308 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2309
2310         PR c++/15815
2311         * doc/extend.texi: Deprecate #pragma interface and #pragma
2312         implementation.
2313
2314 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2315
2316         PR middle-end/15666
2317         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2318         builtin decl as well.
2319
2320 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2321
2322         PR c/14649
2323         * c-typeck.c (require_constant_value, require_constant_elements):
2324         Move declarations to the top of the file.
2325         (build_function_call): If we require a constant value, fold with
2326         fold_initializer.  If the result is a constant, and the function
2327         wasn't called using __builtin_foo, issue a pedantic warning.
2328         (build_unary_op): If we require a constant value, fold tree with
2329         fold_initializer.
2330         (build_binary_op): Use require_constant_value to determine whether
2331         to call fold or fold_initializer.
2332
2333 2004-06-07  Richard Henderson  <rth@redhat.com>
2334
2335         * gimple-low.c (struct lower_data): Add the_return_label and
2336         one_return_stmt.
2337         (lower_function_body): Initialize and use them.
2338         (lower_return_expr): New.
2339         (lower_stmt): Call it.
2340         * gimplify.c (gimplify_return_expr): Force the argument to be either
2341         null or a result_decl.
2342         * tree-gimple.c: Update gimple grammer to match.
2343         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2344         coalescing of result_decls.
2345
2346 2004-06-07  Richard Henderson  <rth@redhat.com>
2347
2348         PR rtl-opt/15193
2349         * expmed.c (extract_bit_field): Fix vector_extract return.
2350
2351         * config/i386/i386.md (negv4sf2): New pattern.
2352
2353 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2354
2355         PR c++/15337
2356         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2357         message.
2358
2359 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2360
2361         * config.in: Regenerate.
2362
2363 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2364
2365         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2366         SWITCH_LABELS are always sorted.
2367
2368 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2369
2370         * hooks.c (hook_int_void_1): New generic hook.
2371         * hooks.h (hook_int_void_1): Add prototype.
2372         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2373         Define to hook_int_void_1.
2374         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2375         with dummies for the new one.
2376
2377 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2378
2379         * tree.h (lvalue_or_else): Delete function prototype.
2380         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2381
2382 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2383
2384         PR target/14542
2385         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2386         a live change of a register after peephole replacement.
2387
2388 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2389
2390         PR c/13519
2391         * c-typeck.c (composite_type, common_pointer_type): New functions.
2392         (common_type): Split parts into composite_type and
2393         common_pointer_type.  Ensure that arithmetic operations return
2394         unqualified types without attributes.  Don't make composite type
2395         of signed enum and compatible integer be unsigned.
2396         (build_conditional_expr, build_binary_op): Use
2397         common_pointer_type.
2398         * c-decl.c (merge_decls): Use composite_type.
2399         * c-tree.h (composite_type): Declare.
2400
2401 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2402
2403         PR target/14457
2404         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2405         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2406         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2407         (inhibit_libc): Must define.
2408         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2409         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2410         ("xorhi3"): Likewise.
2411
2412 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2413
2414         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2415         always_inline pass.
2416
2417 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2418
2419         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2420         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2421
2422 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2423
2424         * regclass.c (init_reg_sets): Check for missing registers in target
2425         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2426
2427 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2428
2429         * Makefile.in (MKDEPS_H): New shorthand.
2430         (c-opts.o): Update dependencies.
2431         * c-opts.c: Include mkdeps.h.
2432         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2433         not cpp_add_dependency_target.
2434
2435 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2436
2437         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2438         * config/v850/v850.md: Convert to DFA scheduler description.
2439
2440 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2441
2442         PR fortran/15478
2443         * doc/install.texi: Document GMP as prerequisite. Document
2444         --with-gmp and --with-gmp-dir configure options.
2445         * fortran/gfortran.texi: Remove section "Compiling and testing",
2446         remove TOC reference to it.
2447
2448 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2449
2450         * combine.c(simplify_shift_const): Check shift amount is a
2451         CONST_INT.
2452
2453 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2454
2455         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2456         opening asm_out_file.
2457         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2458         reading asm_out_file. Replace fflush after reading asm_out_file
2459         with fseek.
2460         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2461         default and add to HOST_HOOKS_INITIALIZER.
2462         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2463         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2464         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2465         to set mmi.offset padding.
2466          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2467         $(srcdir)/config/i386/winnt.c.
2468         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2469         (i[34567]86-*-uwin*): Likewise.
2470         *i[34567]86-*-interix3*): Likewise.
2471         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2472         * config/i386/host-mingw32.c: New file.
2473         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2474         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2475         (extern_head): Likewise.
2476         (struct export_list) Likewise.
2477         (export_head): Likewise.
2478         (i386_pe_record_external_function): Use ggc_alloc.
2479         (i386_pe_record_exported_symbol): Likewise.
2480         Include "gt-winnt.h" at end.
2481         * doc/hostconfig.texi: Document
2482         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2483
2484 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2485
2486         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2487         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2488         trailing whitespace before EOLs and before TABs.
2489         (MAX_CODE_ALIGN): Remove unused macro.
2490         (CALL_USED_REGISTERS): Reformat and add comments.
2491
2492 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2493
2494         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2495         to enumerate -lmudflap* and dependencies when linking.
2496
2497 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2498
2499         PR target/15822
2500         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2501
2502 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2503
2504         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2505         * genconditions.c (write_header): Back out removal of reload.h.
2506
2507 2004-06-04  Jan Hubicka  <jh@suse.cz>
2508
2509         Re-apply hopefully fixed patch:
2510         * i386.md (UNSPECV_EH_RETURN): Kill.
2511         (eh_return): Use jump_insn.
2512         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2513
2514 2004-06-04  Jeff Law  <law@redhat.com>
2515
2516         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2517
2518 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2519
2520         * except.c (for_each_eh_region): New function.
2521         * except.h (for_each_eh_region): Add a prototype for it.
2522         * tree-cfg.c (update_eh_labels): New function, callback for
2523         for_each_eh_region.
2524         (label_for_bb): Make global static, unfortunately.
2525         (cleanup_dead_labels): Also update label references for
2526         exception regions.
2527
2528 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2529
2530         * config/mips/mips.c (struct irix_section_align_entry): Fix
2531         GTY marker.
2532
2533 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2534
2535         * toplev.c (check_global_declarations): Don't ask for
2536         DECL_ASSEMBLER_NAME unless the function really is declared
2537         static and not defined.
2538
2539 2004-06-03  Matt Austern  <austern@apple.com>
2540
2541         PR c++/15428
2542         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2543         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2544         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2545         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2546         documentation to reflect the new macro name and to clarify its
2547         meaning.
2548
2549 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2550
2551         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2552
2553 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2554
2555         * config/darwin.c (machopic_indirect_data_reference): Copy
2556         the SYMBOL_REF_DECL from the original RTX for the new
2557         non-lazy pointer RTX.
2558
2559 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2560
2561         * tree.h: Remove include of version.h
2562         * c-cppbuiltin.c: Include version.h
2563         * diagnostic.c: Include version.h
2564         * dwarf2out.c: Include version.h
2565         * toplev.c: Include version.h
2566         * vmsdbgout.c: Include version.h
2567         * Makefile.in: Remove dependency on version.h from TREE_H, and
2568         add dependencies to required .o targets
2569
2570 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2571
2572         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2573         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2574         (TARGET_H): Add insn-modes.h.
2575         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2576         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2577         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2578         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2579         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2580         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2581         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2582         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2583         CFGLAYOUT_H.
2584         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2585         Replace ra.h with RA_H.
2586         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2587         insn-recog.o): Replace resource.h with RESOURCE_H.
2588         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2589         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2590         with SCHED_INT_H.
2591         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2592         ra-rewrite.o): Replace df.h with DF_H.
2593         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2594         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2595         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2596         (insn-conditions.o): Remove unused reload.h.
2597         * cfglayout.h: Add include guard.  Include basic-block.h.
2598         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2599         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2600         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2601         basic-block.h.
2602         * genconditions.c:  Remove reload.h.
2603         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2604         hard-reg-set.h, insn-modes.h.
2605         * resource.h: Add include guard.  Include hard-reg-set.h.
2606         * sched-int.h:  Add include guard.  Include insn-attr.h,
2607         basic-block.h, rtl.h.
2608         * target.h: Add include guard.  Include insn-modes.h.
2609         * tree-ssa-live.h: Include partition.h.
2610
2611 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2612                 Kenneth Zadeck <zadeck@naturalbridge.com>
2613
2614         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2615         (add_var_to_ssa_edges_worklist): Add value argument.
2616         Update callers.
2617         Use new worklist.
2618         (process_ssa_edge_worklist): New function.
2619         (tree_ssa_ccp): Move worklist processing core to
2620         process_ssa_edge_worklist, and just call that for the two worklists.
2621
2622 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2623
2624         * basic-block.c (tail_recursion_label_list): Don't declare.
2625         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2626         accordingly.
2627         * cfgbuild.c (find_label_refs): Remove.
2628         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2629         * cfgcleanup.c (tail_recursion_label_p): Remove.
2630         (merge_blocks_move): Do not check for tail recursion.
2631         (try_optimize_cfg): Likewise.
2632         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2633         * cfgrtl.c (tail_recursion_label_list): Remove.
2634         * except.c (remove_unreachable_regions): Don't handle
2635         CALL_PLACEHOLDER insns.
2636         (convert_from_eh_region_ranges_1, can_throw_internal,
2637         can_throw_external): Likewise.
2638         * function.c (free_after_compilation): Don't clear
2639         x_tail_recursion_label.
2640         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2641         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2642         (reorder_blocks_1): Likewise.
2643         * function.h (struct function): Remove x_tail_recursion_label
2644         member.  Don't define tail_recursion_label.
2645         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2646         * print-rtl.c (print_rtx): Likewise.
2647         * rtl.def (CALL_PLACEHOLDER): Remove.
2648         * rtl.h (sibcall_use_t): Remove enum.
2649         (optimize_sibling_and_tail_recursive_calls,
2650         replace_call_placeholder): Remove function prototypes.
2651         * stmt.c (tail_recursion_args): Remove.
2652         (optimize_tail_recursion): Remove.
2653         (expand_return): Don't check for possible tail recursion.
2654         * tree.h (optimize_tail_recursion): Remove prototype.
2655
2656 2004-06-02  Jan Hubicka  <jh@suse.cz>
2657
2658         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2659         return_stmt.
2660
2661 2004-06-02  Jason Merrill  <jason@redhat.com>
2662
2663         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2664         Do include c-parse.in.
2665
2666 2004-06-02  Eric Christopher  <echristo@redhat.com>
2667
2668         * c-typeck.c (common_type): Don't lose type qualifiers
2669         when creating new variants.
2670
2671 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2672
2673         PR tree-optimization/14042
2674         PR tree-optimization/14729
2675         PR tree-optimization/14736
2676         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2677         Check the type which the pointer points to
2678         instead of the pointer types.
2679
2680 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2681
2682         PR tree-optimization/15738.
2683         * builtins.c (fold_builtin_strchr): Transform
2684         strrchr (s, '\0') to strchr (s, '\0').
2685
2686 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2687
2688         * i386.c (ix86_adjust_cost): Don't increase the cost for
2689         load+operation for PROCESSOR_PENTIUMPRO, it is already
2690         modelled in the DFA description
2691
2692 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2693
2694         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2695         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2696         (ALIAS_H, EMIT_RTL_H): New.
2697         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2698         (cfgcleanup.o): Add EMIT_RTL_H.
2699         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2700         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2701         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2702         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2703         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2704         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2705         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2706         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2707         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2708         set_mem_size): Move to emit-rtl.h.
2709         * emit-rtl.h: New.
2710         * alias.h: New.
2711
2712 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2713
2714         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2715         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2716         Adjust recursive calls to self.
2717         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2718
2719 2004-06-01  Richard Henderson  <rth@redhat.com>
2720             Andrew Pinski  <pinskia@physics.uc.edu>
2721
2722         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2723         (primary): Handle offsetof.  Add error productions for faux functions.
2724         Move component_ref objc checking to build_component_ref.
2725         (reswords): Add offsetof.
2726         (rid_to_yy): Add offsetof.
2727         * c-tree.h (build_offsetof): Declare.
2728         * c-common.h (objc_is_public): Declare.
2729         * c-typeck.c (build_component_ref): Check objc_is_public.
2730         (build_offsetof): New.
2731         * stub-objc.c (objc_is_public): New.
2732         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2733         from is_public.
2734         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2735         * doc/extend.texi (Offsetof): Move from C++ section to C section
2736         and rewrite for __builtin_offsetof.
2737
2738 2004-06-01  Peter Barada  <peter@the-baradas.com>
2739             Peter Jakubek  <peter@laseranimation.com>
2740
2741         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2742         a scratch to perform an add to memory.
2743
2744 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2745
2746         PR target/14018
2747         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2748         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2749         m68k_align_funcs): Remove.
2750         (override_options): Remove code to handle -malign-* options.
2751         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2752         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2753         (m68k_align_loops_string, m68k_align_jumps_string,
2754         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2755         m68k_align_funcs): Remove definitions.
2756
2757 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2758
2759         PR target/15626
2760         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2761         by the Sun linker in conjunction with the Sun assembler.
2762         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2763
2764 2004-06-01  Jeff Law  <law@redhat.com>
2765
2766         * stmt.c (expand_decl): Be more selective about calling
2767         mark_reg_pointer.
2768
2769 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2770
2771         PR objc/7993
2772         * objc-act.c (is_private): Do not emit the 'instance variable %s
2773         is declared private' error.
2774         (is_public): Emit the error after calling is_private.
2775         (lookup_objc_ivar): If the instance variable is private, return 0
2776         - the instance variable is invisible here.
2777
2778 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2779
2780         * doc/invoke.texi (-static-libgcc): Explicitly mention
2781         non-GNU linkers.
2782
2783 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2784
2785         PR target/12968
2786         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2787
2788 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2789
2790         PR c/15749
2791         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2792         misuses of structures with flexible array members if
2793         in_system_header.
2794
2795 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2796
2797         PR target/15693
2798         * config/sparc/sparc.c (compare_operand): New predicate.
2799         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2800         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2801         operand is a ZERO_EXTRACT and the second operand is not zero,
2802         force the former to a register.
2803         (cmpdi expander): Likewise.
2804
2805 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2806
2807         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2808         looks at.
2809         * alias.c (alias_invariant_size): Make alias_invariant_size
2810         static, fix GTY marker.
2811
2812 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2813
2814         PR tree-optimization/15743.
2815         * builtins.c (fold_builtin_1): Fold index() and rindex().
2816
2817 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2818
2819         PR middle-end/15069
2820         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2821         into "X < 0" (where C is the signbit) if X's type is a full mode.
2822
2823 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2824
2825         * pa.md: Disable the peephole2 patterns that generate indexed
2826         floating-point stores when indexing is disabled.
2827
2828 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2829
2830         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2831         (pp_c_right_bracket): Likewise.
2832         (pp_c_star): Likewise.
2833         (pp_c_ampersand): Define.
2834         * c-pretty-print.h (pp_c_left_bracket): Declare.
2835         (pp_c_right_bracket): Likewise.
2836         (pp_c_star): Likewise.
2837         (pp_c_ampersand): Likewise.
2838
2839 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2840
2841         * config/sol2.h (__enable_execute_stack): ANSIfy function
2842         definition.
2843
2844 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2845
2846         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2847         HAVE_DOS_BASED_FILESYSTEM.
2848
2849 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2850
2851         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2852         Only look at case labels if the immediate dominator is also
2853         the only predecessor.  Don't look for more case labels if the
2854         first seen is a case range.
2855
2856 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2857
2858         * builtins.c: Add a prototype for fold_builtin_strchr().
2859
2860 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2861
2862         Revert this patch:
2863         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2864
2865         * combine.c (gen_binary): Remove.
2866         (known_cond, simplify_shift_const
2867         find_split_point, combine_simplify_rtx,
2868         simplify_if_then_else, simplify_set,
2869         simplify_logical, expand_field_assignment,
2870         extract_left_shift, force_to_mode,
2871         if_then_else_cond, apply_distributive_law,
2872         simplify_and_const_int, simplify_shift_const,
2873         gen_lowpart_for_combine, simplify_comparison,
2874         reversed_comparison): Replace with
2875         simplify_gen_binary, simplify_gen_relational or
2876         distribute_and_simplify_rtx.
2877         (distribute_and_simplify_rtx): New function.
2878
2879 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2880
2881         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2882         when generating PIC code.
2883
2884 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2885
2886         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2887         (c_expand_body): here.
2888         (c_expand_decl): Move to ...
2889         * c-common.c (c_expand_decl): Here and remove check for nested
2890         functions.
2891         * c-common.h (c_expand_decl): Add prototype.
2892         * c-tree.h (c_expand_decl): Remove.
2893
2894 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2895
2896         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2897         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2898         fold_mathfn_compare, fold_inf_compare, fold,
2899         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2900         Use constant_boolean_node where appropriate.  Don't bother using
2901         fold_convert on the second argument to omit_one_operand.
2902
2903 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2904
2905         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2906         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2907         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2908         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2909         Add missing (but documented) tree nodes to the index.
2910
2911 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2912
2913         PR tree-optimization/14819
2914         * builtins.c (fold_builtin_strchr): New.
2915         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2916         with fold_builtin_strchr().
2917
2918 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2919
2920         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2921         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2922         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2923         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2924         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2925         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2926         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2927         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2928         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2929         formatting.
2930
2931 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2932
2933         * gimplify.c (sort_case_labels): New.  Split out from...
2934         (gimplify_switch_expr): ...here.  Use it.
2935         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2936         the SWITCH_EXPR created here before leaving the function.
2937         * tree.c (sort_case_labels): Add prototype.
2938
2939 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2940
2941         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2942         of BOOLEAN_TYPE.
2943
2944 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2945
2946         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2947         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2948         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2949         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2950         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2951         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2952         comment typos.  Follow spelling conventions.
2953
2954 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2955
2956         * gengtype-yacc.y: Add NESTED_PTR token.
2957         (option): Record `nested_ptr' option.
2958         * gengtype-lex.l: Handle `nested_ptr' keyword.
2959         * gengtype.c (walk_type): Process `nested_ptr' option.
2960         * gengtype.h (struct nested_ptr_data): New.
2961         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2962         * stringpool.c (struct string_pool_data): Make 'entries' point to
2963         ht_identifier instead of tree.
2964         (gt_pch_save_stringpool): Don't adjust pointers.
2965         (gt_pch_restore_stringpool): Call ht_load.
2966
2967 2004-05-29  Jason Merrill  <jason@redhat.com>
2968
2969         * gimplify.c (gimplify_expr): Don't build a statement list
2970         if no gimplification was necessary.
2971
2972 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2973
2974         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2975         and %> as well as %'.
2976         * c-format.c: Use %< and %>.
2977         (gcc_diag_char_table, gcc_cdiag_char_table,
2978         gcc_cxxdiag_char_table): Update.
2979
2980 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2981
2982         * c-typeck.c (common_type): Correct comment.
2983
2984 2004-05-29  Peter Barada  <peter@the-baradas.com>
2985
2986         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2987         * config/m68k/m68k.c (const_method): Likewise.
2988         * config/m68k/m68k.c (const_int_cost): Likewise.
2989         * config/m68k/m68k.c (const_int_cost): Likewise.
2990         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2991
2992 2004-05-29  Peter Barada  <peter@the-baradas.com>
2993
2994         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2995         addressing.
2996         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2997         movsi,movhi,movqi insn patterns.
2998
2999 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
3000
3001         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
3002
3003         PR target/15720
3004         * config/darwin.c (machopic_indirect_call_target): Copy
3005         the SYMBOL_REF_DECL from the original RTX for the new
3006         stub RTX.
3007
3008 2004-05-28  DJ Delorie  <dj@redhat.com>
3009
3010         * stor-layout.c (place_field): Revert erroneous commit.
3011
3012 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
3013
3014         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
3015         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
3016         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
3017         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
3018         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
3019         vec_ste): Remove type checks for integral parameters and literals
3020         from '..._args_eq' macros.
3021
3022 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
3023
3024         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
3025
3026 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
3027
3028         * testsuite/g++.dg/charset/function.cc: New.
3029
3030         * testsuite/gcc.dg/charset/function.c: New.
3031
3032         * c-decl.c (c_make_fname_decl): Free return value from
3033         fname_as_string.
3034
3035         * cp/decl.c (cp_make_fname_decl): Free return value from
3036         fname_as_string.
3037
3038         * c-common.c (fname_as_string): Translate if necessary.
3039
3040 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
3041
3042         * stringpool.c: Add comments to PCH saving/restoring routines.
3043
3044 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
3045
3046         * c-common.c (c_estimate_num_insns_1): Kill.
3047         (c_estimate_num_insns): Kill.
3048         * c-common.h (c_estimate_num_insns): Kill.
3049
3050         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
3051         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
3052         Remove comment about not checking for
3053         _POSIX_PRIORITY_SCHEDULING.
3054         * gthr-posix.c: Likewise.
3055
3056 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
3057             Roger Sayle  <roger@eyesopen.com>
3058
3059         PR rtl-optimization/15649
3060         Add LTGT_EXPR and improve pretty-printing of unordered
3061         comparisons.
3062         * c-common.c (c_common_truthvalue_conversion):
3063         Handle LTGT_EXPR.
3064         * c-typeck.c (build_binary_op): Likewise.
3065         * dojump.c (do_jump): Likewise.
3066         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
3067         * predict.c (tree_predict_by_opcode): Likewise.
3068         * real.c (real_compare): Likewise.
3069         * tree-cfg.c (verify_expr): Likewise.
3070         * tree-inline.c (estimate_num_insns_1): Likewise.
3071         * tree-pretty-print.c (dump_generic_node): Likewise.
3072         Handle ORDERED_EXPR, UNORDERED_EXPR.
3073         (op_symbol): Print unordered comparisons differently
3074         than ordered ones.
3075         * tree.def (LTGT_EXPR): New '<' tree code.
3076         * doc/c-tree.texi (Expressions): Document floating-point
3077         comparison nodes.
3078
3079         Fold comparisons between floating point values.
3080         * fold-const.c (enum comparison_code): New, from
3081         #define'd constants.  Define compcodes for unordered
3082         comparisons and for invalid transformations.
3083         (invert_tree_comparison): Add "honor_nans" parameter.
3084         (fold_truthop): Revamp to work on floating-point types too.
3085         (comparison_to_compcode): Support unordered comparisons.
3086         Use new enum comparison_code.
3087         (compcode_to_comparison): Likewise.
3088         (combine_compcodes): New function.
3089         (invert_truthvalue): Let invert_tree_comparison decide
3090         whether it is valid to fold the comparison.  Fold ORDERED
3091         and UNORDERED even if flag_unsafe_math_optimizations is off,
3092         and the remaining even if flag_unsafe_math_optimizations
3093         is off but we are under -fno-trapping-math.
3094         (fold_relational_const): Integer modes do not honor NaNs.
3095
3096 2004-05-28  Paul Brook  <paul@codesourcery.com>
3097
3098         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3099
3100 2004-05-28  Paul Brook  <paul@codesourcery.com>
3101
3102         * config/arm/arm.c (thumb_force_lr_save): New function.
3103         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3104         thumb_output_function_prologue): Use it.
3105         (thumb_expand_prologue): Set lr_save_eliminated.
3106
3107 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
3108
3109         * config/mips/mips.md (extendsidi2): Tie the source and destination
3110         of the register alternative.  Split it into nothing.
3111
3112 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
3113
3114         * rtl.h (skip_consecutive_labels): Declare.
3115         * emit-rtl.c (skip_consecutive_labels): New function.
3116         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3117         * jump.c (follow_jumps): Say what null return values mean.
3118
3119 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3120
3121         PR target/13250
3122         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3123
3124 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3125
3126         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3127         libgcc-std.ver.
3128         * config/sh/libgcc-std.ver: New file.
3129
3130 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3131
3132         * except.c: Revert change of 2004-05-26.
3133         * config/i386/i386.md: Revert change of 2004-05-27.
3134
3135 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3136
3137         * configure.ac: Remove --enable-tree-browser option.
3138         Define TREEBROWSER when ac_tree_checking is defined.
3139         * configure: Rebuilt.
3140
3141 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
3142
3143         * expr.c (store_constructor): Restore sanity check on
3144         the size of the type before clearing.
3145
3146 2004-05-27  Jan Hubicka  <jh@suse.cz>
3147
3148         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
3149
3150 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
3151
3152         * combine.c (gen_binary): Remove.
3153         (known_cond, simplify_shift_const
3154         find_split_point, combine_simplify_rtx,
3155         simplify_if_then_else, simplify_set,
3156         simplify_logical, expand_field_assignment,
3157         extract_left_shift, force_to_mode,
3158         if_then_else_cond, apply_distributive_law,
3159         simplify_and_const_int, simplify_shift_const,
3160         gen_lowpart_for_combine, simplify_comparison,
3161         reversed_comparison): Replace with
3162         simplify_gen_binary, simplify_gen_relational or
3163         distribute_and_simplify_rtx.
3164         (distribute_and_simplify_rtx): New function.
3165         * simplify-rtx.c (simplify_binary_operation):
3166         Use nonzero_bits to simplify ANDs where we are
3167         turning off bits already known to be off in OP0.
3168
3169 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
3170
3171         PR target/14478
3172         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3173
3174 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
3175
3176         PR middle-end/14084
3177         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3178         to size of decl.
3179
3180 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
3181
3182         PR/14924
3183         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3184
3185 2004-05-26  Roger Sayle  <roger@eyesopen.com>
3186
3187         * tree.h: Fix comment typo.
3188
3189 2004-05-27  Steven Bosscher  <stevenb@suse.de>
3190
3191         * gimplify.c (compare_case_labels): New function.
3192         (gimplify_switch_expr): Sort case labels, and make sure the
3193         last label in the label vector is the default case.
3194         * tree-cfg.c (group_case_labels): New function.
3195         (build_tree_cfg): Cleanup redundant labels and group case labels
3196         before creating edges.
3197         (cleanup_dead_labels): Handle GOTO_EXPRs.
3198         (find_case_label_for_value): Use a binary search to find the
3199         case label for the given value.
3200         * tree-gimple.c: Mention that labels are sorted, and that the
3201         last label must be the default.
3202
3203 2004-05-27  Jan Hubicka  <jh@suse.cz>
3204
3205         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3206
3207 2004-05-27  Jan Hubicka  <jh@suse.cz>
3208
3209         * i386.md (UNSPECV_EH_RETURN): Kill.
3210         (eh_return): Use jump_insn.
3211         (eh_return_si, eh_return_di): Change pattern to jump instruction.
3212
3213 2004-05-26  Jan Hubicka  <jh@suse.cz>
3214
3215         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
3216         not loop optimizing.
3217
3218 2004-05-26  Jan Hubicka  <jh@suse.cz>
3219
3220         * except.c (can_throw_internal):  Notice RESX instructions.
3221
3222 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
3223
3224         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3225         of the two sizes to assemble_integer.
3226
3227 2004-05-25  Paul Brook  <paul@codesourcery.com>
3228
3229         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3230         pointless #ifdef.
3231
3232 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3233
3234         * Makefile.in (top_builddir): Define to .
3235
3236 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
3237
3238         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3239         top-level detects, except when in-tree ld is being cross-built.
3240         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
3241         then AS only if target is host.
3242         * configure: Rebuilt.
3243
3244 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
3245
3246         * global.c (global_alloc): Call make_accurate_live_analysis.
3247         (record_one_conflict): Remove dead code.
3248         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3249         (bb_info): New structure.
3250         (BB_INFO, BB_INFO_BY_INDEX): New macros.
3251         (allocate_bb_info, free_bb_info, mark_reg_change,
3252         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3253         modify_bb_reg_pav, calculate_reg_pav,
3254         make_accurate_live_analysis): New functions.
3255
3256 2004-05-25  Devang Patel  <dpatel@apple.com>
3257
3258         * alias.c (init_alias_analysis): Use ggc_calloc instead of
3259         xrealloc.
3260         (end_alias_analysis): Use ggc_free instead fo free.
3261
3262 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
3263
3264         PR target/15546
3265         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3266         as needed to be outputted.
3267
3268 2004-05-25  Jan Hubicka  <jh@suse.cz>
3269
3270         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
3271
3272 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
3273         Mostafa Hagog  <mustafa@il.ibm.com>
3274
3275         * Makefile.in (modulo-sched.o, ddg.o): New.
3276         * ddg.h, ddg.c, modulo-sched.c: New files.
3277         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3278         internals to "dupicate_insn".
3279         (duplicate_insn): New function.
3280         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3281         declarations.
3282         * common.opt (fmodulo-sched): New flag.
3283         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3284         Remove static and forward declaration.
3285         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3286         functions.
3287         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3288         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3289         declarations.
3290         * flags.h (flag_modulo_sched): New flag.
3291         * opts.c (common_handle_option): Handle modulo-sched flag.
3292         * params.def (max-sms-loop-number, sms-max-ii-factor,
3293         sms-dfa-history, sms-loop-average-count-threshold): New
3294         parameters.
3295         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3296         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3297         parameters.
3298         * passes.c ("sms", "sms-vcg"): New dumps.
3299         (rest_of_handle_sched): Call sms_schedule.
3300         * rtl.h (sms_schedule): New declaration.
3301         * timevar.def (TV_SMS): New.
3302         * toplev.c (flag_modulo_sched): Initialize.
3303         (f_options): Handle -fmodulo-sched option.
3304         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3305         * docs/passes.texi: Document new SMS pass.
3306
3307 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3308
3309         * Makefile.in (OBJS): Add rtlhooks.o.
3310         (rtlanal.o): Depend on function.h.
3311         (cse.o): Depend on rtlhooks-def.h.
3312         (combine.o): Depend on rtlhooks-def.h.
3313         (rtlhooks.o): New rule.
3314         * combine.c: Include rtlhooks-def.h.
3315         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3316         num_sign_bit_copies, cached_num_sign_bit_copies,
3317         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3318         (reg_nonzero_bits_for_combine,
3319         reg_num_sign_bit_copies_for_combine): New functions holding
3320         the remnants of the above.
3321         (combine_rtl_hooks): New.
3322         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3323         * cse.c: Include rtlhooks-def.h.
3324         (cse_rtl_hooks): New.
3325         (cse_main): Set rtl_hooks instead of gen_lowpart.
3326         * emit-rtl.c (gen_lowpart): Remove.
3327         (gen_lowpart_general): Move to rtlhooks.c.
3328         * rtl.h (nonzero_bits, num_sign_bit_copies,
3329         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3330         (gen_lowpart_general): Remove.
3331         (gen_lowpart): Temporarily redefine as a macro.
3332         * rtlanal.c: Include function.h.
3333         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3334         num_sign_bit_copies, cached_num_sign_bit_copies,
3335         num_sign_bit_copies1): New, from combine.c.
3336         * rtlhooks.c: New file.
3337         * rtlhooks-def.h: New file.
3338
3339 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3340
3341         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3342         to support 32-bit -mint8 mode.
3343
3344         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3345         option in the AVR architecture.
3346
3347 2004-05-24  Mike Stump  <mrs@apple.com>
3348
3349         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3350
3351 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3352
3353         * intl.h (open_quote, close_quote): New.
3354         * intl.c (open_quote, close_quote): New.
3355         (gcc_init_libintl): Set them.
3356         * pretty-print.c: Include "intl.h".
3357         (pp_base_format_text): Support 'q' format flag and %` and %'
3358         formats.  Use ' instead of ` in comments.
3359         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3360         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3361         foramt_types_orig): Describe these new formats.
3362         (decode_format_attr, check_function_format,
3363         check_format_info_main): Use these new formats.
3364         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3365         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3366         check these formats to 3.5.
3367
3368 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3369
3370         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3371         (BACKEND): Reflect this.
3372         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3373         (LIBS): Likewise.
3374
3375 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3376
3377         PR tree-optimization/14197
3378         * builtins.c: Include "tree-gimple.h"
3379         (readonly_data_expr): Use get_base_address.  Make sure to call
3380         decl_readonly_section only on trees it can handle.
3381         * tree-gimple.c (get_base_address): Accept STRING_CST and
3382         CONSTRUCTOR expressions.
3383         * Makefile.in: Update dependencies.
3384
3385 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3386
3387         Move libcpp to the toplevel.
3388         * Makefile.in: Remove references to libcpp files,
3389         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3390         and change hashtable.h to that.
3391         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3392         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3393         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3394         * configure: Regenerate.
3395         * config.in: Regenerate.
3396         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3397         * cppcharset.c: Removed.
3398         * cpperror.c: Removed.
3399         * cppexp.c: Removed.
3400         * cppfiles.c: Removed.
3401         * cpphash.c: Removed.
3402         * cpphash.h: Removed.
3403         * cppinit.c: Removed.
3404         * cpplex.c: Removed.
3405         * cpplib.c: Removed.
3406         * cpplib.h: Removed.
3407         * cppmacro.c: Removed.
3408         * cpppch.c: Removed.
3409         * cpptrad.c: Removed.
3410         * cppucnid.h: Removed.
3411         * cppucnid.pl: Removed.
3412         * cppucnid.tab: Removed.
3413         * hashtable.c: Removed.
3414         * hashtable.h: Removed.
3415         * line-map.c: Removed.
3416         * line-map.h: Removed.
3417         * mkdeps.c: Removed.
3418         * mkdeps.h: Removed.
3419         * stringpool.h: Include symtab.h instead of hashtable.h.
3420         * tree.h: Include symtab.h instead of hashtable.h.
3421         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3422
3423 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3424
3425         * gcc.c (struct prefix_list): Add forward declaration.
3426         (do_spec_path): New function, extracted from...
3427         (do_spec_1) <'D'>: ... here.  Drop support for
3428         SPACE_AFTER_L_OPTION.
3429         (do_spec_1) <'I'>: Use do_spec_path.
3430         (process_command): Do not store the 'include' suffix
3431         in include_prefixes.
3432         * system.h: Poison SPACE_AFTER_L_OPTION.
3433
3434 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3435
3436         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3437         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3438
3439 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3440
3441         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3442         Update based on printed manual.  Enable setting of offsets for
3443         FSFPRINT and move it to gcc-common.texi.
3444         * doc/gcc.texi: Update FSF printing details.
3445         * doc/gccint.texi: Remove FSF printing details.
3446
3447 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3448
3449         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3450
3451 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3452
3453         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3454         expand_builtin_strrchr, expand_builtin_strpbrk,
3455         expand_builtin_mempcpy, expand_builtin_memcmp,
3456         expand_builtin_strcmp, expand_builtin_strncmp,
3457         expand_builtin_strcat, std_expand_builtin_va_start,
3458         std_expand_builtin_va_arg, expand_builtin_va_copy,
3459         expand_builtin_signbit, fold_builtin_cabs,
3460         fold_builtin_logarithm, fold_builtin_mempcpy,
3461         fold_builtin_signbit, fold_builtin_isascii,
3462         fold_builtin_toascii, fold_builtin_isdigit,
3463         fold_builtin_1, build_function_call_expr,
3464         simplify_builtin_strchr, simplify_builtin_strrchr,
3465         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3466         simplify_builtin_memcmp, simplify_builtin_strcmp,
3467         simplify_builtin_strncmp, simplify_builtin_strncat,
3468         simplify_builtin_strspn, simplify_builtin_strcspn,
3469         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3470         to build with calls to build2, build3 or omit_one_operand.
3471
3472 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3473
3474         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3475         section when generating EABI code.
3476
3477 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3478
3479         PR 15546
3480         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3481         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3482
3483 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3484
3485         * c-common.c (c_common_truthvalue_conversion): Handle
3486         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3487         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3488         i.e. set the type to truthvalue_type_node and return.
3489
3490 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3491
3492        * tree.h (struct tree_decl): Add possibly_inlined bit.
3493         (DECL_POSSIBLY_INLINED): New accessor macro.
3494         * cgraph.h: Remove declaration of cgraph_inline_hash.
3495         * cgraph.c: Remove definition of cgraph_inline_hash.
3496         (hash_node): Revert to hashing DECL_UID.
3497         (eq_node): Take two pointers to cgraph_node structures.
3498         Compare DECL_UIDs.
3499         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3500         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3501         hash on DECL_UID.
3502         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3503         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3504         (cgraph_node): Allocate a temporary node on the stack, fill in
3505         its DECL field, and pass that to htab_find_slot.
3506         (cgraph_varpool_node): Likewise.
3507         (cgraph_function_possibly_inlined_p): If global info is ready,
3508         return the DECL_POSSIBLY_INLINED bit.
3509         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3510         instead of mucking with cgraph_inline_hash.
3511
3512 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3513
3514         * doc/contrib.texi: Add g77 contributors.
3515
3516 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3517
3518         * calls.c (initialize_argument_information): Forbid sibcalls if a
3519         callee-copied argument is stored in the current function's frame.
3520
3521 2004-05-22  Eric Christopher  <echristo@redhat.com>
3522
3523         * fix-header.c (read_scan_file): Update for add_path change.
3524
3525 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3526
3527         * c.opt (Wmissing-include-dirs): New.
3528         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3529         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3530         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3531         * c-incpath.h (add_path): Add fourth (bool) argument.
3532         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3533         (add_standard_paths): Likewise.
3534         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3535         is used and the directory was user-supplied via -I.
3536         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3537         using add_cpp_dir_path ().
3538         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3539         (struct cpp_dir): Add user_supplied_p.
3540         * doc/invoke.texi (Warning Options): Document new option.
3541
3542 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3543
3544         * fold-const.c (fold_read_from_constant_string): Convert result to
3545         requested type.
3546
3547 2004-05-21  Richard Henderson  <rth@redhat.com>
3548
3549         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3550         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3551         Don't mark VA_ARG_EXPRs volatile here.
3552         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3553
3554 2004-05-21  Richard Henderson  <rth@redhat.com>
3555
3556         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3557         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3558
3559 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3560
3561         * fold-const.c (fold, fold_relational_hi_lo,
3562         nondestructive_fold_binary_to_constant,
3563         fold_read_from_constant_string): Use fold_convert instead of convert.
3564         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3565         simplify_builtin_strchr, simplify_builtin_strrchr,
3566         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3567
3568 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3569
3570         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3571         is NULL.
3572
3573 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3574
3575         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3576         override sparc.h definition.
3577
3578 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3579
3580         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3581         get_unwidened, get_narrower): Replace build with build2.
3582         * fold-const.c (negate_expr, associate_trees, size_binop,
3583         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3584         pedantic_omit_one_operand, distribute_bit_expr,
3585         make_bit_field_ref, optimize_bit_field_compare,
3586         decode_field_reference, range_binop, make_range,
3587         build_range_check, fold_range_test, fold_truthop,
3588         optimize_minmax_comparison, extract_muldiv_1,
3589         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3590         fold_inf_compare, fold_single_bit_test, fold,
3591         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3592         Likewise replace build with either build2 or build3.
3593
3594 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3595
3596         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3597         * calls.c (prepare_call_address): Don't test
3598         NO_RECURSIVE_FUNCTION_CSE.
3599         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3600         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3601         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3602         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3603         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3604         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3605         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3606         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3607         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3608         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3609         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3610         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3611         Likewise.
3612         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3613         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3614         * doc/tm.texi (Costs): Remove documentation for
3615         NO_RECURSIVE_FUNCTION_CSE.
3616
3617 2004-05-20  Paul Brook  <paul@codesourcery.com>
3618
3619         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3620         * unwind-dw2.c (extract_cie_info): Ditto.
3621         (_Unwind_FrameState): Change retaddr_column to word type.
3622
3623 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3624
3625         PR middle-end/3074
3626         * fold-const.c (strip_compound_expr): Delete function.
3627         (count_cond): Delete function.
3628         (fold_binary_op_with_conditional_arg): Only perform transformations
3629         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3630         when a is constant.  This greatly simplifies this routine.
3631
3632         * tree.c (saved_expr_p): Delete function.
3633         * tree.h (saved_expr_p): Delete function prototype.
3634
3635 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3636
3637         * common.opt (ftree-loop-optimize): Remove.
3638
3639 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3640
3641         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3642         (NM_FOR_TARGET): Use := and $(shell).
3643         (mainversion): Remove unused variable.
3644
3645 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3646
3647         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3648         sequence containing the insn to be deleted, always reemit it.
3649
3650 2004-05-20  Richard Henderson  <rth@redhat.com>
3651
3652         PR 15454
3653         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3654         * function.c (expand_function_start): Expand static_chain_decl by hand.
3655         * gimplify.c (create_tmp_var_name): Export.
3656         * tree-gimple.h (create_tmp_var_name): Declare.
3657
3658 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3659
3660         * rs6000.c (print_operand) <case 'z'>: Call
3661         mark_decl_referenced before assemble_name.
3662
3663 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3664
3665         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3666         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3667         (cgraph_varpool_node): Hash on the pointer to the decl, not
3668         the DECL_UID.  Fixes 64-bit bootstrap failure.
3669
3670 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3671
3672         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3673         we don't earlyclobber operands used in the second insn.
3674
3675 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3676
3677         * tree-mudflap.c: Formatting fixes.
3678
3679 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3680
3681         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3682         * gengtype.c (open_base_files): Include reload.h in ifiles.
3683         * reload.h (reg_equiv_memory_loc_varray): Declare.
3684         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3685         (init_reload): Initialize it.
3686         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3687         reg_equiv_memory_loc_varray to size 0.
3688         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3689         growing reg_equiv_memory_loc_varray to the desired size.
3690         * passes.c (rest_of_handle_old_regalloc): Likewise.
3691         * reload.c: Amend comment on calling init_reload.
3692
3693 2004-05-20  Nick Clifton  <nickc@redhat.com>
3694
3695         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3696         with 'TRAMP' in the body of the macro definition.
3697
3698 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3699
3700         PR target/15383
3701         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3702         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3703         cmptf_libfunc isn't set.
3704         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3705         conventions.
3706         (ia64_sysv4_init_libfuncs): New.
3707
3708         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3709         ia64_sysv4_init_libfuncs.
3710
3711 2004-05-20  Falk Hueffner  <falk@debian.org>
3712
3713         PR other/15526
3714         * libgcc2.c (__mulvsi3): Fix overflow test.
3715
3716 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3717
3718         PR c/14171
3719         * reg-stack.c (nan): Rename to ...
3720         (not_a_num): Here.
3721         (reg_to_stack): Rename nan to not_a_num.
3722         (subst_stack_regs_pat): Likewise.
3723         (convert_regs_entry): Likewise.
3724         (convert_regs_1): Likewise.
3725
3726         * tree-cfg.c (find_case_label_for_value): Replace call to
3727         simple_cst_equal with tree_int_cst_equal.
3728
3729 2004-05-19  Jeff Law <law@redhat.com>
3730
3731         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3732         If the operand is for a use, then strip away the SSA_NAME, do not
3733         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3734         (mark_def_sites): Appropriately pass additional argument to
3735         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3736         then set the VDEF_RESULT to the VDEF_OP.
3737         (set_def_block): Strip away any SSA_NAME to get to the real
3738         underlying variable.
3739
3740         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3741         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3742         BB directly.
3743
3744 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3745
3746         PR c++/15463
3747         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3748         result of inverse.
3749
3750         PR rtl-optimization/15274
3751         * loop-iv.c (determine_max_iter, shorten_into_mode,
3752         iv_number_of_iterations): Handle constants correctly.
3753         * rtl.h (get_mode_bounds): Declaration changed.
3754         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3755         the target mode.
3756
3757         PR rtl-optimization/14692
3758         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3759         (unswitch_single_loop): Work correctly when may_unswitch_on
3760         returns a folded constant.
3761
3762         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3763         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3764         comparisons with mode bounds.
3765
3766         * function.c (struct temp_slot): Add new field prev.
3767         (free_after_compilation, init_temp_slots): Free new fields.
3768         (cut_slot_from_list, insert_slot_to_list,
3769         temp_slots_at_level, max_slot_level, move_slot_to_level,
3770         make_slot_available): New functions.
3771         (assign_stack_temp_for_type, combine_temp_slots,
3772         find_temp_slot_from_address, preserve_temp_slots,
3773         preserve_rtl_expr_result, free_temp_slots,
3774         free_temps_for_rtl_expr, pop_temp_slots): Work with
3775         the new structure of lists.
3776         (mark_all_temps_used): Removed.
3777         * function.h (struct function): Field x_temp_slots
3778         replaced by x_used_temp_slots and x_avail_temp_slots.
3779         (temp_slots): Replaced by ...
3780         (used_temp_slots, avail_temp_slots): New.
3781         * tree.h (mark_all_temps_used): Declaration removed.
3782
3783         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3784         simplify_using_assignment): Take the expression out of
3785         the expr_list wrapper.
3786
3787         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3788         infinite loops.
3789
3790 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3791
3792         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3793         costs should be based on code size when optimizing for size.
3794
3795 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3796
3797         * fold-const.c: Remove non-printable character 160.
3798
3799 2004-05-19  Nick Clifton  <nickc@redhat.com>
3800
3801         * doc/invoke.texi (ARM Options): Fix typo.
3802         Remove descrption of -mshort-load-bytes and
3803         -mno-short-load-bytes.
3804
3805         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3806         missing parenthesis.
3807         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3808         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3809
3810 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3811
3812         * expr.c (store_constructor): Build loop start and end by hand
3813         instead of via loop functions from stmt.c.
3814         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3815         Remove the code to expand them.
3816
3817         * stmt.c (loop_stack): Remove this and everything related.
3818         (struct nesting, enum nesting_desc): Update.
3819         (expand_fixup): Likewise.
3820         (expand_loop_start, expand_start_loop_continue_elsewhere,
3821         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3822         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3823         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3824         expand_exit_something): Remove.
3825         * tree.h: Remove prototypes.
3826
3827 2004-05-18  Mike Stump  <mrs@apple.com>
3828             Devang Patel  <dpatel@apple.com>
3829
3830         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3831         if this label is for eh.
3832         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3833         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3834         * dwarf2out.c (output_call_frame_info): Likewise.
3835         * output.h (default_emit_unwind_label): Likewise.
3836         * target.h (unwind_label): Likewise.
3837         * varasm.c (default_emit_unwind_label): Likewise.
3838
3839         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3840         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3841         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3842         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3843         DEBUG_RANGES_SECTION): Define.
3844
3845 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3846
3847         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3848         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3849         (cgraph_varpool_node):
3850         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3851         (cgraph_function_possibly_inlined_p): Use the decl itself for
3852         the key, not DECL_ASSEMBLER_NAME.
3853         (change_decl_assembler_name): No need to muck with the hash tables.
3854         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3855         Delete.
3856         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3857         for the key, not DECL_ASSEMBLER_NAME.
3858         * cgraph.h: Remove prototypes of deleted functions.
3859         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3860         (mark_decl_referenced): New function.
3861         * tree.h: Prototype mark_decl_referenced.
3862         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3863         mark_decl_referenced before assemble_name.
3864         * c-decl.c (finish_decl): Use mark_decl_referenced.
3865
3866 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3867             Jeff Law <law@redhat.com>
3868
3869         * tree-ssa-phiopt.c (abs_replacement): New function.
3870         (empty_block_p): New function extracted from...
3871         (candidate_bb_for_phi_optimization): Break out empty block test.
3872         (conditional_replacement): Use empty_block_p.
3873         (value_replacement): Similarly.
3874
3875         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3876         * tree-ssa-phiopt.c: Include flags.h.
3877         (conditional_replacement): Remove argument names from prototype.
3878         Minor formatting and comment fixes.
3879         (tree_ssa_phiopt): If conditional_replacement returns false, then
3880         call value_replacement.
3881         (value_replacement): New function.
3882
3883 2004-05-18  Jeff Law  <law@redhat.com>
3884
3885         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3886         from conditional_replacement.
3887         (candidate_bb_for_phi_optimization): Similarly.
3888         (conditional_replacement): Use replace_phi_with_stmt and
3889         candidate_bb_for_phi_optimization.
3890
3891         * tree-ssa-phiopt.c: Fix various formatting issues.
3892
3893 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3894
3895         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3896         s390_expand_cmpmem): Do not use expand_start_loop and
3897         expand_end_loop, instead build the loop manually.
3898
3899 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3900
3901         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3902         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3903
3904 2004-05-17  Jeff Law  <law@redhat.com>
3905
3906         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3907         * flags.h (flag_delete_null_pointer_checks): Here.
3908         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3909         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3910         (add_phi_arg, remove_phi_arg_num): Similarly.
3911         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3912         property into PHI nodes.
3913         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3914         (record_equivalences_from_phis): If all PHI arguments are known to be
3915         nonzero, then the result must be nonzero as well.
3916         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3917         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3918         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3919         as appropriate.
3920         * tree.h (PHI_ARG_NONZERO): Define.
3921         (phi_arg_d): Add nonzero flag.
3922
3923 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3924
3925         * f: Entire directory removed
3926
3927         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3928         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3929         (g77_integer_type_node, g77_uinteger_type_node)
3930         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3931         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3932         the above set of variables.
3933
3934         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3935         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3936         to g77 manual.
3937
3938 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3939
3940         PR tree-optimization/15438
3941         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3942         attributed functions as pure or const.
3943
3944 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3945
3946         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3947         from source code with errors.
3948
3949 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3950
3951         Enable tree browser for all front ends.
3952         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3953         (BACKEND): ...to here.
3954
3955 2004-05-17  Jan Hubicka  <jh@suse.cz>
3956
3957         * i386.c (construct_container): Do not produce BLKmode registers.
3958         (classify_argument): Properly compute alignment of complex types.
3959
3960 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3961
3962         PR target/15084
3963         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3964         and renamed to movdi_insv_1_rex64.
3965         (insv): Support SImode for 32bit and DImode for 64bit.
3966
3967 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3968
3969         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3970         (TARGET_SWITCHES): Remove debugg.
3971         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3972         TARGET_64BIT.
3973         (subdi3): Replace the define_expand with a define_insn, the latter
3974         renamed from subdi3_internal_3.
3975         (negdi2): Likewise negdi2_internal_2.
3976         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3977         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3978         and associated define_splits.
3979         (adddi3_internal): Renamed from adddi3_internal_3.
3980         (ashldi3_internal): Likewise ashldi3_internal4.
3981         (ashrdi3_internal): Likewise ashrdi3_internal4.
3982     &