OSDN Git Service

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