OSDN Git Service

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