OSDN Git Service

* stmt.c (warn_if_unused_value): Add locus argument.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-20  Richard Henderson  <rth@redhat.com>
2
3         * stmt.c (warn_if_unused_value): Add locus argument.
4         * tree.h (warn_if_unused_value): Update decl.
5         * c-typeck.c (internal_build_compound_expr): Update call.
6         * c-gimplify.c (gimplify_expr_stmt): Likewise.
7
8 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
9
10         PR middle-end/16089
11         * builtins.c (entry_of_function): Move to ...
12         * cfgrtl.c (entry_of_function): Here and make non-static.
13         * integrate.c (emit_initial_value_sets): Use entry_of_function.
14         * rtl.h (entry_of_function): Prototype.
15
16 2004-06-20  Roger Sayle  <roger@eyesopen.com>
17
18         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
19         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
20         TARGET_DECOMPOSE_LEA.
21
22 2004-06-20  Richard Henderson  <rth@redhat.com>
23
24         * c-common.h (add_decl_stmt): Move to cp-tree.h.
25         * c-decl.c (finish_decl): Don't use add_decl_stmt.
26         * c-parse.in: Likewise.
27         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
28         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
29         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
30
31 2004-06-20  Richard Henderson  <rth@redhat.com>
32
33         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
34         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
35         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
36         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
37         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
38         * c-pretty-print.c (pp_c_statement): Similarly.
39         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
40         gimplify_if_stmt): Move to cp-gimplify.c.
41         (c_genericize, c_gimplify_expr): Don't call them.
42         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
43         * c-typeck.c (push_cleanup): New.
44         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
45         c_finish_if_stmt): Use COND_EXPR.
46         * tree.h (CLEANUP_EH_ONLY): Update documentation.
47
48 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
49
50         * c-common.h (has_c_linkage): New interface.
51         * c-cppbuiltin.c: Include target.h.
52         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
53         __PRAGMA_EXTERN_PREFIX when appropriate.
54         * c-pragma.c: Include target.h.
55         Document clarified semantics of symbol-renaming #pragmas.
56         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
57         (maybe_apply_renaming_pragma): Rewrite according to clarified
58         semantics.  Always recognize, but do not necessarily execute.
59         (init_pragma): Unconditionally register symbol-renaming pragmas.
60         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
61         and HANDLE_PRAGMA_EXTERN_PREFIX.
62         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
63         and handle_pragma_extern_prefix flags.
64         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
65         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
66         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
67         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
68         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
69         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
70         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
71         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
72         not HANDLE_PRAGMA_EXTERN_PREFIX.
73         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
74         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
75         into one section "Symbol-Renaming Pragmas"; clarify; document
76         adjusted semantics.
77
78         * builtins.c (expand_builtin): Do not issue error for a builtin
79         with no special case code and no DECL_ASSEMBLER_NAME; just do the
80         library call.
81         * c-decl.c (builtin_function): Don't call make_decl_rtl.
82         * c-objc-common.c (has_c_linkage): Stub implementation.
83         * cgraphunit.c (cgraph_expand_function)
84         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
85
86 2004-06-19  Roger Sayle  <roger@eyesopen.com>
87
88         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
89         instead of both an ARGLIST and a result TYPE.  Handle these C99
90         comparison functions as "polymorphic" builtins.  Also handle
91         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
92         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
93         Move handling of BUILT_IN_ISUNORDERED from here to there.
94
95 2004-06-19  Richard Henderson  <rth@redhat.com>
96
97         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
98         * c-gimplify.c: Remove unnecessary prototypes.
99         (c_gimplify_stmt): Merge into ...
100         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
101         * c-semantics.c (prep_stmt): Remove.
102         * gimplify.c (annotate_one_with_locus): Break out from ...
103         (annotate_all_with_locus): ... here.
104         (gimplify_expr): Add locus to expressions even if pre/post queues
105         are not present.
106
107 2004-06-19  Richard Henderson  <rth@redhat.com>
108
109         PR target/15941
110         * function.c (assign_parms): If not padding upward or intentionally
111         forcing upward padding, take offset_rtx into account when determining
112         the alignment for stack_parm.
113
114 2004-06-19  Richard Henderson  <rth@redhat.com>
115
116         PR target/15550
117         * ifcvt.c (noce_try_move): Recognize all generated instructions.
118
119 2004-06-19  Jan Hubicka  <jh@suse.cz>
120
121         * function.c (free_after_compilation): Do not free computed_goto_common*.
122         * function.h (struct function): Kill computed_goto_common*.
123         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
124         * tree-cfg.c (disband_implicit_edges): Do not forward across the
125         commonized computed goto.
126
127 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
128
129         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
130         in binutils.
131
132 2004-06-19  Andrew Pinski  <apinski@apple.com>
133
134         PR c++/15721
135         * toplev.c (wrapup_global_declarations): Do not check
136         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
137         cgraph_varpool_node's needed field.
138
139 2004-06-19  Jan Hubicka  <jh@suse.cz>
140             Steven Bosscher  <stevenb@suse.de>
141
142         CFG transparent RTL expansion:
143         * Makefile.in (cfgexpand.o): New object file.
144         (builtins.o): Add dependency on basic-block.h
145         * builtins.c: Include basic-block.h
146         (entry_of_function): New function.
147         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
148         * cfgexpand.c: New file.
149         * expr.c (execute_expand, pass_expand): Kill.
150         * pass.c (rest_of_compilation): Do not build CFG unless called from
151         coverage code.
152         * tree-cfg.c (delete_tree_cfg): Rename to..
153         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
154         * tree-flow.h (delete_tree_cfg_annotations): Declare.
155         (dleete_tree_cfg): Kill.
156         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
157         (execute_del_cfg): Rename to...
158         (execute_free_datastructures): This one...
159         (pass_del_cfg): Rename to...
160         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
161         (init_tree_optimization_passes): Make cfg build and profiling to happen
162         unconditionally.
163
164 2004-06-19  Steven Bosscher  <stevenb@suse.de>
165
166         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
167         inserting the cache variables.
168
169         * tree-mudflap.c: Include headers to make basic_block available.
170         Move functions around such that related functions are near each
171         other.  Add prototypes for all static functions.  Add comments
172         briefly explaining what IR the mudflap1 and mudflap2 work on and
173         what they do.
174         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
175         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
176         (pass_mudflap_1, pass_mudflap_2): Update.
177         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
178         function tree.
179         (mf_build_check_statement_for): Make it work on the CFG.
180         (mf_xform_derefs_1): Likewise.  Cleanup code style.
181         (mf_xform_derefs): Likewise.
182
183 2004-06-19  Jan Hubicka  <jh@suse.cz>
184
185         * tree-cfg.c (label_to_block): Invent the label destination for
186         undefined labels.
187         (cleanup_dead_labels): Update table in the case label_to_block added
188         new label.
189
190 2004-06-18  Richard Henderson  <rth@redhat.com>
191
192         PR c++/16036
193         * gimple-low.c (lower_function_body): Generate return statement for
194         fall off the end of the function here ...
195         * tree-cfg.c (make_edges): ... instead of here.
196         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
197
198 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
199
200         * tree-ssa.c (raise_value): Removed.
201         (get_eq_name, check_phi_redundancy): New functions.
202         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
203
204 2004-06-18  Roger Sayle  <roger@eyesopen.com>
205
206         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
207         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
208         constant folding for unordered comparison tree nodes.  If both
209         operands are real constants, call fold_relational_const.  If either
210         operand is a NaN, evaluate the other for side-effects and return a
211         constant.  Optimize (double)float1 CMP (double)float2 into the
212         equivalent float1 CMP float2.
213         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
214         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
215         LTGT_EXPR>: Call fold_relational_const for constant operands.
216         (fold_relational_const): Add support for unordered comparison tree
217         nodes.  Don't constant fold "ordered" floating point comparisons
218         against NaN if when flag_trapping_math is set.
219
220 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
221
222         * fold-const.c (build_range_check): If !in_p and recursive call
223         fails, exit immediately.  If high - low overflows and etype is
224         a signed type, retry with unsigned etype.
225         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
226         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
227
228 2004-06-18  Richard Henderson  <rth@redhat.com>
229
230         * c-gimplify.c (gimplify_condition): Remove.
231         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
232         call it.
233
234 2004-06-18  Richard Henderson  <rth@redhat.com>
235
236         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
237         switch estimates.
238
239 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
240
241         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
242         (NORMAL_TEXT_SECTION_NAME): Define.
243         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
244         (SECTION_FORMAT_STRING): Define.
245
246 2004-06-18  Steven Bosscher  <stevenb@suse.de>
247
248         * config/xtensa/xtensa.c
249         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
250         * xtensa.md: Replace the old pipeline description with a DFA model.
251
252 2004-06-18  Steven Bosscher  <stevenb@suse.de>
253             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
254
255         * config/s390/s390.md: Remove the generic pipeline description.
256         * config/s390/2064.md: Make all insn reservations apply to
257         the z900, g5 and g6.
258         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
259         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
260         Define to hook_int_void_1.
261         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
262         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
263
264 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
265                         Diego Novillo  <dnovillo@redhat.com>
266
267         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
268         (create_stmt_ann): Ditto.
269         (create_tree_ann): New function.
270         (create_cst_ann): Remove.
271         (create_expr_ann): Ditto.
272
273         * tree-flow-inline.h (cst_ann): Remove.
274         (get_cst_ann): Ditto.
275         (get_expr_ann): Ditto.
276         (expr_ann): Ditto.
277         (get_tree_ann): New function.
278         (tree_ann): Ditto.
279         (ann_type): tree_ann -> tree_ann_t.
280         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
281         (struct cst_ann_d): Removed.
282         (struct expr_ann_d): Ditto.
283         (union tree_ann_d): Removed cst and expr.
284         (tree_ann): Renamed to tree_ann_t.
285         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
286         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
287         annotation.
288         (set_value_handle): Ditto.
289         (phi_translate): Ditto.
290         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
291
292 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
293
294         * config/sh/t-linux64: New file.
295         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
296
297 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
298
299         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
300         (unshare_all_rtl_again): Call unshare_all_rtl_1.
301         (unshare_all_rtl): New.
302         * function.c (instantiate_virtual_regs): Remove parameters.
303         * function.h (instantiate_virtual_regs): Add prototype.
304         * rtl.h (unshare_all_rtl): Add prototype.
305         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
306         prototype.
307         * passes.c: Remove assertions on the parameters to
308         rest_of_handle_* functions.  Remove the parameters to
309         the functions, replacing decl with current_function_decl
310         and insns with get_insns ().
311
312 2004-06-17  Roger Sayle  <roger@eyesopen.com>
313
314         * fold-const.c (constant_boolean_node): Handle boolean_type_node
315         directly, return either boolean_true_node or boolean_false_node.
316
317 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
318
319         * opts.sh: Delete.  Break out generated code to next four files.
320         * opt-gather.awk: New file.
321         * optc-gen.awk: New file.
322         * opth-gen.awk: New file.
323         * opt-functions.awk: New common file.
324         * Makefile.in: Update for above.
325         * configure.ac: Update comment.
326         * configure: Regenerate.
327
328 2004-06-17  Richard Henderson  <rth@redhat.com>
329
330         * c-common.c (flag_objc_sjlj_exceptions): New.
331         * c-common.h (flag_objc_sjlj_exceptions): Declare.
332         * c-opts.c (c_common_handle_option): Set it.
333         (c_common_post_options): Handle interation of different
334         objective-c exception and runtime switches.
335         * c-decl.c (c_eh_initialized_p): New.
336         (finish_decl): Use it instead of local eh_initialized_p.
337         * c-parse.in (nested_function, notype_nested_function): Record
338         the result of compstmt.
339         (compstmt_or_error): Likewise.
340         (compstmt): Don't add_stmt the result.
341         (stmt): Don't return anything.  Rewrite objc try and sync rules.
342         (objc_try_stmt, objc_catch_list): Remove.
343         (objc_catch_block, objc_finally_block): Remove.
344         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
345         (objc_try_catch_clause, objc_finally_clause): New.
346         (objc_try_catch_stmt): Rewrite.
347         * c-tree.h (c_eh_initialized_p): Declare.
348         * c-opt (fobjc-sjlj-exceptions): New.
349         * except.c (output_function_exception_table): Don't call cgraph
350         on non-decls.
351         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
352         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
353         catch_count_stack, exc_binding_stack, if_nesting_count,
354         blk_nesting_count, objc_enter_block, objc_exit_block,
355         objc_declare_variable, val_stack_push, val_stack_pop,
356         objc_build_try_enter_fragment, objc_build_extract_expr,
357         objc_build_try_exit_fragment, objc_build_extract_fragment,
358         objc_build_try_prologue, objc_build_try_epilogue,
359         objc_build_catch_stmt, objc_build_catch_epilogue,
360         objc_build_finally_prologue, objc_build_finally_epilogue,
361         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
362         objc_build_synchronized_epilogue): Remove.
363         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
364         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
365         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
366         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
367         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
368         objc_begin_catch_clause, objc_finish_catch_clause,
369         objc_build_finally_clause, objc_finish_try_stmt,
370         objc_build_synchronized): New.
371         (objc_is_object_id, objc_is_class_id): New.
372         (objc_comptypes): Use them.
373         (build_next_objc_exception_stuff): Break NeXT sjlj out from
374         build_objc_exception_stuff.
375         (synth_module_prologue): Update to match.
376         (objc_build_throw_stmt): Use cur_try_context to decide if
377         we're in a @catch.
378         * objc/objc-act.h: Update prototypes.
379         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
380
381 2004-06-17  Andrew Pinski <apinski@apple.com>
382
383         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
384         Use TYPE_FIELDS instead of TYPE_VALUES.
385
386 2004-06-17  Jason Merrill  <jason@redhat.com>
387
388         PR c++/16015
389         * gimplify.c (gimplify_target_expr): Handle void initializer.
390         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
391         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
392         and AGGR_INIT_EXPR.
393
394 2004-06-17  Roger Sayle  <roger@eyesopen.com>
395
396         * fold-const.c (fold_relational_const): Use constant_boolean_node.
397
398 2004-06-17  Jan Hubicka  <jh@suse.cz>
399
400         PR target/15433
401         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
402         operand numbering in the output template.
403         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
404
405 2004-06-17  Jan Hubicka  <jh@suse.cz>
406
407         * except.c (can_throw_internal): Recognize RESX expresisons.
408
409 2004-06-17  Jan Hubicka  <jh@suse.cz>
410
411         * cfgbuild.c (make_edges): Do not use label_value_list.
412         (find_basic_blocks_1): Do not collect label_value_list.
413         (find_sub_basic_blocks): Update call of make_edges.
414
415 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
416
417         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
418         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
419         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
420         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
421         (get_v_may_def_result_ptr):  Return a def_operand_p.
422         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
423         (get_v_must_def_op_ptr):  Return a def_operand_p.
424         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
425         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
426         (phi_element_for_edge):  Remove.
427         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
428         (propagate_tree_value):  Add new prototype.
429         (phi_element_for_edge):  Remove prototype.
430         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
431         (prepare_operand_for_rename):  Split into two functions.
432         (prepare_use_operand_for_rename):  Prepare use operands.
433         (prepare_def_operand_for_rename):  Prepare def operands.
434         (rewrite_stmt):  Use new operand types.
435         (rewrite_operand):  Use new operand types, change parameter type.
436         * tree-outof-ssa.c (replace_variable):  Split into two functions.
437         (replace_use_variable):  Rewrite uses.
438         (replace_def_variable):  Rewrite defs.
439         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
440         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
441         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
442         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
443         (ccp_fold, replace_uses_in):  Use new operand types.
444         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
445         and no longer set the value, change parameter type.
446         (replace_exp_1):  Use new operand types.
447         (propagate_value):  Change parameter type, use new operand types.
448         (propagate_tree_value):  Propagate_value without SSA operands.
449         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
450         (cprop_into_successor_phis):  Use new operand types.
451         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
452         (eliminate_redundant_computations):  Use new operand types.
453         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
454         (fix_stmt_v_may_defs):  Use new operand_types.
455         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
456         (build_tree_conflict_graph):  Use new operand_types.
457         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
458         * tree-ssa-operands.c (struct freelist_d):  Remove.
459         (check_optype_freelist, add_optype_freelist):  Remove.
460         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
461         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
462         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
463         Call ggc_free instead of add_optype_freelist.
464         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
465         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
466         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
467         (struct use_optype_d):  Change underlying type.
468         (def_operand_p, use_operand_p):  New types for pointers to operands.
469         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
470         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
471         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
472         pointer types.
473         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
474         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
475         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
476         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
477         PHI result as an operand.
478         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
479         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
480         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
481         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
482         PHI_ARG_DEF_FROM_EDGE.
483         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
484         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
485
486 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
487
488         PR tree-optimization/15991
489         * tree-cfg.c (tree_block_label): Export.
490         * tree-flow-inline.h (bsi_after_labels): New function.
491         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
492         * tree-ssa.c (propagate_into_addr): New function.
493         (replace_immediate_uses): Handle propagation of pointer constants.
494         (raise_value): Do not restrict propagation of pointer constants.
495         * tree-ssanames.c (duplicate_ssa_name): New function.
496         * tree.h (duplicate_ssa_name): Declare.
497
498 2004-06-17  David Ayers  <d.ayers@inode.at>
499
500         * c-parse.in: Unify Objective-C token names.
501
502 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
503
504         Bug 14610
505         * Makefile.in (min-insn-modes.o): Correct dependencies.
506         * real.c (encode_ieee_extended, decode_ieee_extended): Always
507         produce/consume 12-byte little-endian Intel format.
508         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
509         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
510         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
511         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
512         New functions which convert between 12-byte little-endian Intel
513         format and the desired format.
514         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
515         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
516         Update.
517
518 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
519
520         * expmed.c (expand_mult_const): In sanity check, compare only
521         the bits of val and val_so_far that are significant in the
522         result mode.
523
524 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
525
526         * tree-ssa-pre.c:  Update comments.
527         (val_expr_pair_eq): Factor code from here.
528         (expr_pred_trans_eq): and here.
529         (expressions_equal_p): To here.
530         (print_value_set): Print value for expression.
531         (phi_trans_lookup): Rename some variables.
532         (lookup): Ditto.
533         (value_exists_in_set_bitmap): Ditto.
534         (value_remove_from_set_bitmap): Ditto.
535         (value_insert_into_set_bitmap): Ditto.
536
537 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
538
539         * config/s390/s390-modes.def (CCL3mode): New machine mode.
540         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
541         (s390_alc_comparison, s390_slb_comparison): Likewise.
542         (s390_branch_condition_mask): Likewise.
543         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
544         ("*subsi3_cc2", "*subsi3_cconly2"): New.
545
546         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
547         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
548         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
549         Handle SIGN_EXTEND and ZERO_EXTEND.
550
551         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
552         * config/s390/s390.c (s390_expand_addcc): New function.
553         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
554         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
555         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
556
557 2004-06-17  Ben Elliston  <bje@au.ibm.com>
558
559         * tree-alias-common.c: Add whitespace.
560         * tree-inline.c: Correct comment about this file's purpose.
561         * tree-optimize.c: Likewise.
562         * tree-tailcall.c: Likewise.
563
564         * tree-alias-ander.h: Add standard top-of-file comment.
565         * tree-alias-common.h: Likewise.
566         * tree-alias-type.h: Likewise.
567
568 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
569
570         * tree-ssa-pre.c (compute_avail): Value number uses as well.
571         Strip useless type conversions.
572         Casts have to be treated slightly different than normal unaries.
573
574 2004-06-16  Richard Henderson  <rth@redhat.com>
575
576         * c-common.def (COMPOUND_STMT): Remove.
577         * c-common.c (finish_fname_decls): Don't look through it.
578         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
579         * c-common.h (COMPOUND_BODY): Remove.
580         (c_common_stmt_codes): Remove COMPOUND_STMT.
581         * c-dump.c (c_dump_tree): Likewise.
582         * c-gimplify.c (c_gimplify_stmt): Likewise.
583         * c-pretty-print.c (pp_c_statement): Likewise.
584         * tree.h (DECL_SAVED_TREE): Update commentary.
585         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
586         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
587         (GOTO_EXPR): Rename from GOTO_STMT.
588         (GOTO_FAKE_P): Remove.
589         (COMPOUND_STMT): Remove.
590         (HANDLER): Update wrt COMPOUND_STMT.
591         (STMT_EXPR): Likewise.
592         (LABEL_EXPR): Rename from LABEL_STMT.
593         (SCOPE_STMT): Remove.
594         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
595         through COMPOUND_STMT.
596
597 2004-06-16  Richard Henderson  <rth@redhat.com>
598
599         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
600         c_finish_while_stmt_cond): Remove decls.
601         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
602         * c-typeck.c (c_begin_if_stmt): Return void.
603         (c_begin_else): Tidy.  Save stmt_count.
604         * c-tree.h (c_begin_if_stmt): Update decl.
605
606         * objc/objc-act.c (objc_build_try_enter_fragment,
607         objc_build_extract_fragment, objc_build_try_epilogue,
608         objc_build_catch_stmt, objc_build_catch_epilogue,
609         objc_build_finally_prologue, objc_build_finally_epilogue): Update
610         for if builder function changes.
611
612 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
613
614         * config/s390/s390.c (struct machine_function):  New member
615         last_restore_gpr.
616         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
617         Do not modify machine->save_return_addr_p or regs_ever_live.
618         Fill in machine->last_restore_gpr.
619         (s390_optimize_prolog): Use s390_frame_info to compute registers
620         to save/restore, remove duplicated code.
621         (s390_arg_frame_offset): Use s390_frame_info to compute frame
622         size, remove duplicated code.
623         (s390_emit_prologue): Adapt s390_frame_info call.  Update
624         machine->save_return_addr_p and regs_ever_live.
625         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
626         machine->last_save_gpr.
627
628 2004-06-16  Richard Henderson  <rth@redhat.com>
629
630         * c-parse.in (if_stmt_locus): Remove.
631         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
632         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
633         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
634         empty_locus.  Add stmt_count, saw_else.
635         (c_begin_if_stmt): Push if_stack here.
636         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
637         (c_finish_then, c_finish_else): Record empty_locus.
638         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
639         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
640         if or else body.
641         * c-tree.h: Update prototypes.
642
643 2004-06-16  Steven Bosscher  <stevenb@suse.de>
644
645         * tree.h (PHI_CHAIN): New.
646         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
647         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
648         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
649         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
650         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
651         when traversing a list of PHI_NODEs.
652
653 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
654
655         PR target/13292
656         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
657         on -msoft-float.
658         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
659         68040 and soft-float.
660         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
661         in the TARGET_68040_ONLY case.
662
663 2004-06-16 Peter Barada  <peter@the-baradas.com>
664
665         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
666         (movsi_cf): Make named, don't match TARGET_CFV4.
667         (pushexthisi_const): Use mov3q if possible.
668         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
669         to special case mvz.w for ColdFire V4.
670         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
671         to special case mvz.b for ColdFire V4.
672         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
673         divide.
674         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
675         * config/m68k/m68k.c(valid_mov3q_const):  New function.
676         (const_method): SWAP is valid for ColdFire.
677         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
678         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
679
680 2004-06-16  Richard Henderson  <rth@redhat.com>
681
682         * c-common.def (CASE_LABEL): Remove.
683         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
684         (match_case_to_enum_1): Likewise.
685         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
686         * c-dump.c (c_dump_tree): Likewise.
687         * c-gimplify.c (c_gimplify_stmt): Likewise.
688         * c-pretty-print.c (pp_c_statement): Likewise.
689         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
690         * tree.h (CASE_LOW): Update commentary.
691
692 2004-06-16  Richard Henderson  <rth@redhat.com>
693
694         * c-common.def (ASM_STMT): Remove.
695         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
696         * c-dump.c (c_dump_tree): Likewise.
697         * c-gimplify.c (c_gimplify_stmt): Likewise.
698         * c-pretty-print.c (pp_c_statement): Likewise.
699         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
700         * tree.h: Fix commentary.
701
702 2004-06-16  Richard Henderson  <rth@redhat.com>
703
704         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
705         * c-common.c (c_add_case_label): Use LABEL_EXPR.
706         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
707         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
708         * c-dump.c (c_dump_tree): Likewise.
709         * c-gimplify.c (c_gimplify_stmt): Likewise.
710         * c-pretty-print.c (pp_c_statement): Likewise.
711         * c-parse.in (stmt): Use GOTO_EXPR.
712         (label): Use LABEL_EXPR.
713         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
714         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
715
716 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
717
718         * cfgcleanup.c (try_simplify_condjump): Update test to make
719         sure we have a conditional branch around am unconditional branch.
720
721 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
722
723         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
724
725 2004-06-16  Dale Johannesen  <dalej@apple.com>
726
727         * loop.c (loop_givs_reduce): Avoid miscompilation of
728         loops entered at bottom.
729
730 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
731
732         * cfglayout.c (fixup_reorder_chain): Handle case where the
733         destination of E_FALL is EXIT_BLOCK_PTR.
734
735 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
736
737         PR target/15653
738         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
739         after shifts before asm.
740
741 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
742
743         PR tree-optimization/15993
744         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
745         destination is unchanged.
746
747 2004-06-16  Andreas Jaeger  <aj@suse.de>
748
749         * doc/install.texi (Configuration): Update description for
750         --enable-version-specific-runtime-libs.
751
752 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
753
754         * doc/install.texi: boehm-gc now uses automake 1.8.5.
755
756 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
757
758         * toplev.h (rest_of_compilation): Adjust prototype.
759
760 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
761
762         * coverage.c: Remove argument to rest_of_compilation.
763         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
764         * passes.c (rest_of_compilation): Remove argument.
765         (pass_rest_of_compilation): New.
766         (rest_of_handle_final, rest_of_handle_delay_slots,
767         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
768         rest_of_handle_machine_reorg, rest_of_handle_regrename
769         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
770         rest_of_handle_regmove, rest_of_handle_tracer
771         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
772         rest_of_handle_web, rest_of_handle_branch_prob
773         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
774         rest_of_handle_addressof, rest_of_handle_jump_bypass
775         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
776         Check that the two arguments are actually superfluous.
777         * tree-optimize.c (register_dump_files): Add properties argument.
778         Track validity of passes.  Only initialize dump files for
779         tree-based passes.  Store the full set of provided passes in
780         the pass.
781         (init_tree_optimization_passes): Register pass_expand and
782         pass_rest_of_compilation.
783         (execute_one_pass): Do not track the presence of required properties
784         here.  Set in_gimple_form.  Do not update current_properties.
785         (current_properties): Remove.
786         (set_save_expr_context): Remove.
787         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
788         expand to RTL here, and do not call rest_of_compilation.  Push
789         GGC context even before gimplification.
790         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
791         (pass_expand, pass_rest_of_compilation): Declare.
792
793 2004-06-15  Jeff Law  <law@redhat.com>
794
795         * fold-const.c (swap_tree_comparison): No longer static.
796         (tree_swap_operands_p): Similarly.  Return true if both operands
797         are SSA_NAMEs and the first operand has a higher version number than
798         the second operand.
799         * tree.h (swap_tree_comparison): Prototype.
800         (tree_swap_operands_p): Prototype.
801         * tree-ssa-operands.c (get_expr_operands): For commutative
802         operators and relational comparisons, canonicalize the
803         order of the operands.
804
805 2004-06-15  Richard Henderson  <rth@redhat.com>
806
807         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
808         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
809         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
810         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
811         (finish_fname_decls, fname_decl): Use statement_lists.
812         (c_expand_expr_stmt): Don't set last_expr_type.
813         (c_type_hash): Fix indentation.
814         (c_safe_from_p): Don't follow TREE_CHAIN.
815         (c_tree_chain_matters_p): Remove.
816         * c-common.def (SCOPE_STMT): Remove.
817         (CLEANUP_STMT): Redefine to contain its own body.
818         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
819         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
820         Add x_cur_stmt_list.
821         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
822         (cur_stmt_list): New.
823         (STATEMENT_LIST_STMT_EXPR): New.
824         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
825         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
826         (CLEANUP_BODY): New.
827         (CLEANUP_DECL): Move to operand 2.
828         (c_common_stmt_codes): Remove SCOPE_STMT.
829         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
830         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
831         (c_push_function_context, c_pop_function_context): Don't save it.
832         (finish_decl): Set TREE_USED on the decl for a cleanup.
833         Use push_cleanup.
834         (store_parm_decls): Use statement lists.
835         (finish_function): Remove compstmt rule workaround.  Use statement
836         lists.  Call finish_fname_decls after finalizing the body.
837         (c_begin_compound_stmt): Move to c-typeck.c.
838         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
839         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
840         (c_genericize): Invoke them.
841         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
842         (c_build_bind_expr): Export.
843         (gimplify_block, gimplify_cleanup): Remove.
844         (gimplify_condition): Use gimplify_stmt.
845         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
846         (gimplify_if_stmt): Remove recursion hack.
847         (c_gimplify_expr): Remove STMT_EXPR handling.
848         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
849         (is_last_stmt_of_scope): Remove.
850         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
851         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
852         c_end_compound_stmt.
853         * c-objc-common.c (build_cdtor): Likewise.
854         * c-parse.in (primary): Use c_finish_stmt_expr.
855         (push_scope, pop_scope): Remove.
856         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
857         (c99_block_end, compstmt): Use c_end_compound_stmt.
858         (c99_block_lineno_labeled_stmt): Likewise.
859         (compstmt_primary_start): Use c_begin_stmt_expr.
860         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
861         (do_stmt_start): Fill in body directly.
862         (lineno_stmt): Avoid setting lineno on constants.
863         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
864         Remove SCOPE_STMT.
865         * c-semantics.c (begin_stmt_tree): Remove.
866         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
867         (add_stmt): Use statement lists.
868         (add_scope_stmt, finish_stmt_tree): Remove.
869         (push_cleanup): New.
870         * c-tree.h: Move some decls from c-common.h.
871         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
872         (do_case, c_finish_case): Likewise.
873         (c_finish_then): Take body for then as argument.
874         (c_finish_else): Similarly.
875         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
876         c_finish_for_stmt_incr, c_finish_for_stmt): New.
877         (c_begin_stmt_expr, c_finish_stmt_expr): New.
878         (c_begin_compound_stmt): Do scope management.
879         (c_end_compound_stmt): New.
880         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
881         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
882         Look through exception handling constructs.
883         (gimplify_bind_expr): Accept temporary argument.
884         (gimplify_target_expr): Special case BIND_EXPR bodies.
885         (gimplify_expr): Handle fallback == fb_none like a statement.
886         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
887         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
888         * langhooks.h (tree_chain_matters_p): Remove.
889         * stub-objc.c (objc_clear_super_receiver): New.
890         * tree-gimple.h (voidify_wrapper_expr): Update decl.
891         (append_to_statement_list, append_to_statement_list_force): Move
892         to tree-iterator.h.
893         * tree-inline.c (expand_call_inline): Update call.
894         (clone_body): Use statement lists.
895         (walk_tree): Don't check tree_chain_matters_p.
896         (copy_tree_r): Likewise.
897         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
898         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
899         * tree-iterator.h (append_to_statement_list,
900         append_to_statement_list_force): Moved from tree-gimple.h.
901         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
902         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
903         (objc_enter_block): Likewise.
904         (objc_exit_block): Use c_end_compound_stmt.
905         (objc_build_try_enter_fragment): Add #error and comment for
906         rewriting for OBJCPLUS.
907         (objc_build_extract_fragment, objc_build_try_epilogue,
908         objc_build_catch_stmt, objc_build_finally_prologue,
909         objc_build_finally_epilogue): Update for C statement builders.
910         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
911         Remove.
912
913 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
914
915         * df.c (df_reg_clobber_gen): Removed.
916         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
917         Make more effective for hard regs.
918         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
919
920 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
921
922         * c-pragma.h (c_lex_string_translate): Change type to int.
923         * c-parse.in: Change all assignments of c_lex_string_translate
924         to true and false to 1 and 0.
925         * c-lex.c (c_lex_string_translate): Likewise.
926         (lex_string): Convert string without translation in the -1
927         case.
928
929 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
930
931         * convert.h: Add include guards
932
933 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
934
935         * tree-flow-inline.h: Document all functions.
936
937 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
938
939         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
940         * tree-dfa.c (create_stmt_ann): Ditto.
941         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
942         * tree-inline.c (estimate_num_insns_1): Ditto.
943         * tree.c (tree_size): Ditto.
944         (make_node_stat): Ditto.
945         (tree_node_structure): Ditto.
946         (ephi_node_elt_check_failed): Remove.
947         (is_essa_node): Ditto.
948         * tree.def (EPHI_NODE): Ditto.
949         (EEXIT_NODE): Ditto.
950         (EUSE_NODE): Ditto.
951         (EKILL_NODE): Ditto.
952         * tree.h (EREF_NODE_CHECK): Remove.
953         (EPHI_NODE_ELT_CHECK): Ditto.
954         (struct tree_eref_common): Ditto.
955         (struct tree_euse_node): Ditto.
956         (struct ephi_arg_d): Ditto.
957         (struct tree_ephi_node): Ditto.
958         (ephi_node_elt_check_failed): Remove prototype.
959         (is_essa_node): Ditto.
960         (enum tree_node_structure_enum): Remove TS_E*_NODE.
961         (union tree_node): Remove E*_NODE uses.
962
963 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
964
965         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
966         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
967         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
968         Likewise.
969         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
970         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
971         expand_builtin_strcmp, expand_builtin_strncmp,
972         expand_builtin_frame_address): Likewise.
973         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
974         insert_one_insn): Likewise.
975         * calls.c (prepare_call_address, precompute_register_parameters,
976         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
977         * cfganal.c (flow_active_insn_p): Likewise.
978         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
979         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
980         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
981         make_extraction, recog_for_combine, gen_lowpart_for_combine,
982         simplify_comparison, record_dead_and_set_regs_1,
983         record_dead_and_set_regs, record_promoted_value,
984         check_promoted_subreg, get_last_value_validate, get_last_value,
985         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
986         unmentioned_reg_p_1): Likewise.
987         * conflict.c (mark_reg): Likewise.
988         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
989         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
990         merge_equiv_classes, flush_hash_table, invalidate,
991         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
992         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
993         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
994         record_jump_cond, cse_insn, addr_affects_sp_p,
995         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
996         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
997         cse_cc_succs, cse_condition_code_reg): Likewise.
998         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
999         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1000         cselib_record_set, cselib_record_sets): Likewise.
1001         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1002         dbxout_block): Likewise.
1003         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1004         * dojump.c (do_jump): Likewise.
1005         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1006         is_based_loc, rtl_for_decl_location): Likewise.
1007         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1008         set_decl_incoming_rtl, mark_user_reg): Likewise.
1009         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1010         copy_to_suggested_reg, allocate_dynamic_stack_space,
1011         probe_stack_range, hard_function_value): Likewise.
1012         * expmed.c (store_bit_field, store_fixed_bit_field,
1013         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1014         extract_split_bit_field, expand_divmod, emit_store_flag_force):
1015         Likewise.
1016         * expr.c (convert_move, convert_modes,
1017         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1018         use_group_regs, emit_move_insn, emit_move_insn_1,
1019         compress_float_constant, push_block, emit_single_push_insn,
1020         emit_push_insn, get_subtarget, expand_assignment, store_expr,
1021         store_constructor, store_field, force_operand, safe_from_p,
1022         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1023         Likewise.
1024         * final.c (profile_function, final_scan_insn, alter_subreg,
1025         get_mem_expr_from_op, output_asm_operand_names, output_operand,
1026         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1027         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1028         find_regno_partial, propagate_one_insn, init_propagate_block_info,
1029         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1030         attempt_auto_inc, find_auto_inc, mark_used_regs,
1031         count_or_remove_death_notes_bb): Likewise.
1032         * function.c (find_temp_slot_from_address, update_temp_slot_address,
1033         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1034         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1035         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1036         purge_single_hard_subreg_set, instantiate_decl,
1037         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1038         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1039         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1040         expand_function_start, diddle_return_value, clobber_return_register,
1041         expand_function_end, keep_stack_depressed, handle_epilogue_set,
1042         update_epilogue_consts): Likewise.
1043         * genemit.c (gen_exp, gen_insn): Likewise.
1044         * genrecog.c (make_insn_sequence): Likewise.
1045         * global.c (global_conflicts, expand_preferences, mark_reg_store,
1046         mark_reg_conflicts, set_preference, reg_becomes_live,
1047         build_insn_chain, mark_reg_change): Likewise.
1048         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1049         Likewise.
1050         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1051         Likewise.
1052         * integrate.c (copy_rtx_and_substitute, try_constants,
1053         subst_constants, mark_stores, allocate_initial_values): Likewise.
1054         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1055         delete_computation, rtx_renumbered_equal_p, true_regnum,
1056         reg_or_subregno): Likewise.
1057         * lcm.c (reg_dies, reg_becomes_live): Likewise.
1058         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1059         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1060         wipe_dead_reg, no_conflict_p): Likewise.
1061         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1062         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1063         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1064         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1065         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1066         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1067         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1068         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1069         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1070         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1071         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1072         try_swap_copy_prop): Likewise.
1073         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1074         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1075         Likewise.
1076         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1077         reload_cse_simplify_operands, reload_combine,
1078         reload_combine_note_store, reload_combine_note_use,
1079         reload_cse_move2add, move2add_note_store): Likewise.
1080         * print-rtl.c (print_rtx): Likewise.
1081         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1082         contains_pseudo, handle_asm_insn): Likewise.
1083         * ra-debug.c (ra_print_rtx_object, dump_constraints,
1084         dump_static_insn_cost): Likewise.
1085         * ra-rewrite.c (slots_overlap_p, emit_colors,
1086         remove_suspicious_death_notes): Likewise.
1087         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1088         register_operand, scratch_operand, nonmemory_operand,
1089         constrain_operands): Likewise.
1090         * reg-stack (check_asm_stack_operands, remove_regno_note,
1091         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1092         subst_asm_stack_regs): Likewise.
1093         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1094         record_address_regs, reg_scan_mark_refs): Likewise.
1095         * regmove.c (discover_flags_reg, replacement_quality,
1096         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1097         fixup_match_1): Likewise.
1098         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1099         kill_set_value, copyprop_hardreg_forward_1): Likewise.
1100         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1101         reload_inner_reg_of_subreg, can_reload_into, push_reload,
1102         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1103         operands_match_p, decompose, find_reloads, find_reloads_toplev,
1104         find_reloads_address, subst_indexed_address, find_reloads_address_1,
1105         find_reloads_subreg_address, find_replacement,
1106         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1107         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1108         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1109         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1110         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1111         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1112         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1113         do_output_reload, emit_reload_insns, gen_reload,
1114         delete_address_reloads_1, inc_for_reload): Likewise.
1115         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1116         update_reg_unused_notes, fill_slots_from_thread): Likewise.
1117         * resource.c (update_live_status, mark_referenced_resources,
1118         mark_set_resources, mark_target_live_regs): Likewise.
1119         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1120         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1121         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1122         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1123         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1124         parms_set, find_first_parameter_load, keep_with_call_p,
1125         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1126         num_sign_bit_copies1): Likewise.
1127         * rtlhooks.c (gen_lowpart_general): Likewise.
1128         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1129         sched_analyze): Likewise.
1130         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1131         Likewise.
1132         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1133         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1134         simplify_binary_operation, simplify_const_relational_operation,
1135         simplify_subreg): Likewise.
1136         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1137         expand_end_stmt_expr, expand_return, expand_decl,
1138         expand_anon_union_decl): Likewise.
1139         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1140         find_splittable_regs, find_splittable_givs, find_common_reg_term,
1141         loop_iterations): Likewise.
1142         * var-tracking.c (variable_union, variable_part_different_p,
1143         variable_different_p, count_uses, add_uses, add_stores,
1144         compute_bb_dataflow, set_variable_part, delete_variable_part,
1145         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1146         Likewise.
1147         * varasm.c (assemble_variable): Likewise.
1148
1149 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
1150
1151         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1152         definition.
1153         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1154         #undef and #if 0'd definition.
1155
1156 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1157
1158         * combine.c (distribute_notes): Comment typo fix.
1159
1160 2004-06-15  Roger Sayle  <roger@eyesopen.com>
1161
1162         * expmed.c (synth_mult): Mask bits of the multiplier to the
1163         machine mode of the multiplication.  Don't consider shifts
1164         by more than (or equal to) the width of the operation's mode.
1165
1166 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1167
1168         * doc/install.texi: Yet another update for autoconf
1169         and automake versions.
1170
1171 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1172
1173         * function.h (struct function): Remove cannot_inline field.
1174         (current_function_cannot_inline): Remove.
1175         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1176         Simplify conditionals to ignore warn_return_type.
1177         * tree-optimize.c (tree_rest_of_compilation): Do not reset
1178         DECL_DEFER_OUTPUT.
1179         * objc/objc-act.c (build_module_descriptor, finish_method_def):
1180         Do not set current_function_cannot_inline.
1181
1182 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1183
1184         * cfglayout.c (fixup_reorder_chain): Handle case where the
1185         destination of E_TAKEN is EXIT_BLOCK_PTR.
1186
1187 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
1188
1189         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1190
1191 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1192
1193         * fold-const.c (operand_equal_p): Update comment.
1194
1195 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1196
1197         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1198         (INCOMING_RETURN_ADDR_RTX): Define.
1199         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1200         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1201         __builtin_return_address(0).
1202         (m32r_return_addr): Added for __builtin_return_address(0).
1203         (m32r_reload_lr): Ditto.
1204
1205         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1206
1207 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1208
1209         * doc/install.texi (Prerequisites): Update libbanshee,
1210         fastjar, libcpp, libjava/libltdl entries to
1211         automake 1.8.5.
1212
1213 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1214             Olivier Hainque  <hainque@act-europe.fr>
1215
1216         * function.c (fixup_var_refs): Also adjust the start of sequence
1217         after fixing up the insns.
1218
1219 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1220
1221         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1222
1223 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1224
1225         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1226         automake 1.8.5.
1227
1228 2004-06-14  Eric Christopher  <echristo@redhat.com>
1229
1230         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1231         to -mtpf-trace (-mno-tpf-trace).
1232         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1233         documentation.
1234
1235 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1236
1237         * real.c: Fix bit count in head comment.
1238
1239 2004-06-14  Jeff Law  <law@redhat.com>
1240
1241         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1242         PHIs where the destination or an argument is marked with
1243         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1244
1245 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1246
1247         PR middle-end/15945
1248         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1249         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1250
1251 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1252
1253         * opts.sh (var_args): Fix regexp.
1254
1255 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1256
1257         PR target/15178
1258         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1259
1260 2004-06-14  Paul Brook  <paul@codesourcery.com>
1261
1262         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1263
1264 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1265
1266         * Makefile.in (FLAGS_H): New.
1267         (flags.h): Replace by FLAGS_H.
1268         * c.opt: Document Var, VarExists, Init and Report attributes.
1269         * common.opt: Fill the values of the attributes.
1270         * diagnostic.c (flag_fatal_errors): Do not define.
1271         * except.c (flag_non_call_exceptions): Do not define.
1272         * flags.h: Include options.h.  Remove declarations conflicting with
1273         the automatically defined ones.
1274         * opts.c: Remove automatically defined variables.
1275         (handle_option): Perform default initialization.
1276         (common_handle_option): Do not handle options covered by the
1277         default initialization.
1278         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1279         fields.
1280         (CL_REPORT): New.
1281         * opts.sh: Generate variable declarations, handle CL_REPORT.
1282         * toplev.c: Remove automatically defined variables.
1283         (f_options): Removed.
1284         (print_switch_values): Use cl_options instead of f_options.
1285         * toplev.h (version_flag): Declaration removed.
1286
1287 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1288
1289         * config/sparc/sparc.h: Correct comment about availability of
1290         little endian option.
1291
1292         * config.gcc: Remove sparc64-*-aout*.
1293         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1294         * config/sparc/sp64-aout.h: Remove.
1295         * config/sparc/aout.h: Remove.
1296
1297 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1298
1299         * config/s390/s390.c: Include "tree-gimple.h".
1300         (s390_gimplify_va_arg): New function.
1301         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1302         (s390_va_arg): Remove.
1303         * config/s390/s390-protos.h (s390_va_arg): Remove.
1304         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1305
1306 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1307
1308         * basic-block.h (could_fall_through): Declare.
1309         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1310         Fail if the source already has a fallthrough edge to the exit
1311         block pointer.
1312         (could_fall_through): New function.
1313         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1314         edge to the exit block pointer.
1315         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1316         not called before reload has completed.
1317         Handle special case of first block having a fall-through exit edge.
1318         (cfg_layout_finalize): Don't call it before reload or if we have
1319         rtl epilogues.
1320         (fixup_reorder_chain): A fall through to the exit block does not
1321         require the block to come last.  Add sanity checks.
1322         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1323         edges to the exit block.
1324         * function.c (cfglayout.h): #include.
1325         (thread_prologue_and_epilogue_insns): If we have neither return nor
1326         epilogue, but a fall through to the exit block from mid-function,
1327         force a non-fall-through exit.
1328         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1329
1330 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1331
1332         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1333         for power5 and rs64a.  Correct condition for default.  Correct power3,
1334         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1335
1336 2004-06-13  Steven Bosscher <stevenb@suse.de>
1337
1338         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1339         Revert previous change, don't use CALL_P.
1340
1341 2004-06-13  Jason Merrill  <jason@redhat.com>
1342
1343         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1344         * tree-gimple.h: From here.
1345
1346 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1347
1348         Fix PR tree-optimization/15979
1349         Fix PR tree-optimization/15981
1350         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1351         try to insert values undefined along some path.
1352
1353 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1354
1355         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1356         are available everywhere too.
1357
1358 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1359
1360         * fold-const.c (fold_checksum_tree <case 't'>): Only
1361         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1362         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1363         EXPR is an INTEGERAL_TYPE or a scalar float type.
1364
1365 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1366
1367         * tree-sra.c (tree_sra): Update documentation.
1368
1369 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1370
1371         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1372         function_types_compatible_p, type_lists_compatible_p): Remove
1373         flags parameter.
1374         * c-tree.h (comptypes): Likewise.
1375         (COMPARE_STRICT): Remove.
1376         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1377         callers changed.
1378
1379 2004-06-13  Eric Christopher  <echristo@redhat.com>
1380
1381         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1382         Remove unused code.
1383         * c-typeck.c (comptypes): Add location in standard we're checking.
1384
1385 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1386
1387         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1388         version 3.3.4.
1389
1390 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1391
1392         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1393         index by machine mode.
1394         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1395         tables inside the loop over machine modes.
1396         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1397         expand_divmod): Index shift*_cost by the appropriate machine mode.
1398
1399 2004-06-12  Eric Christopher  <echristo@redhat.com>
1400
1401         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1402         * config/s390/s390.md: Ditto.
1403         * config/s390/s390.c: Ditto.
1404         (s390_frame_info): Conditionalize frame and setup info on
1405         TARGET_TPF_PROFILING.
1406         (s390_arg_frame_offset): Ditto.
1407
1408 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1409
1410         * fold-const.c (omit_two_operands): New function.
1411         * tree.h (omit_two_operands): Prototype here.
1412         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1413         C99 unordered comparison builtins to the appropriate tree nodes.
1414         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1415         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1416         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1417         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1418         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1419         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1420         omit_two_operands function to build the required COMPOUND_EXPRs.
1421
1422 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1423             Andreas Jaeger  <aj@suse.de>
1424
1425         * gcse.c (record_set_info): Use predicates like REG_P.
1426         (mems_conflict_for_gcse_p): Likewise.
1427         (load_killed_in_block_p): Likewise.
1428         (hash_expr_1): Likewise.
1429         (insert_set_in_table): Likewise.
1430         (gcse_constant_p): Likewise.
1431         (hash_scan_set): Likewise.
1432         (hash_scan_insn): Likewise.
1433         (canon_list_insert): Likewise.
1434         (record_last_mem_set_info): Likewise.
1435         (record_last_set_info): Likewise.
1436         (compute_hash_table_work): Likewise.
1437         (mark_set): Likewise.
1438         (mark_clobber): Likewise.
1439         (mark_oprs_set): Likewise.
1440         (compute_transp): Likewise.
1441         (find_avail_set): Likewise.
1442         (cprop_insn): Likewise.
1443         (do_local_cprop): Likewise.
1444         (cprop): Likewise.
1445         (find_implicit_sets): Likewise.
1446         (find_bypass_set): Likewise.
1447         (bypass_conditional_jumps): Likewise.
1448         (insert_insn_end_bb): Likewise.
1449         (pre_insert_copy_insn): Likewise.
1450         (compute_transpout): Likewise.
1451         (next_ls_expr): Likewise.
1452         (invalidate_any_buried_refs): Likewise.
1453         (compute_ld_motion_mems): Likewise.
1454         (reg_set_info): Likewise.
1455         (reg_clear_last_set): Likewise.
1456         (find_moveable_store): Likewise.
1457         (compute_store_table): Likewise.
1458         (find_loads): Likewise.
1459         (store_killed_in_insn): Likewise.
1460         (insert_insn_start_bb): Likewise.
1461         (reg_set_between_after_reload_p): Likewise.
1462         (reg_used_between_after_reload_p): Likewise.
1463         (is_jump_table_basic_block): Likewise.
1464         (gcse_after_reload): Likewise.
1465         (hash_scan_set_after_reload): Likewise.
1466         (compute_hash_table_after_reload): Likewise.
1467
1468 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1469
1470         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1471         (INSN_P): Don't look at the rtx code class, just explicitly
1472         check for one of the tree RTX_INSN codes.
1473
1474 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1475
1476         * c-typeck.c (default_function_array_conversion): Use
1477         build_pointer_type not TYPE_POINTER_TO.
1478
1479 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1480
1481         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1482         * configure, config.in: Regenerate.
1483         * system.h: Unconditionally define bool as unsigned char,
1484         BOOL_BITFIELD as unsigned int.
1485         * domwalk.h: Use BOOL_BITFIELD.
1486
1487 2004-06-12  Andreas Jaeger  <aj@suse.de>
1488
1489         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1490         * libgcc-darwin.ver: Likewise.
1491
1492 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1493
1494         * reload.c (find_reloads): Force reload for pseudo registers on big
1495         endian machines.
1496
1497 2004-06-11  Steven Bosscher <stevenb@suse.de>
1498
1499         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1500         Don't try to mark anything control dependent on the entry or
1501         exit blocks.
1502
1503 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1504
1505         Fix Bug 15899
1506         Fix Bug 15460
1507         * tree.h (SSA_NAME_VALUE): New macro.
1508         (struct tree_ssa_name): Add value_handle member.
1509         * tree-ssa-pre.c: Replaced.
1510         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1511         (struct cst_ann_d): New.
1512         (struct expr_ann_d): New.
1513         (union tree_ann_d): Add cst_ann, expr_ann.
1514         * tree-dfa.c (create_cst_ann): New function.
1515         (create_expr_ann): Ditto.
1516         * tree-flow-inline.h (cst_ann): New function.
1517         (expr_ann): Ditto.
1518         (get_cst_ann): Ditto.
1519         (get_expr_ann): Ditto..
1520
1521 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1522
1523         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1524         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1525         _U_Qfcmp library function.
1526         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1527         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1528
1529         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1530         unspec used for loading address from DLT.
1531         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1532         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1533         Don't use short code sequence when loading the address of a nonlocal
1534         label.
1535         (nonlocal_goto): New expander.
1536         (indirect_goto): New jump pattern for nonlocal gotos.
1537         (short_jump): Remove extra whitespace.
1538         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1539         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1540         pattern.
1541
1542 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1543
1544         * expmed.c (synth_mult): Add an additional MODE argument for the
1545         machine mode of the multiplication.  Update recursive calls.  Use
1546         mode instead of word_mode for determining operation costs.
1547         (choose_mult_variant): Update calls to synth_mult with "mode".
1548
1549 2004-06-11  Richard Henderson  <rth@redhat.com>
1550
1551         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1552         and makes_aliased_stores.
1553
1554 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1555
1556         * doc/install.text (--enable-shared): Fix typo.
1557
1558 2004-06-11  Richard Henderson  <rth@redhat.com>
1559
1560         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1561         argument.  Use internal post for call to gimplify_expr.  Tidy
1562         rounded type size computation.
1563         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1564         get_initialized_tmp_var.
1565
1566 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1567
1568         * doc/install.texi (--enable-shared): Update libobjc's shared library
1569         status.  Remove reference to libf2c.
1570
1571 2004-06-11  Jason Merrill  <jason@redhat.com>
1572
1573         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1574         * config/i386/i386.c (ix86_va_arg): Remove.
1575         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1576         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1577         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1578         * config/alpha/alpha.c (alpha_va_arg): Remove.
1579         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1580         * config/sparc/sparc.c (sparc_va_arg): Remove.
1581
1582         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1583         assignment might throw.
1584         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1585         expressions.
1586
1587 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1588
1589         PR 15886:
1590         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1591
1592 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1593
1594         * doc/install.texi (Prerequisites): Update documentation of
1595         required versions of autoconf and automake.  Remove mention of
1596         libf2c.
1597
1598 2004-06-11  Jason Merrill  <jason@redhat.com>
1599
1600         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1601         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1602
1603 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1604
1605         * typeclass.h: Add GPL plus exception license.  Add include
1606         guard.
1607
1608 2004-06-10  Jason Merrill  <jason@redhat.com>
1609
1610         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1611         of an aggregate_value_p type.
1612
1613 2004-06-10  Jeff Law  <law@redhat.com>
1614
1615         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1616         code when we are in gimple form.
1617
1618 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1619
1620         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1621         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1622         (highest_ssa_version): Remove.
1623         * tree-outof-ssa.c (new_temp_expr_table): Replace
1624         highest_ssa_version with num_ssa_names.
1625         (dump_replaceable_exprs): Likewise.
1626         (rewrite_vars_out_of_ssa): Likewise.
1627         * tree-ssa-ccp.c (initialize): Likewise
1628         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1629         * tree-ssa-dce.c (tree_dce_init): Likewise.
1630         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1631         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1632         (dump_var_map): Likewise.
1633         * tree-ssa.c (verify_ssa): Likewise.
1634         (kill_redundant_phi_nodes): Likewise.
1635         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1636         * tree-ssanames.c: Include tree-flow.h
1637         (ssa_names): New varray.
1638         (init_ssa_names): Initialize ssa_names.
1639         Reserve the first slot of the ssa_names table.
1640         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1641         Assign version numbers using num_ssa_names.
1642
1643 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1644
1645         * doc/sourcebuild.texi (Front End): Add details of more
1646         installation documentation required.
1647
1648 2004-06-10  Brian Booth  <bbooth@redhat.com>
1649
1650         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1651         of V_MAY_DEF and V_MUST_DEF.
1652         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1653         num_vdefs to num_v_may_defs.
1654         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1655         to v_may_def.
1656         (redirect_immediate_uses): Ditto.
1657         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1658         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1659         Also add code to sum up the number of v_must_defs.
1660         (vdefs_disappeared_p): Replace with...
1661         (v_may_defs_disappeared_p): This.
1662         (v_must_defs_disappeared_p): New function.
1663         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1664         Also add code to mark new variables found in V_MUST_DEFs for
1665         renameing.
1666         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1667         vdef_ops to v_may_def_ops.
1668         (get_vdef_ops): Replace with...
1669         (get_v_may_def_ops): This.
1670         * tree-flow-inline.h (get_vdef_ops): Replace with...
1671         (get_v_may_def_ops): This.
1672         (get_v_must_def_ops): New function.
1673         (get_vdef_result_ptr): Replace with...
1674         (get_v_may_def_result_ptr): This.
1675         (get_vdef_op_ptr): Ditto with...
1676         (get_v_may_def_op_ptr); This.
1677         (get_v_must_def_op_ptr): New function.
1678         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1679         to v_may_def. Also add code to mark statements with
1680         V_MUST_DEFs as definition sites.
1681         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1682         add code to register new V_MUST_DEFs made by the statement.
1683         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1684         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1685         add check for V_MUST_DEFs.
1686         (find_replaceable_in_bb): Ditto.
1687         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1688         to v_may_def. Also add code to dump V_MUST_DEFs.
1689         * tree-sra.c (mark_all_vdefs): Replace with...
1690         (mark_all_v_may_defs): This.
1691         (mark_all_v_must_defs): New function.
1692         (create_scalar_copies): Replace call to mark_all_vdefs with
1693         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1694         (scalarize_structures): Rename occurences of vdef to v_may_def.
1695         Also add a check for V_MUST_DEFs.
1696         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1697         * tree-ssa-alias.c (global_var): Update comment.
1698         (compute_may_aliases): Ditto.
1699         (compute_points_to_and_addr_escape): Rename occurences of vdef
1700         to v_may_def. Also add code to mark variables in V_MUST_DEF
1701         operands as being written to.
1702         (group_aliases): Update comment.
1703         (maybe_create_global_var): Ditto.
1704         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1705         Also add a check for V_MUST_DEFs on GIMPLE registers.
1706         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1707         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1708         to v_may_def. Also add code to mark all V_MUST_DEF operands
1709         VARYING.
1710         (initialize): Ditto.
1711         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1712         code to update SSA_NAMEs in V_MUST_DEFs.
1713         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1714         to v_may_def.
1715         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1716         occurences of vdef to v_may_def. Also add code to mark statements
1717         with V_MUST_DEFs as necessary.
1718         (propagate_necessity): Rename occurences of vdef to v_may_def.
1719         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1720         occurences of vdef to v_may_def. Also add code to mark operands
1721         in V_MUST_DEFs for renaming.
1722         (eliminate_redundant_computations): Rename occurences of vdef
1723         to v_may_def.
1724         (record_equivalences_from_stmt): Rename occurences of vdef
1725         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1726         (optimize_stmt): Remove unnesessary variable vdefs. Update
1727         comment.
1728         (register_definitions_for_stmt): Rename occurences of vdef
1729         to v_may_def. Also add code to register definitions made with
1730         V_MUST_DEFs.
1731         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1732         (fix_stmt_v_may_defs): This.
1733         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1734         (dse_optimize_stmt): Ditto.
1735         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1736         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1737         used in virtual operators.
1738         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1739         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1740         renaming.
1741         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1742         definitions.
1743         (build_vdefs): Renamed to...
1744         (build_v_may_defs): This.
1745         (build_v_must_defs): New variable.
1746         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1747         v_may_def_ops.
1748         (append_vdef): Replace with...
1749         (append_v_may_def): This.
1750         (append_v_must_def): New function.
1751         (NUM_FREE): Increment for V_MUST_DEF
1752         (optype_freelist): Increment its size for V_MUST_DEF
1753         (allocate_vdef_optype): Replace with...
1754         (allocate_v_may_def_optype): This.
1755         (allocate_v_must_def_optype): New function.
1756         (free_vdefs): Replace with...
1757         (free_v_may_defs): This.
1758         (free_v_must_defs): New function.
1759         (remove_vdefs): Replace with...
1760         (remove_v_may_defs): This.
1761         (remove_v_must_defs): New function.
1762         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1763         add code to initialize build_v_must_defs.
1764         (finalize_ssa_vdefs): Replace with...
1765         (finalize_ssa_v_may_defs): This.
1766         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1767         (finalize_ssa_v_must_defs): New function.
1768         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1769         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1770         (verify_start_operands): Rename occurences of vdef to v_may_def.
1771         Also add check for build_v_must_defs.
1772         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1773         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1774         killing definitions.
1775         (get_expr_operands): Update comment and use opf_kill_def for
1776         killing definitions.
1777         (add_stmt_operand): Replace code that appends VDEFs with code
1778         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1779         otherwise.
1780         (add_call_clobber_ops): Update comments.
1781         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1782         (v_may_def_optype_d): This.
1783         (v_must_def_optype_d): New structure.
1784         (VDEF_OPS): Replace with...
1785         (V_MAY_DEF_OPS): This.
1786         (STMT_VDEF_OPS): Same with...
1787         (STMT_V_MAY_DEF_OPS): This.
1788         (NUM_VDEFS): And...
1789         (NUM_V_MAY_DEFS): This.
1790         (VDEF_RESULT_PTR): As well as...
1791         (V_MAY_DEF_RESULT_PTR): This.
1792         (VDEF_RESULT): Same goes for...
1793         (V_MAY_DEF_RESULT): This.
1794         (VDEF_OP_PTR): And...
1795         (V_MAY_DEF_OP_PTR): This.
1796         (VDEF_OP): And...
1797         (V_MAY_DEF_OP): This.
1798         (V_MUST_DEF_OPS): New macro.
1799         (STMT_V_MUST_DEF_OPS): Ditto.
1800         (NUM_V_MUST_DEFS): Ditto.
1801         (V_MUST_DEF_OP_PTR): Ditto.
1802         (V_MUST_DEF_OP): Ditto.
1803         (remove_vdefs): Replace signature with...
1804         (remove_v_may_defs): This.
1805         (remove_v_must_defs): New function signature.
1806         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1807         with calls to remove_v_may_defs and remove_v_must_defs.
1808         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1809         Also add code that marks left occurences of operands in V_MUST_DEFs.
1810         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1811         to v_may_def. Also add check for V_MUST_DEFs.
1812         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1813
1814 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1815
1816         PR target/15653
1817         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1818         insn.
1819
1820 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1821
1822         PR web/15263
1823         * doc/install.texi: Remove superfluous linebreak.
1824
1825 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1826
1827         * builtins.c (expand_builtin): Fall back to library function call for
1828         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1829         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1830         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1831         IMAGPART_EXPR respectively.
1832
1833 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1834
1835         * sh.c (dump_table): New argument start.  Changed caller.
1836         (fixup_mova): New function.
1837         (find_barrier): Use it.
1838         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1839         If the label a mova refers to is above the mova itself, change
1840         the mova into a load.
1841         * sh.md (*casesi_worker): Rename to:
1842         (casesi_worker_1).
1843         (casesi_worker_2): New insn.
1844
1845 2004-06-10  Jason Merrill  <jason@redhat.com>
1846
1847         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1848         hook signature.
1849         * tree-gimple.h: Adjust.
1850         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1851         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1852         Use fold_convert.
1853         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1854         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1855         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1856         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1857         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1858         Gimplify valist rather than calling stabilize_va_list.
1859
1860 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1861
1862         * Makefile.in (df.o): Remove fibheap dependency.
1863         * df.h: Do not include sbitmap.h.
1864         (struct ref): New field "data".
1865         (DF_REF_DATA): New accessor macro.
1866         (struct df): Field "dom" removed.
1867         (df_analyze_subcfg): New function.
1868         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1869         (transfer_function): ... new type.
1870         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1871         (iterative_dataflow): ... new function.
1872         (enum set_representation, struct dataflow): New.
1873         * df.c: Do not include fibheap.h.
1874
1875         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1876         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1877         prune_to_subcfg, df_bb_modify): New functions.
1878         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1879         df_refs_update, df_reg_table_realloc, df_ref_create,
1880         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1881         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1882         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1883
1884         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1885         (df_rd_transfer_function, df_ru_transfer_function,
1886         df_lr_transfer_function): Type of bitmaps changed to void *.
1887         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1888         (hybrid_search): ... new function.
1889         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1890         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1891         a worklist.  Do not process basic blocks unnecessarily.
1892
1893 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1894
1895         * fold-const.c (fold_abs_const): Make extern.
1896         * tree.h (fold_abs_const): Prototype here.
1897         * builtins.c (fold_builtin_fabs): New function to transform
1898         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1899         (fold_builtin_abs): New function to transform abs, labs, llabs
1900         and imaxabs builtins into ABS_EXPR tree nodes.
1901         (expand_builtin): Fall back to a function call for abs, labs,
1902         llabs and imaxabs builtins that survive constant folding.
1903         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1904         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1905
1906 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1907
1908         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1909         leaf function without unwind info at RP 0.
1910
1911 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1912
1913         PR c++/14791
1914         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1915         (fileptr_type_node): Define.
1916         * tree.c (build_common_tree_nodes_2): Initialize
1917         fileptr_type_node to ptr_type_node.
1918         * c-common.c (c_common_nodes_and_builtins): For C++, make
1919         fileptr_type_node a distinct type copy.
1920         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1921         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1922         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1923         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1924         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1925         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1926         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1927         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1928         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1929         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1930         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1931         the above *FILEPTR* types instead of *PTR*.
1932
1933 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1934
1935         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1936         match.
1937
1938 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1939
1940         * fold-const.c (fold_not_const): New function.
1941         (fold) <ABS_EXPR>: Don't bother testing wins.
1942         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1943         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1944
1945 2004-06-09  Richard Henderson  <rth@redhat.com>
1946
1947         PR middle-end/15228
1948         * function.c (assign_parms): Always set_mem_align with the computed
1949         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1950
1951 2004-06-09  Richard Henderson  <rth@redhat.com>
1952
1953         PR opt/15108
1954         * tree-tailcall.c (find_tail_calls): Don't check early for
1955         tail_recursion failure.
1956
1957 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1958
1959         Move SSA_NAME annotations into tree_ssa_name.
1960
1961         * tree-dfa.c (create_ssa_name_ann): Remove.
1962         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1963         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1964         (struct ssa_name_ann_d): Remove.
1965         (union tree_ann_d): Update.
1966         (ssa_name_ann_t): Remove.
1967         * tree-ssa-alias.c: (get_ptr_info): New local function.
1968         Replace references to ssa_name_ann_t with struct ptr_info_def.
1969         * tree-ssa-operands.c (get_expr_operands): Likewise.
1970         * tree.h (SSA_NAME_PTR_INFO): Define.
1971         (struct ptr_info_def): Declare.
1972         (struct tree_ssa_name): Add field 'ptr_info'.
1973
1974 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1975
1976         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1977         misplaced ')'.
1978
1979 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1980
1981         * config/i386/k6.md: Rewrite using the DFA model.
1982         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1983         cost of load-operation insns for the K6.
1984         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1985         (ia32_multipass_dfa_lookahead): Likewise.
1986
1987 2004-06-09  Richard Henderson  <rth@redhat.com>
1988
1989         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1990         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1991
1992 2004-06-09  Richard Henderson  <rth@redhat.com>
1993
1994         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1995
1996 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1997
1998         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1999         (CPP_ID_DATA_H): New.
2000         (gtype-desc.o): Update dependencies.
2001         (GTFILES): Use CPP_ID_DATA_H.
2002
2003 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
2004
2005         Revert:
2006         PR c++/15815
2007         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2008         * doc/extend.texi: Deprecate #pragma interface and #pragma
2009         implementation.
2010
2011 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
2012
2013         * config/sparc/sparc.h (MOVE_RATIO): New definition.
2014
2015 2004-06-09  Richard Henderson  <rth@redhat.com>
2016
2017         * basic-block.h (struct edge_def): Add goto_locus.
2018         * tree-cfg.c (make_goto_expr_edges): Set it.
2019         (disband_implicit_edges): Use it.
2020         * tree-pretty-print.c (dump_implicit_edges): Print it.
2021
2022 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2023
2024         * h8300.md (ldm_h8300s_4): Fix condition for expander.
2025
2026 2004-06-08  Jason Merrill  <jason@redhat.com>
2027
2028         Gimplify VA_ARG_EXPR into simpler forms.
2029         * target.h: Add gimplify_va_arg_expr hook.
2030         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2031         * fold-const.c (build_fold_addr_expr)
2032         (build_fold_addr_expr_with_type): Move from gimplify.c.
2033         * tree.h: Declare them.
2034         * gimplify.c (gimplify_and_add): New fn.
2035         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2036         (gimplify_array_ref_to_plus, gimplify_modify_expr)
2037         (gimplify_expr): Use build_fold_*.
2038         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2039         don't know how to gimplify it.
2040         * builtins.c (std_gimplify_va_arg_expr): New fn.
2041         (dummy_object): New static fn.
2042         (gimplify_va_arg_expr): New fn.
2043         (stabilize_va_list): Use build_fold_*.
2044         * tree-gimple.h: Declare new fns.
2045         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2046         (ix86_gimplify_va_arg): New fn.
2047         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2048         (ia64_gimplify_va_arg): New fn.
2049         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2050         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2051         * alias.c (get_varargs_alias_set): Just return 0 for now.
2052
2053         * c-objc-common.c (c_tree_printer): Improve handling of %T.
2054
2055 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
2056
2057         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2058         of convert.
2059         * tree-inline.c (setup_one_parameter): Likewise.
2060         * tree-sra.c (csc_build_component_ref): Likewise.
2061         * tree-ssa-ccp.c (ccp_fold): Likewise.
2062         * tree-ssa-copy.c (cprop_operand): Likewise.
2063         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2064         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2065
2066 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
2067
2068         PR rtl-optimization/15521:
2069         * sched-int.h (in_post_call_group_p): Change type to enum.
2070         * sched-deps.c (sched_analyze_insn):
2071         (sched_analyze): When in_post_call_group_p is post_call_initial,
2072         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2073         and also reset in_post_call_group_p to post_call.
2074         (sched_analyze): When the previous basic block ended in a CALL_INSN,
2075         initialize in_post_call_group_p as post_call_initial.
2076         (init_deps): initialize in_post_call_group_p to not_post_call.
2077
2078 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
2079
2080         PR ada/6637
2081         * doc/install.texi: List ada, libada as options to --enable-shared
2082
2083 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
2084
2085         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2086         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2087         config.in entries.
2088         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2089         if hard links are not available.
2090         * configure: Regenerate.
2091         * config.in: Regenerate.
2092
2093 2004-06-08  Per Bothner  <per@bothner.com>
2094
2095         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
2096
2097 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2098
2099         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2100         Correct formatting.
2101
2102 2004-06-08  James E Wilson  <wilson@specifixinc.com>
2103
2104         PR target/15790
2105         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2106
2107 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2108
2109         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2110         POINTER_TYPE and INTEGER_TYPE.
2111
2112 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
2113
2114         * modulo-sched.c: Compile only when INSN_SCHEDULING is
2115         defined.
2116
2117 2004-06-08  Jeff Law  <law@redhat.com>
2118
2119         * doc/contrib.texi: Add entries for Stefan Olsson and
2120         Ola Ronnerup.
2121
2122 2004-06-08  DJ Delorie  <dj@redhat.com>
2123
2124         * toplev.c (floor_log2_wide): Replace loop with faster bit
2125         operations.
2126         (exact_log2_wide): Define in terms of the above.
2127         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2128         available.
2129
2130 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2131
2132         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2133         Make sure that we are in INDIRECT mode when getting the
2134         stub name.
2135
2136 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2137
2138         * h8300.md (extendqisi2_h8300): Add constraints.
2139         (ldm_h8300s_4_normal): Fix typo.
2140
2141 2004-06-08  Richard Henderson  <rth@redhat.com>
2142
2143         * gimple-low.c (struct lower_data): Replace the_return_label and
2144         one_return_stmt with return_statements.
2145         (lower_function_body): Process the entire list of return_statements.
2146         (lower_return_expr): Check source value before unifying return_exprs.
2147         * gimplify.c (gimplify_return_expr): Force the use of a temporary
2148         for !aggregate_value_p.
2149         * tree-gimple.c: Update RETURN_EXPR grammer.
2150
2151 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
2152
2153         PR target/15598
2154         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2155
2156 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2157
2158         PR rtl-optimization/15717
2159         * config/i386/i386.c (legitimate_constant_p): Do not allow
2160         x - symbol_ref.
2161
2162 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
2163
2164         * gimplify.c (copy_if_shared_r): Revert:
2165         2004-05-21  Richard Henderson  <rth@redhat.com>
2166         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2167
2168 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2169
2170         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2171         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
2172         (init_expmed): Initialize these cost arrays as appropriate.
2173         (store_bit_field, extract_bit_field): Correct whitespace.
2174         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2175         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2176         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2177         word_mode or compute_mode as appropriate.
2178
2179 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2180
2181         PR target/15783
2182         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2183         parameter.  Enumerate the registers inside the PARALLEL.
2184         (function_arg): Adjust call to function_arg_union_value.
2185         (function_value): Likewise.
2186
2187         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2188
2189 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2190
2191         * real.c (real_copysign): New function to implement libm's copysign.
2192         * real.h (real_copysign): Prototype here.
2193         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2194         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
2195         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2196         fold_builtin_isdigit): Add function prototypes.
2197         (fold_builtin_copysign): New function to fold copysign, copysignf
2198         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
2199         constant arguments at compile-time using real_copysign.  Fold
2200         copysign(X,Y) as fabs(X) if Y is always non-negative.
2201         (fold_builtin_1): Correct minor whitespace/style issues.  Call
2202         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2203
2204 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2205
2206         * tree.c (iterative_hash_expr): Use real_hash.
2207
2208 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2209
2210         PR c/14765
2211         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2212         NULL_TREE.
2213
2214 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2215
2216         PR c++/15815
2217         * doc/extend.texi: Deprecate #pragma interface and #pragma
2218         implementation.
2219
2220 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2221
2222         PR middle-end/15666
2223         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2224         builtin decl as well.
2225
2226 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2227
2228         PR c/14649
2229         * c-typeck.c (require_constant_value, require_constant_elements):
2230         Move declarations to the top of the file.
2231         (build_function_call): If we require a constant value, fold with
2232         fold_initializer.  If the result is a constant, and the function
2233         wasn't called using __builtin_foo, issue a pedantic warning.
2234         (build_unary_op): If we require a constant value, fold tree with
2235         fold_initializer.
2236         (build_binary_op): Use require_constant_value to determine whether
2237         to call fold or fold_initializer.
2238
2239 2004-06-07  Richard Henderson  <rth@redhat.com>
2240
2241         * gimple-low.c (struct lower_data): Add the_return_label and
2242         one_return_stmt.
2243         (lower_function_body): Initialize and use them.
2244         (lower_return_expr): New.
2245         (lower_stmt): Call it.
2246         * gimplify.c (gimplify_return_expr): Force the argument to be either
2247         null or a result_decl.
2248         * tree-gimple.c: Update gimple grammer to match.
2249         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2250         coalescing of result_decls.
2251
2252 2004-06-07  Richard Henderson  <rth@redhat.com>
2253
2254         PR rtl-opt/15193
2255         * expmed.c (extract_bit_field): Fix vector_extract return.
2256
2257         * config/i386/i386.md (negv4sf2): New pattern.
2258
2259 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2260
2261         PR c++/15337
2262         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2263         message.
2264
2265 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2266
2267         * config.in: Regenerate.
2268
2269 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2270
2271         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2272         SWITCH_LABELS are always sorted.
2273
2274 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2275
2276         * hooks.c (hook_int_void_1): New generic hook.
2277         * hooks.h (hook_int_void_1): Add prototype.
2278         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2279         Define to hook_int_void_1.
2280         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2281         with dummies for the new one.
2282
2283 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2284
2285         * tree.h (lvalue_or_else): Delete function prototype.
2286         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2287
2288 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2289
2290         PR target/14542
2291         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2292         a live change of a register after peephole replacement.
2293
2294 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2295
2296         PR c/13519
2297         * c-typeck.c (composite_type, common_pointer_type): New functions.
2298         (common_type): Split parts into composite_type and
2299         common_pointer_type.  Ensure that arithmetic operations return
2300         unqualified types without attributes.  Don't make composite type
2301         of signed enum and compatible integer be unsigned.
2302         (build_conditional_expr, build_binary_op): Use
2303         common_pointer_type.
2304         * c-decl.c (merge_decls): Use composite_type.
2305         * c-tree.h (composite_type): Declare.
2306
2307 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2308
2309         PR target/14457
2310         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2311         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2312         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2313         (inhibit_libc): Must define.
2314         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2315         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2316         ("xorhi3"): Likewise.
2317
2318 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2319
2320         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2321         always_inline pass.
2322
2323 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2324
2325         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2326         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2327
2328 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2329
2330         * regclass.c (init_reg_sets): Check for missing registers in target
2331         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2332
2333 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2334
2335         * Makefile.in (MKDEPS_H): New shorthand.
2336         (c-opts.o): Update dependencies.
2337         * c-opts.c: Include mkdeps.h.
2338         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2339         not cpp_add_dependency_target.
2340
2341 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2342
2343         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2344         * config/v850/v850.md: Convert to DFA scheduler description.
2345
2346 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2347
2348         PR fortran/15478
2349         * doc/install.texi: Document GMP as prerequisite. Document
2350         --with-gmp and --with-gmp-dir configure options.
2351         * fortran/gfortran.texi: Remove section "Compiling and testing",
2352         remove TOC reference to it.
2353
2354 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2355
2356         * combine.c(simplify_shift_const): Check shift amount is a
2357         CONST_INT.
2358
2359 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2360
2361         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2362         opening asm_out_file.
2363         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2364         reading asm_out_file. Replace fflush after reading asm_out_file
2365         with fseek.
2366         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2367         default and add to HOST_HOOKS_INITIALIZER.
2368         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2369         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2370         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2371         to set mmi.offset padding.
2372          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2373         $(srcdir)/config/i386/winnt.c.
2374         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2375         (i[34567]86-*-uwin*): Likewise.
2376         *i[34567]86-*-interix3*): Likewise.
2377         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2378         * config/i386/host-mingw32.c: New file.
2379         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2380         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2381         (extern_head): Likewise.
2382         (struct export_list) Likewise.
2383         (export_head): Likewise.
2384         (i386_pe_record_external_function): Use ggc_alloc.
2385         (i386_pe_record_exported_symbol): Likewise.
2386         Include "gt-winnt.h" at end.
2387         * doc/hostconfig.texi: Document
2388         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2389
2390 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2391
2392         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2393         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2394         trailing whitespace before EOLs and before TABs.
2395         (MAX_CODE_ALIGN): Remove unused macro.
2396         (CALL_USED_REGISTERS): Reformat and add comments.
2397
2398 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2399
2400         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2401         to enumerate -lmudflap* and dependencies when linking.
2402
2403 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2404
2405         PR target/15822
2406         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2407
2408 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2409
2410         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2411         * genconditions.c (write_header): Back out removal of reload.h.
2412
2413 2004-06-04  Jan Hubicka  <jh@suse.cz>
2414
2415         Re-apply hopefully fixed patch:
2416         * i386.md (UNSPECV_EH_RETURN): Kill.
2417         (eh_return): Use jump_insn.
2418         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2419
2420 2004-06-04  Jeff Law  <law@redhat.com>
2421
2422         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2423
2424 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2425
2426         * except.c (for_each_eh_region): New function.
2427         * except.h (for_each_eh_region): Add a prototype for it.
2428         * tree-cfg.c (update_eh_labels): New function, callback for
2429         for_each_eh_region.
2430         (label_for_bb): Make global static, unfortunately.
2431         (cleanup_dead_labels): Also update label references for
2432         exception regions.
2433
2434 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2435
2436         * config/mips/mips.c (struct irix_section_align_entry): Fix
2437         GTY marker.
2438
2439 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2440
2441         * toplev.c (check_global_declarations): Don't ask for
2442         DECL_ASSEMBLER_NAME unless the function really is declared
2443         static and not defined.
2444
2445 2004-06-03  Matt Austern  <austern@apple.com>
2446
2447         PR c++/15428
2448         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2449         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2450         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2451         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2452         documentation to reflect the new macro name and to clarify its
2453         meaning.
2454
2455 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2456
2457         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2458
2459 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2460
2461         * config/darwin.c (machopic_indirect_data_reference): Copy
2462         the SYMBOL_REF_DECL from the original RTX for the new
2463         non-lazy pointer RTX.
2464
2465 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2466
2467         * tree.h: Remove include of version.h
2468         * c-cppbuiltin.c: Include version.h
2469         * diagnostic.c: Include version.h
2470         * dwarf2out.c: Include version.h
2471         * toplev.c: Include version.h
2472         * vmsdbgout.c: Include version.h
2473         * Makefile.in: Remove dependency on version.h from TREE_H, and
2474         add dependencies to required .o targets
2475
2476 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2477
2478         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2479         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2480         (TARGET_H): Add insn-modes.h.
2481         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2482         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2483         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2484         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2485         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2486         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2487         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2488         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2489         CFGLAYOUT_H.
2490         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2491         Replace ra.h with RA_H.
2492         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2493         insn-recog.o): Replace resource.h with RESOURCE_H.
2494         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2495         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2496         with SCHED_INT_H.
2497         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2498         ra-rewrite.o): Replace df.h with DF_H.
2499         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2500         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2501         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2502         (insn-conditions.o): Remove unused reload.h.
2503         * cfglayout.h: Add include guard.  Include basic-block.h.
2504         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2505         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2506         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2507         basic-block.h.
2508         * genconditions.c:  Remove reload.h.
2509         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2510         hard-reg-set.h, insn-modes.h.
2511         * resource.h: Add include guard.  Include hard-reg-set.h.
2512         * sched-int.h:  Add include guard.  Include insn-attr.h,
2513         basic-block.h, rtl.h.
2514         * target.h: Add include guard.  Include insn-modes.h.
2515         * tree-ssa-live.h: Include partition.h.
2516
2517 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2518                 Kenneth Zadeck <zadeck@naturalbridge.com>
2519
2520         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2521         (add_var_to_ssa_edges_worklist): Add value argument.
2522         Update callers.
2523         Use new worklist.
2524         (process_ssa_edge_worklist): New function.
2525         (tree_ssa_ccp): Move worklist processing core to
2526         process_ssa_edge_worklist, and just call that for the two worklists.
2527
2528 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2529
2530         * basic-block.c (tail_recursion_label_list): Don't declare.
2531         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2532         accordingly.
2533         * cfgbuild.c (find_label_refs): Remove.
2534         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2535         * cfgcleanup.c (tail_recursion_label_p): Remove.
2536         (merge_blocks_move): Do not check for tail recursion.
2537         (try_optimize_cfg): Likewise.
2538         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2539         * cfgrtl.c (tail_recursion_label_list): Remove.
2540         * except.c (remove_unreachable_regions): Don't handle
2541         CALL_PLACEHOLDER insns.
2542         (convert_from_eh_region_ranges_1, can_throw_internal,
2543         can_throw_external): Likewise.
2544         * function.c (free_after_compilation): Don't clear
2545         x_tail_recursion_label.
2546         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2547         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2548         (reorder_blocks_1): Likewise.
2549         * function.h (struct function): Remove x_tail_recursion_label
2550         member.  Don't define tail_recursion_label.
2551         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2552         * print-rtl.c (print_rtx): Likewise.
2553         * rtl.def (CALL_PLACEHOLDER): Remove.
2554         * rtl.h (sibcall_use_t): Remove enum.
2555         (optimize_sibling_and_tail_recursive_calls,
2556         replace_call_placeholder): Remove function prototypes.
2557         * stmt.c (tail_recursion_args): Remove.
2558         (optimize_tail_recursion): Remove.
2559         (expand_return): Don't check for possible tail recursion.
2560         * tree.h (optimize_tail_recursion): Remove prototype.
2561
2562 2004-06-02  Jan Hubicka  <jh@suse.cz>
2563
2564         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2565         return_stmt.
2566
2567 2004-06-02  Jason Merrill  <jason@redhat.com>
2568
2569         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2570         Do include c-parse.in.
2571
2572 2004-06-02  Eric Christopher  <echristo@redhat.com>
2573
2574         * c-typeck.c (common_type): Don't lose type qualifiers
2575         when creating new variants.
2576
2577 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2578
2579         PR tree-optimization/14042
2580         PR tree-optimization/14729
2581         PR tree-optimization/14736
2582         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2583         Check the type which the pointer points to
2584         instead of the pointer types.
2585
2586 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2587
2588         PR tree-optimization/15738.
2589         * builtins.c (fold_builtin_strchr): Transform
2590         strrchr (s, '\0') to strchr (s, '\0').
2591
2592 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2593
2594         * i386.c (ix86_adjust_cost): Don't increase the cost for
2595         load+operation for PROCESSOR_PENTIUMPRO, it is already
2596         modelled in the DFA description
2597
2598 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2599
2600         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2601         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2602         (ALIAS_H, EMIT_RTL_H): New.
2603         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2604         (cfgcleanup.o): Add EMIT_RTL_H.
2605         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2606         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2607         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2608         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2609         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2610         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2611         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2612         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2613         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2614         set_mem_size): Move to emit-rtl.h.
2615         * emit-rtl.h: New.
2616         * alias.h: New.
2617
2618 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2619
2620         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2621         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2622         Adjust recursive calls to self.
2623         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2624
2625 2004-06-01  Richard Henderson  <rth@redhat.com>
2626             Andrew Pinski  <pinskia@physics.uc.edu>
2627
2628         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2629         (primary): Handle offsetof.  Add error productions for faux functions.
2630         Move component_ref objc checking to build_component_ref.
2631         (reswords): Add offsetof.
2632         (rid_to_yy): Add offsetof.
2633         * c-tree.h (build_offsetof): Declare.
2634         * c-common.h (objc_is_public): Declare.
2635         * c-typeck.c (build_component_ref): Check objc_is_public.
2636         (build_offsetof): New.
2637         * stub-objc.c (objc_is_public): New.
2638         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2639         from is_public.
2640         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2641         * doc/extend.texi (Offsetof): Move from C++ section to C section
2642         and rewrite for __builtin_offsetof.
2643
2644 2004-06-01  Peter Barada  <peter@the-baradas.com>
2645             Peter Jakubek  <peter@laseranimation.com>
2646
2647         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2648         a scratch to perform an add to memory.
2649
2650 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2651
2652         PR target/14018
2653         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2654         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2655         m68k_align_funcs): Remove.
2656         (override_options): Remove code to handle -malign-* options.
2657         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2658         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2659         (m68k_align_loops_string, m68k_align_jumps_string,
2660         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2661         m68k_align_funcs): Remove definitions.
2662
2663 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2664
2665         PR target/15626
2666         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2667         by the Sun linker in conjunction with the Sun assembler.
2668         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2669
2670 2004-06-01  Jeff Law  <law@redhat.com>
2671
2672         * stmt.c (expand_decl): Be more selective about calling
2673         mark_reg_pointer.
2674
2675 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2676
2677         PR objc/7993
2678         * objc-act.c (is_private): Do not emit the 'instance variable %s
2679         is declared private' error.
2680         (is_public): Emit the error after calling is_private.
2681         (lookup_objc_ivar): If the instance variable is private, return 0
2682         - the instance variable is invisible here.
2683
2684 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2685
2686         * doc/invoke.texi (-static-libgcc): Explicitly mention
2687         non-GNU linkers.
2688
2689 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2690
2691         PR target/12968
2692         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2693
2694 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2695
2696         PR c/15749
2697         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2698         misuses of structures with flexible array members if
2699         in_system_header.
2700
2701 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2702
2703         PR target/15693
2704         * config/sparc/sparc.c (compare_operand): New predicate.
2705         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2706         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2707         operand is a ZERO_EXTRACT and the second operand is not zero,
2708         force the former to a register.
2709         (cmpdi expander): Likewise.
2710
2711 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2712
2713         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2714         looks at.
2715         * alias.c (alias_invariant_size): Make alias_invariant_size
2716         static, fix GTY marker.
2717
2718 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2719
2720         PR tree-optimization/15743.
2721         * builtins.c (fold_builtin_1): Fold index() and rindex().
2722
2723 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2724
2725         PR middle-end/15069
2726         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2727         into "X < 0" (where C is the signbit) if X's type is a full mode.
2728
2729 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2730
2731         * pa.md: Disable the peephole2 patterns that generate indexed
2732         floating-point stores when indexing is disabled.
2733
2734 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2735
2736         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2737         (pp_c_right_bracket): Likewise.
2738         (pp_c_star): Likewise.
2739         (pp_c_ampersand): Define.
2740         * c-pretty-print.h (pp_c_left_bracket): Declare.
2741         (pp_c_right_bracket): Likewise.
2742         (pp_c_star): Likewise.
2743         (pp_c_ampersand): Likewise.
2744
2745 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2746
2747         * config/sol2.h (__enable_execute_stack): ANSIfy function
2748         definition.
2749
2750 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2751
2752         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2753         HAVE_DOS_BASED_FILESYSTEM.
2754
2755 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2756
2757         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2758         Only look at case labels if the immediate dominator is also
2759         the only predecessor.  Don't look for more case labels if the
2760         first seen is a case range.
2761
2762 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2763
2764         * builtins.c: Add a prototype for fold_builtin_strchr().
2765
2766 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2767
2768         Revert this patch:
2769         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2770
2771         * combine.c (gen_binary): Remove.
2772         (known_cond, simplify_shift_const
2773         find_split_point, combine_simplify_rtx,
2774         simplify_if_then_else, simplify_set,
2775         simplify_logical, expand_field_assignment,
2776         extract_left_shift, force_to_mode,
2777         if_then_else_cond, apply_distributive_law,
2778         simplify_and_const_int, simplify_shift_const,
2779         gen_lowpart_for_combine, simplify_comparison,
2780         reversed_comparison): Replace with
2781         simplify_gen_binary, simplify_gen_relational or
2782         distribute_and_simplify_rtx.
2783         (distribute_and_simplify_rtx): New function.
2784
2785 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2786
2787         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2788         when generating PIC code.
2789
2790 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2791
2792         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2793         (c_expand_body): here.
2794         (c_expand_decl): Move to ...
2795         * c-common.c (c_expand_decl): Here and remove check for nested
2796         functions.
2797         * c-common.h (c_expand_decl): Add prototype.
2798         * c-tree.h (c_expand_decl): Remove.
2799
2800 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2801
2802         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2803         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2804         fold_mathfn_compare, fold_inf_compare, fold,
2805         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2806         Use constant_boolean_node where appropriate.  Don't bother using
2807         fold_convert on the second argument to omit_one_operand.
2808
2809 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2810
2811         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2812         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2813         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2814         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2815         Add missing (but documented) tree nodes to the index.
2816
2817 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2818
2819         PR tree-optimization/14819
2820         * builtins.c (fold_builtin_strchr): New.
2821         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2822         with fold_builtin_strchr().
2823
2824 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2825
2826         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2827         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2828         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2829         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2830         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2831         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2832         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2833         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2834         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2835         formatting.
2836
2837 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2838
2839         * gimplify.c (sort_case_labels): New.  Split out from...
2840         (gimplify_switch_expr): ...here.  Use it.
2841         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2842         the SWITCH_EXPR created here before leaving the function.
2843         * tree.c (sort_case_labels): Add prototype.
2844
2845 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2846
2847         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2848         of BOOLEAN_TYPE.
2849
2850 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2851
2852         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2853         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2854         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2855         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2856         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2857         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2858         comment typos.  Follow spelling conventions.
2859
2860 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2861
2862         * gengtype-yacc.y: Add NESTED_PTR token.
2863         (option): Record `nested_ptr' option.
2864         * gengtype-lex.l: Handle `nested_ptr' keyword.
2865         * gengtype.c (walk_type): Process `nested_ptr' option.
2866         * gengtype.h (struct nested_ptr_data): New.
2867         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2868         * stringpool.c (struct string_pool_data): Make 'entries' point to
2869         ht_identifier instead of tree.
2870         (gt_pch_save_stringpool): Don't adjust pointers.
2871         (gt_pch_restore_stringpool): Call ht_load.
2872
2873 2004-05-29  Jason Merrill  <jason@redhat.com>
2874
2875         * gimplify.c (gimplify_expr): Don't build a statement list
2876         if no gimplification was necessary.
2877
2878 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2879
2880         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2881         and %> as well as %'.
2882         * c-format.c: Use %< and %>.
2883         (gcc_diag_char_table, gcc_cdiag_char_table,
2884         gcc_cxxdiag_char_table): Update.
2885
2886 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2887
2888         * c-typeck.c (common_type): Correct comment.
2889
2890 2004-05-29  Peter Barada  <peter@the-baradas.com>
2891
2892         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2893         * config/m68k/m68k.c (const_method): Likewise.
2894         * config/m68k/m68k.c (const_int_cost): Likewise.
2895         * config/m68k/m68k.c (const_int_cost): Likewise.
2896         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2897
2898 2004-05-29  Peter Barada  <peter@the-baradas.com>
2899
2900         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2901         addressing.
2902         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2903         movsi,movhi,movqi insn patterns.
2904
2905 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2906
2907         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2908
2909         PR target/15720
2910         * config/darwin.c (machopic_indirect_call_target): Copy
2911         the SYMBOL_REF_DECL from the original RTX for the new
2912         stub RTX.
2913
2914 2004-05-28  DJ Delorie  <dj@redhat.com>
2915
2916         * stor-layout.c (place_field): Revert erroneous commit.
2917
2918 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2919
2920         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2921         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2922         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2923         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2924         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2925         vec_ste): Remove type checks for integral parameters and literals
2926         from '..._args_eq' macros.
2927
2928 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2929
2930         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2931
2932 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2933
2934         * testsuite/g++.dg/charset/function.cc: New.
2935
2936         * testsuite/gcc.dg/charset/function.c: New.
2937
2938         * c-decl.c (c_make_fname_decl): Free return value from
2939         fname_as_string.
2940
2941         * cp/decl.c (cp_make_fname_decl): Free return value from
2942         fname_as_string.
2943
2944         * c-common.c (fname_as_string): Translate if necessary.
2945
2946 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2947
2948         * stringpool.c: Add comments to PCH saving/restoring routines.
2949
2950 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2951
2952         * c-common.c (c_estimate_num_insns_1): Kill.
2953         (c_estimate_num_insns): Kill.
2954         * c-common.h (c_estimate_num_insns): Kill.
2955
2956         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2957         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2958         Remove comment about not checking for
2959         _POSIX_PRIORITY_SCHEDULING.
2960         * gthr-posix.c: Likewise.
2961
2962 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2963             Roger Sayle  <roger@eyesopen.com>
2964
2965         PR rtl-optimization/15649
2966         Add LTGT_EXPR and improve pretty-printing of unordered
2967         comparisons.
2968         * c-common.c (c_common_truthvalue_conversion):
2969         Handle LTGT_EXPR.
2970         * c-typeck.c (build_binary_op): Likewise.
2971         * dojump.c (do_jump): Likewise.
2972         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2973         * predict.c (tree_predict_by_opcode): Likewise.
2974         * real.c (real_compare): Likewise.
2975         * tree-cfg.c (verify_expr): Likewise.
2976         * tree-inline.c (estimate_num_insns_1): Likewise.
2977         * tree-pretty-print.c (dump_generic_node): Likewise.
2978         Handle ORDERED_EXPR, UNORDERED_EXPR.
2979         (op_symbol): Print unordered comparisons differently
2980         than ordered ones.
2981         * tree.def (LTGT_EXPR): New '<' tree code.
2982         * doc/c-tree.texi (Expressions): Document floating-point
2983         comparison nodes.
2984
2985         Fold comparisons between floating point values.
2986         * fold-const.c (enum comparison_code): New, from
2987         #define'd constants.  Define compcodes for unordered
2988         comparisons and for invalid transformations.
2989         (invert_tree_comparison): Add "honor_nans" parameter.
2990         (fold_truthop): Revamp to work on floating-point types too.
2991         (comparison_to_compcode): Support unordered comparisons.
2992         Use new enum comparison_code.
2993         (compcode_to_comparison): Likewise.
2994         (combine_compcodes): New function.
2995         (invert_truthvalue): Let invert_tree_comparison decide
2996         whether it is valid to fold the comparison.  Fold ORDERED
2997         and UNORDERED even if flag_unsafe_math_optimizations is off,
2998         and the remaining even if flag_unsafe_math_optimizations
2999         is off but we are under -fno-trapping-math.
3000         (fold_relational_const): Integer modes do not honor NaNs.
3001
3002 2004-05-28  Paul Brook  <paul@codesourcery.com>
3003
3004         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3005
3006 2004-05-28  Paul Brook  <paul@codesourcery.com>
3007
3008         * config/arm/arm.c (thumb_force_lr_save): New function.
3009         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3010         thumb_output_function_prologue): Use it.
3011         (thumb_expand_prologue): Set lr_save_eliminated.
3012
3013 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
3014
3015         * config/mips/mips.md (extendsidi2): Tie the source and destination
3016         of the register alternative.  Split it into nothing.
3017
3018 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
3019
3020         * rtl.h (skip_consecutive_labels): Declare.
3021         * emit-rtl.c (skip_consecutive_labels): New function.
3022         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3023         * jump.c (follow_jumps): Say what null return values mean.
3024
3025 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3026
3027         PR target/13250
3028         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3029
3030 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3031
3032         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3033         libgcc-std.ver.
3034         * config/sh/libgcc-std.ver: New file.
3035
3036 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3037
3038         * except.c: Revert change of 2004-05-26.
3039         * config/i386/i386.md: Revert change of 2004-05-27.
3040
3041 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3042
3043         * configure.ac: Remove --enable-tree-browser option.
3044         Define TREEBROWSER when ac_tree_checking is defined.
3045         * configure: Rebuilt.
3046
3047 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
3048
3049         * expr.c (store_constructor): Restore sanity check on
3050         the size of the type before clearing.
3051
3052 2004-05-27  Jan Hubicka  <jh@suse.cz>
3053
3054         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
3055
3056 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
3057
3058         * combine.c (gen_binary): Remove.
3059         (known_cond, simplify_shift_const
3060         find_split_point, combine_simplify_rtx,
3061         simplify_if_then_else, simplify_set,
3062         simplify_logical, expand_field_assignment,
3063         extract_left_shift, force_to_mode,
3064         if_then_else_cond, apply_distributive_law,
3065         simplify_and_const_int, simplify_shift_const,
3066         gen_lowpart_for_combine, simplify_comparison,
3067         reversed_comparison): Replace with
3068         simplify_gen_binary, simplify_gen_relational or
3069         distribute_and_simplify_rtx.
3070         (distribute_and_simplify_rtx): New function.
3071         * simplify-rtx.c (simplify_binary_operation):
3072         Use nonzero_bits to simplify ANDs where we are
3073         turning off bits already known to be off in OP0.
3074
3075 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
3076
3077         PR target/14478
3078         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3079
3080 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
3081
3082         PR middle-end/14084
3083         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3084         to size of decl.
3085
3086 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
3087
3088         PR/14924
3089         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3090
3091 2004-05-26  Roger Sayle  <roger@eyesopen.com>
3092
3093         * tree.h: Fix comment typo.
3094
3095 2004-05-27  Steven Bosscher  <stevenb@suse.de>
3096
3097         * gimplify.c (compare_case_labels): New function.
3098         (gimplify_switch_expr): Sort case labels, and make sure the
3099         last label in the label vector is the default case.
3100         * tree-cfg.c (group_case_labels): New function.
3101         (build_tree_cfg): Cleanup redundant labels and group case labels
3102         before creating edges.
3103         (cleanup_dead_labels): Handle GOTO_EXPRs.
3104         (find_case_label_for_value): Use a binary search to find the
3105         case label for the given value.
3106         * tree-gimple.c: Mention that labels are sorted, and that the
3107         last label must be the default.
3108
3109 2004-05-27  Jan Hubicka  <jh@suse.cz>
3110
3111         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3112
3113 2004-05-27  Jan Hubicka  <jh@suse.cz>
3114
3115         * i386.md (UNSPECV_EH_RETURN): Kill.
3116         (eh_return): Use jump_insn.
3117         (eh_return_si, eh_return_di): Change pattern to jump instruction.
3118
3119 2004-05-26  Jan Hubicka  <jh@suse.cz>
3120
3121         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
3122         not loop optimizing.
3123
3124 2004-05-26  Jan Hubicka  <jh@suse.cz>
3125
3126         * except.c (can_throw_internal):  Notice RESX instructions.
3127
3128 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
3129
3130         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3131         of the two sizes to assemble_integer.
3132
3133 2004-05-25  Paul Brook  <paul@codesourcery.com>
3134
3135         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3136         pointless #ifdef.
3137
3138 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3139
3140         * Makefile.in (top_builddir): Define to .
3141
3142 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
3143
3144         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3145         top-level detects, except when in-tree ld is being cross-built.
3146         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
3147         then AS only if target is host.
3148         * configure: Rebuilt.
3149
3150 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
3151
3152         * global.c (global_alloc): Call make_accurate_live_analysis.
3153         (record_one_conflict): Remove dead code.
3154         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3155         (bb_info): New structure.
3156         (BB_INFO, BB_INFO_BY_INDEX): New macros.
3157         (allocate_bb_info, free_bb_info, mark_reg_change,
3158         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3159         modify_bb_reg_pav, calculate_reg_pav,
3160         make_accurate_live_analysis): New functions.
3161
3162 2004-05-25  Devang Patel  <dpatel@apple.com>
3163
3164         * alias.c (init_alias_analysis): Use ggc_calloc instead of
3165         xrealloc.
3166         (end_alias_analysis): Use ggc_free instead fo free.
3167
3168 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
3169
3170         PR target/15546
3171         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3172         as needed to be outputted.
3173
3174 2004-05-25  Jan Hubicka  <jh@suse.cz>
3175
3176         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
3177
3178 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
3179         Mostafa Hagog  <mustafa@il.ibm.com>
3180
3181         * Makefile.in (modulo-sched.o, ddg.o): New.
3182         * ddg.h, ddg.c, modulo-sched.c: New files.
3183         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3184         internals to "dupicate_insn".
3185         (duplicate_insn): New function.
3186         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3187         declarations.
3188         * common.opt (fmodulo-sched): New flag.
3189         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3190         Remove static and forward declaration.
3191         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3192         functions.
3193         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3194         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3195         declarations.
3196         * flags.h (flag_modulo_sched): New flag.
3197         * opts.c (common_handle_option): Handle modulo-sched flag.
3198         * params.def (max-sms-loop-number, sms-max-ii-factor,
3199         sms-dfa-history, sms-loop-average-count-threshold): New
3200         parameters.
3201         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3202         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3203         parameters.
3204         * passes.c ("sms", "sms-vcg"): New dumps.
3205         (rest_of_handle_sched): Call sms_schedule.
3206         * rtl.h (sms_schedule): New declaration.
3207         * timevar.def (TV_SMS): New.
3208         * toplev.c (flag_modulo_sched): Initialize.
3209         (f_options): Handle -fmodulo-sched option.
3210         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3211         * docs/passes.texi: Document new SMS pass.
3212
3213 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3214
3215         * Makefile.in (OBJS): Add rtlhooks.o.
3216         (rtlanal.o): Depend on function.h.
3217         (cse.o): Depend on rtlhooks-def.h.
3218         (combine.o): Depend on rtlhooks-def.h.
3219         (rtlhooks.o): New rule.
3220         * combine.c: Include rtlhooks-def.h.
3221         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3222         num_sign_bit_copies, cached_num_sign_bit_copies,
3223         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3224         (reg_nonzero_bits_for_combine,
3225         reg_num_sign_bit_copies_for_combine): New functions holding
3226         the remnants of the above.
3227         (combine_rtl_hooks): New.
3228         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3229         * cse.c: Include rtlhooks-def.h.
3230         (cse_rtl_hooks): New.
3231         (cse_main): Set rtl_hooks instead of gen_lowpart.
3232         * emit-rtl.c (gen_lowpart): Remove.
3233         (gen_lowpart_general): Move to rtlhooks.c.
3234         * rtl.h (nonzero_bits, num_sign_bit_copies,
3235         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3236         (gen_lowpart_general): Remove.
3237         (gen_lowpart): Temporarily redefine as a macro.
3238         * rtlanal.c: Include function.h.
3239         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3240         num_sign_bit_copies, cached_num_sign_bit_copies,
3241         num_sign_bit_copies1): New, from combine.c.
3242         * rtlhooks.c: New file.
3243         * rtlhooks-def.h: New file.
3244
3245 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3246
3247         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3248         to support 32-bit -mint8 mode.
3249
3250         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3251         option in the AVR architecture.
3252
3253 2004-05-24  Mike Stump  <mrs@apple.com>
3254
3255         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3256
3257 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3258
3259         * intl.h (open_quote, close_quote): New.
3260         * intl.c (open_quote, close_quote): New.
3261         (gcc_init_libintl): Set them.
3262         * pretty-print.c: Include "intl.h".
3263         (pp_base_format_text): Support 'q' format flag and %` and %'
3264         formats.  Use ' instead of ` in comments.
3265         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3266         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3267         foramt_types_orig): Describe these new formats.
3268         (decode_format_attr, check_function_format,
3269         check_format_info_main): Use these new formats.
3270         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3271         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3272         check these formats to 3.5.
3273
3274 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3275
3276         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3277         (BACKEND): Reflect this.
3278         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3279         (LIBS): Likewise.
3280
3281 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3282
3283         PR tree-optimization/14197
3284         * builtins.c: Include "tree-gimple.h"
3285         (readonly_data_expr): Use get_base_address.  Make sure to call
3286         decl_readonly_section only on trees it can handle.
3287         * tree-gimple.c (get_base_address): Accept STRING_CST and
3288         CONSTRUCTOR expressions.
3289         * Makefile.in: Update dependencies.
3290
3291 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3292
3293         Move libcpp to the toplevel.
3294         * Makefile.in: Remove references to libcpp files,
3295         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3296         and change hashtable.h to that.
3297         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3298         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3299         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3300         * configure: Regenerate.
3301         * config.in: Regenerate.
3302         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3303         * cppcharset.c: Removed.
3304         * cpperror.c: Removed.
3305         * cppexp.c: Removed.
3306         * cppfiles.c: Removed.
3307         * cpphash.c: Removed.
3308         * cpphash.h: Removed.
3309         * cppinit.c: Removed.
3310         * cpplex.c: Removed.
3311         * cpplib.c: Removed.
3312         * cpplib.h: Removed.
3313         * cppmacro.c: Removed.
3314         * cpppch.c: Removed.
3315         * cpptrad.c: Removed.
3316         * cppucnid.h: Removed.
3317         * cppucnid.pl: Removed.
3318         * cppucnid.tab: Removed.
3319         * hashtable.c: Removed.
3320         * hashtable.h: Removed.
3321         * line-map.c: Removed.
3322         * line-map.h: Removed.
3323         * mkdeps.c: Removed.
3324         * mkdeps.h: Removed.
3325         * stringpool.h: Include symtab.h instead of hashtable.h.
3326         * tree.h: Include symtab.h instead of hashtable.h.
3327         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3328
3329 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3330
3331         * gcc.c (struct prefix_list): Add forward declaration.
3332         (do_spec_path): New function, extracted from...
3333         (do_spec_1) <'D'>: ... here.  Drop support for
3334         SPACE_AFTER_L_OPTION.
3335         (do_spec_1) <'I'>: Use do_spec_path.
3336         (process_command): Do not store the 'include' suffix
3337         in include_prefixes.
3338         * system.h: Poison SPACE_AFTER_L_OPTION.
3339
3340 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3341
3342         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3343         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3344
3345 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3346
3347         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3348         Update based on printed manual.  Enable setting of offsets for
3349         FSFPRINT and move it to gcc-common.texi.
3350         * doc/gcc.texi: Update FSF printing details.
3351         * doc/gccint.texi: Remove FSF printing details.
3352
3353 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3354
3355         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3356
3357 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3358
3359         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3360         expand_builtin_strrchr, expand_builtin_strpbrk,
3361         expand_builtin_mempcpy, expand_builtin_memcmp,
3362         expand_builtin_strcmp, expand_builtin_strncmp,
3363         expand_builtin_strcat, std_expand_builtin_va_start,
3364         std_expand_builtin_va_arg, expand_builtin_va_copy,
3365         expand_builtin_signbit, fold_builtin_cabs,
3366         fold_builtin_logarithm, fold_builtin_mempcpy,
3367         fold_builtin_signbit, fold_builtin_isascii,
3368         fold_builtin_toascii, fold_builtin_isdigit,
3369         fold_builtin_1, build_function_call_expr,
3370         simplify_builtin_strchr, simplify_builtin_strrchr,
3371         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3372         simplify_builtin_memcmp, simplify_builtin_strcmp,
3373         simplify_builtin_strncmp, simplify_builtin_strncat,
3374         simplify_builtin_strspn, simplify_builtin_strcspn,
3375         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3376         to build with calls to build2, build3 or omit_one_operand.
3377
3378 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3379
3380         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3381         section when generating EABI code.
3382
3383 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3384
3385         PR 15546
3386         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3387         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3388
3389 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3390
3391         * c-common.c (c_common_truthvalue_conversion): Handle
3392         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3393         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3394         i.e. set the type to truthvalue_type_node and return.
3395
3396 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3397
3398        * tree.h (struct tree_decl): Add possibly_inlined bit.
3399         (DECL_POSSIBLY_INLINED): New accessor macro.
3400         * cgraph.h: Remove declaration of cgraph_inline_hash.
3401         * cgraph.c: Remove definition of cgraph_inline_hash.
3402         (hash_node): Revert to hashing DECL_UID.
3403         (eq_node): Take two pointers to cgraph_node structures.
3404         Compare DECL_UIDs.
3405         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3406         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3407         hash on DECL_UID.
3408         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3409         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3410         (cgraph_node): Allocate a temporary node on the stack, fill in
3411         its DECL field, and pass that to htab_find_slot.
3412         (cgraph_varpool_node): Likewise.
3413         (cgraph_function_possibly_inlined_p): If global info is ready,
3414         return the DECL_POSSIBLY_INLINED bit.
3415         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3416         instead of mucking with cgraph_inline_hash.
3417
3418 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3419
3420         * doc/contrib.texi: Add g77 contributors.
3421
3422 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3423
3424         * calls.c (initialize_argument_information): Forbid sibcalls if a
3425         callee-copied argument is stored in the current function's frame.
3426
3427 2004-05-22  Eric Christopher  <echristo@redhat.com>
3428
3429         * fix-header.c (read_scan_file): Update for add_path change.
3430
3431 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3432
3433         * c.opt (Wmissing-include-dirs): New.
3434         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3435         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3436         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3437         * c-incpath.h (add_path): Add fourth (bool) argument.
3438         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3439         (add_standard_paths): Likewise.
3440         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3441         is used and the directory was user-supplied via -I.
3442         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3443         using add_cpp_dir_path ().
3444         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3445         (struct cpp_dir): Add user_supplied_p.
3446         * doc/invoke.texi (Warning Options): Document new option.
3447
3448 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3449
3450         * fold-const.c (fold_read_from_constant_string): Convert result to
3451         requested type.
3452
3453 2004-05-21  Richard Henderson  <rth@redhat.com>
3454
3455         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3456         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3457         Don't mark VA_ARG_EXPRs volatile here.
3458         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3459
3460 2004-05-21  Richard Henderson  <rth@redhat.com>
3461
3462         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3463         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3464
3465 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3466
3467         * fold-const.c (fold, fold_relational_hi_lo,
3468         nondestructive_fold_binary_to_constant,
3469         fold_read_from_constant_string): Use fold_convert instead of convert.
3470         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3471         simplify_builtin_strchr, simplify_builtin_strrchr,
3472         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3473
3474 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3475
3476         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3477         is NULL.
3478
3479 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3480
3481         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3482         override sparc.h definition.
3483
3484 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3485
3486         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3487         get_unwidened, get_narrower): Replace build with build2.
3488         * fold-const.c (negate_expr, associate_trees, size_binop,
3489         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3490         pedantic_omit_one_operand, distribute_bit_expr,
3491         make_bit_field_ref, optimize_bit_field_compare,
3492         decode_field_reference, range_binop, make_range,
3493         build_range_check, fold_range_test, fold_truthop,
3494         optimize_minmax_comparison, extract_muldiv_1,
3495         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3496         fold_inf_compare, fold_single_bit_test, fold,
3497         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3498         Likewise replace build with either build2 or build3.
3499
3500 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3501
3502         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3503         * calls.c (prepare_call_address): Don't test
3504         NO_RECURSIVE_FUNCTION_CSE.
3505         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3506         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3507         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3508         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3509         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3510         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3511         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3512         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3513         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3514         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3515         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3516         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3517         Likewise.
3518         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3519         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3520         * doc/tm.texi (Costs): Remove documentation for
3521         NO_RECURSIVE_FUNCTION_CSE.
3522
3523 2004-05-20  Paul Brook  <paul@codesourcery.com>
3524
3525         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3526         * unwind-dw2.c (extract_cie_info): Ditto.
3527         (_Unwind_FrameState): Change retaddr_column to word type.
3528
3529 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3530
3531         PR middle-end/3074
3532         * fold-const.c (strip_compound_expr): Delete function.
3533         (count_cond): Delete function.
3534         (fold_binary_op_with_conditional_arg): Only perform transformations
3535         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3536         when a is constant.  This greatly simplifies this routine.
3537
3538         * tree.c (saved_expr_p): Delete function.
3539         * tree.h (saved_expr_p): Delete function prototype.
3540
3541 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3542
3543         * common.opt (ftree-loop-optimize): Remove.
3544
3545 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3546
3547         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3548         (NM_FOR_TARGET): Use := and $(shell).
3549         (mainversion): Remove unused variable.
3550
3551 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3552
3553         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3554         sequence containing the insn to be deleted, always reemit it.
3555
3556 2004-05-20  Richard Henderson  <rth@redhat.com>
3557
3558         PR 15454
3559         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3560         * function.c (expand_function_start): Expand static_chain_decl by hand.
3561         * gimplify.c (create_tmp_var_name): Export.
3562         * tree-gimple.h (create_tmp_var_name): Declare.
3563
3564 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3565
3566         * rs6000.c (print_operand) <case 'z'>: Call
3567         mark_decl_referenced before assemble_name.
3568
3569 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3570
3571         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3572         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3573         (cgraph_varpool_node): Hash on the pointer to the decl, not
3574         the DECL_UID.  Fixes 64-bit bootstrap failure.
3575
3576 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3577
3578         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3579         we don't earlyclobber operands used in the second insn.
3580
3581 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3582
3583         * tree-mudflap.c: Formatting fixes.
3584
3585 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3586
3587         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3588         * gengtype.c (open_base_files): Include reload.h in ifiles.
3589         * reload.h (reg_equiv_memory_loc_varray): Declare.
3590         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3591         (init_reload): Initialize it.
3592         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3593         reg_equiv_memory_loc_varray to size 0.
3594         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3595         growing reg_equiv_memory_loc_varray to the desired size.
3596         * passes.c (rest_of_handle_old_regalloc): Likewise.
3597         * reload.c: Amend comment on calling init_reload.
3598
3599 2004-05-20  Nick Clifton  <nickc@redhat.com>
3600
3601         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3602         with 'TRAMP' in the body of the macro definition.
3603
3604 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3605
3606         PR target/15383
3607         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3608         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3609         cmptf_libfunc isn't set.
3610         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3611         conventions.
3612         (ia64_sysv4_init_libfuncs): New.
3613
3614         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3615         ia64_sysv4_init_libfuncs.
3616
3617 2004-05-20  Falk Hueffner  <falk@debian.org>
3618
3619         PR other/15526
3620         * libgcc2.c (__mulvsi3): Fix overflow test.
3621
3622 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3623
3624         PR c/14171
3625         * reg-stack.c (nan): Rename to ...
3626         (not_a_num): Here.
3627         (reg_to_stack): Rename nan to not_a_num.
3628         (subst_stack_regs_pat): Likewise.
3629         (convert_regs_entry): Likewise.
3630         (convert_regs_1): Likewise.
3631
3632         * tree-cfg.c (find_case_label_for_value): Replace call to
3633         simple_cst_equal with tree_int_cst_equal.
3634
3635 2004-05-19  Jeff Law <law@redhat.com>
3636
3637         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3638         If the operand is for a use, then strip away the SSA_NAME, do not
3639         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3640         (mark_def_sites): Appropriately pass additional argument to
3641         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3642         then set the VDEF_RESULT to the VDEF_OP.
3643         (set_def_block): Strip away any SSA_NAME to get to the real
3644         underlying variable.
3645
3646         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3647         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3648         BB directly.
3649
3650 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3651
3652         PR c++/15463
3653         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3654         result of inverse.
3655
3656         PR rtl-optimization/15274
3657         * loop-iv.c (determine_max_iter, shorten_into_mode,
3658         iv_number_of_iterations): Handle constants correctly.
3659         * rtl.h (get_mode_bounds): Declaration changed.
3660         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3661         the target mode.
3662
3663         PR rtl-optimization/14692
3664         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3665         (unswitch_single_loop): Work correctly when may_unswitch_on
3666         returns a folded constant.
3667
3668         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3669         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3670         comparisons with mode bounds.
3671
3672         * function.c (struct temp_slot): Add new field prev.
3673         (free_after_compilation, init_temp_slots): Free new fields.
3674         (cut_slot_from_list, insert_slot_to_list,
3675         temp_slots_at_level, max_slot_level, move_slot_to_level,
3676         make_slot_available): New functions.
3677         (assign_stack_temp_for_type, combine_temp_slots,
3678         find_temp_slot_from_address, preserve_temp_slots,
3679         preserve_rtl_expr_result, free_temp_slots,
3680         free_temps_for_rtl_expr, pop_temp_slots): Work with
3681         the new structure of lists.
3682         (mark_all_temps_used): Removed.
3683         * function.h (struct function): Field x_temp_slots
3684         replaced by x_used_temp_slots and x_avail_temp_slots.
3685         (temp_slots): Replaced by ...
3686         (used_temp_slots, avail_temp_slots): New.
3687         * tree.h (mark_all_temps_used): Declaration removed.
3688
3689         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3690         simplify_using_assignment): Take the expression out of
3691         the expr_list wrapper.
3692
3693         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3694         infinite loops.
3695
3696 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3697
3698         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3699         costs should be based on code size when optimizing for size.
3700
3701 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3702
3703         * fold-const.c: Remove non-printable character 160.
3704
3705 2004-05-19  Nick Clifton  <nickc@redhat.com>
3706
3707         * doc/invoke.texi (ARM Options): Fix typo.
3708         Remove descrption of -mshort-load-bytes and
3709         -mno-short-load-bytes.
3710
3711         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3712         missing parenthesis.
3713         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3714         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3715
3716 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3717
3718         * expr.c (store_constructor): Build loop start and end by hand
3719         instead of via loop functions from stmt.c.
3720         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3721         Remove the code to expand them.
3722
3723         * stmt.c (loop_stack): Remove this and everything related.
3724         (struct nesting, enum nesting_desc): Update.
3725         (expand_fixup): Likewise.
3726         (expand_loop_start, expand_start_loop_continue_elsewhere,
3727         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3728         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3729         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3730         expand_exit_something): Remove.
3731         * tree.h: Remove prototypes.
3732
3733 2004-05-18  Mike Stump  <mrs@apple.com>
3734             Devang Patel  <dpatel@apple.com>
3735
3736         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3737         if this label is for eh.
3738         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3739         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3740         * dwarf2out.c (output_call_frame_info): Likewise.
3741         * output.h (default_emit_unwind_label): Likewise.
3742         * target.h (unwind_label): Likewise.
3743         * varasm.c (default_emit_unwind_label): Likewise.
3744
3745         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3746         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3747         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3748         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3749         DEBUG_RANGES_SECTION): Define.
3750
3751 2004-05-18  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):
3756         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3757         (cgraph_function_possibly_inlined_p): Use the decl itself for
3758         the key, not DECL_ASSEMBLER_NAME.
3759         (change_decl_assembler_name): No need to muck with the hash tables.
3760         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3761         Delete.
3762         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3763         for the key, not DECL_ASSEMBLER_NAME.
3764         * cgraph.h: Remove prototypes of deleted functions.
3765         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3766         (mark_decl_referenced): New function.
3767         * tree.h: Prototype mark_decl_referenced.
3768         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3769         mark_decl_referenced before assemble_name.
3770         * c-decl.c (finish_decl): Use mark_decl_referenced.
3771
3772 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3773             Jeff Law <law@redhat.com>
3774
3775         * tree-ssa-phiopt.c (abs_replacement): New function.
3776         (empty_block_p): New function extracted from...
3777         (candidate_bb_for_phi_optimization): Break out empty block test.
3778         (conditional_replacement): Use empty_block_p.
3779         (value_replacement): Similarly.
3780
3781         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3782         * tree-ssa-phiopt.c: Include flags.h.
3783         (conditional_replacement): Remove argument names from prototype.
3784         Minor formatting and comment fixes.
3785         (tree_ssa_phiopt): If conditional_replacement returns false, then
3786         call value_replacement.
3787         (value_replacement): New function.
3788
3789 2004-05-18  Jeff Law  <law@redhat.com>
3790
3791         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3792         from conditional_replacement.
3793         (candidate_bb_for_phi_optimization): Similarly.
3794         (conditional_replacement): Use replace_phi_with_stmt and
3795         candidate_bb_for_phi_optimization.
3796
3797         * tree-ssa-phiopt.c: Fix various formatting issues.
3798
3799 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3800
3801         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3802         s390_expand_cmpmem): Do not use expand_start_loop and
3803         expand_end_loop, instead build the loop manually.
3804
3805 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3806
3807         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3808         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3809
3810 2004-05-17  Jeff Law  <law@redhat.com>
3811
3812         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3813         * flags.h (flag_delete_null_pointer_checks): Here.
3814         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3815         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3816         (add_phi_arg, remove_phi_arg_num): Similarly.
3817         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3818         property into PHI nodes.
3819         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3820         (record_equivalences_from_phis): If all PHI arguments are known to be
3821         nonzero, then the result must be nonzero as well.
3822         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3823         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3824         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3825         as appropriate.
3826         * tree.h (PHI_ARG_NONZERO): Define.
3827         (phi_arg_d): Add nonzero flag.
3828
3829 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3830
3831         * f: Entire directory removed
3832
3833         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3834         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3835         (g77_integer_type_node, g77_uinteger_type_node)
3836         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3837         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3838         the above set of variables.
3839
3840         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3841         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3842         to g77 manual.
3843
3844 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3845
3846         PR tree-optimization/15438
3847         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3848         attributed functions as pure or const.
3849
3850 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3851
3852         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3853         from source code with errors.
3854
3855 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3856
3857         Enable tree browser for all front ends.
3858         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3859         (BACKEND): ...to here.
3860
3861 2004-05-17  Jan Hubicka  <jh@suse.cz>
3862
3863         * i386.c (construct_container): Do not produce BLKmode registers.
3864         (classify_argument): Properly compute alignment of complex types.
3865
3866 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3867
3868         PR target/15084
3869         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3870         and renamed to movdi_insv_1_rex64.
3871         (insv): Support SImode for 32bit and DImode for 64bit.
3872
3873 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3874
3875         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3876         (TARGET_SWITCHES): Remove debugg.
3877         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3878         TARGET_64BIT.
3879         (subdi3): Replace the define_expand with a define_insn, the latter
3880         renamed from subdi3_internal_3.
3881         (negdi2): Likewise negdi2_internal_2.
3882         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3883         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3884         and associated define_splits.
3885         (adddi3_internal): Renamed from adddi3_internal_3.
3886         (ashldi3_internal): Likewise ashldi3_internal4.
3887         (ashrdi3_internal): Likewise ashrdi3_internal4.
3888         (lshrdi3_internal): Likewise lshrdi3_internal4.
3889
3890 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3891
3892         * optabs.c (expand_unop): Try implementing negation using subtraction
3893         from zero.
3894
3895 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3896
3897         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3898         SAR register.
3899
3900 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3901
3902         PR target/10982
3903         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3904         (ne_zeroextractsi_shifted): New pattern.
3905         (ite_ne_zeroextractsi): New pattern.
3906         (ite_ne_zeroextractsi_shifted): New pattern.
3907
3908 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3909
3910         * c-gimplify.c (c_genericize):
3911         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3912         * c-parse.in <expr_no_commas>: Likewise.
3913         <if_prefix>: Likewise.
3914         <select_or_iter_stmt>: Likewise.
3915         * expr.c (expand_var, expand_expr_real_1): Likewise.
3916         * expr.h (expand_expr): Make it a static inline function.
3917         Move prototype for expand_expr_real up before this.
3918         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3919         Likewise.
3920         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3921         gimplify_asm_expr, gimplify_expr): Likewise.
3922         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3923         dump_function_to_file): Likewise.
3924         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3925         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3926         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3927         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3928         Likewise.
3929         * tree-optimize.c (execute_one_pass): Likewise.
3930         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3931         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3932
3933         * objc/objc-act.c (objc_build_try_enter_fragment,
3934         objc_build_try_epilogue, objc_build_catch_stmt,
3935         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3936         with lang_hooks.foo ().
3937
3938 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3939
3940         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3941         that simplify_builtin doesn't destructively modify its argument.
3942
3943 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3944
3945         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3946         implementations for ARM and Thumb.
3947         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3948
3949 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3950
3951         * prefix.c (update_path): Replace PREFIX with KEY only
3952         when it matches a full directory name in PATH.
3953
3954 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3955
3956         * arm.h (TARGET_APCS_32): Delete.
3957         (TARGET_MMU_TRAPS): Delete.
3958         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3959         define __APCS_26__.
3960         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3961         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3962         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3963         (prog_mode_type): Delete.
3964         (PROMOTE_MODE): Always promote unsigned for HImode.
3965         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3966         (MASK_RETURN_ADDR): Simplify.
3967         * arm.c (arm_prgmode): Delete.
3968         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3969         (print_multi_reg, output_return_instruction): Simplify.
3970         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3971         (arm_return_addr): Simplify.
3972         * arm.md (prog_mode): Delete.
3973         (conds): Simplify.
3974         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3975         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3976         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3977         (loadhi_shiftpredec): Delete.
3978         (peephole for post-increment on HImode load): Delete.
3979         * arm/crtn.asm: (FUNC_END): Simplify.
3980         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3981         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3982         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3983         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3984         MULTILIB_DEFAULTS as required.
3985         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3986         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3987         variables as required.
3988         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3989
3990 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3991
3992         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3993         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3994         count to 8 to handle n_reg > 2.
3995
3996 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3997
3998         * doc/extend.texi: Update WG14 URL.
3999
4000 2004-05-15  Steven Bosscher  <stevenb@suse.de>
4001
4002         * basic-block.h (life_analysis, delete_noop_moves):
4003         Update prototypes.
4004         * bt-load.c (branch_target_load_optimize): Don't take the
4005         insns stream as an argument.  Update the life_analysis calls.
4006         * combine.c (combine_instructions): Update delete_noop_moves
4007         calls.
4008         * flow.c (notice_stack_pointer_modification): Don't take the
4009         insns stream as an argument.  Work on the flow graph.
4010         (life_analysis): Likewise.
4011         (delete_noop_moves): Likewise.
4012         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
4013         (rest_of_handle_life): Update life_analysis call.
4014         (rest_of_compilation): Likewise, and also update
4015         branch_target_load_optimize call.
4016         * ra.c (reg_alloc): Update life_analysis call.
4017         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
4018         the insns stream as an argument.
4019         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
4020         call.
4021         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
4022         prototypes.
4023         * value-profile.c (branch_prob): Update life_analysis call.
4024         * web.c (web_main): Work on the CFG, not on the insns stream.
4025
4026         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
4027         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
4028         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4029
4030 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
4031
4032         PR c/15444
4033         * c-format.c (avoid_dollar_number): New function.
4034         (check_format_info_main): Call avoid_dollar_number when operand
4035         numbers might occur but has_operand_number == 0.
4036
4037 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
4038
4039         * arm.md (all peephole2 patterns): Use predicates that validate
4040         register classes as appropriate.
4041
4042 2004-05-14  Steven Bosscher  <stevenb@suse.de>
4043
4044         PR opt/14472
4045         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
4046         ignore type conversions that do not inhibit tail calling.
4047         (find_tail_calls): Likewise.
4048
4049 2004-05-14  Jeff Law  <law@redhat.com>
4050
4051         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
4052         bother marking bypassed virtuals for out-of-ssa.  Instead merge
4053         bypassed virtuals into vars_to_rename just before into-ssa pass.
4054
4055         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
4056         so that it picks up more opportunities to eliminate ABS expressions
4057         or turn them into negations.
4058
4059 2004-05-14  Steven Bosscher  <stevenb@suse.de>
4060
4061         * passes.c (rest_of_handle_null_pointer): Remove.
4062         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
4063         (rest_of_compilation): Likewise.
4064         * rtl.h (delete_null_pointer_checks): Remove prototype.
4065         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
4066         Remove declarations.
4067         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
4068         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
4069         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
4070         expr_reaches_here_p, computing_insn, def_reaches_here_p,
4071         can_disregard_other_sets, handle_avail_expr, classic_gcse,
4072         one_classic_gcse_pass, invalidate_nonnull_info,
4073         delete_null_pointer_checks_1, delete_null_pointer_checks,
4074         expr_reached_here_p_work): Remove.
4075         (gcse_main): Do not perform classic GCSE when optimizing for size.
4076         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
4077         are never used.
4078
4079 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
4080
4081         PR optimization/14466
4082         * tree-complex.c (make_temp): Remove.
4083         (gimplify_val): Replace make_temp with make_rename_temp
4084         and add NULL as the second argument.
4085         (expand_complex_div_wide): Likewise.
4086         * tree-dfa.c (make_rename_temp): New function.
4087         * tree-flow.h (make_rename_temp): Declare.
4088         * tree-sra.c (make_temp): Remove.
4089         (lookup_scalar): Replace make_temp with make_rename_temp.
4090         (create_scalar_copies): Likewise.
4091         * tree-ssa-phiopt.c (conditional_replacement): When we
4092         get non gimple create a temporary variable to hold the
4093         casted expression.
4094
4095 2004-05-14  Paul Brook  <paul@codesourcery.com>
4096
4097         * stor-layout.c (update_alignment_for_field): Use
4098         targetm.align_anon_bitfield.
4099         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
4100         (TARGET_INITIALIZER): Use it.
4101         * target.h (struct gcc_target): Add align_anon_bitfield.
4102         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
4103         (TARGET_ALIGN_ANON_BITFIELD): Define.
4104         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
4105
4106 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
4107
4108         * tree.def (documentation): Remove mention of class 'b'.
4109         (BLOCK): Now in class 'x'.
4110         * c-common.c (verify_tree): Remove case 'b'.
4111         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
4112         * calls.c (calls_function_1): Control cannot get past the switch
4113         when exp is a BLOCK.
4114         * print-tree.c (print_node): Move code for class 'b' to the class
4115         'c'/'x' switch, as case BLOCK.
4116         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
4117         (unsafe_for_reeval, substitute_placeholder_in_expr)
4118         (stabilize_reference_1): Remove case 'b'.
4119         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
4120         of something being 'b' to tests for TREE_CODE of something being
4121         BLOCK.
4122         * tree-ssa-operands.c (get_expr_operands): Likewise.
4123
4124 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4125
4126         * tree-gimple.c: Rename from tree-simple.c.
4127         * tree-gimple.h: Rename from tree-simple.h.
4128         * c-gimplify.c: Rename from c-simplify.c
4129         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
4130         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
4131         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
4132         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
4133         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
4134         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
4135         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
4136         Update.
4137
4138 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
4139
4140         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
4141
4142 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4143
4144         * tree-ssa.c (delete_tree_ssa): XFREE
4145         bitmaps allocated with BITMAP_XMALLOC.
4146
4147         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
4148         idfs_cache at the end of the function.
4149
4150         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
4151         at the end of the function.
4152
4153         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
4154         el at the end of the function.
4155
4156         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
4157         bitmaps allocated with BITMAP_XMALLOC.
4158
4159         * loop-unswitch.c (unswitch_single_loop): Free bbs at
4160         the end.
4161
4162         * final.c (shorten_branches): Free uid_shuid before
4163         reallocating it.
4164
4165         * bb-reoder.c (connect_traces): Free cold_traces at the end.
4166
4167 2004-05-13  Jeff Law  <law@redhat.com>
4168
4169         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
4170         variables.  Simplify slightly by using USE_OP/DEF_OP instead
4171         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
4172
4173         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
4174         rather than iterating through the blocks testing each bit in
4175         livein to initialize the worklist.
4176         (mark_def_sites): Remove useless checks of KILLS for virtual
4177         operands.
4178
4179         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
4180         new parameters for the statement and variable worklist as well
4181         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
4182         worklist recording interesting variables in the variable worklist
4183         and bitmap.  Handle casts between integral and boolean types.
4184         (substitute_single_use_vars): Accept new parameters for the statement
4185         and variable worklist.  When a substitution is made add a new
4186         entry to the statement worklist.  Handle casts between integral
4187         and boolean types.
4188         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
4189         worklists to children.  Iterate until the statement worklist
4190         is empty.
4191
4192 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4193
4194         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
4195         the end of the block.
4196
4197         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
4198         with BITMAP_XMALLOC.
4199
4200         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
4201         with BITMAP_XMALLOC.
4202
4203         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4204         Free nonzero_vars at the end of the function.
4205
4206         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4207         need to generate code instead of a NOP_EXPR.
4208
4209 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
4210
4211         * gcc.c (default_compilers): Fill out initializers for new Fortran
4212         entries.
4213
4214 2004-05-13  Paul Brook  <paul@codesourcery.com>
4215
4216         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4217
4218 2004-05-13  Paul Brook  <paul@codesourcery.com>
4219
4220         * config/arm/arm.c (arm_default_short_enums): New function.
4221         (TARGET_DEFAULT_SHORT_ENUMS): Define.
4222
4223 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4224
4225         Merge from tree-ssa-20020619-branch.
4226
4227         * Makefile.in (reload1.o-warn): Add.
4228         (tree-alias-ander.o-warn): Add.
4229         (GMPLIBS): Define.
4230         (GMPINC): Define.
4231         (BANSHEELIB): Define.
4232         (BANSHEEINC): Define.
4233         (TREE_DUMP_H): Define.
4234         (TREE_SIMPLE_H): Define.
4235         (TREE_FLOW_H): Define.
4236         (LIBDEPS): Add BANSHEELIB.
4237         (INCLUDES): Add BANSHEEINC and GMPINC.
4238         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4239         c-mudflap.o and c-pretty-print.o.
4240         (C_OBJS): Remove c-pretty-print.o.
4241         (OBJS-common): Remove sibcall.o.
4242         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4243         tree-ssa.o, tree-optimize.o, tree-simple.o,
4244         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4245         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4246         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4247         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4248         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4249         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4250         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4251         tree-tailcall.o, gimple-low.o, tree-iterator.o,
4252         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4253         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4254         tree-profile.o.
4255         (OBJC-archive): Add tree-nomudflap.o.
4256         (cc1): Add dependency on @TREEBROWSER@.
4257         (c-decl.o): Add dependency on TREE_DUMP_H.
4258         (c-dump.o): Likewise.
4259         (c-common.o): Add dependency on tree-iterator.h
4260         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4261         (gtype-desc.o): Add dependency on TREE_FLOW_H.
4262         (tree.o): Add dependency on tree-iterator.h,
4263         BASIC_BLOCK_H and TREE_FLOW_H.
4264         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4265         (langhooks.o): Add dependency on TREE_SIMPLE_H.
4266         (tree-alias-type.o, tree-alias-ander.o,
4267         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4268         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4269         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4270         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4271         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4272         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4273         tree-nested.o, tree-iterator.o, tree-dfa.o,
4274         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4275         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4276         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4277         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4278         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4279         tree-sra.o, tree-complex.o, tree-profile.o,
4280         rtl-profile.o): New rules.
4281         (function.o): Add dependency on basic-block.h
4282         (expr.o): Add dependency on tree-iterator.h.
4283         (sibcall.o): Remove.
4284         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4285         (cfg.o): Add dependency on TIMEVAR_H.
4286         (cfghooks.o): Add dependency on TREE_FLOW_H.
4287         (reg-stack.o): Add dependency on basic-block.h.
4288         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4289         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4290         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4291         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4292         tree-alias-type.h, tree-alias-common.h,
4293         tree-alias-type.c, tree-alias-common.c,
4294         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4295         rtl-profile.c and tree-nested.c.
4296         (gt-tree-alias-common.h, gt-tree-mudflap.h,
4297         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4298         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4299         gt-tree-cfg.h, gt-tree-nested.h): New rules.
4300         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4301         * basic-block.h: Include predict.h
4302         (struct edge_def): Add GTY marker.
4303         Change field 'insns' to be a union of tree and rtx.
4304         (EDGE_TRUE_VALUE): Define.
4305         (EDGE_FALSE_VALUE): Define.
4306         (EDGE_EXECUTABLE): Define.
4307         (struct bb_ann_d): Forward declare.
4308         (struct basic_block_def): Add GTY marker.
4309         Remove fields head_tree and end_tree.
4310         Add fields stmt_list, rbi and tree_annotations.
4311         (struct reorder_block_def): Define.
4312         (basic_block_info): Add GTY marker.
4313         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4314         variables instead of macros.
4315         (flow_call_edges_add): Remove declaration.
4316         (make_eh_edge): Remove declaration.
4317         (brief_dump_cfg, find_edge, tree_predicted_by_p,
4318         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4319         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4320         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4321         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4322         (try_redirect_by_replacing_jump): Modfiy return type to
4323         edge instead of bool.
4324         * bb-reorder.c (copy_bb): Call duplicate_block
4325         instead of cfg_layout_duplicate_bb.
4326         (copy_bb_p): Call can_duplicate_block_p instead of
4327         cfg_layout_can_duplicate_bb_p.
4328         * bitmap.c (bitmap_first_set_bit): Abort if word
4329         wasn't found.
4330         (bitmap_last_set_bit): Likewise.
4331         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4332         (DEF_FUNCTION_TYPE_3): Add.
4333         * builtins.c (c_strlen): Make extern.
4334         (builtin_save_expr): New.
4335         (expand_builtin_nonlocal_goto): New.
4336         (expand_builtin_constant_p): Remove.
4337         (expand_builtin_mathfn): Call builtin_save_expr instead
4338         of save_expr.
4339         (expand_builtin_mathfn_2): Likewise.
4340         (expand_builtin_strcmp): Likewise.
4341         (expand_builtin_strncmp): Likewise.
4342         (expand_builtin_strcat): Likewise.
4343         (fold_builtin_cabs): Likewise.
4344         (expand_builtin_alloca): Don't trigger if -fmudflap is
4345         given.
4346         (build_string_literal): Set TREE_INVARIANT on new node.
4347         (expand_builtin_profile_fun): New.
4348         (round_trampoline_addr): New.
4349         (expand_builtin_init_trampoline): New.
4350         (expand_builtin_adjust_trampoline): New.
4351         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4352         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4353         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4354         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4355         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4356         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4357         Handle.
4358         (fold_builtin_expect): New.
4359         (fold_builtin_isascii): Don't return non-constant results
4360         in GIMPLE form.
4361         (fold_builtin_isdigit): Likewise.
4362         (fold_builtin_1): New.
4363         (fold_builtin): Call it.
4364         (build_function_call_expr): Update call to build a new
4365         CALL_EXPR.
4366         (purge_builtin_constant_p): Remove.
4367         (simplify_builtin, simplify_builtin_memcmp,
4368         simplify_builtin_strcmp, simplify_builtin_strncmp,
4369         simplify_builtin_strpbrk, simplify_builtin_strstr,
4370         simplify_builtin_strchr, simplify_builtin_strrchr,
4371         simplify_builtin_strcat, simplify_builtin_strncat,
4372         simplify_builtin_strspn, simplify_builtin_strcspn,
4373         simplify_builtin_next_arg, simplify_builtin_va_start,
4374         simplify_builtin_sprintf): New.
4375         * builtins.def (BUILT_IN_STACK_ALLOC,
4376         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4377         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4378         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4379         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4380         * c-common.c: Include tree-iterator.h and hashtab.h.
4381         (lang_statement_code_p): Declare.
4382         (lang_gimplify_stmt): Declare.
4383         (fix_string_type): Set TREE_INVARIANT for value.
4384         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4385         (c_type_hash): New.
4386         (c_common_get_alias_set): Handle multiple type nodes
4387         referring to "the same" type, currently for C90 only.
4388         (c_add_case_label): Use create_artificial_label.
4389         (finish_label_address_expr): Don't set TREE_CONSTANT on
4390         result.
4391         (c_expand_expr): Don't handle STMT_EXPR.
4392         (handle_alias_attribute): Marke aliased variables to be
4393         TREE_STATIC.
4394         (handle_nonnull_attribute): Initialize arg_num.
4395         (check_function_nonnull): Likewise.
4396         (c_walk_subtrees): New.
4397         (c_estimate_num_insns_1): Don't handle
4398         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4399         (c_decl_uninit_1): Remove.
4400         (c_decl_uninit): Remove.
4401         (c_warn_unused_result): New.
4402         * c-common.def (ASM_STMT): Change number of operands
4403         to 4.
4404         (FILE_STMT): Remove.
4405         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4406         Remove.
4407         (lang_gimplify_stmt): Add.
4408         (expand_stmt): Remove.
4409         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4410         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4411         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4412         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4413         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4414         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4415         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4416         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4417         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4418         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4419         genrtl_compound_stmt, genrtl_asm_stmt,
4420         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4421         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4422         c_tree_chain_matters_p, c_warn_unused_result,
4423         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4424         Declare.
4425         * c-convert.c (convert): Make convert work when
4426         converting to compatible types across translation unit.
4427         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4428         tree-simple.h, diagnostic.h and tree-dump.h
4429         (merge_decls): Initialize oldtype to NULL.
4430         (finish_decl): Use DECL_HARD_REGISTER instead of
4431         DECL_C_HARD_REGISTER.
4432         (check_bitfield_type_and_width): Check for null
4433         lang_type_specific when check the precision of an enum.
4434         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4435         in a pointer-to-array declarator.
4436         (finish_struct): Clear allocated struct lang_type.
4437         (finish_enum): Set enum_min and enum_max.  Set
4438         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4439         not to the enumerators.
4440         (set_decl_nonlocal): New.
4441         (store_parm_decls): Use it via walk_tree.
4442         (c_finalize): New.
4443         (finish_function): When !targetm.have_ctors_dtors,
4444         record static constructors and destructors here...
4445         (c_expand_body_1): ... not here.
4446         (c_expand_decl): Rename from c_expand_decl_stmt.
4447         Handle all C-specific expansion semantics.
4448         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4449         STMT_LINENO.
4450         * c-format.c (handle_format_arg_attribute): Initialize
4451         format_num.
4452         * c-lang.c: Include tree-inline.h
4453         (LANG_HOOKS_EXPAND_DECL,
4454         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4455         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4456         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4457         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4458         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4459         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4460         (c_types_compatible_p): New.
4461         * c-mudflap.c: New file.
4462         * c-objc-common.c: Include tree-mudflap.h
4463         (start_cdtor, finish_cdtor): Collapse
4464         together into
4465         (build_cdtor): ...here.  Update to construct a complete tree
4466         for the function.  No need to call push_scope, pop_scope, or
4467         clear_last_expr, or set current_function_cannot_inline.
4468         (c_missing_noreturn_ok_p): Change prototype to return
4469         bool.
4470         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4471         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4472         opts.c.
4473         (c_common_post_options): Don't ever use rtl inlining.
4474         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4475         * c-pragma.c (handle_pragma_redefine_extname): Define
4476         always.
4477         (init_pragma): Activate #pragma redefine_extname for mudflap.
4478         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4479         (pp_c_initializer): Accept any type CONSTRUCTOR.
4480         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4481         COMPLEX_TYPE.
4482         (decl_name_str): New local function.
4483         (pp_c_direct_declarator): Call it.
4484         (pp_c_primary_expression): Call it.
4485         (pp_c_id_expression): Call it.
4486         (pp_c_statement): Call it.
4487         (print_c_tree): Create new pp object.
4488         * c-pretty-print.h (pp_c_tree_decl_identifier,
4489         print_c_tree): Declare.
4490         * c-semantics.c: Include langhooks.h
4491         (lang_expand_stmt, lang_expand_decl_stmt,
4492         find_reachable_label_1, find_reachable_label,
4493         expand_unreachable_if_stmt, expand_unreachable_stmt,
4494         genrtl_do_stmt_1): Remove.
4495         (begin_stmt_tree): Don't check for changed filename.
4496         Call annotate_with_locus.
4497         (finish_stmt_tree): Don't set line for end of function.
4498         (build_stmt): Don't check type nodes for
4499         side effects.
4500         (build_stmt): Set TREE_SIDE_EFFECTS.
4501         Set EXPR_LOCUS instead of STMT_LINENO.
4502         (lang_expand_stmt, lang_expand_decl_stmt,
4503         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4504         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4505         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4506         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4507         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4508         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4509         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4510         find_reachable_label_1, expand_unreachable_if_stmt,
4511         expand_unreachable_stmt): Remove.
4512         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4513         * c-simplify.c: New file.
4514         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4515         (struct lang_type): Add fields enum_min and enum_max.
4516         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4517         (c_expand_decl, c_missing_noreturn_ok_p,
4518         c_types_compatible_p): Declare.
4519         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4520         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4521         (default_function_array_conversion): Rely on build to
4522         set TREE_CONSTANT.
4523         (parser_build_binary_op, pointer_diff): Likewise.
4524         (build_unary_op, build_binary_op): Likewise.
4525         (build_array_ref):
4526         (build_external_ref): Set TREE_INVARIANT.
4527         (build_c_cast, pop_init_level): Likewise.
4528         (process_init_element): Use ASM_VOLATILE_P.
4529         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4530         (c_finish_case): Call c_do_switch_warnings.
4531         * c.opt (fdump-): Remove.
4532         * calls.c (try_to_integrate): Remove.
4533         (prepare_call_address): Replace fndecl arg with a
4534         precomputed static chain value.
4535         (emit_call_1): New argument for full call expr.
4536         (flags_from_decl_or_type): Call special_function_p.
4537         (initialize_argument_information): Add argument
4538         may_tailcall.
4539         (purge_reg_equiv_notes): New.
4540         (expand_call): Do not try to expand calls inline.
4541         (fixup_tail_calls): New.
4542         * cfg.c: Include timevar.h and ggc.h.
4543         (bb_pool, edge_pool): Remove.
4544         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4545         (entry_exit_blocks): Remove.
4546         (rbi_pool): Declare.
4547         (init_flow): Do not create pools.
4548         Allocate entry/exit block.
4549         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4550         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4551         (unlink_block): Clear b->prev_bb and b->next_bb.
4552         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4553         (dump_flow_info): Work on trees too.
4554         (dump_cfg_bb_info): New.
4555         (brief_dump_cfg): New.
4556         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4557         (find_edge): New.
4558         * cfgbuild.c (rtl_make_eh_edge): Rename from
4559         make_eh_edge.  Update all users.
4560         (find_basic_blocks): Don't call VARRAY_FREE on
4561         basic_block_info.
4562         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4563         and newpos2.
4564         (delete_unreachable_blocks): Return changed status.
4565         (merge_seq_blocks): New.
4566         * cfghooks.c: Include tree-flow.h
4567         (tree_register_cfg_hooks, ir_type): New.
4568         (redirect_edge_and_branch): Change return type to edge.
4569         (predict_edge, predicted_by_p, can_duplicate_block_p,
4570         duplicate_block, block_ends_with_call_p,
4571         block_ends_with_condjump_p, flow_call_edges_add): New.
4572         * cfghooks.h (redirect_edge_and_branch): Change return
4573         type to edge.
4574         (predict_edge, predicted_by_p, can_duplicate_block_p,
4575         duplicate_block, block_ends_with_call_p,
4576         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4577         (redirect_edge_and_branch): Change return type to edge.
4578         (struct cfg_hooks): Add fields block_ends_with_call_p,
4579         block_ends_with_condjump_p, flow_call_edges_add,
4580         predict_edge, predicted_by_p, can_duplicate_block_p and
4581         duplicate_block.
4582         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4583         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4584         (fixup_reorder_chain): Use initialize_bb_rbi.
4585         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4586         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4587         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4588         (insn_locators_initialize): Use new info about blocks.
4589         * cfglayout.h (typedef struct reorder_block_def): Moved to
4590         basic_block.h.
4591         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4592         removed.
4593         * cfgloop.c: Include tree.h and tree-flow.h.
4594         * cfgloop.h (create_loop_notes): Declare.
4595         * cfgloopmanip.c (create_loop_notes): New.
4596         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4597         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4598         and duplicate_block fields.
4599         (create_basic_block_structure): Don't look at
4600         RTX_INTEGRATED_P.
4601         (rtl_block_ends_with_call_p): New.
4602         (rtl_block_ends_with_condjump_p): New.
4603         (need_fake_edge_p): Moved from cfganal.c.
4604         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4605         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4606         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4607         (cfg_layout_rtl_cfg_hooks): Ditto.
4608         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4609         functions to be reachable.
4610         * cgraphunit.c (decide_is_function_needed):
4611         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4612         inline functions don't need to be output.
4613         (cgraph_assemble_pending_functions): Don't do anything
4614         special for nested functions.
4615         (cgraph_mark_functions_to_output): Likewise.
4616         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4617         (cgraph_analyze_function): Use estimate_num_insns.
4618         (cgraph_mark_functions_to_output): Likewise.
4619         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4620         (cgraph_expand_function): Allow functions to not be
4621         emitted.
4622         (cgraph_remove_unreachable_nodes):
4623         (cgraph_recursive_inlining_p): Simplify.
4624         (lookup_recursive_calls,
4625         cgraph_decide_recursive_inlining): New.
4626         (cgraph_decide_inlining_*): Update calls of
4627         cgraph_mark_inline.
4628         * combine.c (get_pos_from_mask): Always set *plen.
4629         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4630         ftree-based-profiling, ftree-ccp, ftree-ch,
4631         ftree-combine-temps, ftree-copyrename, ftree-dce,
4632         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4633         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4634         ftree-lrs): Add.
4635         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4636         Undefine.
4637         * configure.ac: Add --enable-tree-browser option.
4638         Add --with-libbanshee option.
4639         Add GMPLIBS and GMPINC.
4640         * configure: Regenerate.
4641         * coverage.c (tree_ctr_tables): New.
4642         (coverage_counter_alloc): Use it.
4643         (build_ctr_info_value): Ditto.
4644         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4645         (tree_coverage_counter_ref): New.
4646         * coverage.h (coverage_counter_ref): Remove declaration.
4647         (rtl_coverage_counter_ref): Declare.
4648         (tree_coverage_counter_ref): Declare.
4649         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4650         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4651         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4652         (struct cse_basic_block_data): Rename enum values to not
4653         conflict with profile.h; update all uses.
4654         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4655         in comments.
4656         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4657         * diagnostic.h (debug_output_buffer, dump_generic_node,
4658         print_generic_stmt, print_generic_stmt_indented,
4659         print_generic_expr, print_generic_decl,
4660         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4661         Declare.
4662         * dominance.c: Cache immediate dominators.
4663         * domwalk.c: New file.
4664         * domwalk.h: New file.
4665         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4666         (gen_subprogram_die): Generate a DIE for a named
4667         return value.
4668         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4669         (add_location_or_const_value_attribute): Likewise.
4670         (add_bound_info): Likewise.
4671         (gen_decl_die): Likewise.
4672         * emit-rtl.c (maybe_set_first_label_num): New.
4673         (copy_most_rtx): Don't copy the integrated flag.
4674         Copy the new return_val flag.
4675         * et-forest.c (MAX_NODES): Define.
4676         (record_path_before_1): Abort if len is greater than
4677         MAX_NODES.
4678         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4679         gen_eh_region_catch, gen_eh_region_allowed,
4680         gen_eh_region_must_not_throw, get_eh_region_number,
4681         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4682         set_eh_region_tree_label, expand_resx_expr): New.
4683         (expand_eh_region_start, expand_start_catch): Use them.
4684         (expand_end_catch): Tidy.
4685         (note_eh_region_may_contain_throw): Take region argument.
4686         (note_current_region_may_contain_throw): New.
4687         (get_exception_filter): Export.
4688         (collect_eh_region_array): Export.
4689         (remove_unreachable_regions): Check ERT_TRY based on reachability
4690         of catches, not reachability of continue_label.  Never remove
4691         ERT_MUST_NOT_THROW regions.
4692         (collect_rtl_labels_from_trees): New.
4693         (convert_from_eh_region_ranges): Use it.
4694         (connect_post_landing_pads): Handle dying cleanups.
4695         (struct reachable_info): Add callback data.
4696         (add_reachable_handler): Invoke the callback.
4697         (foreach_reachable_handler): New.
4698         (reachable_handlers): Use it.
4699         (arh_to_landing_pad, arh_to_label): New.
4700         (can_throw_internal_1): Split out from can_throw_internal.
4701         (can_throw_external_1): Similarly.
4702         * except.h: Update.
4703         * explow.c (emit_stack_save): Remove savearea mode check.
4704         (update_nonlocal_goto_save_area): New.
4705         (allocate_dynamic_stack_space): Use it.
4706         (probe_stack_range): Never emit loop notes.
4707         * expmed.c (extract_fixed_bit_field): Always propagate the
4708         target for the shift if it is a REG.
4709         * expr.c: Include tree-iterator.h
4710         (is_zeros_p): Remove.
4711         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4712         (count_type_elements): New.
4713         (mostly_zeros_p): Use them.
4714         (expr_wfl_stack): Remove.
4715         (convert_move): Do nothing if to and from are the same.
4716         (emit_block_move_via_loop): Don't emit LOOP notes.
4717         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4718         (emit_move_insn_1): Don't generate inline warnings.
4719         (expand_vars, expand_var): Split from ...
4720         (expand_expr_1): ... here.
4721         (expand_expr_real, expand_expr_real_1):  Use new macros
4722         EXPR_LOCATION and EXPR_HAS_LOCATION.
4723         * expr.h (simplify_builtin_fputs,
4724         simplify_builtin_strcpy, simplify_builtin_strncpy,
4725         expand_var, fixup_tail_calls,
4726         update_nonlocal_goto_save_area): Declare.
4727         (lookup_static_chain, expand_inline_function,
4728         mark_seen_cases): Remove.
4729         (prepare_call_address): Change type of 2nd argument to
4730         rtx.
4731         * final.c (profile_function): Update static chain test.
4732         (final): Don't look at RTX_INTEGRATED_P.
4733         * flags.h (flag_mudflap, flag_mudflap_threads,
4734         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4735         flag_tree_dce, flag_tree_combine_temps,
4736         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4737         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4738         flag_tree_points_to): Declare.
4739         (enum pta_type): Declare.
4740         * flow.c (lang_missing_noreturn_ok_p): Remove.
4741         (check_function_return_warnings): Remove.
4742         (update_life_info): Update comments.
4743         (free_basic_block_vars): Don't call VARRAY_FREE for
4744         basic_block_info.
4745         (regno_uninitialized): Remove.
4746         * fold-const.c (int_const_binop): Make extern.
4747         (non_lvalue): Rely on build to set TREE_CONSTANT.
4748         (operand_equal_p): Replace only_const argument with
4749         flags.  Allow pure functions if OEP_PURE_SAME.
4750         (fold): Use OEP_ONLY_CONST.
4751         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4752         boolean type.
4753         (fold_relational_hi_lo,
4754         nondestructive_fold_binary_to_constant,
4755         nondestructive_fold_unary_to_constant,
4756         fold_read_from_constant_string): New.
4757         * function.c (struct function): Remove calls_constant_p.
4758         (current_function_calls_constant_p): Remove.
4759         (inline_function_decl): Remove.
4760         (put_var_into_stack): Don't use it.
4761         (fix_lexical_addr): Likewise.
4762         (inline_function_decl): Remove extern declaration.
4763         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4764         (trampolines_created): Move to varasm.c.
4765         (free_after_compilation): Update for removed fields.
4766         (allocate_struct_function): Likewise.
4767         (delete_handlers, lookup_static_chain): Remove.
4768         (fix_lexical_addr): Don't consider non-local variable refs.
4769         (trampoline_address): Remove.
4770         (round_trampoline_addr): Move to builtins.c.
4771         (adjust_trampoline_addr): Remove.
4772         (expand_function_start): Update for changes to static chain
4773         and nonlocal goto handling.
4774         (initial_trampoline): Move to varasm.c.
4775         (expand_function_end): Don't build trampolines or kill
4776         unreferenced nonlocal goto labels.
4777         (free_after_compilation): Don't set it.
4778         (expand_function_end): Likewise.
4779         (setjmp_vars_warning): Rename from
4780         uninitialized_vars_warning, remove uninitialized vars warning.
4781         (uninitialized_vars_warning): Remove old comment
4782         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4783         and do not call the langhook.
4784         (expand_function_start, expand_function_end): Don't do
4785         function instrumentation here.
4786         (clear_block_marks): Rename from reorder_blocks_0, export.
4787         (blocks_nreverse): Export.
4788         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4789         of rtl.
4790         (reset_block_changes, record_block_change, finalize_block_changes,
4791         check_block_change, free_block_changes): New functions.
4792         (assign_parms): Setting of current_function_stdarg
4793         moved ...
4794         (allocate_struct_function): ... here.
4795         * function.h (struct function): Remove x_nonlocal_labels,
4796         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4797         x_context_display, x_trampoline_list, needs_context.
4798         Add static_chain_decl, nonlocal_goto_save_area.
4799         (struct function): Remove x_clobber_return_insn.
4800         Add tail_call_emit field, last_label_uid,
4801         unexpanded_var_list, dont_emit_block_notes,
4802         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4803         (clear_block_marks): Declare.
4804         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4805         (mfwrap_spec, mflib_spec): Declare.
4806         (cpp_unique_options, cc1_options): Ditto.
4807         (default_compilers): Add .F and .f90.
4808         (static_specs): Add mfwrap and mflib.
4809         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4810         CONSTANT_RTX_P.
4811         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4812         Update to match insns field in struct edge_def.
4813         * gdbinit.in (pgs, pge): Define.
4814         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4815         instead of the integrated flag.
4816         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4817         * gengtype-yacc.y (bitfieldlen): Add empty action.
4818         (struct_fields): Accept unnamed bitfields.
4819         (bitfieldlen): Split from ...
4820         (bitfieldopt): ... here.
4821         * gengtype.c (ifiles): Add tree-alias-type.h and
4822         tree-flow.h.
4823         * genrecog.c (validate_pattern): Do not handle
4824         CONSTANT_P_RTX.
4825         * gimple-low.c: New file.
4826         * gimplify.c: New file.
4827         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4828         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4829         * ifcvt.c (dead_or_predicable): Initialize local variable
4830         'earliest'.
4831         * input.h (expr_wfl_stack): Remove.
4832         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4833         (setup_initial_hard_reg_value_integration): Likewise.
4834         (initialize_for_inline): Likewise.
4835         (note_modified_parmregs): Likewise.
4836         (integrate_parm_decls): Likewise.
4837         (process_reg_param): Likewise.
4838         (save_parm_insns): Likewise.
4839         (copy_insn_list): Likewise.
4840         (copy_insn_notes): Likewise.
4841         (compare_blocks): Likewise.
4842         (find_block): Likewise.
4843         (inlining): Likewise.
4844         (function_cannot_inline_p): Likewise.
4845         (parmdecl_map): Likewise.
4846         (in_nonparam_insns): Likewise.
4847         (save_for_inline): Likewise.
4848         (FIXED_BASE_PLUS): Likewise.
4849         (expand_inline_function): Likewise.
4850         (copy_rtx_and_substitute): Don't look at map->integrating,
4851         map->inline_target, and inlining, since we are never copying
4852         for integrating.
4853         Don't abort on RTX_INTEGRATED_P.
4854         (old_fun): Remove.
4855         (output_inline_function): Remove.
4856         * integrate.h (struct inline_map): Remove fields integrating,
4857         block_map, leaf_reg_map, inline_target, and local_return_label.
4858         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4859         copy_loop_headers, never_reached_warning): Removed.
4860         (any_uncondjump_p): Reject nonlocal goto.
4861         * langhooks-def.h (lhd_types_compatible_p,
4862         lhd_expand_decl, lhd_gimplify_expr): Declare.
4863         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4864         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4865         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4866         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4867         LANG_HOOKS_GIMPLIFY_EXPR,
4868         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4869         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4870         LANG_HOOKS_GIMPLIFY_EXPR,
4871         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4872         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4873         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4874         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4875         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4876         LANG_HOOKS_DECL_UNINIT,
4877         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4878         * langhooks.c: Include tree-simple.h.
4879         (lhd_expand_decl): New.
4880         (lhd_types_compatible_p): New.
4881         (lhd_decl_uninit): Remove.
4882         (lhd_gimplify_expr): New.
4883         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4884         Remove.
4885         (struct lang_hooks_for_functions): Add field
4886         missing_noreturn_ok_p.
4887         (struct lang_hooks): Add field expand_decl,
4888         types_compatible_p, gimplify_expr and
4889         gimple_before_inlining.
4890         Remove fields decl_uninit and rtl_expand
4891         * opts.c (decode_options): Set flag_tree_ccp,
4892         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4893         flag_tree_pre, flag_tree_ter,
4894         flag_tree_live_range_split, flag_tree_sra,
4895         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4896         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4897         OPT_fmudflapth, OPT_fmudflapir,
4898         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4899         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4900         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4901         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4902         OPT_ftree_points_to_ and OPT_ftree_pre.
4903         * output.h (regno_uninitialized, find_basic_blocks,
4904         cleanup_cfg, delete_unreachable_blocks,
4905         check_function_return_warnings): Remove.
4906         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4907         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4908         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4909         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4910         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4911         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4912         Define.
4913         * passes.c (rest_of_decl_compilation):
4914         (rest_of_handle_sibling_calls): Remove.
4915         (rest_of_handle_inlining): Remove.
4916         (rest_of_handle_gcse): Do not run
4917         purge_builtin_constant_p.
4918         (rest_of_compilation): Update.
4919         Do not call copy_loop_headers.
4920         Do rtl-based profiling only when
4921         !flag_tree_based_profiling.  Register rtl-based profiling
4922         hooks.
4923         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4924         (predicted_by_p): Rename to ...
4925         (rtl_predicted_by_p): .. this one; make global
4926         (tree_predicted_by_p): New.
4927         (dump_prediction): Add FILE argument.
4928         (predict_edge): Rename to ...
4929         (rtl_predict_edge): .. this one.
4930         (tree_predict_edge): New.
4931         (combine_predictions_for_insn): Update calls of predict_edge.
4932         (predict_loops): Break out from ...
4933         (estimate_probability): ... here; update comments; move updating
4934         of unknown probabilities from ...
4935         (estimate_bb_frequencies): ... here.
4936         (combine_predictions_for_bb): New.
4937         (tree_predict_by_opcode): New.
4938         (tree_estimate_probability): New.
4939         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4940         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4941         * predict.h: Add include guard.
4942         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4943         * pretty-print.c (pp_write_text_to_stream): Make extern.
4944         * pretty-print.h (pp_write_text_to_stream): Declare.
4945         * print-rtl.c (print_rtx): Don't print the integrated flag.
4946         Print the return_val flag.
4947         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4948         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4949         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4950         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4951         * profile.c: Include cfghooks.h, tree-flow.h.
4952         (profile_hooks): New.
4953         (profile_dump_file): New.
4954         (instrument_edges): Use hooks instead of RTL-specific code.
4955         (instrument_values): Ditto.
4956         (get_exec_counts): Ditto.
4957         (compute_branch_probabilities): Ditto.
4958         (compute_value_histograms): Ditto.
4959         (branch_prob): Ditto.
4960         (find_spanning_tree): Ditto.
4961         (end_branch_prob): Ditto.
4962         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4963         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4964         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4965         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4966         (tree_register_profile_hooks): New.
4967         (rtl_register_profile_hooks): New.
4968         * ra-rewrite.c (rewrite_program): Clear variable info.
4969         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4970         * regs.h: Add include guards.
4971         * reload.c (decompose): Clear val using memset.
4972         * rtl.def (CONSTANT_P_RTX): Remove.
4973         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4974         (copy_loop_headers): Remove.
4975         (struct rtx_def): Replace the integrated flag with the
4976         return_val flag.
4977         (maybe_set_first_label_num): Declare.
4978         (init_branch_prob): Move declaration to value-prof.h.
4979         (end_branch_prob): Ditto.
4980         (branch_prob): Ditto.
4981         (never_reached_warning): Don't declare it.
4982         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4983         (hoist_insn_to_edge): Update to match field insns in
4984         struct edge_def.
4985         * sbitmap.c (sbitmap_realloc): New.
4986         * sbitmap.h (sbitmap_realloc): Declare.
4987         * sibcall.c: Remove file.
4988         * simplify-rtx.c (simplify_rtx): Do not handle
4989         CONSTANT_P_RTX.
4990         * stmt.c (parse_output_constraint): Don't warn for read-write
4991         memory operand.
4992         (tail_recursion_args): Use types_compatible_p langhook.
4993         (force_label_rtx): Don't look at inline_function_decl.
4994         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4995         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4996         (declare_nonlocal_label): Remove.
4997         (expand_goto): Don't handle nonlocal gotos.
4998         (expand_nl_handler_label): Remove.
4999         (expand_nl_goto_receivers): Remove.
5000         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
5001         update_nonlocal_goto_save_area.
5002         (expand_expr_stmt_value): Check TREE_NO_WARNING.
5003         (warn_if_unused_value): Likewise.
5004         (expand_start_loop, expand_loop_continue_here,
5005         expand_end_loop): Don't create loop notes.
5006         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
5007         mark_seen_cases, check_for_full_enumeration_handling): Remove.
5008         (expand_end_case_type): Don't do warn_switch handling.
5009         (pushcase, pushcase_range) Update add_case_node calls.
5010         (add_case_node): Add dont_expand_label argument.
5011         (same_case_target_p): Don't search rtl.
5012         (expand_start_bindings_and_block, expand_end_bindings):
5013         Don't emit block notes when dont_emit_block_notes.
5014         (using_eh_for_cleanups_p): Export.
5015         (expand_return): Allow any typed rhs.
5016         (expand_stack_alloc): New.
5017         (expand_stack_save, expand_stack_restore): New.
5018         (containing_blocks_have_cleanups_or_stack_level): New
5019         function.
5020         (asm_op_is_mem_input): New fn.
5021         (expand_asm_expr): New fn.
5022         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
5023         nodes.
5024         * stor-layout.c (layout_type): Just return if type is
5025         error_mark_node.
5026         (update_alignment_for_field): Export.
5027         (variable_size): We don't care about global_bindings_p if
5028         the frontend doesn't want a list of the expressions.
5029         * system.h: Poison INTEGRATE_THRESHOLD.
5030         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
5031         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
5032         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
5033         TV_TREE_SSA_OTHER, TV_TREE_OPS,
5034         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
5035         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
5036         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
5037         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
5038         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
5039         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
5040         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
5041         TV_CONTROL_DEPENDENCES): Define.
5042         * toplev.c: Include tree-alias-common.h
5043         (current_file_decl, flag_mudflap, flag_mudflap_threads,
5044         flag_mudflap_ignore_reads, flag_tree_based_profiling,
5045         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
5046         flag_tree_dce, flag_tree_ch, flag_tree_sra,
5047         flag_tree_combine_temps, flag_tree_ter,
5048         flag_tree_live_range_split, flag_tree_dom,
5049         flag_tree_copyrename, flag_tree_dse): Declare.
5050         (f_options): Add tree-based-profiling, tree-gvn,
5051         tree-pre, tree-ccp, tree-dce,
5052         tree-dominator-opts, tree-copyrename, tree-dse,
5053         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
5054         (wrapup_global_declarations): Don't output nested inlined functions.
5055         (general_init): Call init_tree_optimization_passes.
5056         (process_options): Sorry for -ftree-based-profiling plus
5057         -ftest-coverage or -fprofile-values.
5058         * toplev.h (init_tree_optimization_passes,
5059         flag_tree_based_profiling): Declare.
5060         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
5061         * tree-alias-ander.c: New file.
5062         * tree-alias-ander.h: New file.
5063         * tree-alias-common.c: New file.
5064         * tree-alias-common.h: New file.
5065         * tree-alias-type.c: New file.
5066         * tree-alias-type.h: New file.
5067         * tree-browser.c: New file.
5068         * tree-browser.def: New file.
5069         * tree-cfg.c: New file.
5070         * tree-complex.c: New file.
5071         * tree-dfa.c: New file.
5072         * tree-dump.c (dump_enable_all): New.
5073         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
5074         (dump_node): Remove const from field suffix and swtch.
5075         (dump_files): Add null entry, .generic, .nested, .vcg,
5076         .xml and a match-all entry.
5077         (extra_dump_files, extra_dump_files_in_use,
5078         extra_dump_files_alloced): Declare
5079         (dump_option_value_info): Add raw, details, stats,
5080         blocks, vops, lineno, uid and all.
5081         (dump_register): New.
5082         (get_dump_file_info): New.
5083         (dump_begin): Call it.
5084         Do nothing for TDI_none.
5085         (dump_begin): Include phase number in dump filename.
5086         (dump_enable_all): New.
5087         (dump_switch_p_1): Split out from dump_switch_p.
5088         (dump_switch_p): Handle extra_dump_files.
5089         Start our scan at TDI_none + 1.
5090         If -fdump-tree-all was given, call dump_enable_all.
5091         * tree-dump.h: Include splay-tree.h.
5092         (dump_function, dump_function_to_file, dump_register):
5093         Declare.
5094         * tree-eh.c: New file.
5095         * tree-flow-inline.h: New file.
5096         * tree-flow.h: New file.
5097         * tree-inline.c: Re-write to handle inlining on GIMPLE.
5098         * tree-inline.h (walk_tree,
5099         walk_tree_without_duplicates): Move to tree.h.
5100         (estimate_num_insns): Declare.
5101         * tree-into-ssa.c: New file.
5102         * tree-iterator.c: New file.
5103         * tree-iterator.h: New file.
5104         * tree-mudflap.c: New file.
5105         * tree-mudflap.h: New file.
5106         * tree-nested.c: New file.
5107         * tree-nomudflap.c: New file.
5108         * tree-nrv.c: New file.
5109         * tree-optimize.c (dump_flags, vars_to_rename,
5110         in_gimple_form, all_passes, pass_gimple,
5111         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
5112         (execute_gimple, execute_rebuild_bind,
5113         gate_all_optimizations, execute_del_cfg,
5114         register_one_dump_file, register_dump_files, dup_pass_1,
5115         init_tree_optimization_passes, execute_todo,
5116         execute_one_pass, execute_pass_list): New.
5117         (clear_decl_rtl): Remove.
5118         (tree_rest_of_compilation): Update to use tree
5119         optimizers.
5120         * tree-outof-ssa.c: New file.
5121         * tree-pass.h: New file.
5122         * tree-phinodes.c: New file.
5123         * tree-pretty-print.c: New file.
5124         * tree-profile.c: New file.
5125         * tree-simple.c: New file.
5126         * tree-simple.h: New file.
5127         * tree-sra.c: New file.
5128         * tree-ssa-alias.c: New file.
5129         * tree-ssa-ccp.c: New file.
5130         * tree-ssa-copy.c: New file.
5131         * tree-ssa-copyrename.c: New file.
5132         * tree-ssa-dce.c: New file.
5133         * tree-ssa-dom.c: New file.
5134         * tree-ssa-dse.c: New file.
5135         * tree-ssa-forwprop.c: New file.
5136         * tree-ssa-live.c: New file.
5137         * tree-ssa-live.h: New file.
5138         * tree-ssa-loop.c: New file.
5139         * tree-ssa-operands.c: New file.
5140         * tree-ssa-operands.h: New file.
5141         * tree-ssa-phiopt.c: New file.
5142         * tree-ssa-pre.c: New file.
5143         * tree-ssa.c: New file.
5144         * tree-ssanames.c: New file.
5145         * tree-tailcall.c: New file.
5146         * tree.c: Include tree-iterator.h, basic-block.h and
5147         tree-flow.h.
5148         (tree_node_kind): Add phi_nodes and ssa names.
5149         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
5150         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
5151         (make_node_stat): Handle PHI_NODE and SSA_NAME.
5152         <'c'> Set TREE_INVARIANT.
5153         (copy_node_stat): Abort if trying to copy a
5154         STATEMENT_LIST.
5155         Clear TREE_VISITED.
5156         Clear annotation field.
5157         (build_constructor): Copy TREE_INVARIANT from vals.
5158         Don't clear TREE_CONSTANT.
5159         (expr_first, expr_last, expr_length): Remove.
5160         (staticp): Pass unknown component references to the language.
5161         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
5162         (skip_simple_arithmetic): Likewise.
5163         (stabilize_reference_1): Likewise.
5164         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
5165         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
5166         STATEMENT_LIST.
5167         (lhd_unsave_expr_now): Remove.
5168         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
5169         (recompute_tree_invarant_for_addr_expr): New.
5170         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
5171         Call recompute_tree_invarant_for_addr_expr.
5172         Set TREE_INVARIANT accordingly.
5173         (build2_stat): Don't handle CALL_EXPR.
5174         (build3_stat): Don't call build2_stat for CALL_EXPRs.
5175         (build_expr_wfl): Remove.
5176         (annotate_with_file_line, annotate_with_locus): New.
5177         (simple_cst_equal): Call simple_cst_list_equal to compare
5178         CONSTRUCTOR_ELTS pointers.
5179         (iterative_hash_expr): Don't hash types associated
5180         with conversions.  Instead hash on the signedness of the
5181         toplevel object and the operand of the conversion.
5182         (dump_tree_statistics): Call ssanames_print_statistics
5183         and phinodes_print_statistics.
5184         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
5185         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
5186         needs_to_live_in_memory): New.
5187         (initializer_zerop): Handle VECTOR_CST.  Don't check
5188         AGGREGATE_TYPE_P for CONSTRUCTOR.
5189         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
5190         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
5191         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
5192         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
5193         (CALL_EXPR): Add another operand.
5194         (EXPR_WITH_FILE_LOCATION): Remove.
5195         (SWITCH_EXPR): Add another operand.
5196         * tree.h: Update various comments.
5197         (union tree_ann_d): Forward declare.
5198         (struct tree_common): Add fields nowarning_flag,
5199         invariant_flag and visited.
5200         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
5201         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
5202         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5203         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5204         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5205         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5206         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5207         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5208         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5209         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5210         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5211         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5212         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5213         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5214         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5215         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5216         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5217         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5218         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5219         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5220         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5221         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5222         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5223         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5224         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5225         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5226         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5227         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5228         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5229         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5230         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5231         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5232         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5233         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5234         TDF_UID,): Define.
5235         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5236         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5237         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5238         EXPR_WFL_SET_LINECOL): Remove.
5239         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5240         make_phi_node, init_phinodes, fini_phinodes,
5241         release_phi_node, phinodes_print_statistics,
5242         init_ssanames, fini_ssanames, make_ssa_name,
5243         release_ssa_name, ssanames_print_statistics,
5244         annotate_with_file_line, build_empty_stmt,
5245         annotate_with_locus, expr_only, categorize_ctor_elements,
5246         count_type_elements, add_var_to_bind_expr, is_essa_node,
5247         expand_stack_alloc, expand_stack_save,
5248         expand_stack_restore, add_case_node, operand_equal_p,
5249         nondestructive_fold_unary_to_constant,
5250         nondestructive_fold_binary_to_constant,
5251         fold_read_from_constant_string, int_const_binop,
5252         strip_float_extensions, simplify_builtin, c_strlen,
5253         recompute_tree_invarant_for_addr_expr,
5254         needs_to_live_in_memory, make_vector,
5255         setjmp_vars_warning, update_alignment_for_field,
5256         expand_asm_expr, asm_op_is_mem_input,
5257         containing_blocks_have_cleanups_or_stack_level,
5258         create_artificial_label, gimplify_function_tree,
5259         get_name, unshare_expr, walk_tree,
5260         walk_tree_without_duplicates, in_gimple_form): Declare.
5261         (struct tree_exp): Add fields locus and block.
5262         (struct tree_ssa_name, struct edge_def, struct
5263         tree_phi_node, struct tree_eref_common, struct
5264         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5265         union alias_var_def, struct tree_statement_list_node,
5266         struct tree_statement_list, enum operand_equal_flag): Declare.
5267         (enum tree_node_structure_enum): Add TS_SSA_NAME,
5268         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5269         TS_STATEMENT_LIST.
5270         (union tree_node): Add fields ssa_name, phi, eref, ephi,
5271         euse and stmt_list.
5272         (function_cannot_inline_p, uninitialized_vars_warning,
5273         save_for_inline, output_inline_function, all_cases_count,
5274         check_for_full_enumeration_handling,
5275         declare_nonlocal_label): Remove.
5276         (enum tree_dump_index): Add TDI_none, TDI_tu,
5277         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5278         * unroll.c (unroll_loop): Don't clear map->inline_target.
5279         * unwind-sjlj.c (uw_install_context): Make a proper static inline
5280         function.
5281         * value-prof.c (value_prof_hooks): New.
5282         (find_values_to_profile): Rename to rtl_find_values_to_profile.
5283         Move rtl-specific bits in from branch_prob.
5284         (value_profile_transformations): Rename to
5285         rtl_value_profile_transformations.
5286         (struct value_prof_hooks): New.
5287         (rtl_value_prof_hooks): New.
5288         (rtl_register_value_prof_hooks): New.
5289         (tree_find_values_to_profile): New stub.
5290         (tree_value_profile_transformations): New stub.
5291         (tree_value_prof_hooks): New stub.
5292         (tree_register_value_prof_hooks): New stub.
5293         (find_values_to_profile): New.
5294         (value_profile_transformations): New.
5295         * value-prof.h: Add multiple inclusion guard.
5296         (struct histogram_value): Change rtx fields to void *.
5297         (rtl_register_value_prof_hooks): New declaration.
5298         (tree_register_value_prof_hooks): New declaration.
5299         (find_values_to_profile): New declaration.
5300         (free_profiled_values): New declaration.
5301         (value_profile_transformations): New declaration.
5302         (struct profile_hooks): New declaration.
5303         (init_branch_prob): Declaration moved from rtl.h.
5304         (branch_prob): Declaration moved from rtl.h.
5305         (end_branch_prob): Declaration mooved from rtl.h.
5306         (tree_register_profile_hooks): New declaration.
5307         (rtl_register_profile_hooks): New declaration.
5308         (tree_profile_hooks): New declaration.
5309         (rtl_profile_hooks): New declaration.
5310         * varasm.c: Include tree-mudflap.h.
5311         (TRAMPOLINE_ALIGNMENT): Remove.
5312         (make_decl_rtl): Call mudflap_enqueue_decl.
5313         (assemble_static_space):
5314         (assemble_trampoline_template): Set and return
5315         TRAMPOLINE_ALIGNMENT.
5316         * varray.c (element): Add GENERIC_PTR_NOGC entry.
5317         Add entry for 'tree *'.
5318         Add entry for struct edge_def *.
5319         (varray_copy): New.
5320         * varray.h (enum varray_data_enum): Add
5321         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5322         VARRAY_DATA_TREE_PTR.
5323         (union varray_data_tag): Corresponding changes.
5324         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5325         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5326         VARRAY_EDGE, VARRAY_TREE_PTR,
5327         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5328         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5329         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5330
5331         * config/*/*: Various updates for changed macros, tree
5332         codes, etc.  Check ChangeLog.tree-ssa.
5333
5334         * doc/cfg.texi: New file.
5335         * doc/tree-ssa.texi: New file.
5336         * doc/c-tree.texi: Document new codes.
5337         * doc/gccint.texi: Include new files.
5338         * doc/install.texi: Document new features.
5339         * doc/invoke.texi: Document new switches.
5340         * doc/passes.texi: Document new passes.
5341         * doc/rtl.texi: Update changed RTL codes.
5342         * doc/sourcebuild.texi: Update build instructions.
5343         * doc/standards.texi: Document Fortran changes.
5344         * doc/tm.texi: Update.
5345
5346 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5347
5348         Replace several arrays with a struct of arrays.
5349         * combine.c (struct reg_stat): New.
5350         (init_reg_last_arrays): Renamed to...
5351         (init_reg_last): ...this.  Callers adjusted.
5352         (reg_stat): New.
5353         (combine_instructions): Allocate it and use it.
5354         (reg_last_death, reg_last_set, reg_last_set_value,
5355         reg_last_set_label, reg_last_set_table_tick,
5356         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5357         reg_last_set_mode, reg_last_set_nonzero_bits,
5358         reg_last_set_sign_bit_copies): Replace throughout
5359         with items of reg_stat.
5360
5361 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5362
5363         PR optimization/15100
5364         * combine.c (distribute_notes): Don't create a dangling
5365         REG_LIBCALL/REG_RETVAL note.
5366
5367 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5368
5369         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5370
5371         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5372         negv2si2.
5373
5374 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5375
5376         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5377
5378 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5379
5380         * doc/gty.texi (GTY Options): Clarify example.
5381
5382 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5383
5384         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5385         Add const qualifier to altivec vector type if one is needed.
5386
5387 2004-05-11  Paul Brook  <paul@codesourcery.com>
5388
5389         * flags.h (flag_short_enums): Update comment.
5390         * opts.c (decode_options): Set flag_short_enums to 2.
5391         * toplev.c (flag_short_enums): Update comment.
5392         (process_options): Call default_short_enums target hook.
5393
5394 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5395
5396         PR target/14063
5397         * config/rs6000/altivec.md (altivec_dssall):
5398         Change to unspec_volatile.
5399         (altivec_dss): Likewise.
5400
5401 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5402
5403         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5404         vnor.
5405         ("one_cmplv8hi2"): Same.
5406         ("one_cmplv4si2"): Same.
5407
5408 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5409
5410         PR target/15130
5411         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5412         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5413         into account.  Compute the correct number of general registers
5414         for the return value.  Generate a special push/pop sequence when
5415         failing to get a temporary register for non SHmedia epilogue.
5416         (sh_expand_epilogue): Add an argument to show whether it's for
5417         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5418         -1 if needed.
5419         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5420         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5421         with 1.
5422         (epilogue): Call sh_expand_epilogue with 0.
5423
5424 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5425
5426         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5427         goto a cleanup label.  After the cleanup, free the allocated memory.
5428
5429 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5430
5431         * config/rs6000/altivec.h (vec_sld): Add overloads for
5432         argument/return types of 'vector bool int', 'vector bool short'
5433         and 'vector bool char'.
5434
5435 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5436
5437         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5438         nested function.
5439
5440 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5441
5442         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5443         treating missing ones as "".
5444         * config/mips/mips.md: Remove constraints from match_operands and
5445         match_scratches if they appear in define_expands (except reload*),
5446         define_peephole2s, define_splits or attribute specifications.
5447         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5448         constraint strings.
5449
5450 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5451
5452         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5453         AltiVec vectors.
5454         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5455         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5456         byte boundary.  Remove useless code.  Add function comment.
5457         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5458         call to where it belongs.
5459         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5460         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5461         (rs6000_va_arg): Adjust for AltiVec change.
5462
5463 2004-05-10  Paul Brook  <paul@codesourcery.com>
5464
5465         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5466         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5467         (TARGET_DOUBLEWORD_ALIGN): Use it.
5468         (WCHAR_TYPE): Define.
5469         (WCHAR_SIZE_TYPE): Define.
5470         (SIZE_TYPE): Define.
5471
5472 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5473
5474         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5475         when size is 8 bytes.
5476         (function_arg_advance): Account for stack space used by AltiVec
5477         args when -mabi=altivec.  Simplify alignment calculations.  For
5478         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5479         (function_arg): Similarly.
5480         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5481         not AltiVec ABI.
5482         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5483         Correct alignment, and align before testing reg count.  Remove
5484         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5485         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5486         TARGET_FPRS here..
5487         (rs6000_function_value): .. not here before call.
5488
5489 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5490
5491         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5492
5493 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5494
5495         PR 15007
5496         * c-decl.c (current_file_decl): Rename to all_translation_units,
5497         adjust comment.
5498         (pop_scope): If popping file_scope, construct a
5499         TRANSLATION_UNIT_DECL and make it the context of all the
5500         symbols in the scope.
5501         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5502         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5503         anything to current_file_decl.
5504         (pushdecl_top_level): Likewise.
5505         (store_parm_decls_newstyle): Adjust check for nested function.
5506         (c_write_global_declarations): Update for renamed variable.
5507
5508 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5509
5510         * config/rs6000/rs6000-protos.h
5511         (rs6000_conditional_register_usage): Protoize.
5512
5513         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5514
5515         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5516         function.
5517
5518 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5519
5520         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5521         where op is a comparison operator and C1 and C2 are integer constants
5522         into a range check.
5523         (fold): Call fold_div_compare.
5524
5525 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5526
5527         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5528         problems with earlier versions of the GNU compiler.
5529
5530 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5531
5532         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5533         Declare.
5534
5535         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5536         (rs6000_hard_regno_mode_ok): New.
5537         (rs6000_init_hard_regno_mode_ok): New.
5538         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5539
5540         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5541         result.
5542
5543 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5544
5545         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5546         define as macros #ifdef __APPLE_ALTIVEC__.
5547
5548 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5549
5550         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5551         Generate appropriate parallels for vector arguments
5552         passed to vararg functions. (function_arg): make the call
5553         to rs6000_mixed_function_arg for vector args as needed.
5554
5555 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5556
5557         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5558         EABI_FLOAT_VARARGS_P.
5559
5560 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5561
5562         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5563         * config/mips/mips.c (override_options): Disable branch likely
5564         instructions if TUNE_MIPS5500.
5565
5566 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5567
5568         * config/mips/mips.c (override_options): Allow the hi and lo registers
5569         to store any integral mode, not just MODE_INTs.
5570
5571 2004-05-07  Paul Brook  <paul@codesourcery.com>
5572
5573         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5574         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5575         (TARGET_DOUBLEWORD_ALIGN): Use it.
5576         (WCHAR_TYPE): Define.
5577         (WCHAR_SIZE_TYPE): Define.
5578         (SIZE_TYPE): Define.
5579
5580 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5581
5582         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5583         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5584
5585 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5586
5587         * loop-doloop.c (doloop_valid_p): Make sure that body
5588         gets freed.
5589
5590 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5591
5592         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5593         declaration.
5594         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5595         (sparc_skip_caller_unimp): New global variable.
5596         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5597         Use it instead of SKIP_CALLERS_UNIMP_P.
5598         * config/sparc/sparc.md (call expander): Add sanity check.
5599         (call_address_struct_value_sp32): Re-sync with expander.
5600         (call_symbolic_struct_value_sp32): Likewise.
5601         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5602         of custom predicate.
5603
5604 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5605
5606         PR c++/14962
5607         * c-pragma.c (handle_pragma_redefine_extname): Only change
5608         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5609
5610 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5611
5612         * optabs.h (enum optab_index): Add new OTI_log1p.
5613         (log1p_optab): Define corresponding macro.
5614         * optabs.c (init_optabs): Initialize log1p_optab.
5615         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5616         patterns.
5617         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5618         using log1p_optab.
5619         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5620         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5621
5622         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5623
5624         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5625         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5626         Prototype here.
5627         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5628         x87's fyl2xp1 instruction.
5629         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5630         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5631         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5632         log1p  and log1pl built-ins as inline x87 intrinsics.
5633
5634 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5635
5636         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5637         * config/arm/freebsd.h: Likewise.
5638         * config/ia64/freebsd.h: Likewise.
5639         * config/sparc/freebsd.h: Likewise.
5640
5641 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5642
5643         PR optimization/15296
5644         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5645         getting last consecutive label at a branch.
5646         (relax_delay_slots): Similar, near top of loop.
5647
5648 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5649
5650         PR target/15202
5651         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5652         register to general register.
5653
5654 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5655
5656         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5657         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5658         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5659         (STACK_BOUNDARY): Delete.
5660
5661 2004-05-06  Stuart Hastings  <stuart@apple.com>
5662
5663         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5664         mistakenly clobbered by 1.423.
5665
5666 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5667
5668         * doc/invoke.texi: Document -mvr4130-align.
5669         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5670         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5671         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5672         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5673         * config/mips/mips.md: Include sched-int.h.
5674         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5675         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5676         (override_options): Enable -mvr4130-align at -O3 and above.
5677         (mips_sim_insn): New variable.
5678         (mips_sim): New structure.
5679         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5680         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5681         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5682         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5683         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5684         (mips_reorg): Call vr4130_align_insns.
5685         (vr4130_last_insn): New variable.
5686         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5687         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5688         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5689         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5690         (mips_use_dfa_pipeline_interface): Return true for the same.
5691         * config/mips/4130.md: New file.
5692         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5693         "mult;mflo" into "mtlo;macc".
5694         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5695         target of maccs.
5696         (*msac_using_macc): New pattern.
5697
5698 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5699
5700         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5701         (ir_vr55_hilo): Split into...
5702         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5703         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5704         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5705         Add various multiplication bypasses.
5706         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5707         multiplication.
5708
5709 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5710
5711         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5712         attribute to "XF".
5713
5714 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5715
5716         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5717         (fmod_optab, drem_optab): Define corresponding macros.
5718         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5719         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5720         using fmod?f3 and drem?f3 patterns.
5721         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5722         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5723         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5724         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5725         flag_unsafe_math_optimizations is set.
5726
5727         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5728         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5729
5730         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5731         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5732         Prototype here.
5733         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5734         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5735         fprem and fprem1 instructions.
5736         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5737         Rename insn definition to x86_fnstsw_1.
5738         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5739         x87 instructions.
5740         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5741         and fmodl built-ins as inline x87 intrinsics.
5742         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5743         and dreml built-ins as inline x87 intrinsics.
5744
5745 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5746
5747         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5748
5749 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5750
5751         PR driver/9822
5752         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5753
5754 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5755
5756         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5757         representation.
5758
5759 2004-05-06  Paul Brook  <paul@codesourcery.com>
5760
5761         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5762         (arm_coproc_mem_operand): ... To this.
5763         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5764         (arm_legitimate_index_p): Ditto.
5765         (vfp_mem_operand): Rename ...
5766         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5767         (vfp_secondary_reload_class): Use it.
5768         (output_move_double): Use doubleword load/store instructions.
5769         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5770         * config/arm/arm.h (TARGET_LDRD): Define.
5771         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5772         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5773         New splitter for invalid doubleword loads.
5774         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5775         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5776         * doc/md.texi: Document Uy constraint.
5777
5778 2004-05-05  Jan Hubicka  <jh@suse.cz>
5779
5780         PR opt/14980
5781         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5782         inline clones.
5783
5784 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5785
5786         PR target/15290
5787         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5788         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5789
5790 2004-05-05  Mike Stump  <mrs@apple.com>
5791
5792         * config/darwin-c.c (add_framework): Copy the directory name as it
5793         can be freed later.  Also, ensure we always allocate enough room
5794         for the cached framework information.
5795         (find_subframework_header): Keep track of the directory where the
5796         subframework header was found.
5797         (framework_construct_pathname): Speed up by not trying to re-add a
5798         framework.
5799         * cppfiles.c (search_path_exhausted): Arrange for the missing
5800         header callback to be able to set the directory where the header
5801         was found.
5802         (cpp_get_dir): Add.
5803         * cpplib.h (missing_header_cb): Add a parameter.
5804         (cpp_get_dir): Add.
5805
5806 2004-05-03  Mike Stump  <mrs@apple.com>
5807
5808         * doc/invoke.texi (Directory Options): Document -iquote.
5809         * doc/cpp.texi: Likewise.
5810         * doc/cppopts.texi: Likewise.
5811         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5812         (c_common_handle_option): Likewise.
5813         * c.opt (iquote): Add.
5814         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5815         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5816
5817         * c-opts.c (case OPT_I): Deprecate -I- support.
5818         * doc/invoke.texi: Likewise.
5819         * doc/cpp.texi: Likewise.
5820         * doc/cppopts.texi: Likewise.
5821
5822 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5823
5824         * basic-block.h (free_basic_block_vars): Update prototype.
5825         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5826         argument.
5827         (life_analysis): Update call.
5828         * ifcvt.c (if_convert): Likewise.
5829         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5830         * passes.c (rest_of_handle_final): Likewise.
5831         (rest_of_compilation): Likewise.
5832         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5833
5834         * emit-rtl.c (next_real_insn): Use INSN_P.
5835         (prev_real_insn): Likewise.
5836
5837 2004-05-05  Eric Christopher  <echristo@redhat.com>
5838
5839         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5840         representation.
5841
5842 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5843
5844         * config/rs6000/rs6000.c (build_opaque_vector_type):
5845         New function.
5846         (rs6000_init_builtins): Use it.
5847
5848 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5849
5850         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5851         (func_table): Change type from char ** to vms_func_ref.
5852         (write_rtnbeg):  Update to reflect func_table change.  Use
5853         fde->funcdef_number instead of rtnnum in output.
5854         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5855
5856 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5857             Richard Henderson  <rth@redhat.com>
5858
5859         PR target/14899
5860
5861         * c-common.c (vector_types_convertible_p): New function.
5862         * c-typeck.c (comptypes): Recurse on vector types.
5863         (convert_for_assignment): Use vector_types_convertible_p.
5864         (digest_init): Use vector_types_convertible_p to check
5865         validness of constant vector initializers; otherwise treat
5866         them as scalars.
5867         * tree.c (make_or_reuse_type): New.
5868         (build_common_tree_nodes): Use it.
5869         * cp/call.c (standard_conversion): Likewise.
5870         * cp/typeck.c (comptypes): Recurse on vector types.
5871         (convert_for_assignment): Use vector_types_convertible_p.
5872
5873 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5874
5875         * config/mips/mips.c (override_options): Default to no
5876         generation of branch-likely operations when tuning for
5877         CPUs where they tend to have a negative performance impact
5878         (e.g., SB-1).
5879
5880 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5881
5882         * expr.c (store_constructor_field): Don't call store_constructor
5883         if bitsize is not a multiple of a byte.
5884
5885 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5886
5887         * reload1.c (inherit_piecemeal_p): New function.
5888         (emit_reload_insns): When reloading a group of hard registers, use
5889         inherit_piecemeal_p to decide whether the values of individual hard
5890         registers can be inherited.
5891
5892 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5893
5894         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5895         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5896         * config/t-linux (LIB2ADDEHDEP): Likewise.
5897
5898 2004-05-04  Paul Brook  <paul@codesourcery.com>
5899
5900         * config/arm/crti.asm: Push an even number of registers.
5901         * config/arm/crtn.asm: And restore them.  Load via sp.
5902
5903 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5904
5905         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5906         Collect overhead information.
5907         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5908         parameter and pass it through.
5909         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5910         MEM_STAT_DECL parameter and pass it through.
5911         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5912         MEM_STAT_DECL parameter and pass it through.
5913
5914 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5915
5916         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5917
5918         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5919
5920         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5921         rs6000_hard_regno_nregs.
5922
5923 2004-05-03  Eric Christopher  <echristo@redhat.com>
5924
5925         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5926         prologue insn instead of setting up call.
5927         (s390_emit_epilogue): Ditto.
5928         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5929         (define_constants): Add numbers for above patterns.
5930
5931 2004-05-03  Eric Christopher  <echristo@redhat.com>
5932
5933         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5934         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5935         * config/s390/s390-protos.h: Prototype.
5936
5937 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5938
5939         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5940         assignment.
5941
5942 2004-05-03  Eric Christopher  <echristo@redhat.com>
5943
5944         * config/mips/mips.md: Fix branch length attribute definition.
5945
5946 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5947
5948         * config.gcc: Remove --enable-altivec support.
5949
5950         * config/rs6000/altivec-defs.h: Remove.
5951
5952 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5953
5954         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5955         * fixinc/fixincl.x: Regenerate.
5956
5957 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5958
5959         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5960         definition.
5961         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5962         float_truncate insn.
5963         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5964         (logb?f2): Reimplement expanders with float_truncate insn.
5965
5966 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5967
5968         PR 14718
5969         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5970         force_type_die for CONST_DECL.
5971
5972 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5973             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5974
5975         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5976         tm-dwarf2.h to tm_file.
5977         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5978         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5979         (ASM_DEBUG_SPEC): Delete.
5980
5981 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5982
5983         * optabs.h (enum optab_index): Add new OTI_expm1.
5984         (expm1_optab): Define corresponding macro.
5985         * optabs.c (init_optabs): Initialize expm1_optab.
5986         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5987         patterns.
5988         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5989         using expm1_optab.
5990         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5991         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5992
5993         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5994         to implement expm1, expm1f and expm1l built-ins as inline x87
5995         intrinsics.
5996
5997 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5998
5999         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
6000         * config/frv/frv.md (*return_true, *return_false): New patterns.
6001
6002 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
6003
6004         * rtl.h (PHI_NODE_P): Remove.
6005
6006 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
6007
6008         PR middle-end/14988
6009         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
6010         when passed -2 as 'align'.
6011         (put_var_into_stack): Use 'bool' as the type for the three local
6012         predicates.  Adjust calls to put_reg_into_stack.
6013         When passed a CONCAT, instruct put_reg_into_stack to use
6014         a consecutive stack slot for the second part.
6015         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
6016         'consecutive_p' parameter.  Turn the three predicates into 'bool'
6017         parameters.  Retrieve the register mode from 'reg'.
6018         When consecutive_p is true, instruct assign_stack_local_1 to use
6019         BITS_PER_UNIT alignment.
6020         (put_addressof_into_stack): Use 'bool' as the type for the two
6021         local predicates. Adjust call to put_reg_into_stack.
6022
6023 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6024
6025         * fold-const.c (fold_convert_const, fold): Add missing
6026         FIX_ROUND_EXPR case.
6027
6028 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
6029
6030         * configure.ac (FLEX, BISON): Only use tools from the build tree
6031         if build equals host.
6032         * configure: Rebuilt.
6033
6034         * config/frv/frv-protos.h (frv_expand_epilogue,
6035         frv_expand_fdpic_call): Add bool argument.
6036         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
6037         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
6038         (frv_expand_epilogue): Use new argument to decide whether to emit
6039         return instruction or copy the return address to LR.
6040         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
6041         sibcalls.
6042         (sibcall_operand): New.
6043         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
6044         PLUS nor LABEL_REF.  Add sibcall_operand.
6045         * config/frv/frv.md (call, call_value): Pass false to
6046         frv_expand_fdpic_call.
6047         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
6048         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
6049         sibcall_value_internal, sibcall_value_fdpicdi): New.
6050         (return_unsigned_true, return_unsigned_false): New.
6051         (epilogue): Adjust call to frv_expand_epilogue.
6052         (sibcall_epilogue): New.
6053
6054         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
6055         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
6056         before redefining them.
6057
6058 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6059
6060         * builtins.c (fold_fixed_mathfn): New function.
6061         (fold_builtin_lround, fold_builtin): Use it.
6062
6063 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
6064
6065         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
6066         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
6067
6068 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
6069
6070         * config/cris/cris.h: Revert my "fix comment typos" patch.
6071
6072 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
6073
6074         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
6075
6076 2004-05-01  Falk Hueffner  <falk@debian.org>
6077
6078         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
6079         builtin_insll): Disallow 0 as first input operand.
6080
6081 2004-05-01  Falk Hueffner  <falk@debian.org>
6082
6083         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
6084
6085 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
6086
6087         PR middle-end/15054
6088         * expr.c (expand_expr_real): Do not call preserve_temp_slots
6089         on a TARGET_EXPR temp.
6090         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
6091         TARGET_EXPR temp slots.
6092
6093 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
6094
6095         * simplify-rtx.c (simplify_ternary_operation): When
6096         converting an IF_THEN_ELSE to a relational op, return
6097         correct mode.
6098
6099 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6100
6101         * builtins.c (fold_builtin_round): Fix comment typo.
6102         (fold_builtin_lround): New function.
6103         (fold_builtin): Use it.
6104
6105 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
6106
6107         PR target/11608
6108         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
6109         more like the one in config/dbxelf.h.
6110
6111 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
6112
6113         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
6114         and adjust definition accordingly.
6115         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
6116         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
6117         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
6118         VECTOR_TYPE.
6119
6120 2004-04-30  Jason Merrill  <jason@redhat.com>
6121
6122         PR c++/14587
6123         * config/i386/winnt.c (associated_type): Look for attributes on
6124         the TYPE_MAIN_VARIANT of *this.
6125         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
6126         apply the attributes to the variants.
6127
6128 2004-04-30  Paul Brook  <paul@codesourcery.com>
6129
6130         * config.gcc: Simplify arm --with-{cpu,tune} test.
6131         * config/arm/arm-cores.def: Document whitespace restrictions.
6132
6133 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6134
6135         PR other/1963
6136         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
6137
6138 2004-04-30  Brian Ford  <ford@vss.fsi.com>
6139             DJ Delorie  <dj@redhat.com>
6140
6141         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6142         (DWARF2_DEBUGGING_INFO): Define to enable.
6143         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
6144         DWARF2.
6145         * configure.ac (Target-specific assembler checks)
6146         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
6147         relocs.
6148         * configure: Regenerate.
6149         * config.in: Likewise.
6150
6151         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6152         (ASM_OUPUT_DWARF_OFFSET): Define.
6153
6154 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6155
6156         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
6157         (s390_emit_call): New function prototype added.
6158         (s390_tls_get_offset): Function removed.
6159         * config/s390/s390.c (s390_function_ok_for_sibcall,
6160         s390_call_saved_register_used_p): New functions.
6161         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
6162         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
6163         (s390_emit_tls_call_insn): New function.
6164         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
6165         emit_call_insn.
6166         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
6167         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
6168         added.
6169         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
6170         register number used to hold the target address for sibcalls.
6171         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
6172         New expanders.
6173         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
6174         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
6175         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
6176         Expanders removed.
6177         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
6178         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
6179         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
6180         ("epilogue"): Changed the call to s390_emit_epilogue to use the
6181         new parameter.
6182
6183 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
6184
6185         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
6186         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
6187         reg-stack.c, varasm.c, config/alpha/ev4.md,
6188         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
6189         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
6190         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
6191         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
6192         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
6193         config/ia64/itanium2.md, config/ip2k/ip2k.c,
6194         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
6195         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
6196         comment typos.
6197
6198 2004-04-30  Paul Brook  <paul@codesourcery.com>
6199
6200         * config.gcc: Default ep9312 to hard-float.
6201         * config/arm/arm-cores.def: Add ARCH field.
6202         * config/arm/arm.c (FL_FOR_ARCH*): Define.
6203         (arm_arch_cirrus): New variable.
6204         (all_cores): Set and use arch.
6205         (all_architectures): Ditto.
6206         (arm_arch_name): New variable.
6207         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6208         Set and use arm_arch_cirrus.
6209         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6210         (enum processor_type): Update ARM_CORE define.
6211         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
6212         (CPP_SPEC): Remove %(cpp_cpu_arch).
6213         (CPP_ARCH_DEFAULT_SPEC): Remove.
6214         (CPP_CPU_ARCH_SPEC): Remove.
6215         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6216         (FPUTYPE_DEFAULT): Don't define here.
6217
6218 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
6219
6220         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6221         updates too.
6222
6223 2004-04-30  Paul Brook  <paul@codesourcery.com>
6224
6225         * arm.c (arm_needs_doubleword_align): Use mode alignment.
6226
6227 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
6228
6229         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6230         vec_sububs.
6231         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6232         duplicates.
6233
6234 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6235
6236         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6237         atan2?f3 expanders.
6238
6239 2004-04-29  Nick Clifton  <nickc@redhat.com>
6240
6241         Bug 14093
6242         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6243         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6244         Delete static from definition.
6245         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6246
6247 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6248
6249         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6250         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6251         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6252         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6253
6254 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
6255
6256         * commom.opt (Wfatal-errors): Add it.
6257         * diagnostic.c (flag_fatal_errors): Define it.
6258         (diagnostic_action_after_output): Check for flag_fatal_errors.
6259         * flags.h (flag_fatal_errors): Declare it.
6260         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6261         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6262
6263 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
6264
6265         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6266         blocks which have kill flag set.
6267
6268 2004-04-29  Ben Elliston  <bje@au.ibm.com>
6269
6270         * configure.ac (--with-as): Abort if user-supplied assembler
6271         cannot be executed.
6272         (--with-ld): Likewise for the linker.
6273         * configure: Regenerate.
6274
6275 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6276
6277         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6278         isn't NULL before using it.
6279
6280 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
6281
6282         PR target/15189
6283         * config/mips/mips.md (load_df_low): Use default length.
6284         (load_df_high, store_df_high): Likewise.
6285
6286 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6287
6288         * config/mips/mips.md, config/mips/sb1.md,
6289         config/rs6000/rs6000.c: Fix comment typos.
6290
6291 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6292
6293         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6294         Fix comment typos.
6295
6296 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
6297
6298         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6299         (delete_if_ordinary): Use above macro.
6300         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6301         Update copyright.
6302         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6303
6304 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
6305
6306         * c-decl.c (get_parm_info): Use the correct tag keywords when
6307         warning about type declarations in prototypes.
6308
6309 2004-04-29  Paul Brook  <paul@codesourcery.com>
6310
6311         * config.gcc: Pull list of cores from arm-cores.def.
6312
6313 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6314
6315         * combine.c (combine_simplify_rtx): Adjust call to use
6316         simplify_relational_operation.  Do not use SELECT_CC_MODE
6317         when a comparison already has a MODE_CC mode.
6318
6319 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6320
6321         (simplify_set): simplify_relational_operation may now
6322         return another relational expression.
6323         * cse.c (fold_rtx): simplify_relational_operation now
6324         takes of computing the comparison mode.
6325         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6326         remove dead code.
6327         (do_compare_rtx_and_jump): Likewise.
6328         * integrate.c (subst_constants): simplify_relational_operation
6329         may now return another relational expression.
6330         * simplify-rtx.c (simplify_gen_relational): Move most code to
6331         the new simplify_relational_operation and
6332         simplify_relational_operation_1 functions.
6333         (simplify_relational_operation): Rewritten.
6334         (simplify_relational_operation_1): New function.
6335         (simplify_ternary_operation): simplify_relational_operation
6336         may now return another relational expression.
6337         (simplify_rtx): Remove unnecessary temp variable.
6338
6339 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6340
6341         * reg-stack.c (swap_to_top): New function.
6342         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6343         swap_to_top().
6344         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6345         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6346         UNSPEC_FSCALE_EXP.
6347
6348         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6349         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6350         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6351         x87's fscale insn.
6352         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6353         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6354         patterns.
6355
6356 2004-04-28  Serge Belyshev  <1319@bot.ru>
6357
6358         PR 14944
6359         * coverage.c (read_counts_file): Fix usage of warning () call.
6360         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6361
6362 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6363
6364         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6365         options with "-" in the option index.
6366         (SPARC Options): Likewise.
6367         (M32R/D Options): Likewise.
6368
6369 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6370
6371         * convert.c (convert_to_integer): Convert (long)round -> lround,
6372         etc.
6373
6374 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6375
6376         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6377         Return false if we do not have fp register.
6378         (addrs_ok_for_quad_peep): Rename to ...
6379         (mems_ok_for_quad_peep): this.
6380         Add check for volatile memory.
6381         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6382         Rename to ...
6383         (mems_ok_for_quad_peep): this.
6384         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6385         to peephole2's.
6386         (lfq_power2): New instruction.
6387         (stfq_power2): Likewise.
6388
6389 2004-04-28  Jan Hubicka  <jh@suse.cz>
6390
6391         PR c/15004
6392         * function.c (do_warn_unused_parameter): Break out form ...
6393         (expand_function_end): ... here; warn only when not using cgraphunit.
6394         * function.h (do_warn_unused_parameter): Declare.
6395         * cgraphunit.c: Include function.h.
6396         (cgraph_finalize_function): Do unused parameter warning.
6397         * Makefile.in (cgraphunit.o): Depend on function.h
6398
6399 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6400
6401         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6402         calling install-info on $(DESTDIR)$(infodir)/dir already being
6403         present.
6404
6405 2004-04-28  Paul Brook  <paul@codesourcery.com>
6406
6407         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6408
6409 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6410
6411         * gcse.c (find_moveable_store): Do not accept store insns with
6412         REG_EH_REGION note.
6413
6414 2004-04-28  Paul Brook  <paul@codesourcery.com>
6415
6416         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6417         * function.c (assign_temp): Ditto.
6418         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6419
6420 2004-04-28  Paul Brook  <paul@codesourcery.com>
6421
6422         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6423
6424 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6425
6426         * var-tracking.c (variable_different_p): Add a parameter
6427         compare_current_location, compare current location of variable parts
6428         if it is true.
6429         (dataflow_set_different_1): Pass compare_current_location == false.
6430         (dataflow_set_different_2): Pass compare_current_location == false.
6431         (emit_notes_for_differences_1): Pass compare_current_location == true.
6432
6433 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6434
6435         * config/s390/s390.md ("casesi"): Mark jump table access as
6436         non-trapping and unchanging.
6437
6438 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6439
6440         PR debug/14829
6441         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6442         callers.
6443         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6444         number for indexing hard_regno_nregs array.
6445
6446 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6447
6448         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6449         * config/darwin-crt2.c: Only have contents on __ppc__.
6450
6451 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6452
6453         * config/xtensa/xtensa.c (call_insn_operand): Check
6454         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6455         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6456         * config/xtensa/xtensa.md (call, call_value): Likewise.
6457
6458 2004-04-27  Wu Yongwei  <adah@sh163.net>
6459
6460         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6461         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6462         (__gthread_mutex_init_function): Replace CreateMutex with
6463         initialization of custom mutex using CreateSemaphore.
6464         (__gthread_mutex_lock): Use InterlockedIncrement.
6465         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6466         (__gthread_mutex_unlock): Use InterlockedDecrement and
6467         ReleaseSemaphore to unlock
6468         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6469         __gthread_mutex_lock, __gthread_mutex_trylock,
6470         __gthread_mutex_unlock): Adjust to match inline versions in
6471         gthr-win32.h.
6472
6473 2004-04-27  Paul Brook  <paul@codesourcery.com>
6474
6475         * config/arm/arm.c (arm_promote_prototypes): New function.
6476         (TARGET_PROMOTE_PROTOTYPES): Use it.
6477
6478 2004-04-27  Paul Brook  <paul@codesourcery.com>
6479
6480         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6481
6482 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6483
6484         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6485         correctly output .pdesc directive before .end.
6486
6487 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6488
6489         Bug 14927
6490         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6491         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6492
6493 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6494
6495         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6496         * config/pa/pa-hpux10.h: Likewise.
6497         * config/pa/pa-hpux11.h: Likewise.
6498
6499 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6500
6501         * doc/invoke.texi (Overall Options): Document default for -o
6502         for PCH files.
6503
6504 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6505
6506         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6507         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6508         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6509
6510 2004-04-26  Paul Brook  <paul@codesourcery.com>
6511
6512         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6513
6514 2004-04-26  Paul Brook  <paul@codesourcery.com>
6515
6516         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6517
6518 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6519
6520         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6521         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6522         X % -1 as 0.
6523
6524 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6525
6526         PR bootstrap/15141
6527         * except.c (connect_post_landing_pads): Delete insns after the
6528         barrier when generating a unwind_resume_libfunc call.
6529
6530 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6531
6532         PR/c++ 15119
6533         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6534         for TARGET_EXPR.
6535
6536 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6537
6538         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6539         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6540         inhibit_libc is defined.
6541
6542 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6543
6544         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6545         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6546         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6547         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6548         (mips_adjust_cost): Move later in file, next to other sched hooks.
6549         (mips_macc_chains_last_hilo): New variable.
6550         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6551         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6552         * config/mips/mips.md (may_clobber_hilo): New attribute.
6553
6554 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6555             Bruce Korb  <bkorb@gnu.org>
6556
6557         * fixinc/inclhack.def (aix_syswait_2): New fix.
6558         * fixinc/fixincl.x: Regenerate.
6559         * fixinc/tests/base/sys/wait.h: Update for new test.
6560
6561 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6562
6563         PR target/14960
6564         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6565         to non_fixed_size, and leave out fixed_size from the sum.
6566         (generate_set_vrsave): Correct clobbers.
6567         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6568         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6569         (rs6000_libcall_value): Likewise.
6570         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6571         (FUNCTION_ARG_REGNO_P): Likewise.
6572
6573 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6574
6575         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6576         is a CONST_INT.
6577         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6578         with NARROW_OP1 instead of OP1.
6579
6580 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6581
6582         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6583         and __s390x__ hosts.
6584
6585 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6586
6587         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6588         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6589         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6590         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6591         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6592         * builtins.c (expand_builtin_fork_or_exec): New.
6593         (expand_builtin): Call it.
6594         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6595         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6596         * c-common.c (PID_TYPE): New macro.
6597         (c_common_nodes_and_builtins): Initialize pid_type_node.
6598         * calls.c (special_function_p): Do not handle fork and exec.
6599         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6600         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6601         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6602         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6603         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6604         * tree.h (enum tree_index): Add TI_PID_TYPE.
6605         (pid_type_node): New macro.
6606         (ECF_FORK_OR_EXEC): Removed.
6607
6608 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6609
6610         PR optimization/13985
6611         * cfgloopmanip.c (fix_loop_placements): New prototype.
6612         Call fix_bb_placements on the preheader of loops that have
6613         been reparented.
6614         (remove_path): Adjust call to fix_loop_placements.
6615
6616 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6617
6618         * config/darwin7.h: New file.
6619         * config.gcc (*-*-darwin*): Add darwin7.h if the
6620         version is greater than 6.
6621         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6622         (MATH_LIBRARY): Wrap in ifdefs.
6623
6624 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6625
6626         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6627         loading iWMMXt registers with a frame pointer.  Use post-increment
6628         without a frame pointer.
6629         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6630
6631 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6632
6633         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6634         mode" rather than "-funit-at-a-time" since -O2 enables it
6635         without requiring -f* options.  Refer to -fprofile-generate and
6636         -fprofile-use correctly.  Move -funit-at-a-time among options
6637         enabled by -O.  Add information about unit-at-a-time caveats.
6638
6639 2004-04-22  Per Bothner  <per@bothner.com>
6640
6641         * line-map.h (struct line_maps):  New field highest_line.
6642         (linemap_position_for_column):  Make non-inline function.
6643         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6644         * line-map.c (linemap_init):  Clear highest_line field.
6645         (linemap_add):  Set highest_line field.
6646         (linemap_line_start):  Minor optimization - use highest_line field.
6647         Reduce maximum column hint to 10000.  Update highest_line field.
6648         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6649         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6650         line_table->highest_line.
6651         (saved_line):  Remove unused field.
6652         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6653         Use  line_table's highest_line field instead of cpp_reader's line.
6654         * cpplib.c (start_directive):  Likewise use highest_line field.
6655         (do_line, do_linemarker):  Likewise just use newest map.
6656         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6657         * cpperror.c (cpp_error):  Likewise use highest_line field.
6658         * cppfiles.c (open_file_failed:  Likewise.
6659         (cpp_make_system_header):  Likewise use newest map and highest_line.
6660         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6661         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6662         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6663         _cpp_lex_direct):  Likewise use highest_line.
6664         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6665         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6666         and use newest map.
6667         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6668         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6669         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6670
6671 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6672
6673         PR bootstrap/14992
6674         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6675         * config/linux.h (USE_LD_AS_NEEDED): Define.
6676         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6677         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6678         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6679         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6680         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6681         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6682         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6683
6684 2004-04-22  Per Bothner  <per@bothner.com>
6685
6686         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6687         Fixes PR preprocessor/15067.
6688
6689 2004-04-23  Andreas Schwab  <schwab@suse.de>
6690
6691         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6692         avoid aliasing warning.
6693
6694 2004-04-22  Jan Hubicka  <jh@suse.cz>
6695             Mostafa Hagog <mustafa@il.ibm.com>
6696
6697       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6698       * cfgloopanal.c (expected_loop_iterations): Change the return value
6699
6700 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6701
6702         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6703         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6704         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6705         traces.
6706
6707 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6708
6709         Revert
6710         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6711
6712                 * var-tracking.c (variable_part_different_p): Variable parts
6713                 differ when the most recent locations differ.
6714
6715 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6716
6717         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6718         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6719         (embedded_pic_offset): Delete.
6720         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6721         MASK_* constants.
6722         (TARGET_EMBEDDED_PIC): Delete.
6723         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6724         (ASM_SPEC): Remove -membedded-pic.
6725         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6726         (ASM_OUTPUT_CASE_LABEL): Likewise.
6727         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6728         * config/mips/windiss.h (ASM_SPEC): Likewise.
6729         * config/mips/mips.c (struct machine_function): Remove
6730         embedded_pic_fnaddr_rtx.
6731         (TARGET_ENCODE_SECTION_INFO): Remove override.
6732         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6733         (override_options): Remove -membedded-pic handling.
6734         (print_operand): Remove handling of '%S'.
6735         (mips_select_section: Remove -membedded-pic handling.
6736         (mips_encode_section_info): Delete.
6737         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6738         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6739         -membedded-pic handling.
6740         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6741
6742 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6743
6744         * var-tracking.c (frame_base_decl): Remove useless GTY.
6745
6746 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6747
6748         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6749         user wants altivec and e500 instructions.
6750
6751 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6752
6753         PR target/14813
6754         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6755         in .init_array section to ...
6756         * config/ia64/crtbegin.asm: Here.
6757
6758         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6759         and hidden if HAVE_INITFINI_ARRAY is defined.
6760
6761 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6762
6763         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6764         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6765         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6766         (fp_register_operand, lo_operand): New.
6767         (mips_rtx_costs): Add TUNE_SB1 support.
6768         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6769         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6770         (mips_multipass_dfa_lookahead): New.
6771         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6772         TUNE_SB1): New.
6773         (TARGET_SWITCHES): Add -mfp-exceptions support.
6774         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6775         (BRANCH_COST): Fix whitespace.
6776         * config/mips/mips.md: Include sb1.md.
6777         * config/mips/sb1.md: New file.
6778         * doc/invoke.texi: Document -mfp-exceptions.
6779
6780         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6781         comment.
6782         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6783         (fixincl.o-warn): Delete.
6784
6785 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6786
6787         * config/rs6000/rs6000 (print_operand) ['z']:
6788         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6789
6790 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6791
6792         * config.gcc: Support --with-arch=iwmmxt for ARM.
6793
6794 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6795
6796         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6797         in two more places; remove unneeded force_reg
6798
6799 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6800
6801         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6802         for TARGET_MACHO.
6803         (print_operand): For TARGET_MACHO check to see if we need a stub
6804         and output one if we need it.
6805
6806         PR debug/15033
6807         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6808         rtl.
6809
6810 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6811
6812         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6813         (vall_value_gp): Likewise.
6814
6815 2004-04-20  DJ Delorie  <dj@redhat.com>
6816
6817         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6818         variables stored in word registers, then in memory.
6819
6820 2004-04-20  Eric Christopher  <echristo@redhat.com>
6821
6822         * cp/parser.c (cp_parser_declaration): Move translate
6823         up before tokens are lexed.
6824
6825 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6826
6827         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6828         (asin_optab, acos_optab): Define corresponding macros.
6829         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6830         * genopinit.c (optabs): Implement asin_optab and acos_optab
6831         using asin?f2 and acos?f2 patterns.
6832         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6833         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6834         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6835         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6836
6837         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6838         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6839         acos, acosf and acosl built-ins as inline x87 intrinsics.
6840
6841 2004-04-20  Paul Brook  <paul@codesourcery.com>
6842
6843         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6844
6845 2004-04-20  Paul Brook  <paul@codesourcery.com>
6846
6847         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6848
6849 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6850
6851         Revert part of 2004-04-17 change that moved -frename-registers
6852         to -O1.  -frename-registers is buggy.
6853
6854         * toplev.c (flag_rename_registers): Initialize to 0.
6855         * doc/invoke.texi (Optimize options): Move -frename-registers
6856         to "Not triggered by any -O level" section.  Adjust commentary
6857         accordingly.
6858
6859 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6860
6861         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6862
6863 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6864
6865         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6866         for mflo and mfhi instructions.
6867         (mips_output_move): Remove mflo and mfhi handling.
6868         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6869         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6870         Likewise various define_peephole2s.
6871         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6872         alternatives.
6873         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6874         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6875         (mfhilo_di, mfhilo_si): New patterns.
6876
6877 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6878
6879         * function.c (assign_parms): Force
6880         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6881
6882 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6883
6884         * var-tracking.c (variable_part_different_p): Variable parts differ
6885         when the most recent locations differ.
6886
6887 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6888
6889         * rtl.h (reg_set_last): Delete declaration.
6890         * rtlanal.c (reg_set_last): Delete.
6891
6892 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6893
6894         * fold-const.c (fold_convert): Make function extern/public.
6895         * tree.h (fold_convert): Prototype here.
6896         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6897         expand_builtin_strrchr, expand_builtin_strpbrk,
6898         expand_builtin_mempcpy, expand_builtin_bcopy,
6899         expand_builtin_bzero, expand_builtin_memcmp,
6900         expand_builtin_strcmp, expand_builtin_strncmp,
6901         stabilize_va_list, expand_builtin_sprintf,
6902         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6903         fold_builtin_exponent, fold_builtin_mempcpy,
6904         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6905         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6906         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6907
6908 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6909
6910         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6911         (move_from_CR_gt_bit): New.
6912         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6913         E500.
6914         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6915         E500.
6916
6917         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6918         (tstsfeq_gpr): Same.
6919         (cmpsfgt_gpr): Same.
6920         (tstsfgt_gpr): Same.
6921         (cmpsflt_gpr): Same.
6922         (tstsflt_gpr): Same.
6923         (e500_cceq_ior_compare): New.
6924         (e500_flip_gt_bit): New.
6925
6926         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6927         (print_operand): Add 'c' and 'D'.
6928         (rs6000_generate_compare): Rewrite to generate correct rtl.
6929         (rs6000_emit_sCOND): Handle E500.
6930         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6931         (output_e500_flip_gt_bit): New.
6932
6933         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6934         Protoize.
6935
6936 2004-04-19  Eric Christopher  <echristo@redhat.com>
6937
6938         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6939
6940 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6941
6942         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6943         fix information.
6944
6945 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6946
6947         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6948         download URL.
6949
6950 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6951
6952         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6953         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6954
6955 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6956
6957         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6958         (fold_builtin): Update caller to match.
6959
6960         PR bootstrap/15009
6961         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6962
6963         PR bootstrap/14999
6964         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6965
6966 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6967
6968         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6969
6970         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6971         (expand_mult_highpart_optab): Likewise.
6972         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6973
6974 2004-04-19  Paul Brook  <paul@codesourcery.com>
6975
6976         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6977         floatunssisf2, floatunssidf2): New patterns.
6978
6979 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6980
6981         PR other/14918
6982         * doc/invoke.texi (-fprofile-generate): Document requirement to
6983         use -fprofile-generate when linking.
6984
6985         * doc/extend.texi (Strong Using): Warn users against using this
6986         feature.
6987
6988 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6989
6990         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6991         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6992         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6993         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6994         constant.  Propogate change throughout file.
6995         (struct machine_function): Remove insns_len.
6996         (mips_string_length, mips16_strings, string_constants): Delete.
6997         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6998         when generating mips16 code.  Remove special mips16 treatment of
6999         string constants.
7000         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
7001         to have the form LABEL+CONSTANT.
7002         (mips_symbolic_address_p): Fix comment.
7003         (m16_usym8_4, m16_usym5_4): Delete.
7004         (mips_output_function_epilogue): Remove mips16 string handling.
7005         (mips_output_mi_thunk): Call mips16_lay_out_constants.
7006         (mips_select_section, mips_encode_section_info): Remove mips16
7007         string handling.
7008         (struct mips16_constant_pool): New.
7009         (add_constant): Take a mips16_constant_pool structure.  Keep pool
7010         sorted into order of ascending mode size.  Keep track of the highest
7011         possible start address, taking padding and the masking of the base PC
7012         value into account.
7013         (dump_constants_1): New function, split out from dump_constants.
7014         Handle vector constants.  Use gen_consttable_{int,float} rather than
7015         separate functions for each mode.
7016         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
7017         rather than separate functions for each alignment.
7018         (mips_find_symbol): Delete.
7019         (mips16_insn_length): New function, split out from
7020         mips16_lay_out_constants.
7021         (mips16_rewrite_pool_refs): New function.
7022         (mips16_lay_out_constants): Rework. Remove string handling.
7023         Always create an inline constant pool.
7024         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
7025         (UNSPEC_ALIGN): New constants.
7026         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
7027         (UNSPEC_ALIGN_[248]): Delete.
7028         (consttable_int, consttable_float, align): New patterns.
7029         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
7030
7031 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
7032
7033         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
7034         __unn_args_eq.
7035
7036 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
7037
7038         PR target/14715
7039         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
7040         with STARTING_FRAME_OFFSET.
7041
7042 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
7043
7044         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
7045         * config/mips/mips.c (macc_msac_operand): New function.
7046         * config/mips/mips.md (*msac): Move after *macc.
7047         (*msac2): New.  Generalize macc-related peepholes so that they apply
7048         to msac too.
7049
7050 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
7051
7052         * opts.c (decode_options): Do not enable flag_rename_registers
7053         and flag_web at -O3.
7054         * toplev.c (flag_rename_registers): Initialize
7055         flag_rename_registers and flag_web to
7056         AUTODETECT_FLAG_VAR_TRACKING.
7057         (default_debug_hooks): New global.
7058         (process_options): Initialize default_debug_hooks.  Warn if
7059         -fvar-tracking specified but not supported by the current
7060         debug format.  Do not run var tracking at -O0 or if not
7061         supported by the current debug format, even if
7062         -fvar-tracking was given.  If -fno-rename-registers
7063         is not specified, always run register renaming if var
7064         tracking is supported by the default debugging information
7065         format for the target, and we are at -O1 or higher; similarly
7066         for -fweb, but only at -O2 or higher.
7067         * doc/invoke.texi (Optimize Options): Document this.
7068
7069 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
7070
7071         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
7072         * configure: Regenerate.
7073
7074 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
7075
7076         * gcc.c (used_arg): Check whether an option has been removed.
7077
7078 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7079
7080         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
7081         debugging on Solaris 7 and up.
7082
7083 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7084
7085         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
7086         IRIX 5 port.
7087         Remove -save-temps workaround, handled automatically.
7088         Require GNU binutils 2.15 for debugging.
7089         Remove SGI make warnings since GNU make is now required.
7090         (Specific, mips-sgi-irix6): Some markup fixes.
7091         Describe MIPSpro C problems and workarounds.
7092         Mention working O32 ABI support.
7093         Recommend GNU as 2.15 for O32 with debugging.
7094         Remove description of fixed structure pass/return bug.
7095
7096 2004-04-16  DJ Delorie  <dj@redhat.com>
7097
7098         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
7099         TYPE_FIELDS.
7100         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
7101
7102 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7103
7104         * pa.md: Remove unnecessary declarations for asm_out_file.
7105
7106         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
7107         SAR register.  Fix comment.
7108         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
7109         (%cr11).
7110
7111         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
7112
7113 2004-04-16  Nick Clifton  <nickc@redhat.com>
7114
7115         * config/arm/arm.c (arm_override_options): Revert previous patch.
7116         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
7117         be safely built.
7118
7119 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7120
7121         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
7122         bug.
7123         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
7124         TARGET_DEFAULT): Changed. Ditto.
7125         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
7126         TARGET_ENDIAN_DEFAULT): Added. Ditto.
7127         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
7128         (TARGET_ENDIAN_DEFAULT): Added.
7129
7130 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7131
7132         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
7133         ATTR_CONST_NOTHROW_LIST.
7134
7135 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7136
7137         PR/middle-end 14915
7138         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
7139         BITS_BIG_ENDIAN.
7140
7141 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
7142
7143         * ra-debug.c (ra_print_rtx): Add break's to case legs.
7144
7145 2004-04-14  James E Wilson  <wilson@specifixinc.com>
7146
7147         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
7148
7149 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
7150
7151         * libada-mk.in: New file.
7152         * configure.ac: Create libada-mk from libada-mk.in.
7153         * configure: Regenerate.
7154
7155 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
7156
7157         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
7158         (logb_optab, ilogb_optab): Define corresponding macros.
7159         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
7160         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
7161         using logb?f2 and ilogb?i2 patterns.
7162         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
7163         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
7164         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
7165         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7166
7167         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
7168         and UNSPEC_XTRACT_EXP.
7169
7170         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
7171         patterns to implement fxtract x87 instruction.
7172         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
7173         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
7174         intrinsics.
7175         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
7176         x87's fxtract insn.
7177
7178 2004-04-14  Eric Christopher  <echristo@redhat.com>
7179
7180         * config/mips/t-elf: Enable multilibs by default.
7181
7182 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
7183
7184         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
7185         previous fix to check HAVE_return at runtime too.
7186
7187 2004-04-14  Nick Clifton  <nickc@redhat.com>
7188
7189         * config/arm/arm.c (arm_override_options): If the user has not
7190         specified an ABI, then default to AAPCS for the iWMMXt processor.
7191         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
7192         * config/arm/t-xscale-coff: Likewise.
7193
7194 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7195
7196         * builtins.c (fold_builtin_isdigit): New.
7197         (fold_builtin): Handle BUILT_IN_ISDIGIT.
7198         * defaults.h: Add TARGET_DIGIT0 and sort.
7199         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
7200
7201 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7202
7203         * builtins.c (fold_builtin_cabs, fold_builtin): Use
7204         `mathfn_built_in' to determine the new builtin.
7205         * fold-const.c (fold): Likewise.
7206
7207 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
7208
7209         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7210         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7211         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7212         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7213         (ASM_SPEC): Update accordingly.
7214         * config/mips/mips.c: Update after above renaming.
7215         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7216         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7217
7218 2004-04-13  James E Wilson  <wilson@specifixinc.com>
7219
7220         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7221         increment errorcount and return false instead of true.
7222
7223 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
7224
7225         * optabs.c (expand_twoval_unop): Reorder function arguments.
7226         * builtins.c (expand_builtin_mathfn_3): Update calls to
7227         expand_twoval_unop.
7228
7229         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7230         and UNSPEC_TAN_TAN. Add missing comment.
7231
7232         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7233         patterns to implement fptan x87 instruction.
7234         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7235         and tanl built-ins as inline x87 intrinsics. Define corresponding
7236         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7237         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7238         x87's fptan insn.
7239
7240 2004-03-13  Richard Henderson  <rth@redhat.com>
7241
7242         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7243         for LABEL_REFs.
7244
7245         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7246         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7247         * doc/invoke.texi: Update to match.
7248
7249         * varasm.c (unlikely_text_section): Use assemble_align instead of
7250         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
7251         correct alignment argument.
7252
7253 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7254
7255         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7256         after setting reg_last_reload_reg for optional output reloads.
7257
7258 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7259
7260         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7261         Definition of these two macros are corrected by adding
7262         matchine right paren.
7263
7264 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
7265
7266         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7267
7268 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7269
7270         * config/i386/i386.c (output_387_reg_move): New function.
7271         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7272         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7273         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7274         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7275         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7276
7277 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7278
7279         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7280         TYPE_DECL.
7281         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7282         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7283         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7284         Use skip_simple_arithmetic to find SAVE_EXPR.
7285         (force_type_save_exprs, force_type_save_exprs_1): New functions.
7286         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7287         Properly chain multiple pointers.
7288         (copy_tree_r): Copy a TYPE_DECL.
7289         * tree.c (variably_modified_type_p): Add some missing tests and
7290         make some other minor changes.
7291         * tree.h (force_type_save_exprs): New declaration.
7292
7293 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7294
7295         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7296         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
7297         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
7298         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
7299         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
7300         x%-1 into 0 (or x&0 if x has side-effects).
7301
7302 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7303
7304         * config/rs6000/rs6000.md: Document why a pattern is not
7305         available.
7306
7307         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7308         of floats on the E500.
7309         (branch_positive_comparison_operator): Do not allow NE even on the
7310         E500.
7311
7312 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7313
7314         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7315         in_text_unlikely_section to in_unlikely_text_section.
7316
7317 2004-04-11  Roger Sayle  <roger@eyesopen.com>
7318
7319         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
7320         calling convention to allow a NULL_TREE to be returned.  Factor
7321         sanity checks from callers, return NULL_TREE when appropriate.
7322         (fold): Handle COMPOUND_EXPR operands of binary expressions
7323         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
7324         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
7325         calls to fold_binary_op_with_conditional_arg.
7326
7327 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7328
7329         * config/mips/iris5.h (current_section_flags):  Add
7330         in_unlikely_executed_text and default case.
7331
7332 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7333
7334         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7335         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7336         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7337         HAVE_return and place it around the place where it is needed.
7338
7339 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7340
7341         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7342         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7343         and NORMAL_TEXT_SECTION_NAME.
7344         (unlikely_text_section): Check targetm.have_named_sections
7345         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7346         instead of SECTION_FORMAT_STRING.
7347         * config/mips/iris5.h (current_section_name): Add
7348         in_unlikely_executed_text case and move the abort into the switch.
7349         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7350         (NORMAL_TEXT_SECTION_NAME): Remove.
7351         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7352         (SECTION_FORMAT_STRING): Remove.
7353         * defaults.h (SECTION_FORMAT_STRING): Remove.
7354         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7355         (SECTION_FORMAT_STRING): Remove.
7356
7357 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7358
7359         * c-typeck.c (common_type): Prefer long long to long when same
7360         precision.
7361
7362 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7363
7364         PR 14887
7365         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7366         mode argument.
7367         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7368         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7369
7370 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7371
7372         * simplify-rtx.c (mode_signbit_p): New function to check whether
7373         an RTX is an immediate constant that represents the most significant
7374         bit of a given machine mode.
7375         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7376         C is the sign bit.
7377         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7378         when C2 is the sign bit.
7379         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7380         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7381         sign bit.
7382
7383 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7384
7385         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7386         TYPE_MODE.
7387
7388 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7389
7390         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7391         of TREE_READONLY for types.
7392
7393 2004-04-09  Caroline Tice  <ctice@apple.com>
7394
7395         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7396         (struct basic_block_def):  Add new field, partition.
7397         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7398         definitions.
7399         (partition_hot_cold_basic_blocks): Add extern function
7400         declaration.
7401         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7402         include statements.
7403         (N_ROUNDS): Increase the maximum number of rounds by 1.
7404         (branch_threshold): Add array value for new round.
7405         (exec_threshold): Add array value for new round.
7406         (push_to_next_round_p): New function.
7407         (add_unlikely_executed_notes): New function.
7408         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7409         (mark_bb_for_unlikely_executed_section): New function.
7410         (add_labels_and_missing_jumps): New function.
7411         (add_reg_crossing_jump_notes): New function.
7412         (fix_up_fall_thru_edges): New function.
7413         (find_jump_block): New function.
7414         (fix_crossing_conditional_branches): New function.
7415         (fix_crossing_unconditional_branches): New function.
7416         (fix_edges_for_rarely_executed_code): New function.
7417         (partition_hot_cold_basic_blocks): New function.
7418         (find_traces):  Add an extra round for partitioning hot/cold
7419         basic blocks.
7420         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7421         and only cold blocks, into the last (extra) round of collecting traces.
7422         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7423         over crossing edges.
7424         (bb_to_key):  Add code to correctly identify cold blocks when
7425         doing partitioning.
7426         (connect_traces): Modify to connect all the non-cold traces first, then
7427         go back and connect up all the cold traces.
7428         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7429         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7430         entry and exit blocks.
7431         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7432         if we are doing hot/cold partitioning.
7433         * cfgcleanup.c (cfglayout.h): Add new include statement.
7434         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7435         that cross section boundaries.
7436         (try_forward_edges): Likewise.
7437         (merge_blocks_move_predecessor_nojumps): Likewise.
7438         (merge_blocks_move_successor_nojumps): Likewise.
7439         (merge_blocks_move): Likewise.
7440         (try_crossjump_to_edge): Modify to not attempt after we have done
7441         the block partitioning.
7442         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7443         cross section boundaries.
7444         (try_optimize_cfg): Likewise.
7445         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7446         jumps that cross section boundaries.
7447         * cfglayout.c (flags.h): Add new include statement.
7448         (update_unlikely_executed_notes):  New function.
7449         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7450         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7451         updated appropriately.
7452         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7453         introduced by this optimization.
7454         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7455         extern function declaration.
7456         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7457         list of notes that can be deleted.
7458         (create_basic_block_structure):  Add initialization for partition field.
7459         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7460         section boundaries.
7461         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7462         cross section boundaries.
7463         (commit_one_edge_insertion): Add code so newly created basic block
7464         ends up in correct (hot or cold) section.  Modify to disallow
7465         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7466         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7467         crosses section boundaries.
7468         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7469         cross section boundaries.
7470         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7471         ends up in correct section, with correct notes attached.
7472         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7473         optimization.
7474         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7475         the end of functions are written into the correct (hot or cold)
7476         section.
7477         (dbx_source_file): Add code so writing debug file information
7478         doesn't incorrectly change sections.
7479         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7480         in partitioning hot/cold basic blocks into separate sections.
7481         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7482         section partitioning.
7483         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7484         conditional branches can span all of memory.
7485         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7486         unconditional branches can span all of memory.
7487         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7488         (final_scan_insn):  Add code to check for NOTE instruction indicating
7489         whether basic block belongs in hot or cold section, and to make sure
7490         the current basic block is being written to the appropriate section.
7491         Also added code to ensure that jump table basic blocks end up in the
7492         correct section.
7493         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7494         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7495         one of the branches has a jump that crosses between sections.
7496         (find_if_case_2): Likewise.
7497         (ifcvt): Modify to not attempt to mark loop exit edges after
7498         hot/cold partitioning has occurred.
7499         * opts.c (decode_options): Code to handle new flag,
7500         flag_reorder_blocks_and_partition; also to turn it off if
7501         flag_exceptions is on.
7502         (common_handle_option): Code to handle new flag,
7503         flag_reorder_blocks_and_partition.
7504         * output.h (unlikely_text_section): New extern function declaration.
7505         (in_unlikely_text_section): New extern function declaration.
7506         * passes.c (rest_of_handle_stack_regs):  Add
7507         flag_reorder_blocks_and_partition as an 'or' condition for calling
7508         reorder_basic_blocks.
7509         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7510         as an 'or' condition for calling reorder_basic_blocks.
7511         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7512         * print-rtl.c (print_rtx): Add code for handling new note,
7513         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7514         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7515         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7516         cross between section boundaries.
7517         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7518         indicating the basic block containing it belongs in the cold section.
7519         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7520         between hot and cold sections.
7521         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7522         initialize this flag, and to tie it to the command-line option
7523         freorder-blocks-and-partition.
7524         * varasm.c (cfglayout.h):  Add new include statement.
7525         (unlikely_section_label_printed):  New global variable, used for
7526         determining when to output section name labels for cold sections.
7527         (in_section):  Add in_unlikely_executed_text to enum data structure.
7528         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7529         NORMAL_TEXT_SECTION_NAME macros.
7530         (unlikely_text_section):  New function.
7531         (in_unlikely_text_section):  New function.
7532         (function_section):  Add code to make sure beginning of function is
7533         written into correct section (hot or cold).
7534         (assemble_start_function):  Add code to make sure stuff is written to
7535         the correct section.
7536         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7537         to an if statement that was checking 'in_text_section'.
7538         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7539         condition to an if statement that was checking 'in_text_section'.
7540         (default_section_type_flags_1):  Add check: if in cold section
7541         flags = SECTION_CODE.
7542         * config/darwin.c (darwin_asm_named_section):  Modify to use
7543         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7544         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7545         specifically for the i386.
7546         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7547         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7548         text string to something more informative.
7549         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7550         (SECTION_FORMAT_STRING):  Add new definition.
7551         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7552         '!in_unlikely_text_section' as an 'and' condition to an if statement
7553         that was already checking '!in_text_section'.
7554         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7555         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7556         sure these are properly defined for linux on ppc.
7557         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7558         for this new flag.
7559         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7560         reg_note.
7561         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7562         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7563         these new macros.
7564
7565 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7566
7567         * function.c (gen_mem_addressof): When changing the RTX from a REG
7568         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7569
7570 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7571
7572         PR target/14888
7573         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7574         truncxfdf2_noop): Provide dummy "fmov" implementations.
7575
7576 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7577
7578         * gcc.c (default_compilers): Add missing initializers.
7579
7580         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7581         Return 1 if file was successfully mapped.
7582
7583 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7584
7585         PR pch/13419
7586         PR pch/14137
7587         Radar #: 3315288
7588         * doc/invoke.texi (Precompiled Headers): Suggest -o
7589         to put an output file in a particular place.  Be more detailed
7590         about which options affect PCH validity and which options
7591         might not work.
7592         * c-pch.c (pch_matching): New.
7593         (MATCH_SIZE): New.
7594         (struct c_pch_validity): New field 'match'.
7595         (pch_init): Handle pch_matching.
7596         (c_common_valid_pch): Check pch_matching.
7597
7598         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7599
7600 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7601
7602         * doc/invoke.texi (Precompiled Headers): Warn about known
7603         problems.
7604
7605 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7606
7607         PR c++/14808
7608         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7609         to 1 if ASM_OUTPUT_DEF is defined.
7610         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7611         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7612         Set to non-zero iff not a one_only decl.
7613
7614 2004-04-08  Paul Brook  <paul@codesourcery.com>
7615
7616         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7617
7618 2004-04-08  Paul Brook  <paul@codesourcery.com>
7619
7620         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7621         PROMOTE_FOR_CALL_ONLY.
7622         * config/arm/arm-protos.h (arm_function_value): Declare.
7623         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7624         (TARGET_PROMOTE_PROTOTYPES): Return false.
7625         (arm_function_value): New function.
7626         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7627         (FUNCTION_VALUE): Call arm_function_value.
7628         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7629         (PROMOTE_FUNCTION_MODE): ... to this.
7630         (PROMOTE_FOR_CALL_ONLY): Remove.
7631         * config/mmix/mmix.h: Likewise.
7632         * config/s390/s390.h: Likewise.
7633         * config/sparc/sparc.h: Likewise.
7634         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7635         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7636         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7637         (PROMOTE_FOR_CALL_ONLY): Remove.
7638
7639 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7640
7641         PR ada/14538
7642         * ada/5rosinte.adb: Remove fake mprotect() body.
7643         * ada/5rosinte.ads: Add SA_SIGINFO.
7644         * ada/5rtpopsp.adb: Rewrite to use new interface.
7645         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7646         is tested before more complex ones which mix UNIX and embedded
7647         systems in the conditional.
7648
7649 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7650
7651         PR ada/14665
7652         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7653         filenames which end in .exe or have versioning suffixes like VMS.
7654
7655 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7656
7657         PR target/10129
7658         * config/darwin.c (darwin_encode_section_info): When the decl has
7659         a DECL_INITIAL, it is only defined also when it is not a common.
7660
7661 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7662
7663         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7664         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7665
7666 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7667
7668         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7669         global register variables.
7670
7671 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7672
7673         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7674         rpc_xdr_lvalue_cast_b): New fixes.
7675         * fixinc/fixincl.x: Regenerate.
7676         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7677
7678 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7679
7680         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7681         to power4 and power5 entries.
7682
7683 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7684
7685         * c-common.h (pending_lang_change): Mark for PCH.
7686
7687 2004-04-07  Caroline Tice  <ctice@apple.com>
7688
7689         * gcc.c (main): Move 'break' in main loops (on an error)
7690         to wait until error processing has occurred.
7691
7692 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7693
7694         * config.gcc: Stop changing enable_threads midstream.
7695         Replace uses of enable_threads_flag with enable_threads.
7696         * configure.ac: Replace uses of enable_threads_flag with
7697         enable_threads.  Improve autoconf quotation in one place.
7698         * configure: Regenerate.
7699
7700 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7701
7702         * builtins.c: Implement support for sincos function.
7703         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7704         BUILT_IN_COS{,F,L}.
7705         (expand_builtin_mathfn_3): New function.
7706         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7707         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7708         flag_unsafe_math_optimization is set.
7709
7710         * optabs.h (enum optab_index): Add new OTI_sincos.
7711         (sincos_optab): Define corresponding macro.
7712
7713         * optabs.c (init_optabs): Initialize sincos_optab.
7714         (expand_twoval_unop): New function.
7715
7716         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7717         patterns.
7718
7719         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7720         and UNSPEC_SINCOS_SIN.
7721
7722         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7723         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7724         built-ins as inline x87 intrinsics. Define splits for
7725         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7726         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7727         sincos patterns.
7728         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7729         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7730
7731         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7732         x87's fsincos insn.
7733
7734 2004-04-06  Devang Patel  <dpatel@apple.com>
7735
7736         PR 14467
7737         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7738
7739 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7740
7741         * doc/install.texi: Update HP-UX 11 installation procedure.
7742
7743 2004-04-06  Paul Brook  <paul@codesourcery.com>
7744
7745         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7746
7747 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7748
7749         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7750         when the TLS address is generated by a function call.
7751         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7752         (tls_local_dynamic): Likewise.
7753
7754 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7755
7756         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7757         and TYPE_VOLATILE.
7758
7759 2004-04-05  Caroline Tice  <ctice@apple.com>
7760
7761         * gcc.c (combine_flag): New global variable, for new driver option.
7762         (struct compiler): Add two new fields, to be used when
7763         combining multiple input files in a single pass (IMA).
7764         (default_compilers):  Add values for the new fields to all
7765         compiler entries. Modify the "@c" compiler entry for doing IMA
7766         properly with "-save-temps" and the "combine" flag.
7767         (option_map):  Add new driver option, "--combine", to tell driver
7768         to pass multiple input files to compiler at one time.
7769         (have_o_argbuf_index): New global variable.
7770         (store_arg): Modify to assign value to have_o_argbuf_index.
7771         (struct infile):  Add three new fields, to help with IMA.
7772         (display_help): Add help for new "combine" option.
7773         (process_command): Remove local variable have_o; add code to check
7774         for new "combine" option; remove assignment to combine_inputs.
7775         (do_spec_1):  Modify to deal with IMA better.
7776         (main): Make variable 'lang_n_infiles' local to entire function
7777         rather than to a single block.  Use flag combine_flag to
7778         determine whether to do IMA or not; Modify loop initializing
7779         infiles to deal properly with linker files.
7780         Add code for doing preprocessing in presence of
7781         IMA with "-save-temps" flag.  Modify "main" loop to handle
7782         multiple input files, in multiple languages, with or without
7783         preprocessing,  gracefully.
7784         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7785         re-set it to same directory it's previously been set to (avoid
7786         irritating, meaningless warning messages when doing IMA with
7787         save-temps).
7788         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7789         remove documentation about IMA that is no longer accurate; Add
7790         documentation explaining what "-combine" does.
7791         * ada/lang-specs.h: Add initialization values for new fields in
7792         "struct compiler".
7793         * cp/lang-specs.h: Likewise.
7794         * f/lang-specs.h: Likewise.
7795         * java/lang-specs.h: Likewise.
7796         * objc/lang-specs.h: Likewise.
7797         * treelang/lang-specs.h: Likewise.
7798
7799 2004-04-05  David Edelsohn
7800
7801         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7802         symbol handling.
7803
7804 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7805             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7806
7807         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7808         * pa.md: Use replace_equiv_address to retain the attributes of the
7809         memory operands used in the split and peephole2 patterns for optimizing
7810         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7811
7812 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7813
7814         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7815         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7816         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7817         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7818         PARM_DECL.
7819         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7820         for a type.
7821         * print-tree.c (print_node): Properly handle side-effects, readonly,
7822         and constant flags.
7823         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7824         and TREE_CONSTANT if not a type.
7825         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7826         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7827         (NON_TYPE_CHECK): New macro.
7828         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7829
7830 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7831
7832         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7833         to DWARF2_DEBUG unconditionally.
7834         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7835
7836 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7837             Nathanael Nerode  <neroden@gcc.gnu.org>
7838
7839         PR target/14548
7840         * config.host: Set the shell variable host_can_use_collect2.
7841         Set it to yes by default, and to no for alpha*-dec-*vms*,
7842         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7843         * configure.ac: Set and substitute the shell variable collect2.
7844         Give an error if use_collect2 is yes and host_can_use_collect2 is
7845         no.
7846         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7847         uses.  Initialize to @collect2@.
7848         (STAGESTUFF): Remove $(USE_COLLECT2).
7849         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7850         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7851         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7852         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7853         * configure: Regenerate.
7854
7855 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7856
7857         * simplify-rtx.c (simplify_binary_operation): Constant fold
7858         DIV, MOD, UDIV and UMOD using div_and_round_double.
7859
7860 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7861
7862         PR c++/14804
7863         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7864         RECORD_TYPEs.
7865
7866 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7867
7868         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7869         documentation.
7870
7871 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7872
7873         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7874         updating the REG_EQUAL note on an insn's libcall_insn.
7875
7876 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7877
7878         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7879
7880 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7881
7882         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7883         with reorder_operands_p.
7884
7885 2004-04-03  Jan Hubicka  <jh@suse.cz>
7886
7887         * md.texi (vec_set, vec_extract, vec_init): Document.
7888
7889 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7890
7891        * opts.c (decode_options): Do function inlining with very small
7892        max-inline-insns-* parameters when optimizing for size.
7893
7894 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7895
7896         * config/i386/i386.h (TARGET_NOCONA): New macro.
7897         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7898         (processor_type): Add PROCESSOR_NOCONA.
7899
7900         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7901
7902         * config/i386/i386.c (nocona_cost): New variable.
7903         (m_NOCONA): New macro.
7904         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7905         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7906         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7907         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7908         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7909         x86_decompose_lea, x86_arch_always_fancy_math_387,
7910         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7911         x86_ext_80387_constants, x86_four_jump_limit):
7912         (override_options): Add nocona_cost to processor_target_table.
7913         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7914         (incdec_operand): Prevent inc/dec generation for Nocona too.
7915         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7916
7917 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7918
7919         * rtlanal.c (find_reg_note): Manually
7920         unswitch the loop.
7921
7922 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7923
7924         * genemit.c (gen_split): Change prototype of generated code.
7925         * genrecog.c (write_action): Adjust prototype for and calls to
7926         gen_split_*.
7927         * gensupport.c (struct queue_elem): Add split field.
7928         (queue_pattern): Return a value.  Clear the split field.
7929         (process_rtx): Maintain an association between an insn and the
7930         split generated from it for a define_insn_and_split.
7931         (process_one_cond_exec): Generate a new split for a
7932         define_insn_and_split.
7933         * config/arm/arm-protos.h (arm_split_constant): Add insn
7934         parameter.
7935         (emit_constant_insn): New function.
7936         (arm_gen_constant): Use it.
7937         * config/arm/arm.md: Adjust calls to arm_split_constant.
7938
7939 2004-04-02  Jan Hubicka  <jh@suse.cz>
7940
7941         * cgraph.c: Add overall comment.
7942         (cgraph_inline_hash): New global variable.
7943         (cgraph_create_node): Break out from ...
7944         (cgraph_node): ... here.
7945         (cgraph_edge): New function.
7946         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7947         (cgraph_remove_edge): Accept edge, intead of source and destination.
7948         (cgraph_redirect_edge_callee): New.
7949         (cgraph_remove_node): Update all new datastructures.
7950         (cgraph_record_call, cgraph_remove_call): Kill.
7951         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7952         (dump_cgraph): ... here.
7953         (cgraph_function_possibly_inlined_p): Use new hashtable.
7954         (cgraph_clone_edge, cgraph_clone_node): New.
7955         * cgraph.h: Include hashtab.h
7956         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7957         fields, add inlined_to pointer.
7958         (cgraph_node): Add pointer to next_clone.
7959         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7960         (cgraph_remove_call, cgraph_record_call): Kill.
7961         (cgraph_inline_hash): Declare.
7962         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7963         cgraph_redirect_edge_callee): Declare.
7964         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7965         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7966         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7967         * cgraphunit.c: Add overall comment.
7968         (cgraph_optimize_function): Kill.
7969         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7970         (cgraph_finalize_function): Update call of cgraph_remove_node
7971         (record_call_1): Record call sites.
7972         (cgraph_create_edges): Accept node instead of decl argument.
7973         (error_found): New static variable.
7974         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7975         (cgraph_analyze_function): Update for new datastructures.
7976         (cgraph_finalize_compilation_unit): Plug memory leak.
7977         (cgraph_optimize_function): Kill.
7978         (cgraph_expand_function): Do not use cgraph_optimize_function.
7979         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7980         cgraph_inlined_callees): Kill.
7981         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7982         clones.
7983         (estimate_growth): Simplify.
7984         (cgraph_clone_inlined_nodes): New function.
7985         (cgraph_mark_inline_edge): Re-implement.
7986         (cgraph_mark_inline): Likewise.
7987         (cgraph_check_inline_limits): Simplify.
7988         (cgraph_recursive_inlining_p): New.
7989         (update_callee_keys): Break out from ...
7990         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7991         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7992         Likewise.
7993         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7994         list.
7995         (cgraph_preserve_function_body_p): New predicate.
7996         (cgraph_optimize): Verify cgraph.
7997         * function.h (struct function): Add fields saved_tree/saved_args.
7998         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7999         * toplev.c (rest_of_compilation): Do not free cfun.
8000         * tree-inline.c: Include function.h
8001         (struct inline_data): Add saving_p field; replace decl/current_decl by
8002         node/current_node.
8003         (insert_decl_map): New function.
8004         (copy_body_r): Handle saving; update cgraph datastructure.
8005         (copy_body): Handle recursive inlining.
8006         (initialize_inlined_parameters): Likewise.
8007         (expand_call_inline): Propagate node attributes; update cgraph.
8008         (optimize_inline_calls): Verify that datastructure still match.
8009         (save_body): New function.
8010         * tree-inline.h (save_body): New.
8011         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
8012         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
8013         * langhooks.c (lang_hooks): Add update_decl_after_saving.
8014
8015 2004-04-01  Serge Belyshev  <1319@bot.ru>
8016
8017         PR target/14702
8018         * config/i386/i386.md: fix source operand constraints in
8019         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
8020
8021 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8022
8023         * fold-const.c (folda): Preserve types of comparisons.
8024
8025 2004-04-01  Richard Henderson  <rth@redhat.com>
8026
8027         * toplev.c (backend_init): Move init_optimization_passes call ...
8028         (lang_dependent_init): ... here.
8029
8030 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
8031             Jakub Jelinek  <jakub@redhat.com>
8032
8033         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
8034         -lgcc --as-needed -lgcc_s --no-as-needed by default.
8035         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
8036         * configure: Rebuilt.
8037         * config.in: Rebuilt.
8038         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
8039         (stage2-start, stage3-start, stage4-start): Likewise.
8040         (stageprofile-start, stagefeedback-start): Likewise.
8041
8042 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
8043
8044         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
8045         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8046         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8047         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8048         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
8049         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
8050         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
8051         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
8052         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
8053         * config/sparc/t-linux: Removed.
8054
8055 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
8056
8057         PR c++/14755
8058         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
8059         "bitfld++ == const" to "++bitfld == const + incr" transformations.
8060
8061 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8062
8063         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
8064         * stor-layout.c (layout_decl): Likewise.
8065         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
8066         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
8067         * print-tree.c (print_node): Handle various used of unsigned_flag.
8068         * tree.def (BIT_FIELD_REF): Update comment.
8069         * tree.h (TREE_UNSIGNED): Deleted.
8070         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
8071
8072 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8073
8074         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
8075         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
8076         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
8077         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
8078         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
8079         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
8080         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
8081         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
8082         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
8083         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
8084         REAL_TYPE, not INTEGER_TYPE.
8085         (layout_type, case VECTOR_TYPE): Simplify code.
8086         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
8087         * tree.h: Update comments.
8088         (STRIP_NOPS): Use TYPE_UNSIGNED.
8089         (TYPE_UNSIGNED): New macro.
8090         (TYPE_TRAP_SIGNED): Remove now redundant check.
8091         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
8092
8093 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8094
8095         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
8096
8097 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
8098
8099         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
8100         Add darwin-fpsave.asm, darwin-vecsave.asm,
8101         and darwin-world.asm.
8102         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
8103         as the asm files contain altivec instructions.
8104         * config/rs6000/darwin-fpsave.asm: New file.
8105         * config/rs6000/darwin-vecsave.asm: New file.
8106         * config/rs6000/darwin-world.asm: New file.
8107
8108 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
8109
8110         * gengtype-yacc.y (option, stringseq): Add missing
8111         terminating semicolon.
8112
8113 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
8114
8115         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
8116         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
8117         tls_dtprel_ha_32, tls_dtprel_ha_64,
8118         tls_dtprel_lo_32, tls_dtprel_lo_64,
8119         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
8120         tls_tprel_ha_32, tls_tprel_ha_64,
8121         tls_tprel_lo_32, tls_tprel_lo_64,
8122         tls_got_tprel_32, tls_got_tprel_64,
8123         tls_tls_32, tls_tls_64): Replace register_operand with
8124         gpc_reg_operand.
8125
8126 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
8127
8128         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
8129         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
8130         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
8131         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
8132         *ctrdi_internal6): Replace register_operand with
8133         nonimmediate_operand.
8134
8135 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
8136
8137         * fold-const.c (fold): Reassociate multiply expression
8138         with an adjacent non-multiply expression to use
8139         architecture's multiply-add instruction.
8140
8141 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
8142
8143         * gengtype.c (create_option): New function.
8144         * gengtype.h: Prototype it.
8145         * gengtype-yacc.y (stringseq): New rule.
8146         (option): Use create_option.  Add new bare ID production.  Use
8147         stringseq, not STRING directly.
8148
8149         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
8150         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
8151         * varray.h, config/alpha/alpha.c:
8152         Use new shorter form of GTY markers.
8153
8154         * doc/gty.texi: Rewrite.
8155
8156 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
8157
8158         * config/darwin.c (machopic_function_base_name):
8159         Remove current_name and getting the name of the
8160         current function.
8161
8162 2004-03-30  Nick Clifton  <nickc@redhat.com>
8163
8164         * config/arm/arm.md (thumb_jump): Reduce the backward branch
8165         range, and increase the forward branch range, to allow for
8166         the fact that the PC will be off by 4.
8167
8168 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
8169
8170         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
8171
8172 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8173
8174         * config/rs6000/rs6000.c (output_vec_const_move):
8175         Find all cases of EASY_VECTOR_15_ADD_SELF.
8176         (easy_vector_constant_add_self): Accept
8177         all vector constant loadable by vsplt* and vadd*.
8178         (easy_vector_same): Use easy_vector_splat_const.
8179         (easy_vector_const): Use easy_vector_splat_const.
8180         (easy_vector_splat_const): New function.
8181         (gen_easy_vector_constant_add_self): New function.
8182
8183         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
8184         New prototype.
8185
8186         * config/rs6000/altivec.md (movv4si splitter): Change to
8187         emit move insn with halfed vector constant.
8188         (*movv8hi splitter): Likewise.
8189         (*movv16qi splitter): Likewise.
8190
8191 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8192
8193         PR 11591
8194         * config/rs6000/rs6000.c (rs6000_legitimate_address):
8195         Allow any offset to argument pointer in no-strict case.
8196
8197 2004-03-30  Jan Hubicka  <jh@suse.cz>
8198
8199         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
8200         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
8201         dump file in non-unit-at-a-time mode.
8202
8203 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
8204
8205         * config/cris/cris.h: Correct #ifdef to test for
8206         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8207         HAVE_AS_MUL_BUG_ABORT_OPTION.
8208
8209 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8210
8211         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8212         the address inside the old RTL.
8213
8214 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
8215
8216         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8217         (struct c_binding, struct c_scope): Add chain_next
8218         attributes to GTY markers.
8219         (struct lang_identifier, struct lang_tree_node): Define
8220         here...
8221         * c-tree.h: ... not here.  No longer need to declare struct
8222         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8223         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8224         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8225
8226         PR 14734, 11944
8227         * c-decl.c (get_parm_info): If error_mark_node is encountered
8228         in the bindings chain, unbind and discard it; don't abort.
8229
8230 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
8231             Dorit Naishlos <dorit@il.ibm.com>
8232
8233         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8234         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8235
8236 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
8237
8238         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8239
8240         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8241         (m68hc11_attribute_table): New attribute "page0" to mark a global
8242         variable as being allocated from within page0 section.
8243         (m68hc11_encode_label): New function.
8244         (m68hc11_strip_name_encoding): New function.
8245         (m68hc11_page0_symbol_p): New function.
8246         (m68hc11_indirect_p): Accept global variables marked in page0.
8247         (m68hc11_encode_section_info): Lookup "page0" attribute.
8248
8249         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8250         represents access to page0 variables.
8251
8252         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8253         ("*logicalsi3_silshl16_zext"): Likewise.
8254         ("*ashldi3_const32"): Likewise.
8255         (peephole2 ashift): Likewise.
8256
8257 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8258
8259         * c-tree.h (C_DECL_REGISTER): New.
8260         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8261         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8262         (build_array_ref, c_mark_addressable): Set and use it.
8263         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8264         Allow structures with volatile fields to be declared register.
8265         Don't check TREE_ADDRESSABLE before warning about taking address
8266         of register.
8267         * c-decl.c (finish_decl): Don't allow structures with volatile
8268         fields to be placed in named register.
8269         * doc/trouble.texi: Remove reference to structures with volatile
8270         fields in registers.
8271
8272 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8273
8274         * function.c (thread_prologue_and_epilogue): Move
8275         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8276         before the epilogue.
8277
8278 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8279
8280         * expr.c (store_constructor): Use gen_int_mode to correctly
8281         sign-extend CONST_INT value.
8282
8283 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8284
8285         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8286         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
8287         * doc/extend.texi: Likewise.
8288
8289 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
8290
8291         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8292           with TYPE_ORIG_SIZE_TYPE.
8293
8294 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
8295
8296         PR 14219
8297         * c-typeck.c (build_binary_op): Do not allow comparisons of
8298         vectors.
8299
8300 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
8301
8302         * config.gcc: Remove sparc-tti-*.
8303         * config/sparc/pbd.h: Delete.
8304
8305         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8306         * config/sparc/aout.h: Likewise.
8307
8308         * config/sparc/sparc.h: Remove if 0'd code.
8309         * config/sparc/sparc.md (call): Remove if 0'd code.
8310         (call_value): Likewise.
8311         (nonlocal_goto): Likewise.
8312         (unimp_insn): Delete.
8313
8314 2004-03-25  Roger Sayle  <roger@eyesopen.com>
8315
8316         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8317         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8318
8319 2004-03-25  Richard Henderson  <rth@redhat.com>
8320
8321         PR 11527
8322         * c-typeck.c (pop_init_level): Emit pending init elements earlier
8323         rather than later.
8324
8325 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8326
8327         * builtins.c (fold_builtin): Fix error in last change.
8328
8329 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8330
8331         * config/mips/mips.h: Formatting fix.
8332
8333 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8334
8335         * builtins.def: Add ctype builtins.
8336         * doc/extend.texi: Likewise.
8337
8338 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8339
8340         * builtins.c (fold_builtin): Add new builtin optimizations for
8341         sqrt and/or cbrt.
8342         * fold-const.c (fold): Likewise.
8343
8344 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8345
8346         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8347         (rs6000_sched_groups): New variable.
8348         (processor_target_table): Add power5.
8349         (rs6000_override_options): Set rs6000_sched_insert_nops,
8350         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8351         from rs6000_sched_groups.
8352         (output_cbranch): Use rs6000_always_hint.
8353         (rs6000_variable_issue): Use rs6000_sched_groups.
8354         (rs6000_adjust_cost): Add CPU_POWER5.
8355         (is_microcoded_insn): Use rs6000_sched_groups.
8356         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8357         Return 2 for POWER5 cracked instructions.
8358         (is_cracked_insn): Use rs6000_sched_groups.
8359         (is_branch_slot_insn): Use rs6000_sched_groups.
8360         (rs6000_issue_rate): Add CPU_POWER5.
8361         (rs6000_sched_finish): Use rs6000_sched_groups.
8362         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8363         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8364         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8365         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8366         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8367         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8368         * config/rs6000/power5.md: New file.
8369         * doc/invoke.texi: Add power5 option.
8370
8371 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8372
8373         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8374         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8375         * doc/invoke.texi: Fix a typo.
8376
8377 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8378
8379         PR optimization/9707.
8380         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8381         of recursing if both children are single-valued cases with no
8382         children.
8383
8384 2004-03-25  Paul Brook  <paul@codesourcery.com>
8385
8386         * config/arm/arm.c (vfp_print_multi): Remove.
8387         (arm_output_fldmx): New function.
8388         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8389         (arm_expand_prologue): Update to match.
8390         (arm_get_vfp_saved_size): New Function.
8391         (arm_get_frame_offsets): Use it.
8392         (arm_output_epilogue): Use new functions.
8393
8394 2004-03-24  Richard Henderson  <rth@redhat.com>
8395
8396         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8397         (reg_known_value, reg_known_value_size): Likewise; make static.
8398         (reg_known_equiv_p): Make static.
8399         (clear_reg_alias_info): Update for new indexing.
8400         (get_reg_known_value, set_reg_known_value): New.
8401         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8402         (canon_rtx): Use them.
8403         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8404         Don't play queer offsetting games with reg_known_value and
8405         reg_known_equiv_p.
8406         (end_alias_analysis): Free reg_known_value with gc.
8407         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8408         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8409         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8410         functions instead.
8411
8412 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8413
8414         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8415         config/i386/mmintrin.h: Update copyright.
8416
8417 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8418
8419         * configure.ac: Add --enable-werror-always (for top level bootstrap
8420         support).
8421         * configure: Regenerate.
8422
8423 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8424
8425         * objc/objc-act.c (objc_comptypes): Treat comparisons
8426         between 'Class' and '<class> *' as explicitly invalid.
8427
8428 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8429
8430         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8431         (-fprofile-values): Add enabled with profile-{generate,use}.
8432         (-fvpt): Same.
8433         (-ftracer): Add enabled with profile-use.
8434         (-funit-at-a-time): Add enabled at -O2,-O3.
8435         (-funroll-loops): Add enabled with profile-use.
8436         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8437         (max-gcse-passes): Mention default.
8438         (max-cse-path-length): Mention default.
8439
8440 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8441
8442         * Makefile.in (STRICT2_WARN): Reorder.
8443         * configure.ac: Check for -Wold-style-definition, and use it
8444         in strict1_warn if it's available.
8445         * configure: Regnerate.
8446
8447 2004-03-24  Paul Brook  <paul@nowt.org>
8448
8449         * config.gcc <arm>: Add --with-abi=
8450         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8451         thumb_far_jump_used): Remove prototypes.
8452         (arm_needs_doubleword_align): Add prototype.
8453         (thumb_compute_initial_elimination_offset): Ditto.
8454         * config/arm/arm.c (arm_get_frame_offsets): New function.
8455         (use_return_insn, output_return_instruction, arm_output_epilogue,
8456         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8457         arm_expand_prologue, thumb_expand_epilogue): Use it.
8458         (arm_abi, target_abi_name, all_arm_abis): New variables.
8459         (arm_override_options): Set them.  Set structure padding for AAPCS.
8460         (arm_return_in_memory): Update ABI check.
8461         (arm_init_cumulative_args): Initialize can_split.
8462         (arm_needs_doubleword_align): New function.
8463         (arm_function_arg): Don't split args after pushing to stack. Handle
8464         doubleword/even reg alignment.
8465         (arm_va_arg): Handle all doubleword aligned args.
8466         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8467         on ABI, not CPU.
8468         (arm_compute_save_reg0_reg12_mask): Fix comment.
8469         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8470         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8471         value for alignment.
8472         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8473         to match.
8474         (thumb_compute_initial_elimination_offset): New function.
8475         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8476         unneccessary rounding.
8477         * config/arm/arm.h (target_abi_name): Declare.
8478         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8479         arm_abi_type, ARM_DEFAULT_ABI): Define.
8480         (ARM_FLAG_ATPCS): Remove.
8481         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8482         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8483         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8484         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8485         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8486         Contitionalize on ABI, not CPU.
8487         (struct arm_stack_offsets): Define.
8488         (struct machine_function): Add stack_offsets.  Remove frame_size.
8489         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8490         pushed.
8491         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8492         doubleword alignment.
8493         (THUMB_INITIAL_ELIMINATION_OFFSET,
8494         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8495         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8496         * config/arm/arm.md (align_8): Enable for all targets.
8497         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8498         (ARM_DEFAULT_ABI): Define.
8499         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8500         -mstructure-size-boundary.
8501
8502 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8503
8504         * configure.ac: Check for -Wno-variadic-macros; don't use
8505         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8506         and if it's available, use it.  Also, clean up check for
8507         -Wno-long-long.
8508         * configure: Regenerate.
8509
8510 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8511
8512         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8513         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8514         (MULTILIB_DEFAULTS): Use it.
8515         (MIPS_CPU_STRING_DEFAULT): Remove.
8516         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8517         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8518         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8519         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8520         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8521         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8522         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8523         accordingly.
8524
8525 2004-03-24  DJ Delorie  <dj@redhat.com>
8526             Richard Sandiford  <rsandifo@redhat.com>
8527
8528         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8529         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8530         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8531         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8532         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8533         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8534         if TARGET_FIX_VR4122.
8535         * config/mips/mips.md (define_attr length): Account for nops inserted
8536         after macc and dmult when using -mfix-vr4122-bugs.
8537         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8538         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8539         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8540         * config/mips/vr4122-div.S: New file.
8541         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8542
8543 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8544
8545         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8546         (TARGET_MIPS4130): New macro.
8547         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8548         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8549         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8550         with PROCESSOR_R4130.
8551         * config/mips/mips.md (define_attr cpu): Add r4130.
8552         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8553
8554 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8555             Richard Sandiford  <rsandifo@redhat.com>
8556
8557         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8558
8559 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8560
8561         PR preprocessor/14438
8562         * cpplib.c (do_pragma): Remove line_change call after pragma
8563         handler.
8564
8565 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8566
8567         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8568         declarations.
8569
8570 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8571
8572         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8573         if flag_unsafe_math_optimizations.
8574         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8575         and TARGET_80387 expand using truncdfsf2_noop pattern.
8576         (truncxfsf2): Likewise using truncxfsf2_noop.
8577         (truncxfdf2): Likewise using truncxfdf2_noop.
8578         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8579
8580 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8581
8582         * hooks.c (hook_constcharptr_tree_null): New hook.
8583         * hooks.h (hook_constcharptr_tree_null): New prototype.
8584         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8585         * target.h (mangle_fundamental_type): New target hook.
8586         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8587         target hook at rs6000_mangle_fundamental_type.
8588         (rs6000_mangle_fundamental_type): New function.
8589         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8590
8591 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8592
8593         PR 12267, 12391, 12560, 13129, 14114, 14133
8594         * c-tree.h: Forward declare struct c_binding.  Declare
8595         c_override_bindings_to_false.  Update prototypes.
8596         (struct lang_identifier): Update comments.  Change fields to be
8597         struct c_binding *.
8598         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8599         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8600         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8601         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8602         * c-common.h: Update prototypes.
8603         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8604         names_last, parms, parms_last, tags, and shadowed fields.  Add
8605         bindings and depth fields.
8606         (scope_freelist): Move to more appropriate location.
8607         (c_print_identifier): Update for changes to struct lang_identifier.
8608         (objc_mark_locals_volatile): Update for new bindings structures.
8609         (global_bindings_p): Honor c_override_global_bindings_to_false.
8610         (pushlevel): Rename to push_scope; take no arguments; use the
8611         scope_freelist; initialize scope->depth and check for overflow.
8612         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8613         structures.
8614         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8615         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8616         Improve some commentary.  Adjust handling of forward parm decls.
8617         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8618         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8619         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8620         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8621         decls.  Rewrite for new bindings structures.  Improve commentary.
8622         Eliminate the copy_node call.
8623         (implicit_decl_warning): Use the "diag" idiom (as seen in
8624         locate_old_decl) to reduce code duplication; call locate_old_decl
8625         if appropriate.  Relocate to remove need for forward declaration.
8626         (implicitly_declare): Adjust for new bindings structures.  Kludge
8627         around Objective-C not-really-builtin functions.
8628         (undeclared_variable): Improve diagnostics.  If current_function_decl
8629         is nonnull but current_function_scope is null, use current_scope.
8630         Use bind.
8631         (lookup_tag): Adjust for new bindings structures.  Kludge around
8632         Objective-C's tag declarations that wind up in the external scope.
8633         (lookup_name): Adjust for new bindings structures.  Kludge around
8634         c-common.c's pseudo-typedefs that wind up in the external scope.
8635         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8636         second argument indicating the scope to examine; rewrite for
8637         new bindings structures.
8638         (c_init_decl_processing): Adjust for renamed functions.  Do not
8639         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8640         First scope pushed is the external scope, not the global scope.
8641         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8642         for new data structures.  Keep track of builtins that should be
8643         made visible automatically.
8644         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8645         expand_decl.
8646         (grokparms): Return 0 if arg_types is error_mark_node.
8647         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8648         reversed sense.  Rewrite for new bindings structures.  Do not
8649         leave any decls in the scope, to prevent pop_scope from doing
8650         contradictory things with them.
8651         (finish_struct, finish_enum): Remove redundant diagnostics.
8652         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8653         Mark location where -pedantic changes the meaning of the program.
8654         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8655         parameter decls into the function's scope structure using bind.
8656         Warn here about function definitions in the wrong style.
8657         Adjust diagnostics.
8658         (store_parm_decls): Correct the determination of whether a
8659         function was defined with a prototype.
8660         (c_write_global_declarations): Operate on all file decls and on
8661         the external scope.  Split body of the loop to...
8662         (c_write_global_declarations_1): ... this new function, to avoid
8663         code duplication.
8664         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8665         (make_scope, pop_scope, in_parm_level_p, set_block)
8666         (any_external_decl, record_external_decl, bind_label, getdecls)
8667         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8668         (c_reset_state): Delete.
8669         (visible_builtins, c_override_global_bindings_to_false)
8670         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8671         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8672         (external_scope, binding_freelist, bind, free_binding_and_advance)
8673         (push_file_scope, pop_file_scope): New.
8674         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8675         (define_label, c_make_fname_decl, finish_decl)
8676         (mark_forward_parm_decls, build_compound_literal)
8677         (grokdeclarator, start_function, check_for_loop_decls)
8678         (identifier_global_value, record_builtin_type): Minor adjustments
8679         for new bindings structures.  Improve diagnostics and commentary.
8680         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8681         pushlevel/poplevel respectively.
8682         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8683         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8684         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8685         correct loop over multiple translation units; call fatal_error if
8686         requested to compile more than one file at once.  (This disables
8687         IMA temporarily - an up-front error being preferable to a crash.)
8688         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8689         (all actions): Adjust calls to pushlevel/poplevel.
8690         (parsing_iso_function_signature): Delete.
8691         (extdef_1): Fold into extdef.
8692         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8693         warn here about function definitions in the wrong style.
8694         (after_tyle_declarator, parm_declarator_starttypename)
8695         (parm_declarator_nostarttypename, notype_declarator): Remove
8696         commented-out productions.
8697         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8698         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8699         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8700         to suppress -Wold-style-definition after this error.
8701         (c_parse_file): Don't clear the binding stack or call
8702         finish_fname_decls here.  Correct comment.
8703         * c-typeck.c (same_translation_unit_p): Export.
8704         (common_type): Use c_override_global_bindings_to_false, not
8705         pushlevel/poplevel/declare_parm_level.
8706         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8707         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8708         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8709         * objc/objc-lang.c: Likewise.
8710         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8711         get_parm_info.
8712         (OBJC_VOID_AT_END): Delete; replace all uses
8713         with void_list_node.
8714         (generate_forward_declaration_to_string_table): Delete.
8715         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8716
8717         * coverage.c (create_coverage): Don't pushdecl anything.
8718         * langhooks.c (lhd_clear_binding_stack): Call
8719         lang_hooks.decls.poplevel, not poplevel.
8720         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8721         circular list rather than going into an infinite loop.
8722
8723 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8724
8725         * optabs.c (expand_binop): When synthesizing double word rotates
8726         from single word shifts, use a new register target if the provided
8727         target is not a REG already.
8728
8729 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8730
8731         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8732         * c-common.c (handle_mode_attribute): Add extra arg to
8733         build_pointer_type_for_mode and build_reference_type_for_mode.
8734         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8735         for INTEGER_CST.
8736         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8737         Chain pointers via TYPE_NEXT_PTR_TO.
8738         (build_reference_type_for_mode): Similarly.
8739         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8740         and build_reference_type_for_mode.
8741         (tree_check4_failed): New function.
8742         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8743         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8744         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8745         Add check.
8746
8747 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8748
8749         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8750         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8751         when both A and B are nonnegative.
8752         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8753         nonzero.
8754
8755 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8756
8757         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8758         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8759
8760 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8761
8762         PR optimization/14669
8763         * fold-const.c (fold): Only unwiden integer comparisons for equality
8764         and inequality operators, or when the signedness doesn't change.
8765
8766 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8767
8768         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8769         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8770         * config/sparc/t-linux: New file.
8771
8772 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8773
8774         * gcse.c (can_assign_to_reg_p): New function, split out from...
8775         (want_to_gcse_p): ...here.
8776         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8777         the rhs of a store.
8778
8779 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8780
8781         * c-typeck.c (same_translation_unit_p): Fix pasto.
8782
8783 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8784
8785         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8786         (PARAM_MAX_SCHED_REGION_INSNS): New.
8787         * sched-rgn.c: Include params.h
8788         (MAX_RGN_BLOCKS): Delete.
8789         (MAX_RGN_INSNS): Delete.
8790         (too_large): Return bool.  Convert to PARAM_VALUE.
8791         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8792         * doc/invoke.texi (param): Document max-sched-region-blocks and
8793         max-sched-region-insns.
8794
8795 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8796
8797         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8798         for base types.
8799
8800 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8801
8802         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8803         change.
8804
8805 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8806
8807         PR c/14069
8808         * c-decl.c (finish_struct): Change type of incorrect flexible array
8809         field into error_mark_node.
8810
8811 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8812
8813         PR target/14580
8814         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8815         who are not local for Darwin PIC.
8816
8817 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8818
8819         * regrename.c (regrename_optimize): Set regs_ever_live for all
8820         registers introduced as replacement.
8821
8822 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8823
8824         PR middle-end/14470
8825         * expr.c (mark_queue): New function.
8826         (emit_insns_enqueued_after_mark): New function replacing
8827         emit_queue.  Clear the body of emitted queued insns.
8828         (emit_queue): Call emit_insns_enqueued_after_mark.
8829         (store_expr): Mark the increment queue on entry.  Emit
8830         only the incrementations queued when expanding the source.
8831
8832 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8833
8834         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8835         of top level bootstrap, and consistency).  Reindent.
8836         * configure: Regenerate.
8837
8838 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8839
8840         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8841         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8842         unnecessary casts.
8843
8844 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8845
8846         PR target/14291
8847         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8848         __MINGW32__.
8849
8850 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8851
8852         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8853         to nonimmediate_operand.
8854         ("*doloop_di"): Likewise.
8855
8856 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8857
8858         * real.h (struct real_value): Use the same type for all
8859         bitfields.  Rename exp to uexp.
8860         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8861         Adjust all uses of exp...
8862         * builtins.c: ... here, ...
8863         * emit-rtl.c: ... here, and ...
8864         * real.c: ... and here.
8865
8866 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8867
8868         * pretty-print.c (pp_base_maybe_space): New function.
8869         * pretty-print.h (pp_base_maybe_space): Declare.
8870         (pp_maybe_space): New macro.
8871
8872 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8873
8874         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8875
8876 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8877
8878         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8879         of using register multiplication cost.
8880         (expand_mult): Adapt choose_mult_variant call.
8881         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8882         of MODE; pass appropriate cost bound.  Adjust result when
8883         performing signed multiplication by a negative constant.
8884         Don't use intermediate modes larger than word_mode.
8885
8886 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8887
8888         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8889         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8890         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8891         * explow.c (expr_size): Likewise.
8892         * expr.h (placeholder_list, find_placeholder): Deleted.
8893         * expr.c (store_constructor): Likewise.
8894         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8895         (placeholder_list, find_placeholder): Deleted.
8896         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8897         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8898         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8899         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8900         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8901         Likewise.
8902         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8903         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8904         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8905         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8906         Clean up by using first_rtl_op.
8907         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8908         (substitute_placeholder_in_expr): New function.
8909         * tree.def (WITH_RECORD_EXPR): Deleted.
8910         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8911         (substitute_placeholder_in_expr): New.
8912
8913 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8914
8915         * dojump.c (prefer_and_bit_test): Fix which part of
8916         the and_test is replaced.
8917
8918 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8919
8920         * frontends.texi: Add missing line.
8921
8922 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8923             Chris Devers  <cdevers@pobox.com>
8924             Joseph S. Myers  <jsm@polyomino.org.uk>
8925
8926         * doc/frontends.texi: Rewrite.
8927         * doc/gcc.texi: Update last modification date.
8928
8929 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8930
8931         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8932         message before redirecting the edge.
8933
8934 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8935
8936         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8937         flag.
8938         * explow.c (force_not_mem): Set REG_POINTER flag according to
8939         MEM_POINTER one.
8940         * rtl.h (MEM_POINTER): New macro.
8941         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8942         for MEM_POINTER.
8943
8944 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8945
8946         PR target/13889
8947         * cse.c (fold_rtx): Avoid substituting constants into unary
8948         conversion operations.
8949
8950 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8951
8952         * fold-const.c (fold): Replace "expr" with "t".
8953
8954 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8955
8956         PR c/12373
8957         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8958         DECL_ORIGINAL_TYPE if there isn't one.
8959
8960 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8961
8962         * fold-const.c (fold): Replace "final_type" with "type".
8963         Remove variable "final_type".
8964
8965 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8966
8967         * fold-const.c (fold): Constify "type".
8968         Replace "TREE_TYPE (t)" with "type".
8969
8970 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8971
8972         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8973         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8974         via (*targetm.foo) () with targetm.foo ().
8975
8976 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8977
8978         PR other/14630
8979         * doc/install.texi: Add info directory category and entry.
8980
8981 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8982
8983         * fold-const.c (fold): Replace "t" with "tem" where it is used
8984         as a temporary variable.  Remove "orig_t" and all of its uses.
8985
8986 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8987
8988         * fold-const.c (fold): Remove variable "invert".
8989         Move the handling of relational expressions that can be folded
8990         to a constant ...
8991         (fold_relational_const): ... here.
8992         (tree_expr_nonzero_p): New.
8993
8994 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8995
8996         PR c/14635
8997         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8998         DEF_GCC_BUILTIN.
8999
9000 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
9001
9002         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
9003         (GTFILES): Add $(srcdir)/dojump.h.
9004         (gt-dojump.h): New dependency.
9005         * dojump.c (and_reg, and_test, shift_test): New static variables.
9006         (prefer_and_bit_test): New function.
9007         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
9008
9009 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9010
9011         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
9012         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
9013         reorg.c, tree.h: Fix comment typos.
9014
9015 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9016
9017         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
9018         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
9019         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
9020         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
9021         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
9022         vmsdbgout.c: Replace calls via (*targetm.foo) () with
9023         targetm.foo ().
9024
9025 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
9026
9027         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
9028         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
9029         always_inline attribute.
9030         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
9031         Treat expansion as completed even if literal argument is
9032         invalid (so that other expansions are not tried in vain).
9033
9034 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9035
9036         * loop-doloop.c (add_test): Replace GEN_INT (0) with
9037         const0_rtx.
9038
9039 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9040
9041         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
9042         ...
9043         (fold_abs_const): ... here.
9044
9045 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9046
9047         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
9048
9049 2004-03-19  Denis Chertykov  <denisc@overta.ru>
9050
9051         PR target/11520
9052         * config/avr/avr.md ("call_insn"): Handle explicit integer
9053         specially.
9054         (call_value_insn): Likewise.
9055
9056 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9057
9058         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
9059
9060 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9061
9062         * fold-const.c (negate_expr): Move the handling of constants
9063         ...
9064         (fold_negate_const): ... here.
9065
9066 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9067
9068         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
9069         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
9070         * tree.c (debug_no_type_hash): Deleted.
9071         (type_hash_canon): Abort if passed a variant.
9072         Check lang_hooks.types.hash_types.
9073         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
9074         (build_array_type): Remove unnecessary allocation of pointer type.
9075         (build_complex_type): Properly qualify resulting type.
9076
9077 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
9078
9079         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
9080
9081 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
9082
9083         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
9084         (expand_mult): ...here.
9085         (extract_high_half): New, split out from expand_mult_highpart.
9086         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
9087         (expand_highpart): Evaluate the cost of a shift/add sequence,
9088         then see if any of the specialized optabs are cheaper.
9089
9090 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
9091
9092         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
9093
9094 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9095
9096         * convert.c (convert_to_real): Add more math builtins.
9097
9098 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9099
9100         * convert.c (convert_to_real): Reformat using switch stmt.
9101
9102 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
9103
9104         * c-common.c (pointer_int_sum): Do not complain about using
9105         pointers to pointers-to-members.
9106
9107 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9108
9109         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
9110         have moved to the target hooks structure".
9111
9112 2004-03-18  James E Wilson  <wilson@specifixinc.com>
9113
9114         * config/mips/mips.md (type): Split move into arith and fmove.  Split
9115         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
9116         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
9117         Likewise.
9118         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
9119         Likewise.
9120         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
9121         rm7_fp_quick): Likewise.
9122         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
9123         rm9k_fquick): Likewise.
9124         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
9125         Likewise.
9126         (ir_sr70_icmp): Delete.
9127
9128 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9129
9130         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
9131         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
9132         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
9133         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
9134         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
9135         Protect with proper check.
9136         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
9137         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
9138         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
9139         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
9140         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
9141         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
9142         not TYPE_FIELDS.
9143         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
9144
9145 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
9146
9147         * gcse.c (eliminate_partially_redundant_loads): Reject change if
9148         dest is set between beginning and current insn.
9149
9150 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
9151
9152         * c-decl.c (grokdeclarator): Do not complain about redeclaring
9153         visible "static" identifiers "extern" in a local scope.
9154         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
9155         post-increments/decrements.
9156
9157 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
9158
9159         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
9160         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
9161         (xtensa_va_start): Remove assignment to current_function_arg_words.
9162
9163 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
9164
9165         * alias.c (record_set): Detect the case where a register is assigned
9166         a new value that has the same base term as the old one.
9167
9168 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9169
9170         * doloop.c: Removed.
9171         * loop-doloop.c: New file.
9172         * Makefile.in (doloop.o): Remove.
9173         (loop-doloop.o): New.
9174         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
9175         * cfgloopanal.c (get_loop_level): New function.
9176         * loop-iv.c (iv_number_of_iterations): Handle case when loop
9177         is leaved immediatelly.
9178         * loop.c (strength_reduce): Do not call doloop optimization.
9179         * loop.h (LOOP_BCT): Removed.
9180         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
9181         (rest_of_handle_loop2): Call doloop_optimize_loops.
9182         (rest_of_compilation): Test for optimizations moved to
9183         rest_of_handle_loop2.
9184
9185 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
9186
9187         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
9188         for mixed mode.
9189         (rs6000_emit_prologue): Ditto.
9190         (rs6000_emit_epilogue): Ditto.
9191         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
9192         macro for mixed mode.
9193
9194 2004-03-18  Jan Hubicka  <jh@suse.cz>
9195
9196         * predict.c (propagate_freq): Compute correctly frequency of
9197         EXIT_BLOCK.
9198
9199 2004-03-17  Eric Christopher  <echristo@redhat.com>
9200
9201         * builtins.c (apply_args_size): Use reg_raw_mode.
9202         (apply_result_size): Ditto.
9203
9204 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9205
9206         PR target/14620
9207         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9208
9209 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
9210
9211         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9212         32-bit builds when defaulting to 32-bit.
9213
9214 2004-03-17  Jan Hubicka  <jh@suse.cz>
9215
9216         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9217         array.
9218
9219 2004-03-17  James E Wilson  <wilson@specifixinc.com>
9220
9221         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9222         (hazard_nop): Change type to nop.
9223         (type): Split arith into arith, shift, slt, clz.  Delete darith.
9224         Fix all uses.  Change arith to multi if more than one insn emitted.
9225         * config/mips/5400.md (ir_vr54_arith): Likewise.
9226         * config/mips/5500.md (ir_vr55_arith): Likewise.
9227         * config/mips/7000.md (rm7_int_other): Likewise.
9228         * config/mips/9000.md (rm9k_int): Likewise.
9229         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9230
9231 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
9232
9233         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9234         to hold the subtype tree instead of recomputing it several times.
9235
9236 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9237
9238         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9239         CC_INVERT.
9240         * config/mn10300/mn10300.md (cc): Remove "invert".
9241
9242 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9243
9244         * builtins.c (integer_valued_real_p): Add builtin rint.
9245         (fold_builtin): Likewise.
9246         * convert.c (convert_to_real): Likewise.
9247
9248         * convert.c (convert_to_real): Fix typos in `long double'
9249         builtins.
9250
9251 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
9252
9253         PR c++/14481
9254         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9255         generated COMPOUND_EXPRs.
9256
9257 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9258
9259         * config/h8300/t-rtems (h8300-*-rtems*): New.
9260
9261 2004-03-16  Eric Christopher  <echristo@redhat.com>
9262
9263         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9264
9265 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9266
9267         * config/i386/i386-protos.h: Add a prototype for
9268         ix86_reverse_condition.
9269         * config/i386/i386.c (ix86_reverse_condition): New.
9270         * config/i386/i386.h (REVERSE_CONDITION): Use
9271         ix86_reverse_condition.
9272         * config/i386/i386.md: Use ix86_reverse_condition instead of
9273         REVERSE_CONDITION.
9274
9275 2004-03-16  J. Brobecker  <brobecker@gnat.com>
9276
9277         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9278
9279 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9280
9281         PR bootstrap/12974
9282         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9283
9284 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9285
9286         * c-common.c (c_common_type_for_mode): Build vector types on
9287         demand.
9288         (handle_mode_attribute): Deprecate using the mode attribute
9289         to create vector types.  Fix indentation.
9290         (vector_type_node_list): Remove.
9291         (handle_vector_size_attribute): Create vector types on demand.
9292         Strip a NON_LVALUE_EXPR from the attribute if there is one.
9293         * c-typeck.c (comptypes): Make vector types compatible if they
9294         have the same underlying mode.
9295         (convert_for_assignment): Use comptypes to convert between
9296         vector types.
9297         * tree.c (build_common_tree_nodes_2): Do not create vector types.
9298         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9299         vector types.
9300         * tree.h: Remove vector types.
9301         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9302         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9303         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9304         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9305         * doc/extend.texi (Vector Types): Document how to use the
9306         vector_size attribute to create vectors, rather than mode.
9307
9308         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9309         * config/i386/emmintrin.h: Likewise.
9310         * config/i386/mmintrin.h: Likewise.
9311         * config/i386/xmmintrin.h: Likewise.
9312         * config/sh/ushmedia.h: Likewise.
9313
9314 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9315
9316         * config/freebsd-spec.h, config/arc/arc-protos.h,
9317         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9318         config/arm/linux-gas.h, config/arm/semi.h,
9319         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9320         config/ia64/freebsd.h, config/mips/7000.md,
9321         config/mips/9000.md, config/ns32k/ns32k-protos.h,
9322         config/sparc/pbd.h: Update copyright.
9323
9324 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9325
9326         PR target/14577
9327         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9328
9329 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9330
9331         * combine.c (combine_simplify_rtx): Remove the "last"
9332         parameter and its documentation.  Adjust recursive calls.
9333         (simplify_logical): Always perform the only simplification
9334         controlled by "last", if the simplified expression is
9335         actually different.
9336         (try_combine): Do not pass the "last" parameter to
9337         combine_simplify_rtx.
9338
9339 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9340
9341         PR target/14599
9342         * config/mips/mips.md (UNSPEC_GP): New constant.
9343         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9344         an UNSPEC instead of (reg $gp).
9345         (mips16_gp_pseudo_reg): Change accordingly.
9346         (print_operand): Print $gp directly when handling CONST_GP_P.
9347
9348 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9349
9350         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9351         * longlong.h: Make code 68060 clean when compiling for m68060.
9352
9353 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9354
9355         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9356         * doc/md.texi: Clarify description of "i" constraint.
9357
9358 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9359
9360         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9361         Split store into store, fpstore, fpidxstore.  Fix all uses.
9362         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9363         Likewise.
9364         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9365         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9366         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9367         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9368         ir_sr70_fstore): Likewise.
9369
9370 2004-03-15  Richard Henderson  <rth@redhat.com>
9371
9372         PR middle-end/14535
9373         * except.c (collect_one_action_chain): Record action for cleanup
9374         outer of exception spec.
9375
9376 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9377
9378         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9379         Fix the check for abort and only do the mmap if we can.
9380
9381 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9382
9383         * config/sparc/sparc.h: Rework comments about the code model
9384         in 64-bit environment and the mode 'Pmode'.
9385         * doc/invoke.texi (SPARC options): Rework description of the
9386         different code models supported in 64-bit environment.
9387
9388 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9389
9390         * defaults.h (REVERSIBLE_CC_MODE): Define.
9391         * jump.c (reversed_comparison_code_parts): Don't check if
9392         REVERSIBLE_CC_MODE is defined.
9393
9394 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9395
9396         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9397         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9398         hosthooks.h, params.h, ra-colorize.c, web.c,
9399         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9400         config/avr/avr-protos.h, config/avr/avr.md,
9401         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9402         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9403         config/i386/freebsd.h, config/i386/freebsd64.h,
9404         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9405         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9406         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9407         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9408         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9409         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9410         config/sparc/aout.h, config/sparc/freebsd.h,
9411         config/sparc/litecoff.h, config/vax/vax-protos.h,
9412         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9413         copyright.
9414
9415 2004-03-15  Paul Brook  <paul@codesourcery.com>
9416
9417         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9418
9419 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9420
9421         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9422         (pp_c_cv_qualifier): Document.
9423         (pp_c_space_for_pointer_operator): Likewise.
9424         (pp_c_integer_constant): Likewise.
9425         (pp_c_identifier): Likewise.
9426         (pp_c_init_declarator): Don't print function body.
9427
9428 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9429
9430         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9431         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9432         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9433         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9434         wording and grammar.
9435
9436 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9437
9438         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9439         with lang_hooks.foo ().
9440         * builtins.c (expand_builtin_va_arg): Likewise.
9441         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9442         c_common_type_for_mode, c_common_nodes_and_builtins,
9443         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9444         * c-convert.c (convert): Likewise.
9445         * c-format.c (check_format_types): Likewise.
9446         * c-objc-common.c (c_tree_printer): Likewise.
9447         * c-typeck.c (build_unary_op, build_conditional_expr,
9448         build_binary_op): Likewise.
9449         * calls.c (try_to_integrate, expand_call,
9450         emit_library_call_value_1): Likewise.
9451         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9452         Likewise.
9453         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9454         cgraph_expand_function): Likewise.
9455         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9456         * coverage.c (build_fn_info_type, build_ctr_info_type,
9457         build_gcov_info, create_coverage): Likewise.
9458         * dbxout.c (dbxout_init): Likewise.
9459         * diagnostic.c (diagnostic_report_current_function): Likewise.
9460         * dojump.c (do_jump): Likewise.
9461         * dwarf2out.c (dwarf2_name): Likewise.
9462         * except.c (init_eh): Likewise.
9463         * explow.c (expr_size, int_expr_size): Likewise.
9464         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9465         Likewise.
9466         * expr.c (store_expr, store_constructor, safe_from_p,
9467         expand_expr_real, do_store_flag, try_casesi): Likewise.
9468         * function.c (push_function_context_to, pop_function_context_from,
9469         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9470         put_var_into_stack, allocate_struct_function, current_function_name):
9471         Likewise.
9472         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9473         Likewise.
9474         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9475         lhd_print_error_function): Likewise.
9476         * opts.c (handle_option, decode_options): Likewise.
9477         * passes.c (open_dump_file): Likewise.
9478         * print-tree.c (print_node): Likewise.
9479         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9480         expand_decl_cleanup, emit_case_nodes): Likewise.
9481         * stor-layout.c (variable_size): Likewise.
9482         * toplev.c (announce_function, wrapup_global_declarations,
9483         check_global_declarations, compile_file, default_tree_printer,
9484         process_options, lang_dependent_init, finalize): Likewise.
9485         * tree-dump.c (dequeue_and_dump): Likewise.
9486         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9487         initialize_inlined_parameters, declare_return_variable,
9488         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9489         walk_tree, copy_tree_r): Likewise.
9490         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9491         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9492         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9493         variably_modified_type_p, dump_tree_statistics): Likewise.
9494         * varasm.c (assemble_variable, compare_constant, copy_constant,
9495         force_const_mem, compute_reloc_for_constant, output_constant,
9496         output_addressed_constants, initializer_constant_valid_p): Likewise.
9497
9498 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9499
9500         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9501
9502 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9503
9504         * doc/install.texi: Reflect autoconf and automake version for
9505         libffi. Update autoconf version to 2.59.
9506
9507 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9508
9509         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9510         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9511         make_range, build_range_check, fold_range_test, unextend,
9512         constant_boolean_node, fold_binary_op_with_conditional_arg,
9513         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9514         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9515         with lang_hooks.foo ().
9516
9517 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9518
9519         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9520
9521 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9522
9523         * doc/install.texi: Note status of -fnew-ra.
9524
9525 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9526
9527         PR middle-end/14470
9528         * expr.c (store_expr): Call emit_queue before generating the move
9529         from the temporary to the original target.  Protect the temporary
9530         from emit_queue.
9531
9532 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9533
9534         PR target/14533
9535         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9536         other than UNSPEC_GOTOFF.
9537
9538 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9539
9540         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9541         to arm_legitimate_index_p.  Update all callers with SET as default
9542         value.
9543         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9544         range if OUTER is a sign-extend operation on QImode.  Correctly
9545         reject shift operations on sign-extended QImode addresses.
9546         (bad_signed_byte_operand): Delete.
9547         (arm_extendqisi_mem_op): New function.
9548         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9549         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9550         constraints.
9551         (CONSTRAINT_LEN): New.
9552         (EXTRA_CONSTRAINT): Delete.  Replace with...
9553         (EXTRA_CONSTRAINT_STR): ... this.
9554         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9555         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9556         is now always default.
9557         (define_splits for bad sign-extend loads): Delete.
9558         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9559         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9560         Rework 'U' constraint to 'Uv'.
9561         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9562         arm_extendqisi_mem_op.
9563         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9564         Add Uq constraint.
9565
9566 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9567
9568         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9569         with targetm version.
9570
9571         PR target/14567
9572         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9573         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9574         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9575         Update all users of RS6000_ARG_SIZE.
9576         (function_arg_advance): Count fregno using mode size.
9577         (function_arg): Handle long double split over regs and memory.
9578         (function_arg_partial_nregs): Likewise.
9579         (rs6000_va_arg): Repackage complex args.
9580
9581 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9582
9583         PR target/14047
9584         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9585         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9586         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9587
9588 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9589
9590         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9591         prototype.
9592         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9593         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9594
9595 2004-03-12  Andrew Pinski  <apinski@apple.com>
9596
9597         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9598         Use ret instead of result. Use addr instead of base.
9599
9600 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9601
9602         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9603         fixes required by libstdc++ and update installation instructions
9604         for libstdc++.a.
9605
9606 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9607
9608         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9609         leading '@' on fastcall symbols before stripping suffix.
9610
9611 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9612
9613         * combine.c (unmentioned_reg_p): New function to check whether an
9614         expression is a "specialization" of another, i.e. that there are
9615         no registers or memory references mentioned in the first that don't
9616         appear in the second.
9617         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9618         (combine_instructions): Also try combining instructions using the
9619         REG_EQUAL note from a preceding log-linked instruction.
9620
9621 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9622
9623         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9624
9625 2004-03-12  Matt Austern  <austern@apple.com>
9626
9627         * target.h (struct gcc_target): New target hook, unwind_label.
9628         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9629         * output.h (default_emit_unwind_label): New function.
9630         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9631         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9632         (TARGET_SUPPORTS_HIDDEN): New target macro.
9633         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9634         that corresponds to this FDE.
9635         (FRAME_BEGIN_LABEL): Allow target to override default label.
9636         (output_call_frame_info): If FDEs are linknonce, then use extra
9637         indirection for FDE encoding, output a label for each FDE, and
9638         output an empty label for each function without an FDE.
9639         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9640         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9641         decls with DECL_ONE_ONLY set, if that macro is defined.
9642         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9643         for a SUPPORTS_ONE_ONLY target.
9644         * config/darwin-protos.h (darwin_unique_section): Declare.
9645         (darwin_asm_named_section): Likewise.
9646         (darwin_section_type_flags): Likewise.
9647         (darwin_non_lazy_pcrel): Likewise.
9648         (darwin_emit_unwind_label): Likewise.
9649         (darwin_make_decl_one_only): Likewise.
9650         * config/darwin.c (machopic_finish): Get rid of tweak that
9651         eliminate stubs for symbols that are defined.
9652         (darwin_encode_section_info): Don't treat weak functions as defined.
9653         (darwin_make_decl_one_only): Define.
9654         (darwin_asm_named_section): Likewise.
9655         (darwin_section_type_flags): Likewise.
9656         (darwin_unique_section): Likewise.
9657         (darwin_emit_unwind_label): Likewise.
9658         (darwin_non_lazy_pcrel): Likewise.
9659         (darwin_asm_output_dwarf_delta): Difference between two labels is
9660         local only if both labels are local.
9661         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9662         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9663         (TARGET_SUPPORTS_HIDDEN): Likewise.
9664         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9665         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9666         (FRAME_BEGIN_LABEL): Likewise.
9667         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9668         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9669         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9670         (TARGET_ASM_UNIQUE_SECTION): Define.
9671         (EH_FRAME_SECTION_NAME): Define.
9672         (EH_FRAME_SECTION_ATTR): Likewise.
9673         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9674         (TARGET_ASM_NAMED_SECTION): Likewise.
9675         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9676         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9677         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9678         TARGET_ASM_EMIT_UNWIND_LABEL.
9679
9680 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9681
9682         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9683         existing exp10* case.
9684         (expand_builtin): Likewise.
9685
9686 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9687
9688         * doc/tm.texi (registers) <Values in Registers>: Add
9689         entry for REGMODE_NATURAL_SIZE.
9690
9691 2004-03-12  Richard Henderson  <rth@redhat.com>
9692
9693         PR target/14547
9694         * target.h (struct gcc_target): Move calls substructure before
9695         booleans.  Add split_complex_arg.
9696         * function.c (assign_parms, split_complex_args): Use it.
9697         * calls.c (expand_call): Likewise.
9698         (split_complex_values): Likewise.  Check for splittable types
9699         before allocating memory.
9700         (split_complex_types): Likewise.
9701         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9702         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9703         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9704         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9705         (TARGET_SPLIT_COMPLEX_ARG): New.
9706         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9707         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9708         (rs6000_override_options): Zap it for non-AIX.
9709         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9710         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9711         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9712         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9713         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9714         SPLIT_COMPLEX_ARGS entry.
9715
9716 2004-03-11  Richard Henderson  <rth@redhat.com>
9717
9718         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9719         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9720         (alpha_emit_xfloating_arith): Update to match.
9721         (alpha_emit_xfloating_compare): Likewise.
9722         (alpha_emit_xfloating_cvt): Likewise.
9723         (alpha_emit_xfloating_libcall): Take already built symbol,
9724         mark call const.
9725         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9726         op1 in a register.
9727
9728 2004-03-11  Richard Henderson  <rth@redhat.com>
9729
9730         PR target/14539
9731         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9732
9733         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9734
9735 2004-03-11  Richard Henderson  <rth@redhat.com>
9736
9737         PR middle-end/14477
9738         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9739
9740 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9741
9742         PR target/14262
9743         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9744         defined, pass small BLKmode values in registers in the low-order part.
9745
9746 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9747
9748         * combine.c (if_then_else_cond): Check for NULL return value of
9749         simplify_gen_subreg.
9750
9751 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9752
9753         PR target/14496
9754         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9755         TARGET_SINGLE_FLOAT.
9756
9757 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9758
9759         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9760         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9761         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9762         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9763
9764 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9765
9766         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9767         -((int)X>>C) where C is an integer constant one bit less than the
9768         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9769         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9770
9771         * simplify-rtx.c (simplify_unary_operation): Also implement the
9772         above transformations at the RTL level.
9773
9774 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9775
9776         * real.c (encode_ibm_extended): Do round low word.
9777
9778 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9779
9780         * config/arm/arm.md (is_xscale): Comment this attribute and move
9781         it a bit further up in the file, closer to related attributes.
9782
9783 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9784
9785         * config/host-solaris.c (sol_gt_pch_use_address): Add
9786         missing terminating marker to comment.
9787
9788 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9789
9790         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9791         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9792         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9793         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9794         move_operand as source predicate in all cases.
9795         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9796         Test reg_or_0_operand.  Use move_operand as source predicate.
9797         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9798         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9799         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9800         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9801         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9802         Use move_operand as source predicate.  Remove 'K' constraint.
9803         (*movqi_internal): Likewise movqi_internal.
9804         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9805         reg_or_0_operand.  Use move_operand as source predicate.
9806         (*movsf_softfloat): Likewise movsf_internal2.
9807         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9808         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9809         (*movdf_softfloat): Likewise movdf_internal2.
9810         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9811         for DImode if !TARGET_64BIT.
9812         (mips_legitimize_move): Simplify accordingly.
9813
9814 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9815
9816         PR/14362
9817         * var-tracking.c (struct variable_def): Added field refcount.
9818         (variable_htab_free): Decrease the refcount and delete variable
9819         only if there are no more references.
9820         (unshare_variable): New function.
9821         (vars_copy_1): Increase refcount instead of copying the variable.
9822         (variable_union): Share the variables where possible, unshare
9823         the variables if needed.
9824         (variable_different_p): Return false if var1 and var2 are
9825         the same structure.
9826         (variable_was_changed): Init the refcount of new variable.
9827         (set_frame_base_location): Unshare variable if needed.
9828         (set_variable_part): Init the refcount of new variable.
9829         Unshare the variables if needed.
9830         (delete_variable_part): Unshare the variables if needed.
9831         (emit_notes_for_differences_1): Init the refcount of new variable.
9832         (vt_add_function_parameters): Do not add function parameters to
9833         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9834         (vt_initialize): Do not add frame_base_decl to IN set of
9835         ENTRY_BLOCK_PTR because it is unused anyway.
9836
9837 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9838
9839         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9840         (vars_copy): Likewise.
9841         (variable_union): Likewise.
9842         (set_variable_part): Likewise.
9843         (delete_variable_part): Likewise.
9844
9845 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9846
9847         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9848         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9849         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9850         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9851         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9852         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9853         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9854         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9855         config/stormy16/stormy16.c: Fix comment typos and formatting.
9856
9857 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9858
9859         * configure: Regenerate, since I forgot to while committing Paolo's
9860         changes.
9861
9862 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9863
9864         PR ada/14131
9865         Move language detection to the top level.
9866         * configure.ac: Remove code to detect languages,
9867         it now lives exclusively in the top level.
9868         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9869         top level, renamed to ACX_PROG_GNAT.
9870
9871 2004-03-10  Richard Henderson  <rth@redhat.com>
9872
9873         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9874         extra arguments.
9875         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9876         and host_xmake_file fragments.
9877         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9878         (gt_pch_restore): Similarly for gt_pch_use_address.
9879         (default_gt_pch_get_address): New.
9880         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9881         (default_gt_pch_use_address): Split out of gt_pch_restore.
9882         (mmap_gt_pch_use_address): Likewise.
9883         * hooks.c (hook_voidp_size_t_null): Remove.
9884         (hook_bool_voidp_size_t_false): Remove.
9885         * hooks.h: Likewise.
9886         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9887         default_ or mmap_ definitions.
9888         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9889         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9890         and gt_pch_use_address.
9891         * config/host-linux.c, config/host-solaris.c: New files.
9892         * config/x-linux, config/x-solaris: New files.
9893         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9894         Update for changed definition.
9895         (darwin_rs6000_gt_pch_use_address): Likewise.
9896         * doc/hostconfig.texi: Update docs.
9897
9898 2004-03-10  Richard Henderson  <rth@redhat.com>
9899
9900         PR c/14517
9901         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9902         except for pedantic c90 mode.
9903
9904 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9905
9906         * configure.ac: Bump AC_PREREQ to 2.59.
9907         * configure: Regenerate.
9908
9909 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9910
9911         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9912         (exp10_optab, exp2_optab): Define corresponding macros.
9913         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9914         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9915         using exp10?f2 and exp2?f2 patterns.
9916         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9917         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9918         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9919         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9920
9921         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9922         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9923         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9924
9925 2004-03-10  Anthony Green  <green@redhat.com>
9926
9927         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9928
9929 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9930
9931         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9932         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9933         __LONGDOUBLE128.
9934         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9935         TARGET_OS_AIX_CPP_BUILTINS.
9936         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9937         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9938         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9939         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9940         previous change.
9941
9942 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9943
9944         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9945
9946 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9947
9948         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9949         __LONGDOUBLE128 on AIX.
9950
9951 2004-03-10  Andrew Haley  <aph@redhat.com>
9952
9953         PR optimization/14381
9954         * function.c (expand_function_end): Emit a blockage insn before
9955         the epilogue when -fnon-call-exceptions is used.
9956
9957         * except.c (expand_start_all_catch): Make comment more accurate.
9958
9959 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9960
9961         PR target/14480
9962         * config/rs6000/t-rtems: Add missing file on branch.
9963
9964 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9965
9966         * dbxout.c (dbxout_symbol_location): Do not output references
9967         to optimized-out constant pool symbols.
9968
9969 2004-03-10  Andreas Schwab  <schwab@suse.de>
9970
9971         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9972         twon34_r.
9973
9974 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9975
9976         * alias.c (alias_sets_might_conflict_p): New.
9977         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9978         * common.opt (Wstrict-aliasing=): New.
9979         * flags.h (warn_strict_aliasing): Change type to int.
9980         * opts.c (warn_strict_aliasing): Change type to int.
9981         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9982         * tree.h (alias_sets_might_conflict_p): Declare it.
9983         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9984
9985 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9986
9987         PR bootstrap/12371
9988         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9989         (CALL_USED_REGISTERS): Likewise.
9990         (REG_CLASS_CONTENTS): Likewise.
9991         (REG_ALLOC_ORDER): New.
9992         (REGNO_REG_CLASS): Use regno_reg_class.
9993         * config/m68k/m68k.c: Add regno_reg_class array.
9994
9995 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9996
9997         * config/ia64/ia64.md (divsi3): Fix algorithm.
9998           (udivsi3): Ditto.
9999           (setf_exp_xf): Remove '*' from name.
10000         * testsuite/gcc.dg/20040309-1.c: New test.
10001
10002 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
10003
10004         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
10005         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
10006         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
10007         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
10008         (sparc_aout_select_rtx_section): Don't check
10009         SUNOS4_SHARED_LIBRARIES.
10010         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
10011
10012 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
10013
10014         PR other/14474
10015         * doc/md.texi (Pattern Ordering, Dependent Patterns)
10016         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
10017         INTERNALS".
10018
10019 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
10020
10021         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
10022         (LIBGCC_SPEC): Update to match.
10023
10024 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
10025
10026         * c-decl.c (last_function_parms, last_function_parm_tags)
10027         (last_function_parm_others, current_function_parms)
10028         (current_function_parm_tags, current_function_parm_others):
10029         Delete.
10030         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
10031         New macros.
10032         (grokdeclarator): For function definitions, save the arg-info
10033         block from the declarator in DECL_ARGUMENTS.
10034         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
10035         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
10036         contains only PARM_DECLs.  Improve diagnostics.
10037         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
10038         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
10039         (store_parm_decls_newstyle): Take the function to operate on,
10040         and an arg-info block, as arguments; don't get anything from
10041         current_function_* globals.
10042         (store_parm_decls_oldstyle): Likewise.
10043         (store_parm_decls): Pass fndecl and its arg-info block down to
10044         store_parm_decls_newstyle/oldstyle.  Send functions with empty
10045         argument lists through store_parm_decls_newstyle to reduce
10046         overhead.
10047         (pushdecl): Comment on the problems with the call to copy_node.
10048         Clear DECL_ARGUMENTS of the old node after copying it, if it
10049         is an arg-info block instead of a chain of decls.
10050         (start_function): Do not manipulate current_function_parm* or
10051         last_function_parm*.
10052
10053 2004-03-09  Roger Sayle  <roger@eyesopen.com>
10054             Andrew Pinski  <pinskia@physics.uc.edu>
10055
10056         * ifcvt.c (noce_try_sign_mask): New function to transform
10057         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
10058         (noce_process_if_block): Call noce_try_sign_mask.
10059
10060 2004-03-09  Andrew Pinski  <apinski@apple.com>
10061
10062         * c-typeck.c (tagged_types_tu_compatible_p):
10063         Fix typo.
10064
10065 2004-03-09  Roger Sayle  <roger@eyesopen.com>
10066
10067         * simplify-rtx.c (simplify_const_relational_operation): New function
10068         renamed from simplify_relational_operation.
10069         (simplify_relational_operation): Change prototype to accept an
10070         additional mode argument.  Call simplify_const_relational_operation.
10071         (simplify_gen_relational): Update simplify_relational_operation call.
10072         (simplify_ternary_operation): Update simplify_relational_operation
10073         subroutine call to use simplify_const_relational_operation instead.
10074
10075         * rtl.h (simplify_const_relational_operation): Prototype here.
10076         (simplify_relational_operation): Add addtional mode argument.
10077
10078         * combine.c (combine_simplify_rtx): Update calls to
10079         simplify_relational_operation.
10080         (simplify_set): Likewise.
10081         (gen_binary): Likewise.
10082         * cse.c (fold_rtx): Likewise.
10083         * dojump.c (compare_from_rtx): Likewise.
10084         (do_compare_rtx_and_jump): Likewise.
10085         * integrate.c (subst_constants): Likewise.
10086         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
10087
10088 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10089
10090         * config/m32r/m32r.md: Remove all define_peephole's.
10091
10092 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
10093
10094         * config/rs6000/rs6000.md: Remove trailing whitespace.
10095
10096 2004-03-08  Eric Christopher  <echristo@redhat.com>
10097
10098         * Makefile.in (site.exp): Add libiconv variable definition.
10099
10100 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
10101
10102         * configure: Regenerate for config/accross.m4 correction.
10103
10104 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
10105
10106         PR target/14480
10107         * config/rs6000/t-rtems: Add missing file on branch.
10108
10109 2004-03-08  Roger Sayle  <roger@eyesopen.com>
10110
10111         PR middle-end/14289
10112         * c-typeck.c (c_mark_addressable): A register variable should
10113         be considered global if its not automatic, i.e. TREE_PUBLIC,
10114         TREE_STATIC or DECL_EXTERNAL.
10115         * function.c (put_var_into_stack): Call abort when placing a
10116         hard register into the stack, if x_parm_reg_stack_loc is NULL.
10117
10118 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
10119
10120         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
10121         ("*extendqisi2_short_displ"): Likewise.
10122
10123 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10124
10125         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
10126         (comp_operator): Likewise.
10127         * config/pdp11/pdp11-protos.h: Remove corresponding
10128         prototypes.
10129
10130 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
10131
10132         * expr.c (highest_pow2_factor_for_type): Rename into
10133         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
10134         TYPE_ALIGN when the target is a COMPONENT_REF.
10135         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
10136
10137 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10138
10139         * config/rs6000/rs6000.c: Formatting fix.
10140         (legitimate_offset_address_p): Correct offset range check.
10141
10142         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
10143         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
10144         and MASK_STRING.
10145
10146 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10147
10148         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
10149         for little endian.
10150         ("ashrdi3_no_power"): Disable for little endian.
10151         (ashrdi3): Same.
10152
10153 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10154
10155         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
10156         builtins.
10157
10158 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
10159
10160         PR target/14471
10161         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
10162         case, checking for -no-mul-bug-abort option.
10163         * configure, config.in: Regenerate.
10164         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
10165         and -mno-mul-bug-workaround.
10166         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
10167         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
10168         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
10169         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
10170         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
10171         sure mulu.d is not last on cache-line.
10172         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
10173         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
10174         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
10175         (TARGET_SWITCHES): New options -mmul-bug-workaround and
10176         -mno-mul-bug-workaround.
10177         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
10178         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
10179         * config/cris/cris.c (cris_operand_extend_operator): Clarify
10180         relation to MULT in head comment.
10181         (cris_op_str): Abort for MULT.
10182         (cris_print_operand) <case '!'>: New case.
10183
10184 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10185
10186         PR debug/11983
10187         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
10188         dw_val_class_vec.  Replace use throughout file.
10189         (dw_float_const): Delete.
10190         (dw_vec_const): New.
10191         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
10192         throughout file.
10193         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
10194         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
10195         (size_of_die): Adjust dw_val_class_vec sizing.
10196         (output_die): Output dw_val_class_vec.
10197         (insert_int, extract_int, insert_float): New functions.
10198         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
10199         Handle CONST_VECTOR.
10200         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
10201
10202 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10203
10204         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10205         AltiVec abi cannot co-exist.
10206
10207         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10208
10209 2004-03-07  Jan Hubicka  <jh@suse.cz>
10210
10211         * except.c (emit_to_new_bb_before):  Break fallthru edges.
10212
10213 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
10214
10215         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10216         ("*lshrsi3"): Also accept an immediate for 68HC12.
10217         ("*ashrsi3_const"): Likewise.
10218         ("*ashrsi3"): Likewise.
10219         ("*ashlsi3_const"): Likewise.
10220         ("*ashlsi3"): Likewise.
10221         ("cmphi_1_hc12"): Compare two hard register by pushing them and
10222         comparing with a pop; don't use a split for that.
10223         ("cmphi split"): Disable compare split for 68HC12.
10224
10225         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10226         the status operands if they have side effects.
10227
10228 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10229
10230         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10231         definition.
10232         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10233         config/h8300/h8300.h, config/ia64/ia64.h,
10234         config/mcore/mcore.h, config/mmix/mmix.h,
10235         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10236         config/stormy16/stormy16.h, config/v850/v850.h,
10237         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10238         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10239         definition.
10240
10241 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10242
10243         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10244         <XOR_EXPR>: Fold x ^ x as zero.
10245         <AND_EXPR>: Fold x & x as x.
10246
10247 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10248
10249         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10250         "foo++ == const" into "++foo == const+incr".
10251
10252 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
10253
10254         * config/mips/mips.c (mips_in_small_data_p): Return false if
10255         TARGET_ABICALLS.
10256
10257 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
10258
10259         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10260         the stack register.
10261         (expand_prologue): Don't make an interrupt or a trap handler a far
10262         symbol.
10263         (m68hc11_initial_elimination_offset): Likewise.
10264
10265 2004-03-06  Richard Henderson  <rth@redhat.com>
10266
10267         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10268
10269 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10270
10271         * config/ns32k/ns32k-protos.h: Add a prototype for
10272         ns32k_notice_update_cc.
10273         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10274         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10275         ns32k_notice_update_cc.
10276
10277 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10278
10279         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10280         "*load_multiple_si"): Allow only if reload_completed.
10281         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10282         Likewise.
10283
10284 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10285
10286         * config/vax/vax-protos.h: Add a prototype for
10287         vax_notice_update_cc.
10288         * config/vax/vax.c (vax_notice_update_cc): New.
10289         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10290         vax_notice_update_cc.
10291
10292 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
10293
10294         * collect2.c (main): Only export initfunc and finifunc if
10295         LD_INIT_SWITCH not defined.
10296         (scan_prog_file): Only export constructors and destructors if
10297         LD_INIT_SWITCH not defined.  Only export symbols not found in
10298         shared objects.
10299
10300 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10301
10302         * pa.md (icacheflush): Reorder operands to make match_scratch operand
10303         last.
10304         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10305         from calls to gen_icacheflush.
10306
10307 2004-03-06  Richard Henderson  <rth@redhat.com>
10308
10309         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10310         (TARGET_LONG_DOUBLE_128): New.
10311         (TARGET_SWITCHES): Add long-double-{128,64}.
10312         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10313         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10314         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10315         (WIDEST_HARDWARE_FP_SIZE): New.
10316         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10317         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10318         if TARGET_VAX_FLOAT.
10319         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10320         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10321
10322 2004-03-06  Richard Henderson  <rth@redhat.com>
10323
10324         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10325         botched rtx class conversion.
10326
10327 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10328
10329         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10330         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10331
10332         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10333         macros.
10334         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10335
10336 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10337
10338         PR target/14343
10339         * config/i386/i386.md (movv2di_internal): Conditionalize on
10340         TARGET_SSE, not TARGET_SSE2.
10341
10342 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10343
10344         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10345         duplicated line.
10346
10347 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10348
10349         * builtins.c: Consistently use logN not log* in comments.
10350
10351 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10352
10353         * rtl.h (mem_expr_equal_p): Function prototype added.
10354         * cfgcleanup.c (merge_memattrs): New function.
10355         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10356         * emit-rtl.c (mem_expr_equal_p): New function.
10357
10358 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10359
10360         * objc/objc-act.c (synth_module_prologue): Const-qualify
10361         objc_selector type if using the GNU runtime; fix generated
10362         signatures for objc_msg_lookup and objc_msg_lookup_super
10363         to match what GNU ObjC headers provide; reformat and clean up.
10364         (synth_self_and_ucmd_args): Use previously constructed (and
10365         hence possibly const-qualified) objc_selector type.
10366
10367 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10368
10369         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10370
10371 2004-03-05  Jason Merrill  <jason@redhat.com>
10372
10373         * tree.h (TYPE_HASH): Use TYPE_UID.
10374         (TREE_HASH): New macro with old definition of TYPE_HASH.
10375         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10376         (build_array_type, build_function_type): Likewise.
10377         (build_method_type_directly): Likewise.
10378         (build_offset_type, build_complex_type): Likewise.
10379         (type_hash_list, attribute_hash_list): Likewise. Now static.
10380         * except.c: s/TYPE_HASH/TREE_HASH/.
10381
10382 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10383
10384         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10385         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10386         __va_ndx by 2 words when referencing an argument on the stack.
10387         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10388         words when an arg on the stack is first seen.
10389
10390 2004-03-05  Paul Brook  <paul@codesourcery.com>
10391
10392         * arm.h (ARM_FLAG_VFP): Remove.
10393         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10394         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10395
10396 2004-03-05  Paul Brook  <paul@codesourcery.com>
10397
10398         * function.c (assign_parms): Include pretend alignment offset.
10399
10400 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10401
10402         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10403         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10404
10405 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10406
10407         * configure.ac: When passing --enable-languages to subdir
10408         configure when host != build, make sure we don't pass an empty
10409         value.
10410         * configure: Regenerate.
10411
10412 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10413
10414         PR 13577
10415         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10416         options.
10417
10418 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10419
10420         * simplify-rtx.c (simplify_relational_operation): If
10421         flag_wrapv is set, do not move terms between the two
10422         side of a relational operator.
10423
10424 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10425
10426         * rtlanal.c: Include target.h and output.h
10427         (rtx_cost, address_cost, default_address_cost): Move from...
10428         * cse.c (rtx_cost, address_cost, default_address_cost):
10429         ... this file.
10430         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10431         * Makefile.in: Adjust dependencies.
10432
10433 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10434
10435         * cse.c (cse_end_of_basic_block): Make static.
10436         * local-alloc.c (function_invariant_p): Move to
10437         reload1.c.
10438         * loop.c (libcall_other_reg, record_excess_regs):
10439         Make static.
10440         * reload1.c (function_invariant_p): Moved here
10441         from local-alloc.c, made static.
10442         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10443         libcall_other_reg, record_excess_regs): Remove
10444         declarations.
10445
10446 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10447
10448         * config/m32r/m32r.c (signed_comparison_operator): Add a
10449         missing parenthesis.
10450
10451 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10452
10453         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10454         going to call mmap again.  Read the file into the right place.
10455         Give a fatal error if we have to relocate.
10456
10457 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10458
10459         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10460         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10461
10462 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10463
10464         PR other/14354
10465         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10466         round the same.  When rounding, clear bits that would cause a
10467         second rounding in pack_d.
10468         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10469
10470 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10471
10472         PR c++/14425, c++/14426
10473         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10474         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10475         Change C++ definitions to accept a 'const int' argument;
10476         the prototypes already do.
10477         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10478         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10479         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10480         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10481         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10482         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10483         end in ..._int; change them to accept an int instead of a char
10484         as the last parameter.
10485
10486 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10487
10488         * genmultilib:  Change '=' to '-' when translating option names
10489         to directory names.
10490
10491 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10492
10493         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10494         stack slot for temp used for result of BLKmode but in integral mode.
10495
10496 2004-03-04  Jan Hubicka  <jh@suse.cz>
10497
10498         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10499
10500         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10501         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10502
10503 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10504
10505         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10506         * testsuite/gcc.dg/20040303-1.c: New test.
10507
10508 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10509
10510         * ppro.md: Rewrite as a DFA pipeline description.
10511         * i386.md: Remove all uses of the ppro_uops attribute.
10512         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10513         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10514         ix86_sched_reorder, ix86_variable_issue,
10515         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10516         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10517         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10518         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10519         * athlon.md (athlon_ssecmp_load): Fix comment
10520
10521 2004-03-04  Stuart Hastings  <stuart@apple.com>
10522
10523         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10524
10525 2004-03-04  Stuart Hastings  <stuart@apple.com>
10526
10527         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10528         686, tell Darwin assembler to allow prefetch insns, non-empty def
10529         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10530
10531 2004-03-04  DJ Delorie  <dj@redhat.com>
10532
10533         PR optimization/14282
10534         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10535         between a call and the assignment of its return value.
10536
10537 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10538
10539         * config/h8300/h8300.c: Put a comment for every function.
10540
10541 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10542
10543         * config/h8300/h8300.md: Add comments about peephole2's.
10544
10545 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10546
10547         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10548
10549 2004-03-04  Jan Hubicka  <jh@suse.cz>
10550
10551         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10552         * cselib.c (cselib_record_memory): New static variable.
10553         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10554         Give up on memories when asked for.
10555         (cselib_init): Accept new argument.
10556         * cselib.h (cselib_init): Update prototype.
10557         * gcse.c (local_cprop_pass): Update call of cselib_init.
10558         * loop.c (load_mems): Update call of cselib_init.
10559         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10560         * sched-deps.c (sched_analyze): Update call of cselib_init.
10561
10562 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10563             GP <gp@qnx.com>
10564
10565         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10566         when compiling PIC.
10567
10568 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10569
10570         PR/14362
10571         * var-tracking.c (track_expr_p): Do not track variables which
10572         should be ignored for debugging purposes.
10573
10574 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10575
10576         * real.c (encode_ibm_extended): Don't bother rounding low double.
10577         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10578         when fmt->pnan < fmt->p.
10579
10580 2004-03-04  Eric Christopher  <echristo@redhat.com>
10581
10582         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10583         only range of valid arg registers and fixed_regs.
10584
10585 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10586
10587         PR target/14406
10588         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10589         (abstf2, abstf2_internal): New define_expand.
10590
10591 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10592
10593         PR optimization/14235
10594         * expr.c (convert_move): Copy the source to a new pseudo
10595         when converting from a sub-word source to a larger-than-word
10596         register which conflicts with the source.
10597
10598 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10599
10600         PR 13728
10601         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10602         parameters with the same name, unless one is a forward decl.
10603         Do not issue a redundant-redeclaration warning for forward
10604         decls of parameters.
10605
10606 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10607
10608         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10609         configuration.
10610
10611 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10612
10613         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10614
10615 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10616
10617         * target-def.h (TARGET_OPTF): Delete.
10618         * c-opts.c (TARGET_OPTF): Define.
10619
10620 2004-03-04  Jan Hubicka  <jh@suse.cz>
10621
10622         * cselib.c (cselib_finish): Fix another miss-application of my previous
10623         patch.
10624
10625 2004-03-03  Mike Stump  <mrs@apple.com>
10626
10627         Add framework support for darwin.
10628
10629         * c-incpath.c: Include target.h and machmode.h.
10630         (add_path): Use a consistent style for cpp_dir.  Initialize
10631         p->construct to 0.
10632         (add_cpp_dir_path): New.
10633         (register_include_chains): Add use of extra_includes callback.
10634         (hook_void_int): Add.
10635         (target_c_incpath): Add.
10636         * c-incpath.h (add_cpp_dir_path): New.
10637         (target_c_incpath_s): Add.
10638         (target_c_incpath): Add.
10639         (C_INCPATH_INIT): Add.
10640         * c-opts.c (c_common_missing_argument,
10641         c_common_handle_option): Add -F argument processing.
10642         * c.opt: Add -F argument processing.
10643         * gcc.c (trad_capable_cpp): Add -F argument processing.
10644         * cppfiles.c (find_file_in_dir): Update to use construct
10645         callback.
10646         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10647         cpp_get_prev): New.
10648         (_cpp_find_file): Use search_path_exhausted.
10649         (make_cpp_dir): Initialize construct to 0.
10650         * cpplib.h (missing_header_cb
10651         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10652         (cpp_callbacks): Add missing_header
10653         (cpp_dir): Add construct.
10654         * target-def.h: (TARGET_OPTF): New.
10655         * hooks.c (hook_void_int, hook_void_charptr): Add.
10656         * hooks.h (hook_void_int, hook_void_charptr): Add.
10657         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10658         $(MACHMODE_H) dependencies.
10659         * doc/invoke.texi (Darwin Options): Document -F.
10660         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10661         (TARGET_OPTF): Add.
10662         * fix-header.c (target_c_incpath): Add.
10663
10664         * config/darwin-c.c: Add c-incpath.h include.
10665         (using_frameworks, find_subframework_file,
10666         find_subframework_header, add_system_framework_path,
10667         frameworks_in_use, num_frameworks, max_frameworks,
10668         add_framework, find_framework, struct framework_header,
10669         framework_header_dirs, framework_construct_pathname,
10670         find_subframework_file, add_system_framework_path,
10671         add_framework_path, framework_defaults,
10672         darwin_register_frameworks, find_subframework_header): Add.
10673         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10674         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10675         (CPP_SPEC): Add __APPLE_CC__ support.
10676         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10677
10678 2004-03-04  Jan Hubicka  <jh@suse.cz>
10679
10680         * cselib.c (cselib_finish): Fix miss-application of my previous
10681         patch.
10682
10683 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10684
10685         * hooks.c (hook_tree_tree_identity): New.
10686         * hooks.h: Add a prototype for hook_tree_tree_identity.
10687         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10688         instead of MD_ASM_CLOBBERS.
10689         * system.h (MD_ASM_CLOBBERS): Poison.
10690         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10691         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10692         * target.h (gcc_target): Add md_asm_clobbers.
10693         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10694         (ix86_md_asm_clobbers): New.
10695         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10696         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10697         TARGET_MD_ASM_CLOBBERS.
10698
10699 2004-03-03  Stuart Hastings  <stuart@apple.com>
10700
10701         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10702
10703 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10704
10705         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10706
10707         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10708         (ASM_DOUBLE): Likewise.
10709         (ASM_LONGDOUBLE): Likewise.
10710         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10711
10712 2004-03-03  Richard Henderson  <rth@redhat.com>
10713
10714         PR opt/13862
10715         * cselib.c (cselib_record_sets): Don't record multiple sets in
10716         asm insns.
10717
10718 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10719
10720         * common.opt: Add description of the new -fgcse-after-reload flag.
10721
10722         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10723
10724         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10725         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10726         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10727         get_bb_avail_insn, hash_scan_set_after_reload,
10728         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10729         gcse_after_reload, get_bb_avail_insn): New functions to implement
10730         gcse-after-reload.
10731         (gcse_after_reload_main): New function, the main entry point to
10732         gcse-after-reload.
10733
10734         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10735
10736         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10737
10738         * toplev.c (flag_gcse_after_reload): Initialization.
10739
10740         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10741
10742         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10743         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10744         the gcse after reload optimization.
10745
10746         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10747         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10748         parameters.
10749
10750         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10751
10752 2004-03-03  Nicolas Pitre <nico@cam.org>
10753
10754         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10755         small negative values.
10756
10757 2004-03-03  Jan Hubicka  <jh@suse.cz>
10758
10759         * cselib.c (hash_table):  Remove GTY marker.
10760         (reg_values): Turn into array.
10761         (used_regs): Likewise.
10762         (n_used_regs): New static variable.
10763         (reg_values_old): Kill.
10764         (clear_table): Update uses of arrays.
10765         (cselib_lookup): Likewise.
10766         (cselib_record_set): Likewise.
10767         (cselib_init): Likewise.
10768         (cselib_finish): Likewise.
10769         (cselib_udpate_varray_sizes): Kill.
10770         * cselib.h (cselib_update_varray_sizes): Kill.
10771
10772 2004-03-03  Paul Brook  <paul@codesourcery.com>
10773
10774         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10775
10776 2004-03-03  Jan Hubicka  <jh@suse.cz>
10777
10778         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10779         Rename from ...; make statistics transparent.
10780         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10781         (loc_descriptor): New structure.
10782         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10783         add_statistics):
10784         New static function.
10785         (ggc_record_overhead, dump_statistics): New global function.
10786         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10787         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10788         from ...; accept locations
10789         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10790         ggc_realloc, ggc_alloc_typed):  ... this one.
10791         from ...; accept locations
10792         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10793         ggc_alloc_stat): Rename from ... ; pass locations
10794         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10795         ... this one.
10796         (ggc_alloc_stat): Record overehead.
10797         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10798         ggc_realloc, ggc_alloc_typed):  Turn to macros
10799         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10800         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10801         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10802         * langhooks.h (lhd_make_node): Declare.
10803         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10804         * langhooks.c (lhd_make_node): New.
10805         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10806         locations.
10807         (rtx_alloc, swallow_copy_rtx): ... this one.
10808         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10809         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10810         * toplpev.c (finalize): Dump stats.
10811         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10812         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10813         Rename from ... ; pass locators.
10814         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10815         build?,  build_decl): Declare.
10816         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10817         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10818         Declare.
10819         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10820         build?,  build_decl): New macros.
10821         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10822         * statistics.h: New file.
10823
10824 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10825             Richard Sandiford  <rsandifo@redhat.com>
10826
10827         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10828         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10829         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10830         * config/mips/mips.c (mips_output_division): Fill the branch delay
10831         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10832         TARGET_FIX_R4400.
10833         (mips_output_division): Adjust accordingly.
10834         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10835         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10836
10837 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10838
10839         * alias.c (rtx_equal_for_memref_p): Use predicates
10840         to test rtx classes and new rtx class codes, possibly
10841         splitting conditionals that tested against '<' and 'o'.
10842         * caller-save.c (save_call_clobbered_regs): Likewise.
10843         * combine.c (contains_muldiv, find_split_point, subst,
10844         combine_simplify_rtx, simplify_if_then_else,
10845         simplify_set, simplify_logical, expand_compound_operation,
10846         make_compound_operation, if_then_else_cond, known_cond,
10847         apply_distributive_law, cached_nonzero_bits,
10848         cached_num_sign_bit_copies, simplify_shift_const,
10849         gen_binary, simplify_comparison, update_table_tick,
10850         record_value_for_reg, get_lsat_value_validate): Likewise.
10851         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10852         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10853         Likewise.
10854         * emit-rtl.c (copy_insn_1): Likewise.
10855         * expr.c (force_operand): Likewise.
10856         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10857         * flow.c (notice_stack_pointer_modification_1,
10858         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10859         and_reg_cond, elim_reg_cond): Likewise.
10860         * function.c (update_epilogue_consts): Likewise.
10861         * genattrtab.c (attr_rtx_1): Likewise.
10862         * genopinit.c (gen_insn): Likewise.
10863         * integrate.c (subst_constants): Likewise.
10864         * jump.c (reversed_comparison_code_parts,
10865         reversed_comparison_code, delete_related_insns,
10866         rtx_renumbered_equal_p): Likewise.
10867         * local-alloc.c (block_alloc): Likewise.
10868         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10869         canonicalize_condition): Likewise.
10870         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10871         Likewise.
10872         * optabs.c (add_equal_node, expand_binop): Likewise.
10873         * predict.c (estimate_probability): Likewise.
10874         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10875         * recog.c (validate_replace_rtx_1, comparison_operator,
10876         offsettable_address_p, constrain_operands): Likewise.
10877         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10878         Likewise.
10879         * regclass.c (scan_one_insn): Likewise.
10880         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10881         * regrename.c (kill_autoinc_value): Likewise.
10882         * reload.c (find_reusable_reload, find_reloads,
10883         reg_overlap_mentioned_for_reload_p): Likewise.
10884         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10885         * rtl.c (copy_rtx): Likewise.
10886         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10887         * rtlanal.c (commutative_operand_precedence): Likewise.
10888         * sched-deps.c (conditions_mutex_p): Likewise.
10889         * sched-rgn.c (is_cfg_nonregular): Likewise.
10890         * simplify-rtx.c (simplify_gen_binary,
10891         simplify_gen_relational, simplify_replace_rtx,
10892         simplify_unary_operation, simplify_binary_operation,
10893         simplify_ternary_operation, simplify_rtx): Likewise.
10894         * unroll.c (reg_dead_after_loop): Likewise.
10895         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10896         print_operand): Likewise.
10897         * config/arc/arc.c (proper_comparison_operator): Likewise.
10898         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10899         Likewise.
10900         * config/avr/avr.c (_reg_unused_after): Likewise.
10901         * config/frv/frv.c (frv_ifcvt_modify_tests,
10902         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10903         * config/i386/i386.c (ix86_comparison_operator,
10904         ix86_carry_flag_operator, fcmov_comparison_operator,
10905         arith_or_logical_operator, print_operand,
10906         ix86_expand_binary_operator, ix86_binary_operator_ok):
10907         Likewise.
10908         * config/i386/i386.md: Likewise.
10909         * config/ia64/ia64.c (not_postinc_memory_operand,
10910         ia64_print_operand, update_set_flags, errata_emit_nops):
10911         Likewise.
10912         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10913         CONSTRAINT_OK_FOR_S): Likewise.
10914         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10915         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10916         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10917         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10918         Likewise.
10919         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10920         eqne_comparison_operator, signed_comparison_operator):
10921         Likewise.
10922         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10923         Likewise.
10924         * config/mmix/mmix (mmix_foldable_comparison_operator,
10925         mmix_comparison_operator): Likewise.
10926         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10927         * config/rs6000/rs6000.c (stmw_operation,
10928         branch_comparison_operator, trap_comparison_operator,
10929         ccr_bit): Likewise.
10930         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10931         * config/s390/s390.c (s390_alc_comparison,
10932         s390_slb_comparison):L Likewise.
10933         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10934         Likewise.
10935         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10936         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10937         emit_hard_tfmode_operation, reg_unused_after)
10938         * doc/md.texi, doc/rtl.texi: Likewise.
10939
10940         * ra-debug.c: Add 2004 to list of copyright years.
10941         * unroll.c: Likewise.
10942
10943         * combine.c (simplify_logical): Remove dummy test,
10944         (apply_distributive_law): Fix typo in comment.
10945         GET_CODE (x) == AND so x is a commutative binary op.
10946         * jump.c (delete_related_insns): simplify loop
10947         condition, move testing of RTX codes inside the loop.
10948         (rtx_renumbered_equal_p): do not use RTX_CODE.
10949         * rtl.c (rtx_class): Declare as enum rtx_class.
10950         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10951         Move to RTX_COMM_COMPARE class.
10952         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10953         Move to RTX_CONST_OBJ class.
10954         * rtl.h (enum rtx_class): New declaration,
10955         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10956         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10957         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10958         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10959         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10960         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10961         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10962         OBJECT_P): New macros.
10963         * config/sparc/sparc.c (noov_compare_op): Remove register
10964         from parameter.
10965
10966 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10967
10968         * target.h: Remove texi jargons in comments.
10969
10970 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10971
10972         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10973         threshold to 0x4f.
10974
10975         Revert:
10976         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10977         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10978         as well.
10979         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10980         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10981
10982 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10983
10984         * doc/md.texi (cbranchmode4): New.
10985
10986 2004-03-02  Eric Christopher  <echristo@redhat.com>
10987
10988         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10989         fix_trunc.
10990         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10991         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10992         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10993         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10994
10995 2004-03-02  Richard Henderson  <rth@redhat.com>
10996
10997         PR middle-end/11767
10998         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10999         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
11000         before the compare, if flag_non_call_exceptions.
11001
11002 2004-03-02  Richard Henderson  <rth@redhat.com>
11003
11004         PR middle-end/14327
11005         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
11006         emitting the label, not after.
11007
11008 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11009
11010         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
11011         (m68hc11_mov_addr_mode): Likewise.
11012         (m68hc11_override_options): Initialize them based on target.
11013         (register_indirect_p): Allow a MEM for indirect addressing modes and
11014         use flags to control what is allowed.
11015         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
11016         supported addressing modes.
11017         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
11018         (go_if_legitimate_address_internal): Likewise.
11019         (m68hc11_indirect_p): Likewise and check the mode.
11020         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
11021
11022 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11023
11024         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
11025         (expand_builtin_setjmp_setup): Use
11026         targetm.builtin_setjmp_frame_value instead of
11027         BUILTIN_SETJMP_FRAME_VALUE.
11028         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
11029         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
11030         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11031         * target.h (gcc_target): Add builtin_setjmp_frame_value.
11032         * targhooks.c (default_builtin_setjmp_frame_value): New.
11033         * targhooks.h: Add a prototype for
11034         default_builtin_setjmp_frame_value.
11035         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
11036         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11037
11038 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11039
11040         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
11041         sequences of moves.
11042         (add peepholes): New peepholes to optimize sequences adding small
11043         constants.
11044         (bset peepholes): New peepholes to transform an OR in a bset form
11045         (bclr peepholes): Likewise for bclr form.
11046         (cmp peepholes): New peepholes to avoid register copies when comparing.
11047
11048 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11049
11050         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
11051         to separate push from moves.
11052         ("*pushdf_internal"): Likewise.
11053         ("*pushsf_internal"): Likewise.
11054         ("*pushsi_internal"): Likewise.
11055         ("movdi_internal"): Use define_insn_and_split; non push operand.
11056         ("movdf_internal"): Likewise.
11057         ("movsf_internal"): Likewise.
11058         ("movsi_internal"): Likewise.
11059         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
11060         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
11061         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
11062
11063 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11064
11065         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
11066         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
11067         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
11068         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
11069         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
11070         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
11071         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
11072         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
11073         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
11074         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
11075         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
11076
11077 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11078
11079         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
11080         (SOFT_XY_REGNUM): Define.
11081         (cmp split): Use the above instead of hard coded numbers.
11082         (8-bit op split): No need to check the mode; allow Q_REG.
11083         (ashift split): Adjust the first operand if it uses the SP and we
11084         are pushing the shifted value.
11085         (plus shift split): Fix when a source is in register D+X.
11086         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
11087
11088 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11089
11090         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
11091         comparing with Z register.
11092
11093 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11094
11095         * cfgloop.h (struct loop_desc): Removed.
11096         (struct loop): Fields simple, desc and has_desc removed.
11097         (simple_loop_p, count_loop_iterations): Declaration removed.
11098         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
11099         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
11100         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
11101         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
11102         simple_loop_exit_p, variable_initial_value, variable_initial_values,
11103         simple_condition_p, simple_increment, count_strange_loop_iterations,
11104         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
11105         Removed.
11106         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
11107
11108 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11109
11110         * genattrtab.c: Don't handle MATCH_INSN.
11111         * genrecog.c: Likewise.
11112         * gensupport.c: Likewise.
11113         * rtl.def (match_insn): Remove.
11114         * doc/md.texi (match_insn, match_insn2): Remove.
11115
11116 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
11117
11118         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
11119         macro results in memory allocation.
11120
11121 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
11122
11123         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
11124         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
11125         %(fbsd_dynamic_linker),
11126         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
11127         config/i386/freebsd.h
11128         * config/arm/freebsd.h: Ditto.
11129         * config/i386/freebsd.h: Ditto.
11130         * config/i386/freebsd64.h: Ditto.
11131         * config/ia64/freebsd.h: Ditto.
11132         * config/rs6000/sysv4.h: Ditto.
11133         * config/sparc/freebsd.h: Ditto.
11134
11135 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
11136
11137         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
11138
11139 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11140
11141         * rtl.def (define_combine): Remove.
11142
11143 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11144
11145         * config/h8300/h8300.md: Tweak formatting.
11146
11147 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11148
11149         * config/h8300/h8300.md (*cmphi_h8300): Rename to
11150         *cmphi_h8300_znvc.
11151         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
11152
11153 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
11154
11155         PR bootstrap/14356
11156         * gcc.c (process_command): Remove const-qualification from argv.
11157         (main): Likewise.
11158
11159 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11160
11161         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
11162         pushqi1_h8300hs_advanced.  Adjust its caller.
11163         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
11164         Adjust its caller.
11165
11166 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
11167
11168         * Makefile.in (install-libgcc, install-multilib): Pass
11169         mkinstalldirs var to libgcc.mk.
11170
11171 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11172
11173         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
11174         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
11175
11176 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11177
11178         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
11179         * config/h8300/h8300.md: Split several peephole2's, each into
11180         two.
11181
11182 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11183
11184         * dominance.c (recount_dominator): Handle postdominators.
11185
11186 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11187
11188         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
11189         (NUM_SYMBOL_TYPES): Likewise.
11190         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
11191         (mips_unspec_address): Declare.
11192         (mips_gotoff_page, mips_gotoff_global): Delete.
11193         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
11194         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
11195         (mips_symbolic_constant_p, mips_symbolic_address_p)
11196         (mips_symbol_insns): Handle new symbol types.
11197         (general_symbolic_operand): New predicate.
11198         (mips_unspec_address): Make extern.
11199         (mips_gotoff_page, mips_gotoff_global): Delete.
11200         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
11201         Handle new symbol types.
11202         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11203         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11204         mips_unspec_address directly.
11205         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11206         the documentation of -mexplicit-relocs.
11207
11208 2004-03-01  Jeff Law  <law@redhat.com>
11209
11210         * fold-const.c (fold): An equality comparison of a non-weak object
11211         against zero has a known result.  Similarly an equality comparison
11212         of the address of two non-weak, unaliased symbols has a known result.
11213
11214         * ggc-page.c (struct page_entry): New field PREV.
11215         (ggc_alloc): Update PREV field appropriately.
11216         (sweep_pages): Likewise.
11217         (ggc_free): Likewise.  Use PREV field rather than loop to
11218         improve ggc_free performance.
11219
11220 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11221
11222         * config/mips/mips.c (mips_output_division): Use the division
11223         instruction to fill the delay slot of a zero check.
11224         (mips_idiv_insns): Adjust accordingly.
11225
11226 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
11227
11228         * config.gcc: Create a default tmake_file for linux, and use
11229         it in all but two linux clauses.  Comment those two.
11230
11231 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
11232
11233         * combine.c (try_combine):  Do not refer to is_replaced.
11234         (gen_lowpart_for_combine):  Perverse subregs now have a
11235         more politically correct name.
11236         * cse.c (cse_insn): Likewise.
11237         * jump.c: Fix bogus reference to delete_insn.
11238
11239 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
11240
11241         PR debug/14328
11242         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11243         constants as signed values.
11244
11245         PR middle-end/13448
11246         * c-tree.h (readonly_warning): Rename to ...
11247         (readonly_error): ... this.
11248         * c-typeck.c (build_unary_op): Adjust accordingly.
11249         (readonly_warning): Rename to ...
11250         (readonly_error): ... this and issue errors, not warnings.
11251         (build_modify_expr): Call readonly_error, not readonly_warning.
11252         (c_expand_asm_operands): Likewise.
11253         * tree-inline.c (optimize_inline_calls): Do not inline functions
11254         after errors have occurred.
11255
11256 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11257
11258         * configure.ac: Rearrange some threading code for clarity;
11259         add section comment.
11260         * configure: Regenerate.
11261
11262 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11263
11264         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11265         typos.
11266         * doc/cppopts.texi: Fix a typo.
11267
11268 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11269
11270         * config/i386/i386.md: Fix formatting.
11271
11272 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11273
11274         * configure.ac: Add some comments delineating sections of code.
11275
11276         * doc/install.texi: Note that libada uses autoconf 2.57 also.
11277
11278         * doc/install.texi: Fix idiot typo in previous commit.
11279
11280         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11281
11282 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11283
11284         * config/h8300/h8300.md: Add comments about peephole2's.
11285
11286 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11287
11288         * config/h8300/h8300.md: Tweak operand numbers of some
11289         peephole2's.
11290
11291 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11292
11293         * config/h8300/h8300.md: Tweak comments about peephole2's.
11294
11295 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
11296
11297         PR middle-end/14203
11298         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11299         instead of testing whether DECL_RTL is not NULL.
11300
11301 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11302
11303         * config/sh/sh.c: Fix formatting.
11304
11305 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11306
11307         * config/sh/sh.c: Convert to ISO-C.
11308
11309 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
11310
11311         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11312         my previous patch.
11313
11314         * config/darwin.h (machopic_finish): Output stub even if the
11315         symbol is already defined.
11316
11317 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11318
11319         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11320
11321 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11322
11323         * genattr.c (main): Don't define
11324         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11325         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11326         (DFA_PIPELINE_INTERFACE): Likewise.
11327         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11328         (DFA_PIPELINE_INTERFACE): Likewise.
11329
11330 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11331
11332         * config/mips/mips.md (tstsi, tstdi): Delete.
11333
11334 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11335
11336         * config/mips/mips.c (override_options): Remove an obsolete
11337         duplicate definition of the "e" constraint.
11338         * config/mips/mips.h: Update a comment accordingly.
11339
11340 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11341
11342         * config/mips/mips.md: Complete the unfinished R4000
11343         multiply/shift errata workaround.  Improve documentation.
11344         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11345         has a hilo hazard.
11346         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11347         (muldi3, muldi3_internal): Likewise.
11348         (muldi3_internal2): Remove, replacing with...
11349         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11350         (mulsidi3): Take the errata into account.
11351         (mulsidi3_32bit): Remove, replacing with...
11352         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11353         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11354         (umulsidi3): Take the errata into account.
11355         (umulsidi3_32bit): Remove, replacing with..
11356         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11357         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11358         TARGET_FIX_R4000.
11359         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11360         (smuldi3_highpart, umuldi3_highpart): Likewise.
11361         * doc/invoke.texi: Document the errata workaround.
11362
11363 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11364
11365         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11366         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11367         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11368         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11369         * config/mips/mips.c (mips_idiv_insns): New function.
11370         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11371         (mips_output_division): Add a workaround for the R4000 divide/shift
11372         errata.
11373         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11374         the length of an "idiv" instruction.
11375         * doc/invoke.texi: Document the new switches.
11376
11377 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11378
11379         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11380         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11381
11382 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11383
11384         PR optimization/14229
11385         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11386
11387 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11388
11389         * fold-const.c (fold): Strip NOPs that change the signedness
11390         for RSHIFT too.  Expand comment.
11391
11392 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11393
11394         PR optimization/7871
11395         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11396         from or to call insns.
11397
11398 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11399
11400         PR optimization/7871
11401         * flow.c (propagate_one_insn): Interpret calls as setting global
11402         registers, not merely clobbering them.
11403
11404 2004-02-27  Dale Johannesen  <dalej@apple.com>
11405
11406         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11407         config/darwin-protos.h:  Ditto.
11408         config/darwin.h:  Remove call to it.
11409         * combine.c (distribute_notes): Do not place a REG_DEAD note
11410         when value is both set and used.
11411
11412 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11413
11414         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11415         as well.
11416         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11417         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11418
11419 2004-02-27  Andrew Pinski  <apinski@apple.com>
11420
11421         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11422         Speedup common case of the type values being in the same order.
11423
11424 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11425
11426         * config/ia64/ia64.h (no-inline-float-divide): New option.
11427         * config/ia64/ia64.h (no-inline-int-divide): New option.
11428         * config/ia64/ia64.h (no-inline-sqrt): New option.
11429         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11430         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11431         * config/ia64/ia64.c (ia64_override_options): Modify error
11432         checking for inlined division/sqrt.
11433
11434 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11435
11436         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11437         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11438         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11439         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11440         copyright.
11441
11442 2004-02-27  Paul Brook  <paul@codesourcery.com>
11443
11444         * function.c (assign_parms): Don't count pretend args for alignment.
11445
11446 2004-02-27  Richard Henderson  <rth@redhat.com>
11447
11448         * passes.c: New file.
11449         * Makefile.in (OBJS-common): Add it.
11450         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11451         * flags.h (rtl_dump_and_exit): ... here.
11452         * output.h (size_directive_output, last_assemble_variable_decl):
11453         Move from toplev.c.
11454         * rtl.h (reg_alloc): Move from toplev.c.
11455         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11456         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11457         open_dump_file, close_dump_file, rest_of_decl_compilation,
11458         rest_of_type_compilation, rest_of_handle_final,
11459         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11460         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11461         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11462         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11463         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11464         rest_of_handle_tracer, rest_of_handle_if_conversion,
11465         rest_of_handle_if_after_combine, rest_of_handle_web,
11466         rest_of_handle_branch_prob,
11467         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11468         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11469         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11470         rest_of_handle_null_pointer, rest_of_handle_combine,
11471         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11472         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11473         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11474         (decode_d_option): Use enable_rtl_dump_file.
11475         (compile_file, finalize, do_compile): Move profile+combine+graph
11476         cleanup to finish_optimization_passes.
11477         * toplev.h (init_optimization_passes, finish_optimization_passes,
11478         enable_rtl_dump_file): Declare.
11479
11480 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11481             Roger Sayle  <roger@eyesopen.com>
11482
11483         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11484         operands to build a tree with swapped operands.
11485         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11486         'unsignedp' predicate to specify the signedness.
11487
11488 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11489
11490         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11491         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11492         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11493         comment typos and formatting.  Follow spelling conventions.
11494
11495 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11496
11497         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11498         fix_truncsfsi2.
11499
11500         * config/rs6000/spe.md: Delete spe_efsctuiz.
11501         Add spe_fixuns_truncsfsi2.
11502         Add spe_fix_truncsfsi2.
11503
11504 2004-02-26  Eric Christopher  <echristo@redhat.com>
11505
11506         * c-lex.c (c_lex_string_translate): New variable.
11507         (lex_string): Use to determine string translation.
11508         * c-pragma.h: Prototype.
11509         * c-parse.in (start_string_translation): New. Set above.
11510         (stop_string_translation): Ditto.
11511         (attribute, attribute_list, asm_def, asm_stmt,
11512         asm_operand): Use above functions.
11513         * cp/parser.c (cp_parser_declaration): Translate strings
11514         unless token is RID_EXTERN. Set c_lex_string_translate
11515         for recursive use.
11516         (cp_parser_asm_definition): Only translate argument strings
11517         to asms.
11518         (cp_parser_asm_operand_list): Ditto.
11519         (cp_parser_attribute_list): Do not translate attribute strings.
11520
11521 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11522
11523         * stmt.c (expand_start_case_dummy): Remove.
11524         * tree.h: Remove the corresponding prototype.
11525
11526 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11527
11528         * builtins.c (apply_args_register_offset): Remove.
11529         * tree.h: Remove the corresponding prototype.
11530
11531 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11532
11533         * stor-layout.c (is_pending_size): Remove.
11534         * tree.h: Remove the corresponding prototype.
11535
11536 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11537
11538         * recog.c (validate_replace_src): Remove.
11539         * recog.h: Remove the corresponding prototype.
11540
11541 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11542
11543         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11544         MAYBE_REG_PARM_STACK_SPACE.
11545         * function.c: Likewise.
11546         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11547         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11548         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11549         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11550
11551 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11552
11553         * c-decl.c (c_expand_deferred_function): Remove.
11554         * c-tree.h: Remove the corresponding prototype.
11555
11556 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11557
11558         * postreload.c (reload_cse_move2add): Generate just a PLUS
11559         instead of an entire SET.
11560
11561 2004-02-26  Jan Hubicka  <jh@suse.cz>
11562
11563         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11564         /pentium4m.
11565         * i386.c (override_options): Add support for new CPUs.
11566         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11567         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11568         constants.
11569         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11570
11571 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11572
11573         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11574
11575 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11576
11577         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11578         (sparc_emit_fixunsdi): New prototype.
11579         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11580         (sparc_emit_fixunsdi): New function.
11581         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11582         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11583         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11584         to sparc_emit_floatunsdi.
11585         (fixuns_truncsfdi2): New expander.
11586         (fixuns_truncdfdi2): Likewise.
11587
11588 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11589
11590         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11591         unless HAVE_cc0.
11592
11593 2004-02-25  Richard Henderson  <rth@redhat.com>
11594
11595         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11596         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11597         use (op0-op1) == 0 if op0 is a pointer.
11598         * config/alpha/alpha.md (cmpdi): Use some_operand.
11599         (three comparison combine splits): Remove.
11600
11601 2004-02-25  Richard Henderson  <rth@redhat.com>
11602
11603         PR c/12794
11604         * c-common.c (handle_alias_attribute): Reject the attribute if
11605         current_function_decl is set.
11606
11607 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11608
11609         * config.gcc: Add comment describing extra_gcc_objs.
11610         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11611         * configure.ac (extra_gcc_objs): New substitution variable.
11612         (host_extra_gcc_objs): Don't substitute.
11613         * configure: Regenerate.
11614         * Makefile.in: Use extra_gcc_objs.
11615
11616 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11617
11618         * doc/contrib.texi: Add an entry for myself.
11619
11620 2004-02-25  Jan Hubicka  <jh@suse.cz>
11621
11622         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11623         * cfgbuild.c (make_eh_edge):  Make global.
11624         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11625         * except.c (build_post_landing_pads, connect_post_landing_pads,
11626         dw2_build_landing_pads, sjlj_emit_function_enter,
11627         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11628         sjlj_build_landing_pads): Update CFG.
11629         (emit_to_new_bb_before): New function.
11630         (finish_eh_generation): Do not rebuild the CFG.
11631
11632 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11633
11634         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11635         target_cpu_default defines.
11636         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11637         * pa.h (TARGET_DEFAULT): Likewise.
11638
11639 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11640
11641         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11642         comparisons with regard to signedness.
11643
11644 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11645
11646         * arm.c (thumb_legitimize_address): New function.
11647         * arm-protos.h: Prototype it.
11648         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11649         (LEGITIMIZE_ADDRESS): Use it.
11650
11651 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11652
11653         * reload1.c (reload): Only spill eliminable register with multiple
11654         adjacent elimination alternatives if all alternatives fail.
11655
11656 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11657
11658         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11659         is -4095...+4095 inclusive.
11660
11661 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11662
11663         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11664         the bootstrap failure with Sun CC 5.4 and 5.5.
11665
11666 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11667
11668         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11669         which modifies NEWREG.
11670         (cse_condition_code_reg): Update the mode of CC_REG in
11671         CC_SRC_INSN on our own.
11672
11673 2004-02-24  Michael Matz  <matz@suse.de>
11674
11675         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11676         regparm attributes.
11677
11678 2004-02-24  Richard Henderson  <rth@redhat.com>
11679
11680         * toplev.c (dump_file_tbl): Rename from dump_file.
11681         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11682         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11683         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11684         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11685         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11686         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11687         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11688         s/rtl_dump_file/dump_file/g.
11689
11690 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11691
11692         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11693         (spe_fixuns_truncsfsi2): Delete.
11694
11695         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11696         (fixuns_truncsfsi2): Delete.
11697
11698 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11699
11700         PR/14240
11701         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11702
11703 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11704
11705         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11706
11707 2004-02-24  Jason Merrill  <jason@redhat.com>
11708
11709         * tree.c (check_qualified_type): New fn.
11710         (get_qualified_type): Use it.  If type already has the desired
11711         quals, just return it.
11712         * tree.h: Declare it.
11713
11714 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11715
11716         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11717         TARGET_SCHED_FINISH_GLOBAL): New macros.
11718
11719         * target.h (md_init_global, md_finish_global): Function
11720         declarations corresponding to new target macros.
11721
11722         * haifa-sched.c (sched_init, sched_finish): Allow target to
11723         call the new schedular hooks.
11724
11725         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11726         call to update_life_info.
11727
11728         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11729         flag_schedule_insns for SH4.
11730
11731         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11732         find_set_regmode_weight, find_insn_regmode_weight,
11733         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11734         sh_variable_issue, high_pressure, ready_reorder,
11735         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11736         functions used to throttle the insn movement in first
11737         scheduling pass for SH.
11738
11739         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11740         TARGET_SCHED_FINISH_GLOBAL.
11741
11742 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11743
11744         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11745         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11746         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11747         symbols in sections named by the user.
11748         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11749         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11750         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11751         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11752         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11753         the above.
11754         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11755         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11756         one more pseudo to further improve code generation.
11757         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11758         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11759         inside UNSPEC.
11760         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11761         * config/frv/frv.c (frv_legitimate_address_p): Added
11762         allow_double_reg_p argument.  Adjust all callers.  Use it to
11763         decide whether to enable double-register indirect addressing.
11764         (frv_funcdesc_alias_set): Remove.
11765         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11766         register.  Emit movdi_ldd.
11767         (ldd_address_operand): New.
11768         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11769         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11770         (PREDICATE_CODES): Add ldd_address_operand.
11771         * config/frv/frv.md (movdi_ldd): New.
11772         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11773         intermediate computations if possible.
11774         (symGOTOFF2reg_i): Fix harmless typo.
11775         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11776         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11777         relocated p_vaddr to vaddr type.
11778         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11779         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11780         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11781         MEM, or use a funcdesc alias set.  Use regular move instead of
11782         ldd.
11783         (dbl_memory_one_insn_operand): Recognize function descriptors by
11784         type or by alias set, and don't split them.
11785         * config/frv/frv.md (call, call_value): Never use call_internal
11786         for fdpic.
11787         (call_internal, call_value_internal): Never match for FDPIC.
11788         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11789         call_value_fdpicsi): Require FDPIC.
11790         (ldd): Removed.
11791         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11792         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11793         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11794         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11795         FDPIC.  Compute data base address.
11796         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11797         before the other self-specs are processed.
11798         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11799         Build with -fPIC.
11800         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11801         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11802         inhibit_libc is defined.
11803         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11804         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11805         __FRV_FDPIC__.
11806         (__RELOC_POINTER): Define.
11807         (_Unwind_IteratePhdrCallback): Use it.
11808         * config/frv/frv.h (Twrite): Define.
11809         (TRANSFER_FROM_TRAMPOLINE): Use it.
11810         * config/frv/linux.h (INVOKE__main): Undefine.
11811         (Twrite): Override.
11812         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11813         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11814         (-mlibrary-pic): Emphasize that this option generates EABI code.
11815         (-mcpu): Add fr550.
11816         (-mpack): Remove.
11817         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11818         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11819         and CONSTs in FDPIC mode.
11820         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11821         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11822         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11823         constants.
11824         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11825         rather than 'i' constraint for the 2-instruction alternative.
11826         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11827         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11828         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11829         EXTRA_CONSTRAINT_FOR_Y.
11830         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11831         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11832         (addsi3): Change 'Y' constraint to 'Q'.
11833         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11834         * reload.c (CONST_POOL_OK_P): New macro.
11835         (find_reloads): Use it to decide whether a constant can be forced
11836         into memory.
11837         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11838         constant satisfies got12_operand.
11839         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11840         (frv_legitimate_address_p): Check for valid unspec offsets using
11841         got12_operand rather than frv_legitimate_fdpic_operand_p.
11842         (frv_legitimate_fdpic_operand_p): Delete.
11843         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11844         or after reload.
11845         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11846         TARGET_FDPIC.
11847         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11848         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11849         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11850         (frv_fdpic_fptr_operand): Don't declare here.
11851         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11852         rather than fdpic_got12_operand.
11853         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11854         got12_operand and const_unspec_operand.
11855         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11856         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11857         (symbolic_operand): Remove.
11858         (const_unspec_operand): New predicate.
11859         * config/frv/frv.md (*movsi_got): Use got12_operand.
11860         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11861         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11862         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11863         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11864         * config/frv/frv.c (frv_unspec): New structure.
11865         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11866         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11867         validate CONST indices.  Use frv_output_const_unspec to print them.
11868         (frv_print_operand): Update call to unspec_got_name.  Use
11869         frv_output_const_unspec to print constant unspecs.
11870         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11871         Reject UNSPECs otherwise.
11872         (unspec_got_name): Take the relocation number as argument, not an
11873         rtx containing it.
11874         (frv_output_addr_const_extra): Remove, replacing with...
11875         (frv_output_const_unspec): ...this new function.
11876         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11877         (gpr_or_int12_operand): Use fdpic_got12_operand.
11878         (dbl_memory_one_insn_operand): Likewise.
11879         (fdpic_got12_operand): Use frv_const_unspec_p.
11880         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11881         are already legitimate.  Use frv_small_data_reloc_p when deciding
11882         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11883         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11884         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11885         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11886         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11887         label, for real this time.
11888         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11889         representation of visibility.
11890         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11891         such.
11892         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11893         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11894         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11895         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11896         it was explicitly disabled.
11897         (frv_stack_info): There is no need to save the link register in every
11898         frame unless TARGET_LINKED_FP is true.
11899         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11900         frame pointer if the stack pointer might change value.
11901         (frv_return_addr_rtx): Check and process "count" argument.
11902         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11903         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11904         (frv_find_base_term): Declare.
11905         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11906         (FIND_BASE_TERM): Define.
11907         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11908         small_data_register_operand, small_data_symbolic_operand.  Add
11909         symbolic_operand.
11910         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11911         (frv_print_operand_memory_reference, output_move_single): Remove
11912         special handling for unlegitimized sdata addresses.
11913         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11914         and symbolic addresses.
11915         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11916         (frv_find_base_term): New function.
11917         (int_2word_operand): Check specifically for symbolic address constants.
11918         (pic_register_operand, pic_symbolic_operand): Delete.
11919         (small_data_register_operand, small_data_symbolic_operand): Delete.
11920         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11921         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11922         (move_source_operand): Only accept CONSTs if they're a two-insn
11923         symbolic constant.
11924         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11925         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11926         using gen_symGOTOFF2reg*.
11927         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11928         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11929         themselves a cost of 3 insns.
11930         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11931         Change predicate to symbolic_operand.
11932         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11933         (*movsi_lda_sdata): Delete.
11934         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11935         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11936         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11937         frv-*-*linux*.
11938         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11939         label.
11940         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11941         -multilib-library-pic.
11942         (LINK_SPEC): Add -z text for -mfdpic.
11943         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11944         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11945         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11946         Override.
11947         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11948         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11949         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11950         crtstuff-generated files.
11951         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11952         * config.gcc: Add frv-*-*linux*.
11953         * config/frv/linux.h, config/frv/t-linux: New.
11954         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11955         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11956         when -mfdpic even if a linker script is explicitly listed.
11957         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11958         * config/frv/frv.c (frv_override_options): Clear asm_out
11959         unaligned_op for SImode on FDPIC.
11960         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11961         argument passed to decl_readonly_section.
11962         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11963         whole block run with FDPIC even with -fno-PIC.
11964         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11965         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11966         symbol or label plus offset to memory.
11967         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11968         GOTOFF and GPREL for LABEL_REF.
11969         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11970         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11971         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11972         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11973         * doc/invoke.texi: Document them.
11974         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11975         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11976         (frv_splittable_got_operand): Removed.
11977         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11978         LO_SUM.  Add comments.
11979         (frv_override_options): Moved enabling of FDPIC to
11980         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11981         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11982         (frv_legitimize_fdpic_address): Don't duplicate logic in
11983         frv_emit_movsi.
11984         (frv_gen_GPsym2reg): New.
11985         (unspec_got_name): Added gprel.
11986         (frv_expand_fdpic_call): Add support for inlining PLTs.
11987         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11988         (gpr_or_int12_operand): Added GPREL12.
11989         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11990         (small_data_symbolic_operand): Fail if FDPIC.
11991         (fdpic_splittable_got_operand): Removed.
11992         (fdpic_got12_operand): Added GPREL12.
11993         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11994         when appropriate.  Fix sdata GOTOFF.
11995         (frv_legitimate_constant_p): Require legitimate PIC operand for
11996         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11997         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11998         flag_pic case.
11999         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
12000         frv_assemble_integer fails.
12001         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
12002         (SUBTARGET_DRIVER_SELF_SPECS): New.
12003         (ASM_SPEC): Don't pass -mno-fdpic.
12004         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
12005         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
12006         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
12007         -multilib-library-pic.
12008         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
12009         condexec_si_media_operator, condexec_sf_add_operator and
12010         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
12011         and condexec_sf_unary_operator.
12012         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
12013         New.
12014         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
12015         movsi_internal.  Give them internal names.  movsi_got has type
12016         int.
12017         (fdpic got splitters): Remove.
12018         (symGPREL2reg, symGPREL2reg_hilo): New.
12019         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
12020         to -mlibrary-pic.  Map -multilib-library-pic to it.
12021         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
12022         Document.
12023         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
12024         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
12025         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
12026         (frv_cannot_force_const_mem): New function.
12027         (const_small_data_p, plus_small_data_p): Update comments on sdata
12028         on FDPIC.
12029         (frv_override_options): Set flag_pie for FDPIC too.
12030         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
12031         call-saved registers on FDPIC.
12032         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
12033         don't force LR to be preserved.
12034         (frv_expand_prologue): Likewise.
12035         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
12036         (frv_frame_pointer_required): Don't force it just because the
12037         FDPIC register is used.
12038         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
12039         operand only if !condexec_p.
12040         (frv_legitimize_address): Return the FDPIC-legitimized address.
12041         Don't match small data here on FDPIC.
12042         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
12043         symbols.  Use TRUE/FALSE instead of 1/0.
12044         (frv_local_funcdesc_p): New.
12045         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
12046         immediates when possible.
12047         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
12048         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
12049         an UNSPEC_GOT.
12050         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
12051         12-bit immediates when possible.
12052         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
12053         are not legitimate pic operands.
12054         (frv_in_small_data_p): Re-enable for FDPIC.
12055         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
12056         (FRV_GLOBAL_P): Removed.
12057         * config/frv/frv.md: Add modes to CONSTs.
12058         (movsi_got): New.
12059         (movsi_lo_sum_got): Use separate matches instead of match_dup.
12060         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
12061         (fdpic splittable operations): Match on flag_pic != 1.
12062         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
12063         * config/frv/frv.c (frv_asm_out_constructor,
12064         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
12065         bytes, not bits.
12066         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
12067         * config/frv/frv.c (frv_assemble_integer): Reject complex
12068         expressions referencing function SYMBOL_REFs.
12069         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
12070         (move_source_operand): Reject CONSTs that reference function
12071         SYMBOL_REFs on FDPIC.
12072         (frv_emit_movsi): If we get such a CONST, break it up.
12073         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
12074         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
12075         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
12076         MEM.
12077         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
12078         (frv_trampoline_size): Increase for FDPIC.
12079         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
12080         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
12081         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
12082         Disable use of GOTOFF for now.
12083         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
12084         Disable use of small data in FDPIC for now.
12085         (frv_asm_output_mi_thunk): Implement for FDPIC.
12086         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
12087         * config/frv/frv.c (frv_asm_out_constructor): Use
12088         frv_assemble_integer for FDPIC pointers.
12089         (frv_asm_out_destructor): Likewise.
12090         * config/frv/frv.md (ldd): Fix order of operands.  Use
12091         address_operand for input.
12092         2003-09-18  DJ Delorie  <dj@redhat.com>
12093         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
12094         (unspec_got_name): Correct typo.
12095         (frv_emit_movsi): Pre-expand splittable GOTs.
12096         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
12097         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
12098         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
12099         * config/frv/t-frv: Add -mfdpic multilibs.
12100         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
12101         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
12102         * config/frv/frv.c (frv_override_options): -mfdpic assumes
12103         flag_pic, default to 32-bit pics, require DWORD ops.
12104         (frv_override_options): Add W and Z constraints.
12105         (frv_expand_prologue): No pic prologue for -mfdpic.
12106         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
12107         (frv_print_operand_memory_reference): Handle GOT constants.
12108         (frv_legitimate_address_p): Allow GOT constants.
12109         (frv_legitimize_address): Handle GOT addresses too.
12110         (frv_legitimate_fdpic_operand_p): New.
12111         (frv_legitimize_fdpic_address): New.
12112         (unspec_got_name): New.
12113         (frv_output_addr_const_extra): New.
12114         (frv_expand_fdpic_call): New.
12115         (frv_fdpic_fptr_operand): New.
12116         (gpr_or_int12_operand): Handle GOT operands.
12117         (int_2word_operand): Handle GOT operands.
12118         (fdpic_operand): New.
12119         (fdpic_splittable_got_operand): New.
12120         (fdpic_got12_operand): New.
12121         (frv_emit_movsi): Handle GOT operands.
12122         (frv_assemble_integer): -mfdpic doesn't use rofixups.
12123         (frv_print_operand): Support 'g' code for GOT operands.
12124         * config/frv/frv-protos.h: Add prototypes as needed.
12125         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
12126         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
12127         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
12128         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
12129         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
12130         R_FRV_GOTOFFLO): New.
12131         (movsi_high_got, movsi_lo_sum_got): New.
12132         (*movsi_pic): Don't use this splitter for -mfdpic.
12133         (addsi3): Allow GOT references also.
12134         (call, call_value): Handle -mfdpic separately.
12135         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
12136         call_value_fdpicsi): New.
12137         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
12138         symGOTOFF2reg_i): New.
12139         * config/frv/frv.h (MASK_FDPIC): New.
12140         (TARGET_FDPIC): New.
12141         (TARGET_SWITCHES): Add -mfdpic.
12142         (FDPIC_FPTR_REGNO): New.
12143         (FDPIC_REGNO): New.
12144         (OUR_FDPIC_REG): New.
12145         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
12146         FDPIC_CALL_REGS.
12147         (REG_CLASS_NAMES): Likewise.
12148         (REG_CLASS_CONTENTS): Likewise.
12149         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
12150         (EXTRA_CONSTRAINT): Add it here.
12151         (FRV_GLOBAL_P): New.
12152         (OUTPUT_ADDR_CONST_EXTRA): New.
12153
12154 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12155
12156         * config/sparc/sparc.h: Remove commented-out definitions of
12157         TARGET_EDOM and GEN_ERRNO_RTX.
12158
12159 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12160
12161         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
12162         df_analyse with df_analyze.
12163
12164 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
12165
12166         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
12167         beginning of block.
12168
12169 2004-02-23  James E Wilson  <wilson@specifixinc.com>
12170
12171         * calls.c (precompute_arguments): Update comment.
12172
12173 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12174
12175         * et-forest.c: Replace et_occurences with et_occurrences.
12176
12177 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12178
12179         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
12180         with iv_analyze.
12181
12182 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
12183
12184         * config/i386/i386.c: Rename pni to sse3.
12185         * config/i386/i386.h: Likewise.
12186         * config/i386/i386.md: Likewise.
12187         * config/i386/pmmintrin.h: Likewise.
12188         * doc/extend.texi: Likewise.
12189         * doc/invoke.texi: Likewise.
12190
12191 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
12192             Kazu Hirata  <kazu@cs.umass.edu>
12193
12194         Remove -fwritable-strings.
12195         * c-common.c (fix_string_type): Don't check
12196         flag_writable_strings.
12197         (fix_string_type): Likewise.
12198         * c-opts.c (set_std_c89): Don't initialize
12199         flag_writable_strings.
12200         (set_std_c99): Likewise.
12201         * common.opt (fwritable-strings): Remove.
12202         * flags.h: Remove the external declaration of
12203         flag_writable_strings.
12204         * opts.c (common_handle_option) <OPT_fwritable_strings>:
12205         Remove.
12206         * toplev.c (flag_writable_strings): Remove.
12207         (f_options): Remove an entry for writable-strings.
12208         * varasm.c (const_hash_1) <STRING_CST>: Don't check
12209         flag_writable_strings.
12210         (compare_constant) <STRING_CST>: Likewise.
12211         (build_constant_desc): Likewise.
12212         * config/darwin.c (machopic_select_section): Likewise.
12213         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12214         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12215         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12216         * config/mips/mips.c (mips_select_section): Likewise.
12217         (mips_encode_section_info): Likewise.
12218         * config/pa/pa.c (pa_select_section): Likewise.
12219         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12220         * config/v850/v850.c (v850_select_section): Likewise.
12221         * doc/invoke.texi (-fwritable-strings): Remove.
12222         (-fno-const-strings): Don't mention -fwritable-strings.
12223         * doc/trouble.texi: Don't mention -fwritable-strings.
12224
12225 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
12226
12227         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12228
12229 2004-02-23  Dale Johannesen  <dalej@apple.com>
12230
12231         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12232         (movdf_hardfloat64):  Ditto.
12233         (movdf_softfloat64):  Ditto.
12234
12235 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
12236         * config/rs6000/rs6000.c (function_arg): call to
12237         rs6000_mixed_function_arg for DFmode moved to allow
12238         normal DFmode incoming register assignment.
12239
12240 2004-02-23  Dale Johannesen  <dalej@apple.com>
12241
12242         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12243         (movdf_hardfloat64):  Ditto.
12244
12245 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12246
12247         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12248         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12249         copyright.
12250
12251 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
12252
12253         PR c/14156
12254         * c-typeck.c (c_expand_return): Change check for VAR_DECL
12255         to use DECL_P instead.
12256
12257         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12258         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12259
12260 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12261
12262         * Makefile.in (opts.o): Depend on target.h.
12263         * opts.c (decode_options): Use targetm.default_short_enums
12264         instead of DEFAULT_SHORT_ENUMS.
12265         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12266         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12267         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12268         * target.h (gcc_target): Add default_short_enums.
12269         * config/cris/cris.h: Remove a comment about
12270         DEFAULT_SHORT_ENUMS.
12271         * config/ip2k/ip2k.h: Likewise.
12272         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12273         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
12274
12275 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12276             Falk Hueffner  <falk@debian.org>
12277
12278         PR c/14188
12279         * builtins.c (expand_builtin_va_arg): Emit an informative message
12280         if a trap is generated.
12281         * c-typeck.c (build_function_call): Likewise.
12282
12283 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12284
12285         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12286         fopen.
12287         * libgcov.c: Include sys/stat.h.
12288         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12289         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12290         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12291         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12292
12293 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12294
12295         * reorg.c: Remove comments about dead ports.
12296
12297 2004-02-22  Christopher Faylor  <cgf@redhat.com>
12298
12299         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12300         extra host object file when targetting cygwin rather than generic
12301         object files.
12302
12303 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
12304
12305         Merge from tree-ssa:
12306         2003-11-20  Richard Henderson  <rth@redhat.com>
12307
12308                 * tree-inline.c (insert_decl_map): New.
12309                 (remap_decl, remap_type, remap_block, copy_body_r,
12310                 initialize_inlined_parameters, declare_return_variable,
12311                 remap_save_expr): Use it.
12312
12313         * function.c (copy_body_r): Add mapping from id->ret_label to
12314         id->ret_label.  Revert test for ret_label.
12315
12316 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12317
12318         * genoutput.c (process_template): Strip trailing whitespace in @
12319         templates and issue a warning if there was any.
12320
12321 2004-02-21  Christopher Faylor  <cgf@redhat.com>
12322
12323         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12324         object file when targetting cygwin.
12325         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12326         overridden by top-level Makefile.
12327
12328 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12329
12330         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12331         the x87's load constant instructions when optimizing for size.
12332
12333 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12334
12335         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12336         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12337         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12338         * fold-const.c: Likewise.
12339         * simplify-rtx.c: Likewise.
12340
12341 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12342
12343         * combine.c (can_combine_p): Don't ignore SETs marked with
12344         REG_EH_REGION notes.
12345         (try_combine): When attemting to fix unrecognized insns, don't
12346         split a PARALLEL that contains the original i2.
12347
12348 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12349
12350         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12351         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12352         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12353         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12354         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12355         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12356         portion of header.
12357         (__altivec_link_error_invalid_argument): Remove prototype; will use
12358         __builtin_altivec_compiletime_error("vec_*") instead.
12359         (vec_*): Fix/complete set of available operation overloads given the
12360         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12361         cv-correctness of pointer arguments; in C, always check for correct
12362         argument types before macro expansion.
12363         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12364         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12365         '-W[no-]altivec-long-deprecated' switches.
12366         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12367         '__vector', '__pixel' and '__bool' macros using
12368         '__attribute__((altivec(...)))' types.
12369         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12370         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12371         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12372         New type nodes.
12373         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12374         handling '-W[no-]altivec-long-deprecated'.
12375         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12376         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12377         altivec_expand_dst_builtin): Remove casts from integer literals.
12378         (altivec_expand_builtin): Likewise; handle expansion of new
12379         '__builtin_altivec_compiletime_error' function.
12380         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12381         types, and make them distinct from other vector types; register
12382         '__builtin_altivec_compiletime_error' function.
12383         (print_operand): For 'P', print a full target register name instead of
12384         merely its number.
12385         (rs6000_attribute_table): Add "altivec" attribute.
12386         (rs6000_handle_altivec_attribute): New function.
12387         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12388         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12389         maps to).
12390         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12391         declare.
12392         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12393
12394 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12395
12396         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12397         check.
12398         (shift_mix4left+2): Delete redundant pattern.
12399
12400 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12401
12402         * alias.c (OUTGOING_REGNO): Don't define the default.
12403         * builtins.c (OUTGOING_REGNO): Likewise.
12404         (INCOMING_REGNO): Likewise.
12405         (apply_args_register_offset): Always use OUTGOING_REGNO.
12406         * combine.c (OUTGOING_REGNO): Likewise.
12407         * sibcall.c (OUTGOING_REGNO): Likewise.
12408         * defaults.h (INCOMING_REGNO): Provide the default.
12409         (OUTGOING_REGNO): Likewise.
12410
12411 2004-02-21  Jan Hubicka  <jh@suse.cz>
12412
12413         * params.def (max-peeled-insns, max-completely-peeled-insns,
12414         max-once-peeled-insns): Set to 400.
12415
12416 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12417
12418         PR c++/12007
12419         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12420         are set for parameters before outputing debugging information.
12421
12422 2004-02-20  Falk Hueffner  <falk@debian.org>
12423
12424         PR target/14201
12425         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12426         numbers.
12427
12428 2004-02-20  Per Bothner  <per@bothner.com>
12429
12430         * input.h:  Don't #include line-map.h.  It may cause link problems
12431         with undefined linemap_line_start when line-map.h is included but
12432         line-map.o is not linked, as currently happens with gengtype on
12433         compilers that don't support inline.
12434         * toplev.c:  So we do have to explicitly #include line-map.h here.
12435
12436 2004-02-20  Richard Henderson  <rth@redhat.com>
12437
12438         * doc/invoke.texi: Add -Wvariadic-macros.
12439
12440 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12441
12442         * haifa-sched.c (sched_emit_insn): Remove.
12443         * sched-int.h: Remove the corresponding prototype.
12444
12445 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12446
12447         Revert:
12448         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12449         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12450         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12451         * config/cris/cris.h: Remove a comment about
12452         DEFAULT_SHORT_ENUMS.
12453         * config/ip2k/ip2k.h: Likewise.
12454         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12455
12456 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12457             Tom Tromey  <tromey@redhat.com>
12458
12459         * doc/install.texi: Moved --disable-libgcj and
12460         --with-system-zlib documentation to new section for
12461         Java-specific options.
12462         Added explicit Cross-Compiler-Specific Options subheading.
12463         Added section for Java-specific options.
12464
12465 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12466
12467         * doc/install.texi (Building the Ada compiler): Remove
12468         example.
12469
12470 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12471
12472         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12473
12474 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12475
12476         * gcc.c (process_command): Allow translation of the copyright
12477         symbol but not the rest of the copyright message.
12478         * gcov.c (print_version): Likewise.  Allow translation of the
12479         message about warranty.
12480
12481 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12482
12483         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12484         predicate.
12485         ("*andsi_clear"): Tweak constraints to not match postincrement.
12486         Adjust the predicate to exclude a volatile memory reference.
12487         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12488         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12489
12490 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12491
12492         * move-if-change: Remove.
12493         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12494         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12495         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12496         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12497         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12498         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12499
12500 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12501
12502         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12503         for operand2.  Add condition that requires register_operand operand2
12504         before reload.
12505
12506 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12507             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12508
12509         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12510         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12511
12512 2004-02-19  Richard Henderson  <rth@redhat.com>
12513
12514         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12515         * tree.c (build0, build1, build2, build3, build4): Split out from...
12516         (build): ... here.  Call them.
12517         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12518
12519         * convert.c (convert_to_integer): Remove extra build argument.
12520         * tree-inline.c (expand_call_inline): Likewise.
12521
12522 2004-02-19  Richard Henderson  <rth@redhat.com>
12523
12524         * c-opts.c (warn_variadic_macros): New.
12525         (c_common_handle_option): Set it.
12526         (sanitize_cpp_opts): Copy it to cpp_opts.
12527         * c.opt (Wvariadic-macros): New.
12528         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12529         * cppinit.c (cpp_create_reader): Initialize it.
12530         * cppmacro.c (parse_params): Check it.
12531
12532 2004-02-19  David Daney <ddaney@avtrex.com>
12533
12534         PR preprocessor/14198
12535         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12536         builtin_assert ("machine=mips")
12537
12538 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12539
12540         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12541         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12542         * config/cris/cris.h: Remove a comment about
12543         DEFAULT_SHORT_ENUMS.
12544         * config/ip2k/ip2k.h: Likewise.
12545         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12546
12547 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12548
12549         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12550         when passing single SFmode quantities in general registers,
12551         put them in the high half.
12552
12553 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12554
12555         * doc/md.texi (Standard Names): Document additional dependency on
12556         fix pattern.
12557
12558         * optabs.c (ftruncify): Remove.
12559         (expand_fix): Manually inline ftruncify above.
12560         (can_fix_p): Add FIXME note.
12561
12562 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12563
12564         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12565         spe_fixuns_truncsfsi2.
12566
12567         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12568         fixuns_truncsfsi2.
12569
12570 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12571
12572         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12573         * testsuite/gcc.dg/20040219-1.c: New test.
12574
12575 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12576
12577         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12578         "*subsf3_cconly"): Subtraction is not commutative.
12579
12580 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12581
12582         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12583         (sdbout_symbol): If called before sdbout_init, queue DECL for
12584         later and return.
12585         (sdbout_init): Set sdbout_initialized true, process decls
12586         queued earlier by sdbout_symbol.
12587         (sdbout_finish): Use size_t for index variable.
12588
12589 2004-02-19  Jeff Law  <law@redhat.com>
12590
12591         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12592         for unordered comparison codes.
12593
12594 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12595
12596         * reload1.c (reload): Correct comment.
12597         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12598         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12599         register variables are not used by reload.
12600
12601 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12602
12603         PR target/14209
12604         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12605         constraints to not match postincrement.  Adjust the predicate to
12606         exclude a volatile memory reference.
12607
12608 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12609
12610         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12611
12612 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12613
12614         * hooks.c (hook_void_tree_int): Remove.
12615         (hook_void_constcharptr): Likewise.
12616         (hook_int_void_0): Likewise.
12617         * hooks.h: Remove the prototypes for the above three
12618         functions.
12619         * targhooks.c (hook_bool_machine_mode_true): Remove.
12620         * targhooks.h: Remove the prototype for
12621         hook_bool_machine_mode_true.
12622
12623 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12624
12625         * emit-rtl.c (subreg_realpart_p): Remove.
12626         (reorder_insns_with_line_notes): Likewise.
12627         (end_full_sequence): Likewise.
12628         * rtl.h: Remove the prototype for the above functions.
12629
12630 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12631
12632         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12633         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12634         config/iq2000/iq2000.h, config/m32r/m32r.h,
12635         config/pdp11/pdp11.h, config/sparc/sparc.h,
12636         config/xtensa/xtensa.h: Remove commented-out or useless
12637         definitions of CASE_VECTOR_PC_RELATIVE.
12638
12639 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12640
12641         * loop.c (all_sets_invariant_p): Remove.
12642
12643 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12644
12645         PR target/12916
12646         * config/sparc/sparc.h (NPARM_REGS): Delete.
12647         (BASE_RETURN_VALUE_REG): Likewise.
12648         (BASE_OUTGOING_VALUE_REG): Likewise.
12649         (BASE_PASSING_ARG_REG): Likewise.
12650         (BASE_INCOMING_ARG_REG): Likewise.
12651         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12652         TARGET_ARCH64, not TARGET_V9.
12653         (function_arg_slotno): Dispatch based on the mode class.
12654         Handle vector modes like floating-point modes.
12655         (function_arg_record_value_1): Handle vector types like
12656         floating-point types.
12657         (function_arg_record_value_2): Likewise.
12658         Calculate regno after mode transformation.
12659         (function_arg): Handle vector modes like floating-point modes.
12660         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12661         If ARCH64, do not recheck alignment.
12662         (function_arg_pass_by_reference): Reorder the conditions.
12663         (sparc_return_in_memory): Move after function_arg_padding.
12664         Implement calling conventions for vector modes.
12665         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12666         (function_value): Move scope of 'regbase'.
12667         Implement calling conventions for vector modes.
12668         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12669         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12670         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12671         the argument is passed by reference.
12672         (sparc_type_code): Handle vector types.
12673
12674 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12675
12676         * function.c (assign_parms): When building decl_rtl for
12677         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12678
12679 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12680
12681         * expr.c (is_aligning_offset): Check if we are aligning the
12682         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12683         in bits.
12684
12685 2004-02-18  Matt Austern  <austern@apple.com>
12686
12687         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12688         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12689         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12690         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12691         spec string.
12692         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12693
12694 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12695
12696         * dwarf2out.c (loclabel_num): Move outside #ifdef
12697         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12698         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12699         Mark with GTY(()).
12700         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12701         Allocate memory with ggc_alloc.  No need to copy anything.
12702         (ia64_hpux_file_end): Update to match.
12703
12704 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12705
12706         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12707         by default.
12708
12709 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12710
12711         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12712         ("divmodtisi3"): Likewise.
12713         ("udivmoddi4", "udivmodtidi3"): Likewise.
12714         ("divmodsi4", "divmoddisi3"): Likewise.
12715         ("udivmodsi4", "udivmoddisi3"): Likewise.
12716         ("udivsi3", "umodsi3"): Likewise.
12717
12718 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12719
12720         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12721         placeholder insn when chunkifying the pool.
12722
12723 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12724
12725         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12726         generating PIC code.
12727
12728 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12729
12730         * config/h8300/h8300-protos.h: Add a prototype for
12731         h8300_expand_branch.
12732         * config/h8300/h8300.c (h8300_expand_branch): New.
12733         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12734         bgtu, beq, bne): Call h8300_expand_branch().
12735
12736 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12737
12738         * config/h8300/h8300-protos.h: Add prototypes for
12739         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12740         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12741         (h8300_hard_regno_mode_ok): Likewise.
12742         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12743         h8300_hard_regno_nregs().
12744         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12745
12746 2004-02-18  Per Bothner  <per@bothner.com>
12747
12748         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12749         partly reverts my 2003-10-01 change, because we're back to logically
12750         including <command line> inside the main line.
12751         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12752         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12753         Fixes PR preprocessor/14103.
12754
12755         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12756         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12757         (cpp_push_include):  Don't need to increment pfile's line field.
12758         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12759
12760         * c-ppoutput.c (print struct):  New first_time field.
12761         (init_pp_output):  Set print.first_time.
12762         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12763         which is set also for (say) <command line>.  Clear print.first_time.
12764
12765         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12766         does not match the code, so fix both.
12767         (should_stack_file):  Inline include_pch_p function.
12768         (include_pch_p):  Remove pointless function.
12769
12770         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12771
12772 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12773
12774         * config/h8300/h8300.md (four define_peephole2's): Use
12775         h8300_regs_ok_for_stm().
12776
12777 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12778
12779         * config/h8300/h8300-protos.h: Update the prototype for
12780         expand_a_rotate().
12781         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12782         argument.
12783         * config/h8300/h8300.md: Update all callers.
12784
12785 2004-02-18  Jan Hubicka  <jh@suse.cz>
12786
12787         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12788         floats.
12789         (simplify_binary_operation): Deal with logicals on floats.
12790
12791         * i386.md (SSE fabs splitters): Emit new patterns.
12792         (SSE cmov splitters): Likewise.
12793         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12794         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12795         subregs.
12796         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12797         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12798
12799 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12800
12801         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12802         by hand.
12803         (output_a_rotate): Tweak a comment.
12804         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12805         (*rotlhi3_1): Change to rotlhi3_1.
12806         (*rotlsi3_1): Change to rotlsi3_1.
12807
12808 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12809
12810         PR target/13866
12811         * arm.c (load_multiple_operation): Don't insist that the source reg
12812         of a post-increment component is the same as the destination.
12813         (store_multiple_operation): Likewise.
12814
12815 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12816
12817         * config/h8300/h8300.md: Move movsf patterns into one section
12818         of the file.
12819
12820 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12821
12822         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12823         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12824         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12825         config/mips/linux64.h, config/pa/pa-64.h,
12826         config/rs6000/aix51.h, config/rs6000/aix52.h,
12827         config/rs6000/spe.md, config/sparc/linux.h,
12828         config/sparc/linux64.h: Update copyright.
12829
12830 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12831
12832         * config/h8300/h8300.md: Move push patterns into one
12833         section of the file.
12834
12835 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12836
12837         PR c++/11326
12838         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12839         fntype.
12840
12841 2004-02-18  Paul Brook  <paul@codesourcery.com>
12842
12843         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12844
12845 2004-02-18  Paul Brook  <paul@codesourcery.com>
12846
12847         PR debug/12934
12848         * dwarf2out.c (loc_descriptor_from_tree): Handle
12849         EXPR_WITH_FILE_LOCATION.
12850
12851 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12852
12853         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12854         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12855         trailing whitespace from instructions.
12856
12857 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12858
12859         * configure.ac: When generating auto-build.h, pass
12860         --enable-languages to the sub-configure.
12861         Put quotes around ${program_transform_name} when generating
12862         name of as, ld, nm, objdump.
12863         * configure: Regenerate.
12864
12865 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12866
12867         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12868         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12869         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12870         (s-preds, s-iov): Do not depend on move-if-change.
12871
12872 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12873
12874         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12875         (insert_save): Likewise.
12876
12877 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12878
12879         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12880         warning.
12881
12882 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12883
12884         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12885         *one_cmplsi2_h8300.
12886         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12887
12888 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12889
12890         * config/h8300/h8300-protos.h: Update the prototype of
12891         fix_bit_operand().
12892         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12893         argument "what".
12894         * config/h8300/h8300.md: Update all callers.
12895
12896 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12897
12898         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12899         the last argument to "code" from "type".
12900
12901 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12902
12903         * config/h8300/h8300.c: Remove an extern declaration of
12904         rtx_equal_function_value_matters.
12905
12906 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12907
12908         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12909         by hand.
12910         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12911         (*iorqi3_1): Change to iorqi3_1.
12912         (*xorqi3_1): Change to xorqi3_1.
12913
12914 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12915
12916         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12917         typos.
12918
12919 2004-02-17  Jan Hubicka  <jh@suse.cz>
12920
12921         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12922
12923 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12924
12925         PR optimization/14119
12926         * combine.c (try_combine): When attemting to fix unrecognized insns,
12927         don't delete SETs marked with REG_EH_REGION notes.
12928
12929 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12930
12931         * combine.c (simplify_if_then_else): Do not replace
12932         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12933         modes differ.
12934
12935 2004-02017  Steven Bosscher  <stevenb@suse.de>
12936
12937         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12938         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12939         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12940         * ada/utils.c: Likewise.
12941         * cp/decl.c: Likewise.
12942         * f/com.c: Likewise.
12943         * java/class.c: Likewise.
12944
12945 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12946
12947         * config/h8300/h8300.md: Fix comment typos.
12948
12949 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12950
12951         * config/mips/t-iris6gld: Renamed to ...
12952         * config/mips/t-irix-gld: ... this.
12953         * config.gcc (mips-sgi-irix6*): Reflect this
12954         (mips-sgi-irix5*): Use it with GNU ld.
12955
12956         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12957         to ...
12958         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12959         * config/mips/t-irix-gld: Reflect this.
12960         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12961
12962         * config/mips/iris5gld.h: New file.
12963         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12964         Only use collect2 without gas.
12965
12966         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12967         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12968         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12969         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12970
12971         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12972         * config/mips/iris5.h: ... here.
12973
12974         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12975         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12976         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12977
12978         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12979         using irix_startfile_spec, irix_endfile_spec.
12980
12981 2004-02-16  Gunther Nikl  <gni@gecko.de>
12982
12983         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12984
12985 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12986
12987         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12988         insns by hand.
12989
12990 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12991
12992         * cfghooks.c (split_edge): Speed up updating of dominators.
12993
12994 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12995
12996         PR c++/11326
12997         * c-common.c (flag_abi_version): Remove.
12998         * c-common.h (flag_abi_version): Likewise.
12999         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
13000         * c.opt (fabi-version): Remove.
13001         * calls.c (expand_call): Always pass a function type to
13002         struct_value_rtx.  Use convert_memory_address.
13003         * common.opt (fabi-version): Add it.
13004         * flags.h (flag_abi_version): Likewise.
13005         (abi_version_at_least): New macro.
13006         * opts.c (common_handle_option): Add OPT_fabi_version.
13007         * toplev.c (flag_abi_version): Define it.
13008         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
13009         New function.
13010         (ia64_output_mi_thunk): Use it.
13011         (ia64_struct_value_rtx): Likewise.
13012
13013 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13014
13015         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
13016         Don't generate insns by hand.
13017
13018 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
13019
13020         PR c++/14178
13021         * doc/invoke.texi (fabi-version): The default is 2 now.
13022
13023 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13024
13025         * loop-iv.c: New file.
13026         * Makefile.in (loop-iv.o): New.
13027         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
13028         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
13029         num_loop_branches): New functions.
13030         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
13031         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
13032         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
13033         get_simple_loop_desc, free_simple_loop_desc): Declare.
13034         (simple_loop_desc): New inline function.
13035         (struct rtx_iv, struct niter_desc): New.
13036         * cfgloopmanip.c (loopify): Specify semantics more precisely.
13037         * expr.c (force_operand): Handle subregs of expressions created by
13038         loop unroller.
13039         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
13040         parts of the initialization to toplev.c
13041         * loop-unroll.c (loop_exit_at_end_p): New.
13042         (unroll_and_peel_loops): Call iv_analysis_done.
13043         (decide_peel_once_rolling, decide_peel_completely,
13044         decide_unroll_stupid, decide_unroll_constant_iterations,
13045         decide_unroll_runtime_iterations, decide_peel_simple,
13046         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
13047         unroll_loop_runtime_iterations): Use new simple loop analysis.
13048         * loop-unswitch.c (compare_and_jump_seq): New.
13049         (may_unswitch_on_p): Renamed to ...
13050         (may_unswitch_on): Use new iv analysis.
13051         (reversed_condition): Export.
13052         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
13053         * predict.c (estimate_probability): Use new simple loop analysis.
13054         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
13055         canon_condition, simplify_using_condition): Declare.
13056         * stor-layout.c (get_mode_bounds): New.
13057         * toplev.c (rest_of_handle_loop2): Some parts of
13058         initialization/finalization moved here from loop-init.c.
13059
13060 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13061
13062         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
13063         pointer.
13064         (CALL_USED_REGISTERS): Likewise.
13065         (REG_ALLOC_ORDER): Likewise.
13066         (REG_CLASS) <GENERAL_REGS>: Likewise.
13067
13068 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
13069
13070         * doc/md.texi (Insn Canonicalizations): Document left-chaining
13071         in associative operators.
13072         * rtlanal.c (commutative_operand_precedence): Create some new
13073         variables.  Prefer a commutative operand on the left, then
13074         binary expressions, then NEG and NOT.
13075
13076 2004-02-16  Matthias Klose  <doko@debian.org>
13077
13078         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
13079         in terms of SHLIB_SOVERSION.
13080         * config/m68k/t-slibgcc-elf-ver: New file.
13081         * config/pa/t-slibgcc-elf-ver: New file.
13082         * config.gcc (m68k-linux, parisc-linux): Use them when not
13083         sjlj exceptions are not configured.
13084
13085 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
13086
13087         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
13088
13089 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
13090
13091         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
13092
13093 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
13094
13095         * doc/sourcebuild.texi: Mention backends.html.
13096
13097 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
13098
13099         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
13100         line-map.c, line-map.h, var-tracking.c: Fix comment
13101         formatting.
13102
13103 2004-02-16  Richard Henderson  <rth@redhat.com>
13104
13105         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
13106
13107         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
13108
13109 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13110
13111         * config/h8300/h8300.md: Remove unnecessary parallels from
13112         all define_insn and define_split patterns.
13113
13114 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13115
13116         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
13117         "clobber").
13118
13119 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
13120
13121         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
13122         '%#'.
13123
13124 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13125
13126         * config/ia64/ia64.c, config/mips/mips.c,
13127         config/mmix/mmix-modes.def: Fix comment typos.
13128
13129 2004-02-15  Roger Sayle  <roger@eyesopen.com>
13130
13131         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
13132         (get_directive_line): Remove unused function prototype.
13133
13134 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13135
13136         * tree-inline.c (copy_body_r): Do not replace ret_label.
13137
13138 2004-02-14  Jan Hubicka  <jh@suse.cz>
13139
13140         * i386.c (x86_four_jump_limit): New variable.
13141         (k8_avoid_jump_misspredicts): Rename to ...
13142         (ix86_avoid_jump_misspredicts): .. this one.
13143         (ix86_pad_returns): Break out from ...
13144         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
13145         to.
13146         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
13147
13148 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13149
13150         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
13151         PARALLEL is NULL.
13152
13153 2004-02-14  Per Bothner  <per@bothner.com>
13154
13155         * fix-header.c (line_table):  Move local variable in main to global.
13156         * scan.h (line_table):  Use it.
13157         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
13158         line (recently renamed to src_loc) before calling recognized_function.
13159
13160 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
13161
13162         * Makefile.in: Fix comment typos.
13163
13164 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
13165
13166         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
13167         for start_value when it is directly moved into reg, and factorize
13168         the retrieval of GET_MODE (reg).
13169
13170 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13171
13172         * config/mips/mips-protos.h (mips_load_got_page): Delete.
13173         (mips_load_got_global): Delete.
13174         (mips_gotoff_page): Declare.
13175         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
13176         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
13177         UNSPEC_LOAD_GOT pattern rather than a MEM.
13178         (*load_got[sd]i): New patterns.
13179         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
13180         (mips_load_got_page, mips_load_got_global): Delete.
13181         (mips_gotoff_page): New function.
13182         (override_options): Don't initialize mips_got_alias_set.
13183
13184 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13185
13186         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
13187         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
13188         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
13189         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
13190         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
13191         * config/mips/mips.c: Fix some overly-long lines.
13192         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
13193         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
13194
13195 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13196
13197         * configure.ac: Search for as, ld below libexec/gcc.
13198         * configure: Regenerate.
13199
13200 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13201
13202         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13203         __builtin_arm_setwcx ().
13204         * config/arm/arm.c (arm_expand_builtin): Generate operands
13205         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13206
13207 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13208
13209         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13210         and "wmuluh" to "wmulsm" and "wmulum", respectively.
13211         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13212         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13213         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13214         (_mm_mulhi_pu16): Likewise.
13215
13216 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
13217
13218         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13219         DECL_NAME != 0 before dereferencing.
13220
13221 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13222
13223         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13224         (s390_output_addr_const_extra): Declare.
13225         (s390_output_pool_entry): Remove FILE * argument.
13226         * config/s390/s390.c (s390_output_symbolic_const): Remove.
13227         (s390_output_addr_const_extra): New function.
13228         (print_operand_address): Call output_addr_const instead of
13229         s390_output_symbolic_const.
13230         (print_operand): Likewise.
13231         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13232         Remove FILE * argument.
13233         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13234         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13235         call.
13236
13237 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13238
13239         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13240         (struct edge, struct vertex, struct graph): New.
13241         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13242         free_graph): New functions.
13243
13244 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
13245
13246         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13247         Use ".set macro" to avoid warnings about multi-instruction
13248         macros, since they're intentional.
13249
13250 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
13251
13252         * config/darwin.h: Add include guards.  Remove old, now incorrect,
13253         comment about STANDARD_EXEC_PREFIX.
13254
13255         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13256         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
13257         for installing .1 manpages.  Add rules for installing cpp
13258         and gcov manpages under their installed names.
13259
13260 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
13261
13262         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13263         host, but try LD_FOR_TARGET first.
13264         * configure: Rebuilt.
13265
13266 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13267
13268         * dbxout.c: Move declaration of dbxout_type_decl outside
13269         #ifdef DBX_DEBUGGING_INFO.
13270         * c-parse.in: Don't give the asmdef production a type.
13271
13272 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13273
13274         * debug.h (struct gcc_debug_hooks): Add type_decl field.
13275         (debug_nothing_tree_int): Prototype.
13276         (dwarf_debug_hooks): Delete, unused.
13277         * debug.c (do_nothing_debug_hooks): Update.
13278         (debug_nothing_tree_int): New function.
13279         * langhooks.h (struct lang_hooks_for_decls):
13280         Remove builtin_type_decls field.
13281         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13282         (LANG_HOOKS_DECLS): Update.
13283         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13284         Use debug_hooks->type_decl.
13285         * dbxout.c (preinit_symbols): New static.
13286         (dbx_debug_hooks, xcoff_debug_hooks): Update.
13287         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13288         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
13289         for symbols to output.
13290         (dbxout_type_decl): New function.
13291         (dbxout_symbol): If called before dbxout_init has run, queue
13292         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13293         to TYPE_DECLs before emitting them.
13294         * xcoffout.c (assign_type_number): Delete.
13295         (xcoff_type_numbers): New static table.
13296         (xcoff_assign_fundamental_type_number): New function.
13297         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13298         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
13299         * sdbout.c: Include varray.h.
13300         (deferred_global_decls): New static.
13301         (sdb_debug_hooks): Update.
13302         (sdbout_global_decl): If we can't emit something right now,
13303         remember it in deferred_global_decls.
13304         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13305         (sdbout_init): Initialize deferred_global_decls.
13306         * Makefile.in: Update dependencies of sdbout.o.
13307         * dwarf2out.c (dwarf2out_type_decl): New function.
13308         (dwarf2_debug_hooks): Update.
13309         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13310         * c-decl.c (getdecls): Just return 0.
13311         (check_for_loop_decls): Don't use getdecls.
13312         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13313         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13314
13315 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
13316
13317         * config/s390/s390.c (s390_sched_reorder2): Remove.
13318         (TARGET_SCHED_REORDER2): Do not redefine.
13319
13320 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13321
13322         * c-parse.in (maybe_type_qual): Delete.
13323         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13324         (asm_argument): New grammar rules.
13325         (extdef_1): Use asmdef.
13326         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13327         (xexpr): Move up with other expression rules.
13328         (stmt): Use asm_stmt.
13329
13330         * c-typeck.c (build_asm_expr): New function - body mostly
13331         pulled from build_asm_stmt.
13332         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13333         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13334
13335 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13336
13337         PR bootstrap/13617
13338         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13339         (mips_declare_object): Make variadic.
13340         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13341         mips_output_aligned_decl_common.
13342         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13343         (mips_declare_object): Make variadic.
13344
13345 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13346
13347         * function.c (update_epilogue_consts): Teach about binary operations.
13348
13349         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13350         previous MEM_VOLATILE in REF.
13351         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13352         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13353
13354 2004-02-12  Gunther Nikl  <gni@gecko.de>
13355
13356         * config.gcc: Restore support for m68k-openbsd.
13357
13358 2004-02-12  Jan Hubicka  <jh@suse.cz>
13359
13360         * tree-optimize.c (tree_rest_of_compilation): Do not release
13361         DECL_ARGUMENTS.
13362
13363 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13364
13365         * doc/install.texi: Fix the spelling of "explicitly".
13366
13367 2004-02-11  Eric Christopher  <echristo@redhat.com>
13368
13369         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13370         duplicate argument structure of cpp_interpret_string.
13371         * cpphash.h: Move prototype...
13372         * cpplib.h: Here.
13373         * cpplib.c: Fix calls to match new function signature.
13374
13375 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13376
13377         PR c/456
13378         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13379         constant expressions at all outside C99 mode if pedantic.
13380
13381 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13382
13383         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13384         (log10_optab, log2_optab): Define corresponding macros.
13385         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13386         * genopinit.c (optabs): Implement log10_optab and log2_optab
13387         using log10?f2 and log2?f2 patterns.
13388         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13389         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13390         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13391         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13392
13393         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13394         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13395         log2, log2f and log2l built-ins as inline x87 intrinsics.
13396
13397 2004-02-11  Richard Henderson  <rth@redhat.com>
13398
13399         PR target/1532
13400         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13401         dead insn after reload.
13402
13403 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13404
13405         * tree.h (frame_base_decl): Add GTY marker.
13406         * var-tracking.c (frame_base_decl): Likewise.
13407
13408 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13409
13410         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13411         incorrect, hunk.
13412         (add_location_or_const_value_attribute): Use text_section_label,
13413         not TEXT_SECTION_NAME.
13414
13415 2004-02-11  Per Bothner  <per@bothner.com>
13416
13417         Represent column numbers using line-map's source_location.
13418         The "next available source_location" is now managed internally by
13419         line-maps.c rather than by clients.
13420         * line-map.h (struct line_map):  New field column_bits.
13421         <from_line>:  Rename field to start_location.
13422         (struct line_maps):  New fields highest_location and max_column_hint.
13423         (linemap_check_files_exited):  New declaration.
13424         (linemap_line_start):  New declaration.
13425         (linemap_add):  Remove from_line parameter; use highest_location field.
13426         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13427         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13428         (CURRENT_LINE_MAP):  Remove macro.
13429         (linemap_position_for_column):  New inline function.
13430         * line-map.c (linemap_init):  Clear new fields.
13431         (linemap_check_files_exited):  New function, extracted from ...
13432         (linemap_free):  Use linemap_check_files_exited.
13433         (linemap_add):  Remove from_line parameter.  Various updates.
13434         (linemap_line_start):  New function.
13435         (linemap_lookeup):  Update for new field names.
13436         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13437         linemap_position_for_column may unpredictably change the current map,
13438         it is cleaner and simpler for us to not cache it in cpp_reader.
13439         (struct cpp_buffer):  New sysp field.
13440         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13441         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13442         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13443         current map using linemap_lookup.
13444         (do_linemarker):  Also set buffer's sysp field.
13445         (destringize_and_run):  No longer need to decrement current line.
13446         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13447         (search_path_head, open_file_failed):  Use buffer's sysp.
13448         (cpp_make_system_header):  Get current map using linemap_lookup.
13449         Also set buffer's sysp flag.
13450         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13451         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13452         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13453         (struct cpp_reader):  ... and adding saved_line_base field.
13454         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13455         Update accordingly.  Don't adjust line.
13456         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13457         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13458         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13459         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13460         * cpplex.c (_cpp_lex_direct):  Likewise.
13461         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13462         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13463         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13464         Remove col field as it is now subsumed by src_loc.
13465         * cpperror.c:  Update various field, parameter, and macro names.
13466         (print_location):  If col==0, try SOURCE_COLUMN of line.
13467         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13468         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13469         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13470         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13471         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13472         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13473         (_cpp_lex_direct):  Use linemap_position_for_column.
13474         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13475         parameter.  Instead get it from the line_table global.  Adjust callers.
13476         (print):  Remove map field.  Replace line field to src_line.
13477         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13478         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13479         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13480         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13481         * cpptrad.c (copy_comment):  Rename variable.
13482         * c-lex.c (map):  Remove static variable, for same reason we removed
13483         cpp_reader's map field.
13484         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13485         to call linemap_lookup.
13486         (cb_line_change):  Token's line field replaced by src_loc.
13487         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13488         Don't save new_map.
13489
13490         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13491         source_location.
13492
13493 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13494
13495         * config/rs6000/altivec.md (*movv4si_internal): At least one
13496         operand must be register_operand.
13497         (*movv8hi_internal1): Likewise.
13498         (*movv16qi_internal1): Likewise.
13499         (*movv4sf_internal1): Likewise.
13500
13501 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13502
13503         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13504         operand.
13505         (movv4hi_internal): Same.
13506         (movv2sf_internal): Same.
13507         (movv1di_internal): Same.
13508
13509 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13510
13511         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13512         TARGET_OLDABI consistently.
13513         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13514         mips_va_arg,override_options,compute_frame_size,
13515         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13516         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13517         and TARGET_OLDABI consistently.
13518         * config/mips/mips.md (exception_receiver): Likewise.
13519         * config/mips/linux64.h: Likewise.
13520
13521 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13522
13523         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13524         Set AltiVec ABI and vrsave as default for ppc64 linux.
13525         (init_cumulative_args): Post error, if try to return
13526         value in AltiVec register without enable AltiVec.
13527         (function_arg_advance): Ditto for passing arguments.
13528
13529 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13530
13531         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13532         a label before updating its usage count.
13533
13534 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13535
13536         * doc/install.texi: Remove extra cd.
13537
13538 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13539
13540         * c-common.c (vector_size_helper): Remove; call
13541         reconstruct_complex_type() instead.
13542         * tree.c (reconstruct_complex_type): New function
13543         (formerly vector_size_helper() in c-common.c).
13544         (make_vector): Make externally visible.
13545         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13546
13547 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13548
13549         * config/h8300/h8300-protos.h: Add a prototype for
13550         h8300_regs_ok_for_stm.
13551         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13552         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13553         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13554         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13555         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13556         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13557         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13558         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13559         h8300_regs_ok_for_stm().
13560
13561 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13562
13563         PR c/14088
13564         * real.c (real_from_string): Look for 'X' as well as 'x' in
13565         hexfloat strings.
13566
13567 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13568
13569         * config/h8300/h8300.md: Remove an incorrect comment about
13570         peephole2.  Add comments.
13571
13572 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13573
13574         PR/14058
13575         * emit-rtl.c (set_decl_incoming_rtl): New.
13576         * tree.h (set_decl_incoming_rtl): New.
13577         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13578         DECL_INCOMING_RTL.
13579         * ada/misc.c (adjust_decl_rtl): Likewise.
13580
13581 2004-02-10  Per Bothner  <per@bothner.com>
13582
13583         * c-opts.c (c_common_post_options):   Don't emit working directory
13584         in cpp output if -P was specified.
13585
13586 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13587
13588         PR c/14092
13589         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13590         negate_expr back to the original type.
13591
13592 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13593
13594         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13595         bump retaddr here.
13596
13597 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13598
13599         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13600         gen_lowpart_SUBREG): Move under the file in which they
13601         are actually declared.
13602
13603 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13604
13605         * doc/sourcebuild.texi: Add libada documentation.
13606
13607         * doc/install.texi: Update documentation on Ada build, now
13608         that the GNAT lib and tools are built automatically.
13609
13610 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13611
13612         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13613         && TARGET_IRIX.
13614
13615 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13616
13617         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13618         boundaries outside build_component_ref() call (a macro in ObjC++).
13619
13620 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13621
13622         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13623         (init_cumulative_args): Likewise.
13624         (a7_overlap_mentioned_p): Delete prototype.
13625         * config/xtensa/xtensa.c (struct machine_function): Replace
13626         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13627         Add set_frame_ptr_insn field.
13628         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13629         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13630         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13631         at the function entry and replace the operand with the pseudo.
13632         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13633         argument and record this flag in CUMULATIVE_ARGS.
13634         (function_arg): Remove result_mode and special-case code to handle
13635         arguments in a7.  Instead, set need_a7_copy flag when there is an
13636         incoming argument in a7.
13637         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13638         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13639         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13640         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13641         special-case code.
13642         (a7_overlap_mentioned_p): Delete.
13643         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13644         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13645         arguments to init_cumulative_args and pass "incoming" flag instead.
13646         (BLOCK_REG_PADDING): Delete.
13647         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13648         checks for reload_in_progress and reload_completed.  Update calls to
13649         xtensa_copy_incoming_a7.
13650         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13651         to call xtensa_copy_incoming_a7.
13652
13653 2004-02-09  DJ Delorie  <dj@redhat.com>
13654
13655         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13656         longer modify standard_exec_prefix, standard_bindir_prefix, or
13657         standard_startfile_prefix.
13658
13659 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13660
13661         PR c++/11295
13662         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13663         to expand_expr_real call, and pass in alt_rtl as last argument.
13664
13665         PR libstdc++/5625
13666         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13667         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13668         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13669         * except.c (expand_builtin_extend_pointer): New.
13670         * except.h (expand_builtin_extend_pointer): Declare.
13671
13672 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13673
13674         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13675         unaligned loads and stores.
13676
13677 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13678
13679         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13680         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13681
13682         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13683         * config/mips/iris5.h: ... here.
13684         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13685
13686         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13687         * config/mips/iris5.h: ... here.
13688
13689 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13690
13691         * configure.ac: Remove default executable files before AC_PROG_CC.
13692         * configure: Regenerate.
13693
13694 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13695
13696         PR target/13721
13697         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13698         print a operand other than a register.
13699
13700 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13701
13702         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13703         tree code rather than call fold_convert, which doesn't specify a
13704         default floating point to integer conversion.
13705
13706 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13707
13708         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13709         code to support SGS assembler.  Reformat adjacent code where possible.
13710         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13711         definition.
13712         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13713         for '%#'.
13714         * config/m68k/linux.h, config/m68k/m68k.c,
13715         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13716         macros and asm_printf() format strings.
13717         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13718         * config/m68k/linux.h: Update copyright.
13719         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13720
13721 2004-02-08  Andreas Schwab  <schwab@suse.de>
13722             Bernardo Innocenti  <bernie@develer.com>
13723
13724         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13725         REGISTER_PREFIX.
13726         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13727         frame pointer register, overridable by OS targets.
13728         * (M68K_REGNAME): Macro to obtain register name for asm output,
13729         eventually replacing %a6 with M68K_FP_REG_NAME.
13730         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13731         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13732         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13733         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13734         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13735
13736 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13737
13738         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13739         hook_rtx_tree_int_null.
13740         * targhooks.c (default_struct_value_rtx): Remove.
13741         * targhooks.h: Remove the prototype for
13742         default_struct_value_rtx.
13743         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13744         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13745         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13746         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13747         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13748         config/rs6000/rs6000.c, config/s390/s390.c,
13749         config/stormy16/stormy16.c, config/v850/v850.c,
13750         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13751         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13752
13753 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13754
13755         * README.Portability: Change "ISO C89" to "ISO C90".
13756         * c-parse.in (primary, initelt): Likewise.
13757
13758 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13759
13760         * real.c (encode_ibm_extended): Normalize the input value before
13761         converting it to a double.  Handle the case where a normal value
13762         rounds to infinity.
13763
13764 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13765
13766         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13767         warning.
13768         * cse.c (preferrable): Change to preferable. Update all of its
13769         callers.
13770         * genautomata.c (ainsn): Change
13771         first_ainsn_with_given_equialence_num to
13772         first_ainsn_with_given_equivalence_num.  Update all of its
13773         references.
13774
13775 2004-02-08  Jan Hubicka  <jh@suse.cz>
13776
13777         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13778
13779 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13780
13781         * function.c (assign_parms): Fix formatting.
13782
13783 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13784
13785         * default.h (PROMOTE_PROTOTYPES): Remove.
13786         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13787         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13788         EXPAND_BUILTIN_SAVEREGS): Poison.
13789         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13790         hook_bool_tree_false.
13791         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13792         * target.h: Replace SETUP_INCOMING_VARARGS with
13793         targetm.calls.setup_incoming_varargs().
13794         * targhooks.c (default_promote_function_return): Remove.
13795         (default_promote_prototypes): Likewise.
13796         (default_struct_value_rtx): Always abort().
13797         (default_expand_builtin_saveregs): Always print an error
13798         message.
13799         (default_setup_incoming_varargs): Do nothing.
13800         (default_pretend_outgoing_varargs_named): Don't depend on
13801         SETUP_INCOMING_VARARGS.
13802         * targhooks.h: Remove the prototype for
13803         default_promote_function_return and
13804         default_promote_prototypes.
13805
13806 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13807
13808         * system.h (SHARED_SECTION_ASM_OP): Poison.
13809         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13810         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13811
13812 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13813
13814         Bug 13856
13815         * c-decl.c (diagnose_mismatched_decls): Only give special
13816         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13817         is also true.
13818         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13819         DECL_FUNCTION_CODE when defining a built-in function.
13820         Don't update DECL_ESTIMATED_INSNS.
13821         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13822         FUNCTION_DECLs.
13823         * tree.h: Delete DECL_ESTIMATED_INSNS.
13824         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13825         (expand_call_inline, optimize_inline_calls): Don't update
13826         DECL_ESTIMATED_INSNS nor inlined_insns.
13827         * cgraphunit.c (cgraph_analyze_function): Don't update
13828         DECL_ESTIMATED_INSNS.
13829
13830 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13831
13832         * c-common.c (shadow_warning): Delete.
13833         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13834         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13835         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13836         * c-parse.in (free_parser_stacks): Delete.
13837
13838 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13839
13840         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13841         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13842         Use the top level mkinstalldirs, not the one in the gcc subdir.
13843         * mkinstalldirs: Remove (from the gcc subdir).
13844
13845 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13846
13847         PR middle-end/13696
13848         * fold-const.c (fold_convert): New function to provide type
13849         conversion to the middle-end without using convert.
13850         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13851         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13852         invert_truthvalue, optimize_bit_field_compare, range_binop,
13853         decode_field_reference, make_range, build_range_check, unextend,
13854         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13855         fold_binary_op_with_conditional_arg, fold_inf_compare,
13856         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13857         convert with calls to fold_convert.
13858
13859 2004-02-07  Jan Hubicka  <jh@suse.cz>
13860
13861         * genrecog.c (find_operand): add extra argument stop.
13862         (validate_pattern): Verify that mach_dup is duplicating operand
13863         defined lexically earlier.
13864
13865 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13866
13867         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13868         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13869         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13870         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13871         config/ia64/ia64.h, config/ip2k/ip2k.h,
13872         config/iq2000/iq2000.h, config/mips/iris5.h,
13873         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13874         config/rs6000/aix51.h, config/rs6000/aix52.h,
13875         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13876         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13877         config/sparc/linux.h, config/sparc/linux64.h,
13878         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13879         config/xtensa/xtensa.h: Remove the definitions of
13880         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13881         MAX_WCHAR_TYPE_SIZE.
13882         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13883         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13884
13885 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13886
13887         PR bootstrap/13990
13888         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13889         gen_rtx_NE.
13890
13891 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13892
13893         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13894         #ifdef ENABLE_CHECKING and #endif.
13895
13896 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13897
13898         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13899         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13900         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13901         integer types and floating point with unsafe_math_optimizations.
13902         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13903         Optimize A - B as A + (-B), if B is easily negated.
13904
13905 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13906
13907         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13908         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13909         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13910         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13911         Update copyright.
13912
13913 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13914
13915         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13916
13917 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13918
13919         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13920         glibc 2.3 or better.
13921
13922 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13923
13924         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13925         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13926
13927 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13928
13929         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13930         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13931         (SHLIB_MKMAP_OPTS): Delete.
13932         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13933         (bispecs): Add rule.
13934         * config/rs6000/libgcc-ppc64.ver: New file.
13935         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13936         (__floatdidf, __floatdisf): Optimize multiply.
13937         (__fixunstfdi): New function.
13938         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13939         real and imag parts larger than one register.
13940         (function_arg): Correct type of reg used when fp arg split partially
13941         to stack.
13942         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13943         and __MACH__ or __powerpc64__.
13944
13945 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13946             Ulrich Weigand  <uweigand@de.ibm.com>
13947
13948         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13949         of gen_highpart or gen_lowpart when the floating point format is
13950         wider than the result mode.
13951
13952 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13953
13954         * dwarf2out.c (loclabel_num): Move into #ifdef
13955         DWARF2_DEBUGGING_INFO.
13956
13957 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13958
13959         * objc/objc-act.c (build_super_template) the 'class' field of
13960         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13961         (get_super_receiver): Likewise.
13962
13963 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13964
13965         * reload1.c (check_eliminable_occurrences): Optimize the reset
13966         of can_eliminate.
13967         (eliminate_regs_in_insn): Likewise.
13968
13969 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13970             Josef Zlomek  <zlomekj@suse.cz>
13971
13972         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13973         at the beginning of function, call dwarf2out_var_location for
13974         NOTE_INSN_VAR_LOCATION note.
13975         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13976         decl_loc_table): New.
13977         (lookup_decl_loc): New function.
13978         (add_var_loc_to_decl): New function.
13979         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13980         only if can_use_fbreg.
13981         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13982         functions.
13983         (loc_descriptor): Likewise. Process VAR_LOCATION.
13984         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13985         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13986         can_use_fbreg == true.
13987         (add_location_or_const_value_attribute): Added parameter enum
13988         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13989         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13990         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13991         with attr == DW_AT_location.
13992         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13993         if frame_base_decl is defined and has a location list.
13994         (gen_variable_die): Call add_location_or_const_value_attribute with
13995         attr == DW_AT_location.
13996         (dwarf2out_var_location): New function.
13997         (dwarf2out_begin_function): New function.
13998         (dwarf2out_init): Create decl_loc_table.
13999
14000 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
14001
14002         * loop.c (force_movables): Transitively increase the priorities of
14003         all insns forces by an insn, not just the first one.
14004
14005 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
14006             Daniel Berlin <dberlin@dberlin.org>
14007
14008         Josef Zlomek  <zlomekj@suse.cz>
14009         * Makefile.in (var-tracking.o): New.
14010         * common.opt (fvar-tracking): New.
14011         * flags.h (flag_var_tracking): New.
14012         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
14013         * opts.c (common_handle_option): Add OPT_fvar_tracking.
14014         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
14015         * rtl.c (note_insn_name): Likewise.
14016         * rtl.def (VAR_LOCATION): New.
14017         * rtl.h (NOTE_VAR_LOCATION): New.
14018         (NOTE_VAR_LOCATION_DECL): New.
14019         (NOTE_VAR_LOCATION_LOC): New.
14020         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
14021         (variable_tracking_main): New exported function.
14022         * timevar.def (TV_VAR_TRACKING): New.
14023         * toplev.c (enum dump_file_index): Added DFI_vartrack.
14024         (dump_file): "vartrack" was added (-dV).
14025         (flag_var_tracking): New.
14026         (f_options): "var-tracking" was added.
14027         (rest_of_handle_variable_tracking): New function.
14028         (rest_of_compilation): Run variable tracking.
14029         (process_options): If user has not specified flag_var_tracking set it
14030         according to optimize, debug_info_level and debug_hooks.
14031         * tree.h (frame_base_decl): New.
14032         * var-tracking.c: New file.
14033         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
14034         (ia64_override_options): Set flags to run variable tracking in machine
14035         dependent reorg instead of toplev.c.
14036         (ia64_reorg): Run variable tracking if wanted.
14037         * doc/invoke.texi: Mention variable tracking in -dV,
14038         add and -fvar-tracking.
14039         * doc/passes.texi: Added variable tracking pass.
14040
14041         Daniel Berlin <dberlin@dberlin.org>
14042         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
14043         * dbxout.c (dbx_debug_hooks): Likewise.
14044         (xcoff_debug): Likewise.
14045         * debug.c (do_nothing_debug_hooks): Likewise.
14046         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
14047         * dwarfout.c (dwarf_debug_hooks): Likewise.
14048         * sdbout.c (sdb_debug_hooks): Likewise.
14049         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14050         * final.c (final_scan_insn): Call var_location debug hook for each
14051         NOTE_INSN_VAR_LOCATION.
14052
14053 2004-02-06  Jan Hubicka  <jh@suse.cz>
14054
14055         * flow.c (update_life_info): Allocate reg_deaths when called from
14056         scheudler.
14057         (attempt_auto_inc):  Update life ranges accordingly.
14058
14059 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
14060
14061         PR debug/11816
14062         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
14063
14064 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
14065
14066         * cfganal.c (flow_call_edges_add): Never split a libcall block.
14067
14068 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
14069
14070         * dwarf2out.c (output_loc_list): Don't use deltas if we have
14071         a separate line info table in use.
14072         Use the correct size for terminators.
14073         (output_die): Use offset, not delta.
14074
14075 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
14076
14077         * doc/invoke.texi: Remove the pni option from -mfpmath=.
14078
14079 2004-02-06  Jan Hubicka  <jh@suse.cz>
14080
14081         * recog.c (split_all_insns): Do not update reg info.
14082         * regrename.c (regrename_optimize): Likewise.
14083         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
14084         * flow.c (struct propagate_block_info): Add insn_num field.
14085         (reg_deaths): New array.
14086         (life_analysis): Free reg_deaths info.
14087         (allocate_reg_life_data): Allocate reg_deaths array.
14088         (propagate_one_insn): Use new array.
14089         (init_propagate_block): Initialize it.
14090         (free_propagate_block_info): Finish compuation of
14091         REG_LIVE_LENGTH
14092         (attempt_auto_inc): Sanity check that REG_INFO is not
14093         computed at same time.
14094         (mark_used_regs): Update new array.
14095
14096         * reg-stack.c (subst_stack_regs): Unshare clobbers before
14097         substitution.
14098
14099 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14100
14101         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
14102         *extendqisi2_short_displ.
14103
14104 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
14105
14106         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
14107         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
14108         (emit_library_call_value_1): Likewise pass nargs.
14109         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
14110         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
14111         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
14112         parameter instead of scanning TYPE_ARGS_TYPES to count args.
14113         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
14114         prototype.
14115         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
14116         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
14117         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
14118         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
14119         INIT_CUMULATIVE_ARGS.
14120         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
14121         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
14122         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
14123         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
14124         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14125         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
14126         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14127         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
14128         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
14129         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
14130         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
14131         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
14132
14133 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14134
14135         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
14136         possible.
14137
14138 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14139
14140         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
14141         note containing (plus (reg) (const_int)), where reg is an
14142         eliminable reg, then perform the register elimination without
14143         depending on eliminate_regs().
14144
14145 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14146
14147         * config/arc/arc.c (arc_return_in_memory): Check the return
14148         value of int_size_in_bytes against -1.  Don't check
14149         TREE_ADDRESSABLE.
14150         * config/avr/avr.c (avr_return_in_memory): Check the return
14151         value of int_size_in_bytes against -1.
14152         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
14153         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
14154         Likewise.
14155         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
14156         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
14157         Likewise.
14158
14159 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14160
14161         * config/frv/frv-protos.h: Remove the prototype for
14162         frv_setup_incoming_varargs.
14163         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
14164         (frv_setup_incoming_varargs): Make it static.
14165         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
14166
14167 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14168
14169         * config/fr30/fr30-protos.h: Remove the prototype for
14170         fr30_setup_incoming_varargs.
14171         Update the prototypes for fr30_num_arg_regs and
14172         fr30_function_arg_partial_nregs.
14173         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
14174         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14175         (fr30_setup_incoming_varargs): Make it static.
14176         Add argument second_time.  Don't do anything when second_time
14177         is nonzero.
14178         (fr30_num_arg_regs): Change the type of the first argument to
14179         enum machine_mode.
14180         (fr30_function_arg_partial_nregs): Change the type of the
14181         second argument to enum machine_mode.
14182         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
14183         (SETUP_INCOMING_VARARGS): Remove.
14184
14185 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14186
14187         * config/arc/arc-protos.h: Remove the prototype for
14188         arc_setup_incoming_varargs.
14189         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14190         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14191         (arc_setup_incoming_varargs): Make it static.
14192         (arc_external_libcall): Likewise.
14193         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
14194         Remove the commented-out definition of
14195         ASM_OUTPUT_EXTERNAL_LIBCALL.
14196
14197 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
14198
14199         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
14200         to $$(slibdir) in the installation commands.
14201
14202 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14203
14204         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14205         with inner_regno, not regno.
14206         * rtlanal.c (refers_to_regno_p): Same.
14207
14208 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14209
14210         * config.gcc: Remove i370 support.
14211
14212 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14213
14214         * doc/install.texi:  Update automake and autoconf version
14215         requirements.  Note where to find gcj automake version.
14216
14217 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14218
14219         * Makefile.in (generate-manpages): Move dependencies to ...
14220         (man): here.
14221         * doc/makefile.texi: Document new targets.
14222         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14223
14224 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14225
14226         PR/13485
14227         Makefile.in (srcextra):  Add a level of indirection to ...
14228         (gcc.srcextra): ... here.
14229         (po-generated): Delete.
14230         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
14231         options.c.
14232         (start.encap): Remove superfluous lang.srcextra dependency.
14233         objc/Make-lang.in (po-generated):  Delete.
14234
14235 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14236
14237         * config/ia64/ia64.c (REG_GP): Remove.
14238
14239 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14240
14241         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14242
14243 2004-02-05  Devang Patel  <dpatel@apple.com>
14244
14245         * dwarf2out.c (force_type_die): Look up input type itself
14246         instead of root_type() of type.
14247
14248 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
14249
14250         * config/s390/s390.md ("*tmqidi_ext"): New insn.
14251         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14252         pre-reload splitters are transformed to post-reload
14253         define_insn_and_split patterns.
14254         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14255
14256 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14257
14258         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14259         TARGET_PROMOTE_PROTOTYPES.
14260
14261 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14262
14263         PR middle-end/13750
14264         Revert:
14265         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14266         PR pch/13361
14267         * c-typeck.c (constructor_asmspec): Delete.
14268         (struct initializer_stack): Delete field 'asmspec'.
14269         (start_init): Delete saving of asmspec.
14270         (finish_init): Don't update constructor_asmspec.
14271         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14272         * stmt.c (expand_asm): Duplicate strings from tree.
14273         (expand_asm_operands): Likewise.
14274         * tree.c (tree_size): Update computation of size of STRING_CST.
14275         (make_node): Don't make STRING_CST nodes.
14276         (build_string): Allocate string with tree node.
14277         * tree.def (STRING_CST): Update comment.
14278         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14279         (tree_string): Place contents of string in tree node.
14280         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14281         from tree.
14282
14283 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14284
14285         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14286         msgid.
14287
14288 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
14289
14290         * config/rs6000/altivec.md (*movv4si_internal): At least one
14291         operand must be altivec_register_operand.
14292         (*movv8hi_internal1): Likewise.
14293         (*movv16qi_internal1): Likewise.
14294         (*movv4sf_internal1): Likewise.
14295
14296 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14297
14298         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14299         * configure: Regenerate.
14300
14301 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
14302
14303         * doc/install.texi: Update description of --gxx-include-dir to
14304         give correct default value.
14305
14306 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14307
14308         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14309         8 with MAC_REG.
14310
14311 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14312
14313         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14314         gen_rtx_PARALLEL.
14315
14316 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14317
14318         * emit-rtl.c: Update the comment about the file.
14319
14320 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14321
14322         * sourcebuild.texi (Test Idioms): Update testcase naming
14323         conventions.
14324
14325 2004-02-04  Per Bothner  <per@bothner.com>
14326
14327         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14328         * c-ppoutput.c (pp_dir_change):  New function.
14329         * c-common.h (pp_dir_change):  New declaration.
14330         * cpplib.h (struct cpp_options):  Remove working_directory field.
14331         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14332         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14333         Don't handle -fworking_directory here, but in c_common_post_options.
14334         (read_original_directory): Don't back up when done.
14335         Don't clear no-longer used working_directory flag.
14336         * cpplib.h:  Update declarations to match.
14337         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14338         (init_c_lex):  Don't set dir_change callback here, since we want
14339         to set it even if flag_preprocess_only.
14340         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14341         (c_common_post_options):  Set dir_change callback.
14342         Call pp_dir_change if approporiate.
14343         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14344         unneeded parameter and result. Do LC_RENAME for <built-in>.
14345         (c_common_post_options):  Call cpp_read_main_file here instead.
14346         (c_common_init):  Update accordingly.
14347         (push_command_line_include):  Don't cpp_push_main_file.
14348         Do LC_RENAME rather than LC_LEASE to get back to main file.
14349         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14350         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14351         files, but call finish_options for all files.
14352         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14353         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14354         cpp_find_main_file + cpp_push_main_file.
14355         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14356         * opts.c (handle_options):  Only set main_input_filename first time.
14357
14358 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14359
14360         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14361
14362 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14363
14364         * reload.c (find_equiv_reg): When checking for register overlap,
14365         don't index hard_regno_nregs with a pseudo-reg.
14366
14367 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14368
14369         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14370
14371 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14372
14373         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14374         against FIRST_PSEUDO_REGISTER.
14375
14376 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14377
14378         * Makefile.in: Move target, host overrides after per-language
14379         fragments.
14380
14381         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14382         (GNATLIBCFLAGS): Remove -g.
14383
14384 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14385
14386         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14387         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14388         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14389         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14390         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14391         config/sparc/sparc.c, config/vax/vax.c: Revert the
14392         replacements of "FALLTHRU" with "Fall through" done in the
14393         previous patch.
14394
14395 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14396
14397         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14398         config/arm/arm.c, config/arm/arm.md,
14399         config/cris/cris-protos.h, config/fr30/fr30.c,
14400         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14401         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14402         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14403         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14404         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14405         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14406         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14407         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14408         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14409         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14410         config/s390/s390.md, config/sparc/netbsd-elf.h,
14411         config/sparc/openbsd.h, config/sparc/sparc.c,
14412         config/xtensa/lib2funcs.S: Fix comment formatting.
14413
14414 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14415
14416         * config/alpha/alpha.c, config/arc/arc.c,
14417         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14418         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14419         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14420         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14421         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14422         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14423         config/iq2000/iq2000.c, config/m32r/m32r.c,
14424         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14425         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14426         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14427         config/rs6000/rs6000.h, config/sparc/sparc.c,
14428         config/vax/vax.c: Fix comment typos.  Follow spelling
14429         conventions.
14430
14431 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14432
14433         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14434         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14435         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14436         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14437         config/arm/fpa.md, config/arm/iwmmxt.md,
14438         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14439         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14440         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14441         config/sparc/netbsd-elf.h: Update copyright.
14442
14443 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14444
14445         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14446         for all modes whose size is greater than 8 bytes if ARCH32.
14447         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14448         by reference if ARCH32.
14449
14450 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14451
14452         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14453
14454 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14455
14456         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14457         to before adddi3 insn patterns.
14458         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14459         "reload_insi"): Move to before addsi3 insn patterns.
14460
14461 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14462
14463         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14464         parameter.  Use it instead of current_function_is_thunk.
14465         * function.h (struct function): Update documentation for is_thunk.
14466         * tree.h (CALL_FROM_THUNK_P): New macro.
14467         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14468         no_new_pseudos when testing current_function_is_thunk.
14469         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14470
14471 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14472
14473         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14474         TARGET_SETUP_INCOMING_VARARGS.
14475
14476 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14477
14478         * emit-rtl.c (gen_rtx): Remove.
14479         * genattrtab.c: Don't mention gen_rtx in a comment.
14480         * rtl.h: Remove the prototype for gen_rtx.
14481         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14482
14483 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14484
14485         * config/arc/arc.h, config/fr30/fr30.h
14486         (SETUP_INCOMING_VARARGS): Remove the target-independent
14487         comments.
14488         * doc/tm.texi: Don't mention deprecated target macros.
14489
14490 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14491
14492         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14493         target-independent comment.
14494
14495 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14496
14497         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14498         mention deprecated target macros.
14499
14500 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14501
14502         * config.gcc: Remove obsolete ports and configurations.
14503         * config/linux-aout.h, config/netware.h,
14504         config/t-linux-gnulibc1, config/d30v/abi,
14505         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14506         config/d30v/d30v.h, config/d30v/d30v.md,
14507         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14508         config/dsp16xx/dsp16xx-modes.def,
14509         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14510         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14511         config/i370/README, config/i370/i370-c.c,
14512         config/i370/i370-protos.h, config/i370/i370.c,
14513         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14514         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14515         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14516         config/i386/moss.h, config/i386/netware.h,
14517         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14518         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14519         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14520         config/i960/i960-c.c, config/i960/i960-coff.h,
14521         config/i960/i960-modes.def, config/i960/i960-protos.h,
14522         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14523         config/i960/rtems.h, config/i960/t-960bare,
14524         config/m68k/hp310.h, config/m68k/hp320.h,
14525         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14526         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14527         Remove.
14528         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14529         doc/md.texi: Remove mentions of obsolete ports.
14530
14531 2004-02-04  Jan Hubicka  <jh@suse.cz>
14532
14533         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14534         pointer when all VALUE's locations has been invalidated.
14535         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14536
14537 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14538
14539         * doc/invoke.texi (x86 options): Fix spelling/wording.
14540
14541 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14542
14543         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14544         put the original string in a comment.
14545         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14546         * config/mips/mips.c (mips_output_ascii): Likewise.
14547         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14548
14549 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14550
14551         * system.h (GIV_SORT_CRITERION): Poison.
14552         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14553         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14554
14555 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14556
14557         PR target/9348
14558         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14559         multiplies with a multiplication of the wrong signedness, its the
14560         signedness of the multiplication that we've performed that needs to
14561         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14562         if expand_mult_highpart_adjust places the result in target.
14563
14564 2004-02-03  Richard Henderson  <rth@redhat.com>
14565
14566         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14567
14568 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14569
14570         * config.gcc (sh[234]l): Use little endian fragments.
14571
14572 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14573
14574         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14575         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14576         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14577         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14578         floating point format.
14579         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14580         the above functions.
14581         (output_move_quad): Output float values in correct target format.
14582         (legitimate_const_double_p): New function.
14583         * config/pdp11/pdp11.h: Fix typos.
14584         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14585         (TARGET_FLOAT_FORMAT): Ditto.
14586         (pdp11_f_format, pdp11_d_format): Add external declarations.
14587         (MAX_REGS_PER_ADDRESS): Corrected.
14588         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14589         (PRINT_OPERAND): Output float literals in target format.
14590
14591 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14592
14593         PR c++/13975
14594         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14595         TI_PRIVATE.
14596         (access_public_node): Redefine.
14597         (access_protected_node): Likewise.
14598         (access_private_node): Likewise.
14599         * tree.c (build_common_tree_nodes): Create access_public_node,
14600         access_protected_node, and access_private_node.
14601
14602 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14603
14604         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14605         (MASK_INLINE_INT_DIV_THR): Ditto.
14606         (MASK_INLINE_SQRT_LAT): Ditto.
14607         (MASK_INLINE_SQRT_THR): Ditto.
14608         (MASK_DWARF2_ASM): Ditto.
14609         (MASK_EARLY_STOP_BITS): Ditto.
14610
14611 2004-02-02  Paul Brook  <paul@codesourcery.com>
14612
14613         Merge from csl-arm-branch.
14614
14615         2004-01-30  Paul Brook  <paul@codesourcery.com>
14616
14617         * aof.h (REGISTER_NAMES): Add vfp reg names
14618         (ADDITIONAL_REGISTER_NAMES): Ditto.
14619         * aout.h (REGISTER_NAMES): Ditto.
14620         (ADDITIONAL_REGISTER_NAMES): Ditto.
14621         * arm-protos.h: Update/Add Prototypes.
14622         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14623         Only allow 0.0 for VFP.
14624         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14625         (values_fp): Rename from values_fpa.  Update Users.
14626         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14627         Update users.  Only check valid constants for this hardware.
14628         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14629         Only allow consts for FPA.
14630         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14631         Only allow consts for FPA.
14632         (use_return_insn): Check for saved VFP regs.
14633         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14634         (arm_legitimize_address): Ditto.
14635         (arm_general_register_operand): New function.
14636         (vfp_mem_operand): New function.
14637         (vfp_compare_operand): New function.
14638         (vfp_secondary_reload_class): New function.
14639         (arm_float_compare_operand): New function.
14640         (vfp_print_multi): New function.
14641         (vfp_output_fstmx): New function.
14642         (vfp_emit_fstm): New function.
14643         (arm_output_epilogue): Output VPF reg restore code.
14644         (arm_expand_prologue): Output VFP reg save code.
14645         (arm_print_operand): Add 'P'.
14646         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14647         (arm_regno_class): Return classes for VFP regs.
14648         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14649         (arm_get_frame_size): Ditto.
14650         * arm.h (FIXED_REGISTERS): Add VFP regs.
14651         (CALL_USED_REGISTERS): Ditto.
14652         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14653         (FIRST_VFP_REGNUM): Define.
14654         (LAST_VFP_REGNUM): Define.
14655         (IS_VFP_REGNUM): Define.
14656         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14657         (HARD_REGNO_NREGS): Handle VFP regs.
14658         (REG_ALLOC_ORDER): Add VFP regs.
14659         (enum reg_class): Add VFP_REGS.
14660         (REG_CLASS_NAMES): Ditto.
14661         (REG_CLASS_CONTENTS): Ditto.
14662         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14663         (REG_CLASS_FROM_LETTER): Add 'w'.
14664         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14665         (EXTRA_MEMORY_CONSTRAINT): Define.
14666         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14667         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14668         (REGISTER_MOVE_COST): Ditto.
14669         (PREDICATE_CODES): Add arm_general_register_operand,
14670         arm_float_compare_operand and vfp_compare_operand.
14671         * arm.md (various): Rename as above.
14672         (divsf3): Enable when TARGET_VFP.
14673         (divdf3): Ditto.
14674         (movdfcc): Ditto.
14675         (sqrtsf2): Ditto.
14676         (sqrtdf2): Ditto.
14677         (arm_movdi): Disable when TARGET_VFP.
14678         (arm_movsi_insn): Ditto.
14679         (movsi): Only split with general regs.
14680         (cmpsf): Use arm_float_compare_operand.
14681         (push_fp_multi): Restrict to TARGET_FPA.
14682         (vfp.md): Include.
14683         * vfp.md: New file.
14684         * fpa.md (various): Rename as above.
14685         * doc/md.texi: Document ARM w and U constraints.
14686
14687         2004-01-15  Paul Brook  <paul@codesourcery.com>
14688
14689         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14690         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14691         Break out of loop when we find a float-abi.  Fix typo.
14692         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14693         Set -mfloat-abi=.
14694         * doc/install.texi: Document --with-fpu.
14695
14696         2003-01-14  Paul Brook  <paul@codesourcery.com>
14697
14698         * config.gcc (with_arch): Add armv6.
14699         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14700         * config/arm/arm.c (arm_overrride_options): Ditto.
14701
14702         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14703
14704         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14705         (FL_ARCH6): Renamed from FL_ARCH6J.
14706         (arm_arch3m): Renamed from arm_fast_multiply.
14707         (arm_arch6): Renamed from arm_arch6j.
14708         * arm.h: Update all uses of above.
14709         * arm-cores.def: Likewise.
14710         * arm.md: Likewise.
14711
14712         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14713         not arm6j.  Add entry for arch armv6.
14714
14715         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14716
14717         * arm.c (arm_emit_extendsi): Delete.
14718         * arm-protos.h (arm_emit_extendsi): Delete.
14719         * arm.md (zero_extendhisi2): Also handle zero-extension of
14720         non-subregs.
14721         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14722         (thumb_zero_extendhisi2): Only match if not v6.
14723         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14724         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14725         (thumb_extendqisi2): Likewise.
14726         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14727         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14728         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14729         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14730         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14731         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14732         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14733         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14734         (arm_extendqisi2addsi): Likewise.
14735
14736         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14737
14738         Revert this change:
14739         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14740         + REG addressing modes.
14741
14742         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14743         + REG addressing modes.
14744
14745         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14746
14747         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14748         CONSTANT_P_RTX.
14749
14750         2003-30-12  Paul Brook  <paul@codesourcery.com>
14751
14752         * longlong.h: protect arm inlines with !defined (__thumb__)
14753
14754         2003-30-12  Paul Brook  <paul@codesourcery.com>
14755
14756         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14757
14758         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14759
14760         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14761         change.
14762
14763         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14764
14765         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14766         to the virtual incoming args pointer for downward stacks.
14767
14768         2003-12-29  Paul Brook  <paul@codesourcery.com>
14769
14770         * config/arm/arm-cores.def: Add cost function.
14771         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14772         (arm_rtx_costs): Remove
14773         (struct processors): Add rtx_costs field.
14774         (all_cores, all_architectures): Ditto.
14775         (arm_override_options): Set targetm.rtx_costs.
14776         (thumb_rtx_costs): New function.
14777         (arm_rtx_costs_1): Remove cases handled elsewhere.
14778         * config/arm/arm.h (processor_type): Add COSTS parameter.
14779
14780         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14781
14782         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14783         (arm926ejs.md): Include it.
14784         * config/arm/arm926ejs.md: New pipeline description.
14785
14786         2003-12-24  Paul Brook  <paul@codesourcery.com>
14787
14788         * config/arm/arm.c (arm_arch6j): New variable.
14789         (arm_override_options): Set it.
14790         (arm_emit_extendsi): New function.
14791         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14792         * config/arm/arm.h (arm_arch6j): Declare.
14793         * config/arm/arm.md: Add sign/zero extend insns.
14794
14795         2003-12-23  Paul Brook  <paul@codesourcery.com>
14796
14797         * config/arm/arm.c (all_architectures): Add armv6.
14798         * doc/invoke.texi: Document it.
14799
14800         2003-12-19  Paul Brook  <paul@codesourcery.com>
14801
14802         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14803         insn patterns to match.
14804         * config/arm/arm-generic.md: Ditto.
14805         * config/arm/cirrus.md: Ditto.
14806         * config/arm/fpa.md: Ditto.
14807         * config/amm/iwmmxt.md: Ditto.
14808         * config/arm/arm1026ejs.md: Ditto.
14809         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14810         for 11_loadb.
14811
14812         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14813
14814         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14815         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14816         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14817         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14818         arm_no_early_mul_dep): Correctly deal with conditional execution,
14819         parallels and single shift operations.
14820         (arm_no_early_alu_shift_value_dep): Define.
14821         * arm.md (attr type): Replace 'normal' with 'alu',
14822         'alu_shift' and 'alu_shift_reg'.
14823         (attr core_cycles): Adjust.
14824         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14825         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14826         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14827         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14828         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14829         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14830         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14831         attribute appropriately.
14832         * config/arm/arm1026ejs.md (alu_op): Adjust.
14833         (alu_shift_op, alu_shift_reg_op): New.
14834         * config/arm/arm1136.md: Add better bypasses for early
14835         registers. Remove load[234] and store[234] bypasses.
14836         (11_alu_op): Adjust.
14837         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14838
14839         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14840
14841         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14842         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14843         * config/arm/arm.c (arm_no_early_store_addr_dep,
14844         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14845         * config/arm/arm1026ejs.md: Add load-store bypass.
14846         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14847         Add bypasses between instructions.
14848
14849         2003-12-10  Paul Brook  <paul@codesourcery.com>
14850
14851         * config/arm/arm.c (arm_fpu_model): New variable.
14852         (arm_fload_abi): New variable.
14853         (target_fpe_name): Rename from target_fp_name.
14854         (target_fpu_name): New variable.
14855         (arm_is_cirrus): Remove.
14856         (fpu_desc): New struct.
14857         (all_fpus): Define.
14858         (pf_model_for_fpu): Define.
14859         (all_loat_abis): Define.
14860         (arm_override_options): Set fp arch flags based on -mfpu=
14861         and -float-abi=.
14862         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14863         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14864         (*): Use new TARGET_* flags.
14865         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14866         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14867         (TARGET_SOFT_FLOAT): Ditto.
14868         (TARGET_SOFT_FLOAT_ABI): New.
14869         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14870         TARGET_HARD_FLOAT.
14871         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14872         (TARGET_OPTIONS): Add -mfpu=.
14873         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14874         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14875         (arm_pf_model): Define.
14876         (arm_float_abi_type): Define.
14877         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14878         * config/arm/arm.md: Use new TARGET_* flags.
14879         * config/arm/cirrus.md: Ditto.
14880         * config/arm/fpa.md: Ditto.
14881         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14882         * config/arm/semi.h (ASM_SPEC): Ditto.
14883         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14884         (FPUTYPE_DEFAULT): Set to VFP.
14885         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14886
14887         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14888
14889         PR target/12476
14890         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14891         'bx' instead of 'b' to avoid branch range restrictions.  Output
14892         the thunk immediately before the thunked-to function.
14893         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14894         .thumb_func if a thunk is being generated.  Emit .code 16 along
14895         with .thumb_func if a thunk is not being generated.
14896
14897         2003-11-15  Nicolas Pitre <nico@cam.org>
14898
14899         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14900         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14901         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14902         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14903         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14904
14905         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14906             Ian Lance Taylor  <ian@wasabisystems.com>
14907
14908         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14909         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14910
14911         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14912
14913         * config/arm/arm.md (insn):  Add new V6 instruction names.
14914         (generic_sched):  New attr.
14915         * config/arm/arm-generic.md:  Use generic_sched here.
14916         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14917         stages of pipeline.  Adjust latency counts accordingly.
14918         * config/arm/arm1136jfs.md:  New file.
14919
14920         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14921
14922         * config/arm/arm.h (processor_type): New enumeration type.
14923         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14924         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14925         (CPP_CPU_ARCH_SPEC): Likewise.
14926         * config/arm/arm.c (arm_tune): New variable.
14927         (all_cores): Use cores.def.
14928         (all_architectures): Add representative processor.
14929         (arm_override_options): Restructure way in which tuning
14930         information is deduced.
14931         * arm.md: Update "insn" and "type" attributes throughout.
14932         (insn): New attribute.
14933         (type): Compute "mult" from "insn" attribute.  Add load2,
14934         load3, load4 alternatives.
14935         (arm automaton): Move to arm-generic.md.
14936         * config/arm/arm-cores.def: New file.
14937         * config/arm/arm-generic.md: Likewise.
14938         * config/arm/arm1026ejs.md: Likewise.
14939
14940 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14941
14942         * doc/invoke.texi (SPARC options): Remove -mflat and
14943         all -mxxx (xxx:chip) options.
14944         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14945         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14946         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14947         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14948         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14949         * config/sparc/sparc.c: Likewise.
14950         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14951         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14952         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14953         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14954         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14955         (sparc_flat_must_save_register_p): Likewise.
14956         (sparc_flat_compute_frame_size): Likewise.
14957         (sparc_flat_save_restore): Likewise.
14958         (sparc_flat_function_prologue): Likewise.
14959         (sparc_flat_function_epilogue): Likewise.
14960         (sparc_flat_epilogue_delay_slots): Likewise.
14961         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14962         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14963         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14964         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14965         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14966         (CONDITIONAL_REGISTER_USAGE): Likewise.
14967         (FRAME_POINTER_REQUIRED): Likewise.
14968         (INITIAL_ELIMINATION_OFFSET): Likewise.
14969         (BASE_RETURN_VALUE_REG): Likewise.
14970         (BASE_OUTGOING_VALUE_REG): Likewise.
14971         (BASE_PASSING_ARG_REG): Likewise.
14972         (BASE_INCOMING_ARG_REG): Likewise.
14973         (INCOMING_REGNO): Likewise.
14974         (OUTGOING_REGNO): Likewise.
14975         (LOCAL_REGNO): Likewise.
14976         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14977         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14978         (EPILOGUE_USES): Likewise.
14979         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14980         ("flat" attribute): Delete.
14981         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14982         handling.
14983         (call followed by jump define_peephole's): Delete.
14984         (exception_receiver): Likewise.
14985         (builtin_setjmp_receiver): Likewise.
14986         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14987
14988 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14989
14990         PR c/11658
14991         PR c/13994
14992         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14993         on langhooks.h.
14994         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14995         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14996         Include langhooks.h.  Replace c_common_truthvalue_conversion
14997         with the truthvalue_conversion language hook throughout.
14998         (expr_no_commas): Call default_conversion before save_expr
14999         for the first term of the production 'x ? : y'.
15000         * c-common.c (c_common_truthvalue_conversion): Remove
15001         obsolete block.  Invoke recursively the hook instead
15002         of this function.
15003         * c-convert.c (convert): handle ERROR_MARK_NODE.
15004         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
15005         returned by the truthvalue_conversion language hook.
15006         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15007         c_objc_common_truthvalue_conversion.
15008         * c-objc-common.c (c_objc_common_truthvalue_conversion):
15009         New function.
15010         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
15011         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15012         c_objc_common_truthvalue_conversion.
15013
15014 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15015
15016         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
15017         of gen_rtx.
15018         (LIBCALL_VALUE): Likewise.
15019         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
15020         gen_rtx_CC0 instead of gen_rtx.
15021         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
15022         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
15023         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
15024         gen_rtx.
15025         (m68hc11_emit_logical): Likewise.
15026
15027 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15028
15029         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
15030         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
15031         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
15032         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
15033         config/mips/mips.md, config/mmix/mmix.c,
15034         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
15035         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
15036         config/rs6000/altivec.md, config/s390/s390.c,
15037         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
15038         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
15039         Use const0_rtx instead of GEN_INT (0).  Do the same for other
15040         constants that are readily available.
15041
15042 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15043
15044         * doloop.c, optabs.c, regmove.c, sched-deps.c,
15045         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
15046         instead of GEN_INT (0).  Do the same for other constants that
15047         are readily available.
15048
15049 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15050
15051         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
15052         gen_rtx.
15053         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
15054         instead of gen_rtx.
15055         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
15056         gen_rtx.
15057         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
15058         gen_rtx_ASHIFT instead of gen_rtx.
15059         (udivmodqi4): Likewise.
15060
15061 2004-02-02  Richard Henderson  <rth@redhat.com>
15062
15063         PR target/13789
15064         * expr.c (store_expr): Use force_operand before emit_move_insn.
15065
15066 2004-02-02  Jeff Law  <law@redhat.com>
15067             Roger Sayle  <roger@eyesopen.com>
15068
15069         * tree.c (commutative_tree_code, associative_tree_code): New
15070         functions.
15071         (iterative_hash_expr): Use commutative_tree_code.
15072         * tree.h (commutative_tree_code, associative_tree_code): Declare.
15073         * fold-const.c (operand_equal_p): Use commutative_tree_code
15074         rather than inlining the commutativity check.
15075         (fold): Likewise.
15076
15077 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15078
15079         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
15080         * config/frv/frv-protos.h: Remove the prototype for
15081         frv_function_arg_keep_as_reference.
15082         * config/frv/frv.c (frv_function_arg_keep_as_reference):
15083         Remove.
15084         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
15085         * config/stormy16/stormy16.h: Remove the commented-out
15086         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
15087
15088 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
15089
15090         PR target/13914
15091         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
15092         for retaddr_column.
15093
15094 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15095
15096         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
15097         gen_rtx.
15098
15099 2004-02-02  Eric Christopher  <echristo@redhat.com>
15100             Zack Weinberg  <zack@codesourcery.com>
15101
15102         * c-opts.c (c_common_handle_option): Add -finput-charset.
15103         * c.opt: Ditto.
15104         * cppcharset.c (one_iso88591_to_utf8): Remove.
15105         (convert_iso88591_utf8): Ditto.
15106         (conversion_tab): Remove 8859-1 converter.
15107         (_cpp_input_to_utf8): Remove.
15108         (_cpp_init_iconv_buffer): Ditto.
15109         (_cpp_close_iconv_buffer): Ditto.
15110         (_cpp_convert_input): New function.
15111         (_cpp_default_encoding): Ditto.
15112         * cpphash.h: Add/remove prototypes for above.
15113         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
15114         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
15115         for narrow execution and input character sets.
15116         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
15117         * doc/cppopts.texi: Document -finput-charset.
15118
15119 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
15120
15121         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
15122         against FIRST_PSEUDO_REGISTER.
15123
15124 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15125
15126         * doc/invoke.texi (SPARC options): Further improve.
15127
15128 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15129
15130         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
15131         config/h8300/h8300.c, config/ip2k/ip2k.md,
15132         config/iq2000/iq2000.c, config/mips/mips.c,
15133         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
15134         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
15135         config/v850/v850.md: Fix indentation.
15136
15137 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15138
15139         * config/sparc/sparc.c (function_arg_slotno): Align TImode
15140         arguments on a 16-byte boundary in the parameter array if ARCH64.
15141         Split handling of TFmode.
15142
15143 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
15144
15145         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
15146         Don't test CONSTANT_P (x).
15147         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
15148         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
15149         Fix misindentation.
15150
15151 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15152
15153         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
15154
15155 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15156
15157         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
15158         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
15159         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
15160         config/iq2000/iq2000.c, config/m32r/m32r.c,
15161         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
15162         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
15163         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
15164         config/stormy16/stormy16.c, config/v850/v850.md,
15165         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
15166
15167 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15168
15169         * config/mcore/mcore.c (block_move_sequence): Replace
15170         gen_rtx_CONST_INT with GEN_INT.
15171
15172 2004-02-02  Jan Hubicka  <jh@suse.cz>
15173
15174         * alias.c (record_set): Use hard_regno_nregs.
15175         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
15176         * builtins.c (apply_args_size): Likewise.
15177         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
15178         mark_set_regs, add_stored_regs, mark_referenced_regs,
15179         insert_restore, insert_save, insert_one_insn): Likewise.
15180         * cfgcleanup.c: Include regs.h
15181         (mark_effect, mentions_nonequal_regs): Likewise.
15182         * cfgrtl.c (mark_killed_regs): Likewise
15183         * combine.c (update_table_tick, record_value_for_reg,
15184         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
15185         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
15186         reg_bitfield_target_p, distribute_notes): Likewise.
15187         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
15188         exp_equiv_p, cse_insn): Likewise.
15189         * cselib.c (cselib_lookup): Likewise.
15190         (cselib_invalidate_regno, cselib_record_set): Likewise.
15191         * df.c (df_ref_record): Likewise.
15192         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
15193         Likewise.
15194         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
15195         count_or_remove_death_notes_bb): Likewise.
15196         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
15197         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
15198         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
15199         * integrate.c (mark_stores): Likewise.
15200         * jump.c (delete_prior_computation): Likewise.
15201         * lcm.c (reg_dies, reg_becomes_live): Likewise.
15202         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15203         * loop.c (LOOP_REGNO_NREGS): Likewise.
15204         * postreload.c (reload_combine, reload_combine_note_store,
15205         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15206         * ra-colorize.c (combine, color_usable_p, get_free_reg,
15207         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
15208         try_recolor_web, insert_coalesced_conflicts, check_colors,
15209         break_precolored_alias): Likewise.
15210         * ra-debug.c: Include regs.h
15211         (ra_print_rtx_object): Likewise.
15212         * ra-rewrite (choose_spill_colors): Likewise.
15213         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15214         * ra.c (init_ra): Likewise.
15215         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15216         peep2_find_free_register): Likewise.
15217         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15218         * regclass.c (hard_regno_nregs): New array.
15219         (init_reg_modes_once): Initialize it.
15220         (choose_hard_reg_mode): Use it.
15221         (record_reg_classes): Likewise.
15222         * regmove.c (mark_flags_life_zones): Likewise.
15223         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15224         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15225         copy_value, maybe_mode_change, find_oldest_value_reg,
15226         copyprop_hardreg_forward_1):
15227         * regs.h (hard_regno_nregs): Declare.
15228         * realod.c (reload_inner_reg_of_subreg): Use it.
15229         (push_reload, combine_reloads, find_dummy_reload,
15230         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15231         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15232         reload_adjust_reg_for_mode): Likewise.
15233         * reload1.c (compute_use_by_pseudos, count_pseudo,
15234         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15235         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15236         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15237         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15238         delete_output_reload): Likewise.
15239         * resource.c (update_live_status, mark_referenced_resources,
15240         mark_set_resources, mark_target_live_regs): Likewise.
15241         * rtlanal.c:  Include regs.h
15242         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15243         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15244         subreg_regno_offset, subreg_offset_representable_p,
15245         hoist_test_store): Likewise.
15246         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15247         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15248         * stmt.c: Include regs.h
15249         (decl_conflicts_with_clobbers_p): Likewise.
15250         * varasm.c (make_decl_rtl): Likewise.
15251         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15252
15253 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15254
15255         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15256         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15257         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15258         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15259         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15260         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15261         config/iq2000/iq2000.h, config/m32r/m32r.c,
15262         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15263         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15264         config/mcore/mcore.c, config/mcore/mcore.h,
15265         config/mcore/mcore.md, config/mips/mips.c,
15266         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15267         config/rs6000/rs6000.c, config/s390/s390.c,
15268         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15269         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15270         "gen_rtx (FOO, " with "gen_rtx_FOO (".
15271
15272 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15273
15274         * config/h8300/h8300.md (two peephole2's): New.
15275
15276 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15277
15278         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15279         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15280         (ASM_CPU_SPEC): Likewise
15281         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15282         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
15283
15284 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15285
15286         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15287         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15288         (expand_builtin): Always call expand_builtin_pow.
15289
15290 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15291
15292         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15293         BUILT_IN_SIGNBITL): New GCC builtins.
15294         * builtins.c (expand_builtin_signbit): New function to RTL expand
15295         calls to signbit, signbitf and signbitl as inline intrinsics.
15296         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15297         (fold_builtin_signbit): New function to perform constant folding
15298         of signbit, signbitf and signbitl.
15299         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15300
15301         * doc/extend.texi: Document new signbit{,f,l} builtins.
15302
15303 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
15304
15305         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15306
15307 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
15308
15309         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15310         "mips_const_double_ok" and "simple_memory_operand", which were
15311         removed from the MIPS port with the mips-3_4-rewrite branch merge.
15312         * config/mips/mips.c (mips16_lay_out_constants): Update comment
15313         for removal of simple_memory_operand.
15314
15315 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15316
15317         * config/c4x/c4x.md: Use GEN_INT instead of
15318         gen_rtx (CONST_INT, ...).
15319
15320 2004-01-31  Richard Henderson  <rth@redhat.com>
15321
15322         * varasm.c (output_constant_pool): Don't zap the pool.
15323
15324 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15325
15326         * genrecog.c (decision_type): Add DT_const_int.
15327         (write_cond) [DT_const_int]: Print a comparison against small
15328         constant.
15329         (write_node): Simplify comparisons against small constants
15330         before printing tests.
15331
15332 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15333
15334         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15335         instead of gen_rtx_CONST_INT.
15336
15337 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15338
15339         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15340         instead of gen_rtx_CONST_INT.
15341
15342 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15343
15344         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15345         hook_bool_CUMULATIVE_ARGS_false.
15346         * targhooks.c (default_strict_argument_naming): Rename to
15347         hook_bool_CUMULATIVE_ARGS_false.
15348         * targhooks.h: Update the prototype for
15349         default_strict_argument_naming.
15350
15351 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15352
15353         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15354         * config/sh/sh.h: Likewise.
15355         * config/sh/sh.md: Likewise.
15356
15357 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15358
15359         * doc/invoke.texi (SPARC options): Restructure and update.
15360
15361 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15362
15363         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15364         STRICT_ARGUMENT_NAMING): Poison.
15365         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15366         hook_bool_tree_false.
15367         * targhooks.c (default_promote_function_args): Remove.
15368         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15369         Don't check incoming.
15370         (default_strict_argument_naming): Don't use
15371         STRICT_ARGUMENT_NAMING.
15372         * targhooks.h: Remove the prototype for
15373         default_promote_function_args.
15374
15375 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15376
15377         * config/i386/i386-protos.h: Remove the prototype for
15378         ix86_setup_incoming_varargs.
15379         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15380         (ix86_setup_incoming_varargs): Make it static.
15381         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15382
15383 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15384
15385         * alloc-pool.c: Fix comment typos.
15386         * builtin-types.def: Likewise.
15387         * builtins.def: Likewise.
15388         * c-pretty-print.c: Likewise.
15389         * df.h: Likewise.
15390         * reload1.c: Likewise.
15391
15392 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15393
15394         * doc/invoke.texi: Follow spelling conventions.
15395         * doc/tm.texi: Likewise.
15396
15397 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15398
15399         * doc/install.texi: Fix typos.
15400         * doc/invoke.texi: Likewise.
15401
15402 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15403
15404         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15405         registers as pointers.
15406         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15407
15408 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15409
15410         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15411         and restore it to gen_lowpart_general on exit.
15412         (gen_lowpart_for_combine): Adjust all callers to go through
15413         gen_lowpart.
15414         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15415         and restore it to gen_lowpart_general on exit.
15416         (gen_lowpart_if_possible): Adjust all callers to go through
15417         gen_lowpart.
15418         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15419         (gen_lowpart): Declare as pointer to function, initialized to
15420         gen_lowpart_general.
15421         * rtl.h (gen_lowpart): Declare as pointer to function.
15422
15423 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15424
15425         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15426         * calls.c: Likewise.
15427         * emit-rtl.c: Likewise.
15428         * function.c: Likewise.
15429         * reload1.c: Likewise.
15430         * config/i386/cygming.h: Likewise.
15431         * config/i386/i386.c: Likewise.
15432         * config/i386/winnt.c: Likewise.
15433
15434 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15435
15436         PR bootstrap/9249
15437         * doc/install.texi: document --enable-__cxa_atexit option.
15438         * configure.ac: Disable __cxa_atexit if not supported.
15439         * configure: Regenerate.
15440
15441 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
15442
15443         * ggc-zone.c (ggc_free): New function.
15444
15445 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15446
15447         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15448         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15449         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15450         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15451         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15452         config/alpha/alpha.c, config/alpha/alpha.h,
15453         config/alpha/alpha.md, config/alpha/unicosmk.h,
15454         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15455         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15456         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15457         config/frv/frvend.c, config/i386/cygming.h,
15458         config/i386/djgpp.h, config/i386/emmintrin.h,
15459         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15460         config/i386/i386-protos.h, config/i386/openbsd.h,
15461         config/i386/winnt.c, config/i386/xm-mingw32.h,
15462         config/i386/xmmintrin.h, config/ia64/ia64.md,
15463         config/iq2000/iq2000.md, config/m32r/m32r.md,
15464         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15465         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15466         config/mips/iris5gas.h, config/mips/iris6.h,
15467         config/mips/iris6gas.h, config/mips/linux.h,
15468         config/mips/mips.md, config/mips/netbsd.h,
15469         config/mips/openbsd.h, config/mips/windiss.h,
15470         config/pa/fptr.c, config/rs6000/aix.h,
15471         config/rs6000/altivec.h, config/rs6000/darwin.h,
15472         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15473         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15474         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15475         config/sparc/sol2.h: Update copyright.
15476
15477 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15478
15479         * Makefile.in (abs_docdir, abs_srcdir): Define.
15480         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15481
15482 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15483
15484         * genconfig.c (main): Have CC0_P check its operand even on a
15485         target without cc0.
15486
15487 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15488
15489         * config/alpha/alpha.c: Remove mentions of deprecates macros
15490         in comments, remove some target-independent comments about target
15491         macros, and/or add minimal function comments for target hook
15492         implementations.
15493         * config/avr/avr.c: Likewise.
15494         * config/ia64/ia64.h: Likewise.
15495         * config/ip2k/ip2k.c: Likewise.
15496         * config/iq2000/iq2000.c: Likewise.
15497         * config/m32r/m32r.h: Likewise.
15498         * config/m68hc11/m68hc11.c: Likewise.
15499         * config/mcore/mcore.c: Likewise.
15500         * config/mmix/mmix.c: Likewise.
15501         * config/mn10300/mn10300.c: Likewise.
15502         * config/pa/pa.c: Likewise.
15503         * config/pdp11/pdp11.c: Likewise.
15504         * config/rs6000/rs6000.h: Likewise.
15505         * config/sh/sh.c: Likewise.
15506         * config/sh/sh.h: Likewise.
15507         * config/sparc/sparc.c: Likewise.
15508         * config/sparc/sparc.h: Likewise.
15509         * config/stormy16/stormy16.c: Likewise.
15510         * config/xtensa/xtensa.c: Likewise.
15511
15512 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15513
15514         PR optimization/12147
15515         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15516         RELOAD_FOR_OPADDR_ADDR.
15517         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15518         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15519
15520 2004-01-30  Jan Hubicka  <jh@suse.cz>
15521
15522         * reload.c (get_secondary_mem): Fix updating of
15523         secondary_memlocs_elim_used.
15524
15525 2004-01-30  Richard Henderson  <rth@redhat.com>
15526
15527         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15528         (MAX_RTX_HASH_TABLE): Remove.
15529         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15530         (first_pool, last_pool, pool_offset): Remove.
15531         (struct rtx_constant_pool): Split out from ...
15532         (struct varasm_status): ... here.  Reference one via pointer.
15533         (struct constant_descriptor_rtx): Merge struct pool_constant.
15534         (SYMHASH): Remove.
15535         (decode_rtx_const): Remove.
15536         (const_hash_rtx, compare_constant_rtx): Remove.
15537         (record_constant_rtx): Remove.
15538         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15539         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15540         (const_rtx_hash_1, const_rtx_hash): New.
15541         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15542         (simplify_subtraction): Use simplify_rtx.
15543         (force_const_mem): Rewrite to use new data structures.
15544         (find_pool_constant): Likewise.
15545         (get_pool_constant, get_pool_constant_mark,
15546         get_pool_constant_for_function, get_pool_mode,
15547         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15548         (output_constant_pool_2): Split out from output_constant_pool.
15549         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15550         (output_constant_pool): Zap entire pool datastructure.
15551         (mark_constant): Use new pool datastructures.
15552         (mark_constants): Use for_each_rtx.
15553         (mark_constant_pool): Use new pool datastructures.
15554
15555 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15556
15557         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15558         Copy operands[1] to pseudo for simplify_gen_subreg.
15559
15560 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15561
15562         * gcse.c (bypass_block): Fix a typo in the previous check-in
15563         to the file.
15564
15565 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15566
15567         * toplev.c: Include alloc-pool.h.
15568         * Makefile.in (toplev.c): Update dependencies.
15569
15570 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15571
15572         * combine.c (simplify_shift_const, case XOR): Be careful when
15573         commuting XOR with ASHIFTRT.
15574
15575 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15576             Eric Botcazou  <ebotcazou@libertysurf.fr>
15577
15578         * config/sparc/sparc-protos.h: Remove the prototype for
15579         sparc_builtin_saveregs.
15580         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15581         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15582         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15583         (TARGET_STRUCT_VALUE_RTX): Likewise.
15584         (TARGET_RETURN_IN_MEMORY): Likewise.
15585         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15586         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15587         (sparc_builtin_saveregs): Make it static.
15588         (sparc_promote_prototypes): New.
15589         (sparc_struct_value_rtx): Likewise.
15590         (sparc_return_in_memory): Likewise.
15591         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15592         (PROMOTE_FUNCTION_RETURN): Likewise.
15593         (RETURN_IN_MEMORY): Likewise.
15594         (STRUCT_VALUE): Likewise.
15595         (STRUCT_VALUE_INCOMING): Likewise.
15596         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15597         (STRICT_ARGUMENT_NAMING): Likewise.
15598         (PROMOTE_PROTOTYPES): Likewise.
15599
15600         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15601
15602 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15603
15604         PR c/12818
15605         * varasm.c (const_hash_1) <STRING_CST>: Use the
15606         address to compute the hash value if flag_writable_strings.
15607         (compare_constant) <STRING_CST>: Compare the addresses
15608         if flag_writable_strings.
15609         (build_constant_desc): Do not copy the expression for a
15610         STRING_CST if flag_writable_strings.
15611
15612 2004-01-30  Jan Hubicka  <jh@suse.cz>
15613
15614         * alloc-pool.c: Include hashtab.h
15615         (alloc_pool_descriptor): New structure
15616         (alloc_pool_hash): New global variable.
15617         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15618         (create_alloc_pool): Update statistics.
15619         (free_alloc_pool): Likewise.
15620         (pool_alloc): Likewise.
15621         (output_info): New structure
15622         (print_statistics, dump_alloc_pool_statistics): New function.
15623         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15624         (dump_alloc_pool_statistics): Declare.
15625         * toplev.c (finalize):  Dump statistics.
15626
15627         * reload.c (secondary_memlocs_elim_used): New static variable.
15628         (get_secondary_mem): Update it.
15629         (find_reloads): Use it.
15630
15631 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15632
15633         * toplev.c: Fix broken checkin of 2003-12-30, again.
15634
15635 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15636
15637         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15638         s390*-*-* targets by specifying a 'nop' insn.
15639         * configure: Regenerate.
15640
15641 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15642
15643         PR target/11475
15644         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15645
15646 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15647
15648         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15649         of addr when creating MEM copy.
15650
15651 2004-01-29  Devang Patel  <dpatel@apple.com>
15652
15653         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15654
15655 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15656
15657         PR inline-asm/6162
15658         * reload.c (find_reloads): Only support one pair of commutative
15659         operands.
15660
15661 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15662
15663         PR java/13824
15664         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15665         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15666         recursion.
15667
15668 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15669
15670         * config/frv/frv.c: Don't mention deprecated macros in
15671         comments.  Remove some target-independent comments about
15672         target macros.
15673         * config/frv/frv.h: Likewise.
15674
15675 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15676
15677         * cfghooks.c (split_block): Set probability and count of the
15678         new edge.
15679
15680 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
15681
15682         * dwarf2out.c (struct die_struct): Added field decl_id.
15683         (decl_die_table): Changed to hash table.
15684         (decl_die_table_allocated): Deleted.
15685         (decl_die_table_in_use): Deleted.
15686         (DECL_DIE_TABLE_INCREMENT): Deleted.
15687         (decl_die_table_hash): New function.
15688         (decl_die_table_eq): New function.
15689         (lookup_decl_die): Lookup in a hash table.
15690         (equate_decl_number_to_die): Insert into a hash table.
15691         (dwarf2out_init): Init hash table decl_die_table.
15692
15693 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15694
15695         PR optimization/13424
15696         * expr.c (store_constructor): Revert 2003-12-03 change.
15697
15698         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15699         expected before returning early.  Avoid sharing RTL if they
15700         need to be changed.
15701
15702         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15703         handling so that memory attributes are preserved.  Don't call
15704         ix86_set_move_mem_attrs.
15705         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15706         (ix86_expand_clrstr): Rename src argument to
15707         dst.  Rework rep_stos and strset handling so that memory attributes
15708         are preserved.
15709         (ix86_expand_strlen): Pass src argument to
15710         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15711         memory attributes are preserved.
15712         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15713         change_address instead of gen_rtx_MEM.
15714         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15715         expanders.
15716         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15717         strmovqi, strmovqi_rex64): Remove.
15718         (rep_mov*, strmov*): Prefix insn names with *.
15719         (strset, strset_singleop, rep_stos): New expanders.
15720         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15721         strsetqi, strsetqi_rex64): Remove.
15722         (rep_stos*, strset*): Prefix insn names with *.
15723         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15724         to SImode.
15725         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15726         are preserved.
15727         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15728         Prefix insn names with *.
15729         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15730         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15731         (strlenqi_1): New expander.
15732         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15733
15734 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15735
15736         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15737         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15738         verify_flow_info): Declaration removed.
15739         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15740         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15741         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15742         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15743         instead of delete_block.
15744         * cfghooks.c: Include timevar.h and toplev.h.
15745         (cfg_hooks): Define here.
15746         (verify_flow_info, dump_bb): Moved from cfg.c.
15747         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15748         split_block, split_block_after_labels, move_block_after,
15749         delete_basic_block, split_edge, create_basic_block,
15750         create_empty_bb, can_merge_blocks_p, merge_blocks,
15751         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15752         New functions.
15753         * cfghooks.h (struct cfg_hooks): Added fields name,
15754         make_forwarder_block, tidy_fallthru_edge and
15755         move_block_after. Changed type of verify_flow_info, dump_bb,
15756         split_block fields. Renamed cfgh_split_edge and delete_block
15757         fields.
15758         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15759         split_block, delete_block, split_edge, create_basic_block,
15760         can_merge_blocks_p, merge_blocks): Macros removed.
15761         (cfg_hooks): Do not export.
15762         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15763         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15764         move_block_after, delete_basic_block, split_edge, create_basic_block,
15765         create_empty_bb, can_merge_blocks_p, merge_blocks,
15766         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15767         Declare.
15768         (cfg_layout_rtl_cfg_hooks): Declare.
15769         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15770         New functions.
15771         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15772         (redirect_edge_with_latch_update): Removed.
15773         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15774         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15775         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15776         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15777         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15778         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15779         cfghooks.c.
15780         (rtl_create_basic_block): Coding style fix.
15781         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15782         rtl_make_forwarder_block): New functions.
15783         (update_cfg_after_block_merging): Removed.
15784         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15785         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15786         to dump_bb.
15787         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15788         find_if_case_2): Don't update dominators.
15789         * timevar.def (TV_CFG_VERIFY): New.
15790         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15791         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15792         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15793         (remove_bbs): Don't call remove_bbs.
15794         (create_preheader): Use make_forwarder_block.
15795         (mfb_keep_just, mfb_update_loops): New static functions.
15796
15797 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15798
15799         * config/avr/avr.h: Remove target-independent comments about
15800         target macros.
15801
15802 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15803
15804         * timevar.c (timevar_print): Mention when checking is enabled.
15805
15806 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15807
15808         * c-lex.c (c_lex): Rename to...
15809         (c_lex_with_flags): Add new parameter to get CPP flags.
15810         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15811         * c-pragma.h (c_lex_with_flags): Declare.
15812
15813 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15814
15815         * config/mcore/mcore.c (mcore_external_libcall): Add a
15816         comment.
15817         (mcore_return_in_memory): Likewise.
15818
15819 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15820
15821         * config/mcore/mcore-protos.h: Remove the prototype for
15822         mcore_setup_incoming_varargs.
15823         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15824         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15825         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15826         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15827         (TARGET_STRUCT_VALUE_RTX): Likewise.
15828         (TARGET_RETURN_IN_MEMORY): Likewise.
15829         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15830         (mcore_setup_incoming_varargs): Make it static.  Receive the
15831         first argument by reference.  Add argument second_time.
15832         (mcore_external_libcall): New.
15833         (mcore_return_in_memory): Likewise.
15834         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15835         (PROMOTE_FUNCTION_RETURN): Likewise.
15836         (STRUCT_VALUE): Likewise.
15837         (RETURN_IN_MEMORY): Likewise.
15838         (SETUP_INCOMING_VARARGS): Likewise.
15839         (PROMOTE_PROTOTYPES): Likewise.
15840         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15841
15842 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15843
15844         * config/m32r/m32r-protos.h: Remove the prototype for
15845         m32r_setup_incoming_varargs.
15846         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15847         (TARGET_STRUCT_VALUE_RTX): Likewise.
15848         (TARGET_RETURN_IN_MEMORY): Likewise.
15849         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15850         (m32r_return_in_memory): New.
15851         (m32r_setup_incoming_varargs): Make it static.
15852         * config/m32r/m32r.h: Remove #undef of
15853         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15854         definitions of PROMOTE_FUNCTION_ARGS and
15855         PROMOTE_FUNCTION_RETURN.
15856         (PROMOTE_PROTOTYPES): Remove.
15857         (RETURN_IN_MEMORY): Likewise.
15858         (STRUCT_VALUE): Likewise.
15859
15860 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15861
15862         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15863         (TARGET_STRUCT_VALUE_RTX): Likewise.
15864         (m68k_struct_value_rtx): Likewise.
15865         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15866         STRUCT_VALUE_REGNUM.
15867         (PROMOTE_PROTOTYPES): Remove.
15868         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15869         STRUCT_VALUE_REGNUM.
15870         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15871         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15872
15873 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15874
15875         * config/stormy16/stormy16.c
15876         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15877         TARGET_BUILD_BUILTIN_VA_LIST.
15878
15879 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15880
15881         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15882         (TARGET_STRUCT_VALUE_RTX): Likewise.
15883         (TARGET_RETURN_IN_MEMORY): Likewise.
15884         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15885         (v850_return_in_memory): Likewise.
15886         (v850_setup_incoming_varargs): Likewise.
15887         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15888         (SETUP_INCOMING_VARARGS): Likewise.
15889         (RETURN_IN_MEMORY): Likewise.
15890         (STRUCT_VALUE): Likewise.
15891
15892 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15893
15894         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15895         (fr30_setup_incoming_varargs): Don't use
15896         STRICT_ARGUMENT_NAMING.
15897         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15898         (STRICT_ARGUMENT_NAMING): Likewise.
15899
15900 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15901
15902         * config/frv/frv-protos.h: Remove the prototype for
15903         frv_expand_builtin_saveregs.
15904         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15905         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15906         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15907         STRUCT_VALUE_REGNUM.
15908         (frv_expand_builtin_saveregs): Make it static.
15909         (frv_struct_value_rtx): New.
15910         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15911
15912 2004-01-29  Jan Hubicka  <jh@suse.cz>
15913
15914         PR c++/12850
15915         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15916         initial pointers.
15917         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15918         for functions that will be only inlined.
15919         (cgraph_mark_function_to_output): Likewise.
15920         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15921         do not clear function body.
15922         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15923         (tree_rest_of_compilation): Reorganize the logic releasing function
15924         body to use callgraph datastructure.
15925
15926 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15927
15928         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15929         to register_operand.
15930
15931 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15932
15933         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15934         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15935         match_operand expressions so that all match_dups appear
15936         lexically after their corresponding match_operands.
15937
15938 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15939
15940         * config/h8300/h8300.c (WORD_REG_USED): Use
15941         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15942         (compute_saved_regs): Likewise.
15943         (h8300_expand_prologue): Likewise.  Allocate locals after
15944         saving registers.
15945         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15946         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15947         registers.
15948         (h8300_initial_elimination_offset): Adjust for the new frame
15949         layout, which swaps flips the order of locals and saved
15950         registers.
15951         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15952         (HARD_FRAME_POINTER_REGNUM): New.
15953         (ELIMINABLE_REGS): Add an elimination rule from
15954         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15955         (REGISTER_NAMES): Add fp.
15956         * config/h8300/h8300.md (FP_REG): Change to 11.
15957         (HFP_REG): New.
15958
15959 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15960
15961         * genrecog.c (write_node): Remove a useless local variable.
15962
15963 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15964
15965         * Makefile.in (options.c options.h): Use stamp file s-options to
15966         avoid unnecessary rebuilds.
15967         (options.o): New target listing dependencies.
15968         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15969         (STAGESTUFF): Add s-gtyp-gen.
15970
15971 2004-01-28  Richard Henderson  <rth@redhat.com>
15972
15973         * ggc.h (ggc_free): Declare.
15974         * ggc-common.c (ggc_realloc): Use it.
15975         * ggc-page.c: Remove lots of inline markers.
15976         (globals): Add free_object_list.
15977         (ggc_alloc): Tidy.
15978         (ggc_free, validate_free_objects): New.
15979         (poison_pages): Provide default.
15980         (ggc_collect): Call validate_free_objects; emit markers to
15981         the debug file.
15982
15983 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15984             Jim Wilson  <wilson@specifixinc.com>
15985
15986         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15987         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15988         scratch pointer.
15989         (ia64_secondary_reload_class): Delete case GR_REGS.
15990         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15991         Do not allocate a scratch register.
15992         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15993
15994 2004-01-28  Jan Hubicka  <jh@suse.cz>
15995
15996         * gcse.c (bypass_block): Prevent edges to be unified when we are
15997         about to emit compenstation code.
15998
15999 2004-01-28  Nick Clifton  <nickc@redhat.com>
16000
16001         * config/arm/arm.c (arm_expand_builtin): Force second argument of
16002         the setcwx insn into a register.
16003
16004 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
16005
16006         * config/fp-bit.c (pack_d): When using paired doubles to implement
16007         a long double, round the high part separately.
16008         (unpack_d): Fix the case in which the high part is a power of two
16009         and the low part is a nonzero value of the opposite sign.
16010
16011 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16012
16013         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
16014         (TARGET_STRUCT_VALUE_RTX): Likewise.
16015         (c4x_external_libcall): Likewise.
16016         (c4x_struct_value_rtx): Likewise.
16017         * config/c4x/c4x.h: Remove.
16018         (STRUCT_VALUE_REGNUM): Likewise.
16019         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
16020
16021 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16022
16023         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
16024         (TARGET_STRUCT_VALUE_RTX): Likewise.
16025         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
16026         (STRUCT_VALUE): Likewise.
16027         (PROMOTE_PROTOTYPES): Likewise.
16028
16029 2004-01-27  Roger Sayle  <roger@eyesopen.com>
16030
16031         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
16032         CONST_INT before using INTVAL.
16033
16034 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
16035
16036         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
16037         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
16038         frame if !TARGET_BACKCHAIN.
16039         * config/s390/s390.md ("allocate_stack"): Use pattern only if
16040         TARGET_BACKCHAIN.
16041         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
16042
16043 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16044
16045         * ia64.c (ia64_function_arg): When placing HFAs in integer
16046         registers, do not special case the mode used for complex
16047         types.  Do not advance int_regs until the current register
16048         is full.
16049
16050 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
16051
16052         PR target/7297
16053         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
16054
16055 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
16056
16057         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
16058         slow, unaligned loads and stores while debugging.  Fix formatting.
16059
16060 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
16061
16062         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
16063         of computing wmode.
16064         (restore_stack_nonlocal): Same.
16065
16066 2004-01-27  Devang Patel <dpatel@apple.com>
16067
16068         * Makefile.in (dwarf2out.o): Depend on input.h
16069         * dbxout.c (dbx_debug_hooks): Add new empty hook for
16070         imported_module_or_decl.
16071         (xcoff_debug_hooks): Same.
16072         * sdbout.c (sdb_debug_hooks): Same.
16073         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
16074         * debug.c (do_nothing_debug_hooks): Same.
16075         (debug_nothing_tree_tree): New function.
16076         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
16077         * dwarf2out.c: Include input.h.
16078         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
16079         (remove_child_TAG): New function.
16080         (dwarf_tag_name): Handle DW_TAG_imported_module.
16081         (gen_subprogram_die): Equate decl number to declaration die. Do not
16082         remove all children dies while reusing declaration die for definition.
16083         Instead, selectively remove only formal parameters.
16084         (gen_variable_die): Equate variable decl to declaration die.
16085         (gen_field_die): Equate field decl to line number.
16086         (force_namespace_die): Replace it with ...
16087         (force_decl_die): ... this.
16088         (force_type_die): New function.
16089         (setup_namespace_context): Replace use of force_namespace_die() with
16090         force_decl_die().
16091         (gen_namespace_die): Same.
16092         (dwarf2out_imported_module_or_decl): New function.
16093
16094 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
16095
16096         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
16097         on CQImode and CHImode incoming arguments in register a7.
16098         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
16099         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
16100         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
16101         xtensa_copy_incoming_a7 before reload.
16102
16103 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
16104
16105         * coverage.c (get_coverage_counts): Give a different message
16106         if flag_guess_branch_prob is set.
16107         * predict.c (counts_to_freqs): Return an int.
16108         (estimate_bb_frequencies): If counts_to_freqs returns zero,
16109         calculate estimates.
16110
16111 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
16112
16113         * config/iq2000/iq2000-protos.h: Remove the prototype for
16114         iq2000_setup_incoming_varargs.
16115         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16116         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16117         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16118         (TARGET_STRUCT_VALUE_RTX): Likewise.
16119         (TARGET_RETURN_IN_MEMORY): Likewise.
16120         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16121         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16122         (iq2000_return_in_memory): Likewise.
16123         (iq2000_setup_incoming_varargs): Make it static.  Receive the
16124         first argument by reference.
16125         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
16126         (PROMOTE_FUNCTION_RETURN): Likewise.
16127         (PROMOTE_PROTOTYPES): Likewise.
16128         (RETURN_IN_MEMORY): Likewise.
16129         (STRUCT_VALUE): Likewise.
16130         (SETUP_INCOMING_VARARGS): Likewise.
16131         (STRICT_ARGUMENT_NAMING): Likewise.
16132
16133 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
16134
16135         * fixinc/fixinc.c (test_test): Initialize res.
16136         (start_flexer): Initialize pz_cmd_save.
16137
16138 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16139
16140         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
16141         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
16142
16143 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16144
16145         PR 7198
16146         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
16147         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
16148         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
16149         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
16150         Possibly rename pattern for consistency.
16151         Remove ??? comments suggesting that this be done.
16152         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
16153         New patterns.
16154         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
16155         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
16156         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
16157         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
16158         Update to match.
16159
16160 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
16161
16162         * config/arm/arm.c (output_return_instruction): Only restore IP
16163         into SP if frame_pointer_needed.
16164
16165 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16166
16167         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16168         for SCmode and DCmode if ARCH32.
16169         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
16170         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
16171         if ARCH32.
16172         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
16173         if ARCH32.
16174         (BASE_OUTGOING_VALUE_REG): Likewise.
16175
16176 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16177
16178         PR target/10904
16179         PR target/13058
16180         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
16181         Forbid mode changes from SImode for lower FP regs if ARCH64.
16182
16183 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
16184
16185         * Makefile.in (bt-load.o): Depend on except.h.
16186         * bt-load.c (except.h): #include.
16187         (compute_defs_uses_and_gen): If insn at end of BB can throw
16188         within this function, consider registers used by it unavailable for
16189         btr migration.
16190         (move_btr_def): If insn at end of BB can throw, insert before rather
16191         than after.
16192
16193         * flags.h (flag_btr_bb_exclusive): Declare.
16194         * toplev.c (flag_btr_bb_exclusive): New variable.
16195         (f_options): Add btr-bb-exclusive.
16196         * bt-load.c (augment_live_range): Restore old behaviour if
16197         flag_btr_bb_exclusive is set.
16198         * common.opt: Add entry for -fbtr-bb-exclusive.
16199         * opts.c (common_handle_options): Same.
16200         * doc/invoke.texi: Document -fbtr-bb-exclusive.
16201
16202         * bt-load.c (btrs_live_at_end): New variable.
16203         (compute_defs_uses_and_gen): Compute its pointed-to array.
16204         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16205         (augment_live_range): When augmenting with a new dominator,
16206         use only its btrs_live_at_end set, but also add in the full set
16207         of the old dominator.
16208         (btr_def_live_range): Use btrs_live_at_end.
16209         (move_btr_def): Set other_btr_uses_before_def, and move new set
16210         to the end of the basic block, if appropriate.
16211         (migrate_btr_defs): Allocate and free btrs_live_at_end.
16212
16213         * bt-load.c (basic_block_freq): Remove outdated comment.
16214
16215 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
16216
16217         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16218         (PREDICATE_CODES): Remove duplicate.
16219         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16220         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16221         (MASK_PROFILE_KERNEL): Adjust define.
16222
16223 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
16224
16225         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16226         of long string literals from 32 bytes to sizeof (void *) when !-Os
16227         and to 1 with -Os.
16228
16229 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16230
16231         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16232         constant addresses in the normal mode.
16233
16234 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16235
16236         * system.h (CHAR_BITFIELD): Delete.
16237         (BOOL_BITFIELD): New.
16238         * c-decl.c (c_scope): Use BOOL_BITFIELD.
16239         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16240
16241 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16242
16243         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16244         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16245         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16246         (TARGET_STRUCT_VALUE_RTX): Likewise.
16247         (TARGET_RETURN_IN_MEMORY): Likewise.
16248         (arc_return_in_memory): Likewise.
16249         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16250         (PROMOTE_FUNCTION_RETURN): Likewise.
16251         (RETURN_IN_MEMORY): Likewise.
16252         (STRUCT_VALUE): Likewise.
16253
16254 2004-01-26  Richard Henderson  <rth@redhat.com>
16255
16256         * c-parse.in (extension): Use itype.
16257         (SAVE_EXT_FLAGS): Don't allocate a tree.
16258         (RESTORE_EXT_FLAGS): Don't read a tree.
16259
16260 2004-01-26  Jan Hubicka  <jh@suse.cz>
16261
16262         * cselib.c (discard_useless_values):  Clear out value pointer pointing
16263         to datastructure to be recycled.
16264
16265 2004-01-25  Jan Hubicka  <jh@suse.cz>
16266
16267         * genextract.c (main): Do not output the memset when not checking.
16268
16269 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16270
16271         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16272         switch statement instead of a chain of if statements.
16273
16274 2004-01-26  Jeff Law  <law@redhat.com>
16275
16276         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
16277         acute accents for Petur Runolfsson's entry.
16278
16279 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16280
16281         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16282         (TARGET_RETURN_IN_MEMORY): Likewise.
16283         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16284         (RETURN_IN_MEMORY): Likewise.
16285
16286 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16287
16288          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16289          unaligned load/store into smaller loads and stores.
16290
16291 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16292
16293         * function.c (assign_parms): Do not assign
16294         long long argument to memory in prologue if
16295         is it loaded into register.
16296
16297 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16298
16299          PR middle-end/13779
16300          * expr.c (emit_group_load): split constant
16301          correctly into register components of PARALLEL insn.
16302
16303 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16304
16305         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16306         Use adjust_address_nv directly with appropriate mode.
16307         (restore_stack_nonlocal): Ditto.
16308
16309 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16310
16311         * config/xtensa/xtensa-protos.h: Remove the prototype for
16312         xtensa_builtin_saveregs.
16313         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16314         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16315         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16316         (TARGET_STRUCT_VALUE_RTX): Likewise.
16317         (TARGET_RETURN_IN_MEMORY): Likewise.
16318         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16319         (xtensa_builtin_saveregs): Make it static.
16320         (xtensa_return_in_memory): New.
16321         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16322         (PROMOTE_FUNCTION_RETURN): Likewise.
16323         (PROMOTE_PROTOTYPES): Likewise.
16324         (STRUCT_VALUE): Likewise.
16325         (RETURN_IN_MEMORY): Likewise.
16326         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16327
16328 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16329
16330         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16331         (arm_setup_incoming_varargs): Likewise.
16332         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16333
16334 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16335
16336         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16337         (cris_setup_incoming_varargs): Likewise.
16338         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16339
16340 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16341
16342         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16343         (ns32k_struct_value_rtx): Likewise.
16344         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16345         NS32K_STRUCT_VALUE_REGNUM.
16346
16347 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16348
16349         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16350         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16351         (TARGET_STRUCT_VALUE_RTX): Likewise.
16352         (arm_struct_value_rtx): Likewise.
16353         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16354         (STRUCT_VALUE): Likewise.
16355         (STRUCT_VALUE_REGNUM): Likewise.
16356         (PROMOTE_PROTOTYPES): Likewise.
16357
16358 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16359
16360         * config/ia64/ia64-protos.h: Remove the prototype for
16361         ia64_setup_incoming_varargs and ia64_return_in_memory.
16362         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16363         (TARGET_RETURN_IN_MEMORY): Likewise.
16364         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16365         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16366         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16367         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16368         (ia64_return_in_memory): Make it static.  Change the return
16369         type to bool from int.  Add an argument.
16370         (ia64_struct_value_rtx): New.
16371         * config/ia64/ia64.h: Remove commented-out definitions of
16372         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16373         PROMOTE_PROTOTYPES.
16374         (RETURN_IN_MEMORY): Remove.
16375         (STRUCT_VALUE_REGNUM): Likewise.
16376         (STRICT_ARGUMENT_NAMING): Likewise.
16377
16378 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16379
16380         PR target/13666
16381         * config/sparc/sparc.c (function_arg_union_value): New function.
16382         (function_arg): Use it to deal with unions.
16383         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16384         Replace a conditional statement by a simpler one.
16385
16386 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16387
16388         * config/mips/mips.c (mips16_optimize_gp): Delete.
16389         (mips_reorg): Don't call it.
16390
16391 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16392
16393         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16394         (floatunsqihf2): Remove operand 6.
16395         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16396         fix patterns.
16397         (ldi_conditional, ldf_conditional): Validate operands.
16398
16399 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16400
16401         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16402         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16403
16404 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16405
16406         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16407         memory references if TARGET_EXPOSE_LDP nonzero.
16408
16409 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16410
16411         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16412
16413 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16414
16415         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16416         invalid operand combinations.
16417
16418 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16419
16420         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16421         c4x_legitimate_address_p.  Fix post_modify check.
16422
16423         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16424         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16425
16426 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16427
16428         * config/pa/pa-protos.h: Remove the prototype for
16429         hppa_builtin_saveregs.  Add a prototype for
16430         pa_return_in_memory.
16431         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16432         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16433         (TARGET_STRUCT_VALUE_RTX): Likewise.
16434         (TARGET_RETURN_IN_MEMORY): Likewise.
16435         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16436         (pa_struct_value_rtx): Likewise.
16437         (pa_return_in_memory): Likewise.
16438         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16439         PA_STRUCT_VALUE_REGNUM.
16440         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16441         (EXPAND_BUILTIN_SAVEREGS): Remove.
16442         (PROMOTE_PROTOTYPES): Likewise.
16443         (PROMOTE_FUNCTION_RETURN): Likewise.
16444
16445 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16446
16447         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16448         (TARGET_STRUCT_VALUE_RTX): Likewise.
16449         (vax_struct_value_rtx): Likewise.
16450         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16451         VAX_STRUCT_VALUE_REGNUM.
16452         (PROMOTE_PROTOTYPES): Remove.
16453
16454 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16455
16456         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16457
16458 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
16459
16460         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16461         and MIPS64 have HI/LO interlocks.  Update comment.
16462
16463 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16464
16465         * config/stormy16/stormy16-protos.h: Remove the prototype for
16466         xstormy16_setup_incoming_varargs.
16467         * config/stormy16/stormy16.c
16468         (xstormy16_setup_incoming_varargs): Remove.
16469         (xstormy16_return_in_memory): New.
16470         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16471         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16472         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16473         (TARGET_STRUCT_VALUE_RTX): Likewise.
16474         (TARGET_RETURN_IN_MEMORY): Likewise.
16475         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16476         (PROMOTE_FUNCTION_RETURN): Likewise
16477         (PROMOTE_PROTOTYPES): Likewise
16478         (RETURN_IN_MEMORY): Likewise
16479         (STRUCT_VALUE): Likewise
16480         (SETUP_INCOMING_VARARGS): Likewise
16481
16482 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16483
16484         * config/mips/mips.c (mips_offset_within_object_p): New function.
16485         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16486         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16487         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16488
16489 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16490
16491         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16492         (PROMOTE_FUNCTION_RETURN): Likewise.
16493
16494 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16495
16496         * config/mn10300/mn10300-protos.h: Remove the prototype for
16497         mn10300_builtin_saveregs.
16498         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16499         (TARGET_STRUCT_VALUE_RTX): Likewise.
16500         (TARGET_RETURN_IN_MEMORY): Likewise.
16501         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16502         (mn10300_return_in_memory): Likewise.
16503         (mn10300_builtin_saveregs): Make it static.
16504         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16505         (RETURN_IN_MEMORY): Likewise.
16506         (STRUCT_VALUE): Likewise.
16507         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16508
16509 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16510
16511         PR bootstrap/13853
16512         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16513
16514 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16515
16516         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16517         using ccr.
16518
16519 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16520
16521         * config/i860/i860-protos.h: Remove the prototype for
16522         i860_saveregs.
16523         * config/i860/i860.c (i860_saveregs): Make it static.
16524         (i860_struct_value_rtx): New.
16525         (TARGET_STRUCT_VALUE_RTX): Likewise.
16526         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16527         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16528         I860_STRUCT_VALUE_REGNUM.
16529         (EXPAND_BUILTIN_SAVEREGS): Remove.
16530
16531 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16532
16533         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16534         (TARGET_RETURN_IN_MEMORY): Likewise.
16535         (m68hc11_struct_value_rtx): Likewise.
16536         (m68hc11_return_in_memory): Likewise.
16537         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16538         of PROMOTE_PROTOTYPES.
16539         (RETURN_IN_MEMORY): Remove.
16540         (STRUCT_VALUE_REGNUM): Likewise.
16541
16542 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16543
16544         * config/mmix/mmix-protos.h: Remove the prototype for
16545         mmix_setup_incoming_varargs.
16546         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16547         (TARGET_STRUCT_VALUE_RTX): Likewise.
16548         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16549         (mmix_setup_incoming_varargs): Make it static.
16550         (mmix_struct_value_rtx): New.
16551         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16552         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16553         (STRUCT_VALUE_REGNUM): Remove.
16554         (SETUP_INCOMING_VARARGS): Likewise.
16555
16556 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16557
16558         * config/mips/mips-protos.h: Remove the prototypes for
16559         mips_setup_incoming_varargs and mips_return_in_memory.
16560         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16561         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16562         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16563         (TARGET_STRUCT_VALUE_RTX): Likewise.
16564         (TARGET_RETURN_IN_MEMORY): Likewise.
16565         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16566         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16567         (mips_setup_incoming_varargs): Match the prototype for
16568         TARGET_SETUP_INCOMING_VARARGS.
16569         (mips_return_in_memory): Make it static.  Add argument fntype.
16570         (mips_strict_argument_naming): New.
16571         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16572         (PROMOTE_FUNCTION_ARGS): Likewise.
16573         (PROMOTE_FUNCTION_RETURN): Likewise.
16574         (STRUCT_VALUE): Likewise.
16575         (RETURN_IN_MEMORY): Likewise.
16576         (SETUP_INCOMING_VARARGS): Likewise.
16577         (STRICT_ARGUMENT_NAMING): Likewise.
16578
16579 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16580
16581         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16582         (TARGET_RETURN_IN_MEMORY): Likewise.
16583         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16584         (ip2k_return_in_memory): Likewise.
16585         (ip2k_setup_incoming_varargs): Likewise.
16586         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16587         (STRUCT_VALUE): Likewise.
16588         (STRUCT_VALUE_INCOMING): Likewise.
16589         (SETUP_INCOMING_VARARGS): Likewise.
16590
16591 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16592
16593         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16594         (TARGET_RETURN_IN_MEMORY): Likewise.
16595         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16596         (avr_return_in_memory): Remove.
16597         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16598         (STRUCT_VALUE): Likewise.
16599         (STRUCT_VALUE_INCOMING): Likewise.
16600         (STRICT_ARGUMENT_NAMING): Likewise.
16601
16602 2004-01-25  Jan Hubicka  <jh@suse.cz>
16603
16604         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16605
16606 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16607
16608         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16609         (mips_regno_mode_ok_for_base_p): Declare.
16610         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16611         (FRAME_POINTER_REGNUM): Renumber to 78.
16612         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16613         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16614         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16615         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16616         (REG_MODE_OK_FOR_BASE_P): Likewise.
16617         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16618         entry for 77 to "$arg" and entry for 78 to "$frame".
16619         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16620         (mips_reg_mode_ok_for_base_p): Remove.
16621         (mips_regno_mode_ok_for_base_p): New function, derived from old
16622         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16623         restrictions unless we're being strict.
16624         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16625
16626 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16627
16628         * c-common.h: Fix comment typos.
16629         * c-decl.c: Likewise.
16630         * cgraphunit.c: Likewise.
16631         * combine.c: Likewise.
16632         * et-forest.c: Likewise.
16633         * flow.c: Likewise.
16634         * function.c: Likewise.
16635         * ifcvt.c: Likewise.
16636         * integrate.c: Likewise.
16637         * jump.c: Likewise.
16638         * postreload.c: Likewise.
16639         * varray.c: Likewise.
16640
16641 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16642
16643         * doc/frontends.texi: Update copyright.
16644         * doc/gcov.texi: Likewise.
16645         * doc/gty.texi: Likewise.
16646         * doc/sourcebuild.texi: Likewise.
16647         * doc/standards.texi: Likewise.
16648
16649 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16650
16651         PR target/12978
16652         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16653         Remove movstrqi_small because it conflicts with movstrqi_large.
16654
16655 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16656
16657         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16658         (TARGET_STRUCT_VALUE_RTX): Likewise.
16659         (cris_struct_value_rtx): Likewise.
16660         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16661         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16662         STRUCT_VALUE_REGNUM.
16663         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16664
16665 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16666
16667         PR bootstrap/13848
16668         * cse.c (cse_cc_succs): Change the mode of the source expression
16669         as soon as decide we need a new mode.  Don't permit changing modes
16670         if we found a match in a successor block.
16671         (cse_condition_code_reg): Save original mode of source expression
16672         so that we know whether we have to change the mode in other
16673         insns.
16674
16675 2004-01-24  Jan Hubicka  <jh@suse.cz>
16676
16677         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16678         widen_memory_access):  Return early when there is nothing to change.
16679
16680 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16681
16682         * simplify-rtx.c (simplify_relational_operation): Don't
16683         simplify address == constant into address + -constant == 0.
16684
16685 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16686
16687         * gcc.c (process_command): Don't internationalize the
16688         Copyright message.
16689         * mips-tfile.c (main): Likewise.
16690
16691 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16692
16693         * cse.c: (cse_cc_succs) Fix comparison warning.
16694
16695 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16696
16697         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16698
16699 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16700
16701         * config/h8300/h8300-protos.h: Provide prototypes for
16702         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16703         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16704         (h8300_rtx_ok_for_base_p): Likewise.
16705         (h8300_legitimate_address_p): Likewise.
16706         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16707         h8300_legitimate_constant_p.
16708         (RTX_OK_FOR_BASE_P): Remove.
16709         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16710
16711 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16712
16713         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16714         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16715         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16716         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16717         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16718         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16719         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16720         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16721
16722 2004-01-24  Jan Hubicka  <jh@suse.cz>
16723
16724         * cselib.c (remove_useless_values):  Do not access discarded values.
16725
16726 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16727
16728         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16729         arrays.
16730
16731 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16732
16733         * recog.c: Fix a typo in copyright.
16734
16735 2004-01-23  Andrew Pinski  <apinski@apple.com>
16736
16737         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16738         (call_value): Likewise.
16739
16740 2004-01-23  Richard Henderson  <rth@redhat.com>
16741
16742         PR opt/12941
16743         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16744         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16745         if SHIFT_COUNT_TRUNCATED is set.
16746
16747 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16748
16749         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16750         separate real and imaginary parts.
16751         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16752
16753 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16754
16755         PR target/13674
16756         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16757         loading into GPR.
16758
16759 2004-01-23  Jan Hubicka  <jh@suse.cz>
16760
16761         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16762         change.
16763
16764         * alloc-pool.c (align_four): Kill.
16765         (create_alloc_pool): Align size to eight.
16766         (free_alloc_pool, free_pool): Invalidate deallocated data.
16767
16768 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16769
16770         PR gcc/1532
16771         * cse.c (cse_change_cc_mode): New static function.
16772         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16773         (cse_condition_code_reg): New function.
16774         * rtl.h (cse_condition_code_reg): Declare.
16775         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16776         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16777         cc_modes_compatible.
16778         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16779         (TARGET_CC_MODES_COMPATIBLE): Define.
16780         (TARGET_INITIALIZER): Add new initializers.
16781         * targhooks.c (default_cc_modes_compatible): New function.
16782         * targhooks.c (default_cc_modes_compatible): Declare.
16783         * hooks.c (hook_bool_intp_intp_false): New function.
16784         * hooks.h (hook_bool_intp_intp_false): Declare.
16785         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16786         (TARGET_CC_MODES_COMPATIBLE): Define.
16787         (ix86_fixed_condition_code_regs): New static function.
16788         (ix86_cc_modes_compatible): Likewise.
16789         * doc/tm.texi (Condition Code): Document new hooks.
16790
16791 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16792
16793         * fixinc/inclhack.def (bad_lval): Renamed to ...
16794         (alpha_bad_lval): ... this.
16795         Removed file list.
16796         Restrict to alpha*-dec-osf*.
16797         * fixinc/fixincl.x: Regenerate.
16798         * fixinc/tests/base/dirent.h: Remove, moving test ...
16799         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16800
16801 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16802
16803         PR c/13814
16804         * c-decl.c (diagnose_mismatched_decls): Also discard a
16805         built-in if we encounter an old-style definition with the
16806         same name.
16807
16808 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16809
16810         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16811         set to default{32,64}.
16812
16813 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16814
16815         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16816         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16817
16818 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16819             Olivier Hainque  <hainque@act-europe.fr>
16820
16821         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16822         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16823
16824 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16825
16826         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16827         size for minipool references.
16828
16829 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16830
16831         * real.c (real_floor, real_ceil): Tweak to allow input and output
16832         arguments to overlap.
16833         (real_round): New function to implement round(3m) semantics.
16834         * real.h (real_round): Prototype here.
16835         * builtins.c (fold_builtin_round): New function to constant fold
16836         round, roundf and roundl.
16837         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16838
16839 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16840
16841         PR optimization/13819
16842         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16843         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16844         (sh_handle_sp_switch_attribute): Remove warning.
16845
16846 2004-01-23  Jan Hubicka  <jh@suse.cz>
16847
16848         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16849
16850 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16851
16852         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16853         may or may not return non-NIL.
16854         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16855         check CANNOT_CHANGE_MODE_CLASS
16856
16857 2004-01-23  Jan Hubicka  <jh@suse.cz>
16858
16859         * basic-block.h (PROP_POSTRELOAD): New macro.
16860         (CLEANUP_LOG_LINKS): New.
16861         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16862         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16863
16864         * cselib.c (value_pool): New.
16865         (new_cselib_val): Use pool.
16866         (cselib_init): Initialize value_pool
16867         (cselib_finish): Free pool.
16868
16869 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16870
16871         * config/sparc/sparc.c (scan_record_type): New function.
16872         (function_arg_slotno): Use it to determine which kinds of
16873         registers the record can be passed in.
16874
16875 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16876
16877         * config/pa/fptr.c: Fix old-style definition.
16878
16879 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16880
16881         PR optimization/13724
16882         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16883         represents the zero bits produced by a ZERO_EXTEND operation.
16884
16885 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16886
16887         PR optimization/13821
16888         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16889         correctly calculate the lowpart offset of the contracted subreg.
16890
16891 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16892
16893         * doc/invoke.texi (Optimize Options): Note that --param arguments
16894         are subject to change without notice.
16895
16896 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16897
16898         * config.gcc (mips-sgi-irix6*o32): Removed.
16899         * config/mips/iris6-o32-as.h: Likewise.
16900         * config/mips/iris6-o32-gas.h: Likewise.
16901         * config/mips/iris6-o32.h: Likewise.
16902
16903 2004-01-22  Jan Hubicka  <jh@suse.cz>
16904
16905         * cfgcleanup.c (first_pass): New static variable.
16906         (try_forward_edges):  Add work limiting check for threading.
16907         (try_crossjump_bb):  Add work limiting check for crossjumping.
16908         (try_optimize_cfg):  Maintain first pass variable.
16909
16910 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16911
16912         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16913         handles complex and vector modes.
16914
16915 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16916
16917         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16918         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16919         (STRICT): Likewise.
16920
16921 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16922
16923         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16924         (genrtl_for_stmt): Remove emit_nop calls.
16925
16926 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16927
16928         PR target/13713
16929         PR target/13324
16930         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16931         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16932         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16933
16934 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16935
16936         * config/arm/arm.c: Include "debug.h".
16937         (thumb_pushpop): Take two new arguments.  Add some commentary.
16938         Output frame information when pushing.
16939         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16940         thumb_pushpop.
16941         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16942         offset, and pass it to thumb_pushpop.  Output CFI information.
16943         (thumb_expand_prologue): Add some frame-related markers and notes.
16944
16945 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16946
16947         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16948         for TARGET_64BIT.
16949         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16950         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16951
16952 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16953             Paolo Bonzini  <bonzini@gnu.org>
16954
16955         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16956         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16957         * rtl.h (subreg_lsb_1): Prototype here.
16958         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16959         sign extensions.
16960
16961 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16962
16963         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16964         macro need not be defined if jump-tables should contain
16965         relative addresses only when -fPIC or -fPIC is in effect.
16966
16967 2004-01-22  Jan Hubicka  <jh@suse.cz>
16968
16969         * alias.c (reg_base_value): Turn into varray.
16970         (reg_base_value_size): Kill.
16971         (old_reg_base_value): New deletable varray.
16972         (alias_invariant_size): New variable.
16973         (REG_BASE_VALUE): Update to use varray.
16974         (find_base_value): Likewise.
16975         (record_set): Likewise.
16976         (record_base_value): Likewise.
16977         (memrefs_conflict_p): Likewise.
16978         (record_set): Likewise
16979         (record_base_value): Likewise.
16980         (memrefs_conflict_p): Use alias_invariant_size.
16981         (init_alias_analysis): Use varray; set alias_invariant_size;
16982         rescale other arrays to be sized by maxreg.
16983         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16984
16985 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16986
16987         * config/sparc/sparc.c (function_arg_slotno): Use
16988         FLOAT_TYPE_P to detect FP fields in structures.
16989         (function_arg_record_value_1): Likewise.
16990         (function_arg_record_value_2): Likewise.
16991
16992 2004-01-22  Jan Hubicka  <jh@suse.cz>
16993
16994         * function.c (allocate_struct_function): Do not initialize expr, emit
16995         and varasm.
16996         (prepare_function_start): Do it here.
16997         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16998
16999 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
17000
17001         PR target/13559
17002         * config/sparc/sparc.c (function_arg_record_value_3): Revert
17003         to 'word_mode' once the first slot has been filled.
17004
17005 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
17006
17007         * config/sparc/sparc.c (function_arg_record_value_1): Fix
17008         computation of the number of integer registers required.
17009
17010 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17011
17012         * config/i386/i386.md: Simplify certain comparisons of
17013         const_int.
17014
17015 2004-01-21  Andrew Pinski  <apinski@apple.com>
17016
17017         PR target/13785
17018         * config/rs6000/rs6000.md (call_value): Force operand
17019         1 not operand 0 into a register.
17020
17021 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17022
17023         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
17024         unwind-dw2-fde.h: Update copyright.
17025
17026 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17027
17028         * pa-protos.h: Update copyright.
17029         * pa.h: Likewise.
17030         * pa.md: Likewise.
17031
17032 2004-01-21  Caroline Tice  <ctice@apple.com>
17033
17034         PR target/12308
17035         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
17036         flags register.
17037         (fix_truncdfdi2): Likewise.
17038         (fix_truncsfdi2): Likewise.
17039         (*fix_truncdi_1): Likewise.
17040         (fix_truncxfsi2): Likewise.
17041         (fix_truncdfsi2): Likewise.
17042         (fix_truncsfsi2): Likewise.
17043         (*fix_truncsi_1): Likewise.
17044         (fix_truncxfhi2): Likewise.
17045         (fix_truncdfhi2): Likewise.
17046         (fix_truncsfhi2): Likewise.
17047         (*fix_trunchi_1): Likewise.
17048
17049 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17050
17051         * alias.c, basic-block.h, c-common.c, c-common.h,
17052         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
17053         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
17054         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
17055         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
17056         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
17057         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
17058         genautomata.c, genconditions.c, genemit.c, genflags.c,
17059         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
17060         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
17061         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
17062         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
17063         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
17064         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
17065         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
17066         unwind.h, varray.c, varray.h: Update copyright.
17067
17068 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17069
17070         * config/h8300/coff.h: Update copyright.
17071         * config/h8300/elf.h: Likewise.
17072         * config/h8300/h8300-protos.h: Likewise.
17073         * config/h8300/h8300.c: Likewise.
17074         * config/h8300/h8300.h: Likewise.
17075         * config/h8300/h8300.md: Likewise.
17076
17077 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17078
17079         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
17080         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
17081         ultrix_unistd): New hacks.
17082         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
17083         ULTRIX_CONST2_CHECK): Add checks.
17084         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
17085         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
17086         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
17087         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
17088         * fixinc/tests/base/locale.h: New file.
17089         * fixinc/fixincl.x: Rebuilt.
17090
17091 2004-01-21  Andreas Jaeger  <aj@suse.de>
17092             Michael Matz  <matz@suse.de>
17093
17094         * doc/extend.texi (Extended Asm): Clarify memory clobber.
17095
17096 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
17097
17098         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
17099         _Jv_RegisterClasses through a function pointer.
17100
17101 2004-01-21  Falk Hueffner  <falk@debian.org>
17102
17103         PR target/12898
17104         * config/alpha/alpha.c (alpha_emit_set_const_1): If
17105         no_new_pseudos, use gen_rtx_SET directly for SImode constants
17106         which need multiple instructions to emit.
17107
17108 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
17109
17110         * config/m32r/m32r.h (CPP_SPEC): Define.
17111
17112 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
17113
17114         * c-decl.c (merge_decls): Kill different_binding_level and
17115         different_tu arguments; simplify throughout.
17116         (duplicate_decls): Likewise.
17117         (pushdecl, merge_translation_unit_decls): Update calls to
17118         duplicate_decls.
17119
17120 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17121
17122         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
17123         $(SYSTEM_H).
17124         (print-rtl1.o): Depend on $(SYSTEM_H).
17125
17126 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17127
17128         PR bootstrap/12730
17129         * configure.ac: Delete definition and subsitution of docdir.
17130         Add info, man, srcman and srcinfo to target hooks. Create doc/
17131         directory.
17132         * configure: Regenerate.
17133         * Makefile.in: Don't substitute docdir and delete all references
17134         throughout.
17135         (MAKEINFOFLAGS): Define.
17136         (stmp-docobjdir): Delete.
17137         (INFOFILES, MANFILES): Define.
17138         (info): Call lang.info, srcinfo and lang.srcinfo.
17139         (generated-manpages): Call lang.man, srcman and lang.srcman.
17140         (srcinfo, srcman): New rules to copy back files to source directory.
17141         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
17142         (install-man): Revamp rule.
17143         (clean): Update dvi directory.
17144         (distclean): Delete TAGS from front end directorys.
17145         (maintainer-clean): Delete all document files in source directory.
17146
17147         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
17148         (objc.srcman, objc.srcinfo): Likewise.
17149
17150 2004-01-20  Bruce Korb  <bkorb@gnu.org>
17151
17152         * fixinc/inclhack.def(math_exception): bypass only for glibc.
17153         (matherr_decl): rename & relocate as exception_structure.
17154         This fix must precede the math_exception fix.
17155
17156 2004-01-20  Roger Sayle  <roger@eyesopen.com>
17157
17158         * fold-const.c (fold_convert): Rename to fold_convert_const.
17159         (fold_convert_const): Change arguments to take a tree_code,
17160         a type and the operand/expression to be converted.  Return
17161         NULL_TREE if no simplification is possible.  Add support for
17162         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
17163         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
17164         Adjust call to fold_convert to match new fold_convert_const.
17165         Avoid modifying the tree passed to fold in-place.
17166
17167 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
17168
17169         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
17170         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
17171         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
17172
17173 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17174
17175         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
17176         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
17177         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
17178         (emit_move_sequence): Check scratch_reg first in various if statements.
17179         Extend source simplification to handle all 64-bit CONST_INTs.
17180         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
17181         frame size.
17182         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
17183         frame offset calculations.
17184         * pa.h (NEW_HP_ASSEMBLER): Add comment.
17185         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
17186         LEGITIMATE_64BIT_CONST_INT_P): Define.
17187         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
17188         any CONST_INT as legitimate during and after reload.
17189         (VAL_32_BITS_P, INT_32_BITS): Define.
17190         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
17191
17192 2004-01-20  Jan Hubicka  <jh@suse.cz>
17193
17194         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
17195         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
17196         containing hard regs are shared.
17197         (gen_hard_reg_clobber): New function.
17198         (hard_reg_clobbers): New array.
17199         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
17200         (copy_rtx): Do not copy clobbers containing hard regs.
17201         * rtl.h (gen_hard_reg_clobber): Declare.
17202
17203 2004-01-20  Jan Hubicka  <jh@suse.cz>
17204
17205         * varray.c:  Include hashtab.h
17206         (varray_descriptor): New structure.
17207         (hash_descriptor, eq_descriptor, varray_descriptor,
17208         print_statistics): New static functions
17209         (varray_init, varray_grow): Update statistics
17210         (dump_varray_statistics): New function.
17211         * varray.h (dump_varray_statistics): Declare.
17212         * toplev.c (finalize): Call it.
17213         * Makefile.in (varray.o): Add dependency.
17214
17215 2004-01-20  Jan Hubicka  <jh@suse.cz>
17216
17217         * cselib.c: Include alloc-pool.h
17218         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17219         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17220         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17221         unchain_one_elt_loc_list_pool, unchain_one_value,
17222         new_cselib_val): Simplify using allocpool.
17223         (cselib_init): Initialize allocpools.
17224         (cselib_finish): Finish allocpools.
17225         * Makefile.in (cselib.o): Depend on alloc-pool.h
17226
17227 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
17228
17229         * config/mips/mips.c (mips_load_call_address): Make the call insn
17230         use $gp if it could be calling a lazy binding stub.
17231
17232 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17233
17234         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17235         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17236         (TARGET_STRUCT_VALUE_RTX): Likewise.
17237         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17238         (PROMOTE_FUNCTION_RETURN): Remove.
17239         (STRUCT_VALUE): Remove.
17240
17241 2004-01-20  Denis Chertykov  <denisc@overta.ru>
17242
17243         PR bootstrap/13735
17244         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17245         register as pointer after reload.
17246
17247 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17248
17249         PR optimization/12440
17250         * loop.c: Include ggc.h.
17251         (loop_optimize): Run garbage collector between optimization of loops.
17252         * Makefile.in (loop.o): Add GGC_H dependency.
17253
17254 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
17255
17256         * gcc/config/rs6000/rs6000.c (function_arg) Handle
17257         vector register special in function without prototype.
17258         (function_arg_advance): Vector parameters get always
17259         GPRs allocated for the linux64 target.
17260
17261 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17262
17263         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17264         not TARGET_M32RX_MASK.
17265
17266 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
17267
17268         PR target/13557
17269         * config/sparc/sparc.c (function_arg): Reorder the cases.
17270
17271 2004-01-19  Per Bothner  <per@bothner.com>
17272
17273         Move cpp_reader's line_maps field to a shared global.
17274         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
17275         and change the type to a pointer rather than a struct.
17276         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
17277         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17278         Likewise.
17279         * cppfiles.c (validate_pch):  Likewise.
17280         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17281         Likewise.
17282         * cpperror.c (print_location):  Likewise.
17283         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
17284         * cppinit.c (cpp_create_reader):  Handle new parameter.
17285         (cpp_destroy):  Don't free line_maps - that's no longer our job.
17286         * input.h (line_table):  New variable.
17287         * toplev.c (line_table):  Declare variable.
17288         (general_init):  Initialize line_table.
17289         * c-opts.c (c_common_init_options):  Pass line_table to
17290         cpp_create_reader.
17291         * fix-header.c (read_scan_file):  New local variable line_table.
17292         Initialize, and pass it to cpp_create_reader.
17293         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
17294         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
17295
17296 2004-01-19  Per Bothner  <per@bothner.com>
17297
17298         Implement a cache for linemap_lookup.
17299         * line-map.h (struct_line_maps):  Add cache field.
17300         * line-map.c (linemap_init):  Zero cache field.
17301         (linemap_add):  Set cache field to offset of newly allocated map.
17302         (linemap_lookup):  Use and set cache field.
17303
17304 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17305
17306         PR optimization/13567
17307         * cse.c (cse_basic_block): Call cse_insn with a non-null
17308         libcall_insn for the last SET insn of a no-confilict block.
17309
17310 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17311
17312         * Makefile.in (target_noncanonical, program_transform_name): Use
17313         immediate define instead of deferred.
17314         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17315         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17316         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17317         deferred backquote.
17318
17319 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
17320
17321         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17322         true unconditionally.
17323         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17324         Remove.
17325         (build_unary_op, build_modify_expr): Don't handle extended
17326         lvalues.
17327         (build_component_ref, build_conditional_expr): Call non_lvalue
17328         instead of pedantic_non_lvalue.
17329         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17330         * fold-const.c (fold): Don't check pedantic directly for
17331         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17332         passed to pedantic_non_lvalue.
17333         * doc/extend.texi: Remove documentation of extended lvalues.
17334
17335 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17336
17337         PR optimization/5263
17338         * simplify-rtx.c (associative_constant_p): Delete.
17339         (simplify_associative_operation): Rewrite to linearize terms, and
17340         attempt to simplify new term against both left and right subterms.
17341         (simplify_binary_operation): Call swap_commutative_operands_p on
17342         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17343         trueop0 and trueop1 down to where first needed.
17344         (simplify_relational_operation): Likewise.
17345         * rtlanal.c (commutative_operand_precedence): Also order constant
17346         operands using avoid_constant_pool_reference.
17347
17348 2004-01-19  Richard Henderson  <rth@redhat.com>
17349
17350         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17351         don't check memory mode.
17352         (unaligned_memory_operand): Likewise.
17353         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17354         abort for op0 not MEM.
17355
17356         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17357         is not a reg, copy to a scratch first.
17358         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17359         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17360         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17361         (reload_inqi, reload_inhi): Fix mode of op0.
17362         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17363         reload_outhi_help): Likewise.  Use define_insn_and_split.
17364
17365         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17366         as well as $29 dead.
17367
17368 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17369
17370         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17371         "tls_object" for thread-local objects.
17372         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17373         "#tls" for thread-local sections.
17374         * configure.ac (thread-local checks): Specify --fatal-warnings in
17375         every binutils-specific checks.  For sparc*-*-*, test whether the
17376         OS is Solaris and the tools are native and act accordingly.
17377         * configure: Rebuild.
17378
17379 2004-01-19  Jeff Law  <law@redhat.com>
17380
17381         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17382         Jerry Quinn and Petur Runolfsson.
17383
17384 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17385
17386         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17387         size, don't use the larger zero-extending loads.
17388
17389 2004-01-19  Richard Henderson  <rth@redhat.com>
17390
17391         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17392         * alpha.md (UNSPEC_NT_LDA): Remove.
17393         (UNSPEC_CVTLQ, cvtlq): New.
17394         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17395         (extendsidi2_fix): Remove.
17396         (extendsidi2 splitter): Use cvtlq.
17397         (extendsidi2 fp peepholes): Remove.
17398         (cvtql): Use SFmode instead of SImode.
17399         (fix_trunc?fsi): Update to match.
17400         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17401         (movsi): Rename from movsi_nofix, remove f alternatives.
17402         (movsi_nt_vms): Similarly.
17403         (movsi_fix, movsi_nt_vms_fix): Remove.
17404         (nt_lda): Remove.
17405         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17406
17407 2004-01-19  Jan Hubicka  <jh@suse.cz>
17408
17409         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17410         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17411         list.
17412         (cgraph_remove_unreachable_nodes): New function
17413         (cgraph_decide_inlining_of_small_function): Fix pasto.
17414         (cgraph_decide_inlining_incrementally): Fix pasto.
17415         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17416
17417 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17418
17419         * gengtype.c (header_file): Make it static.
17420         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17421         * gengtype.h (header_file): No longer extern.
17422
17423 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17424
17425         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17426         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17427         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17428
17429 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17430
17431         * stmt.c (HAVE_casesi): Define it not already defined.
17432         (HAVE_tablejump): Likewise.
17433         (expand_end_case_type): Resort to the binary tree method if
17434         neither casesi or tablejump is available.
17435
17436 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17437
17438         * final.c (final_scan_insn): Make non-static again.
17439         * output.h (final_scan_insn): Re-add prototype.
17440         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17441         to final_scan_insn call.
17442         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17443         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17444         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17445         * config/sh/sh.c (print_slot): Likewise.
17446         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17447         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17448
17449 2004-01-18  Jan Hubicka  <jh@suse.cz>
17450
17451         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17452         * cfgcleanup.c (try_optimize_cfg): Use it.
17453         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17454         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17455         Kill hack.
17456         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17457
17458         Revert:
17459         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17460
17461                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17462                 even after reload, just don't remove the actual jump tables.
17463
17464 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17465
17466         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17467
17468 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17469
17470         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17471         the size of a pointer in bytes.
17472
17473 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17474
17475         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17476         live "next" variable, which could lead to an infinite loop.
17477
17478 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17479
17480         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17481         block.
17482
17483         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17484         Check for NULL in the chain and remove repeated code.
17485
17486 2004-01-18  Jan Hubicka  <jh@suse.cz>
17487
17488         * coverage.c (checksum_string): Rename to ...
17489         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17490         names containing random number and zero the number out in order to get
17491         match.
17492
17493 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17494
17495         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17496
17497 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17498
17499         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17500         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17501         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17502         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17503         doc/trouble.texi: Remove trailing whitespace.
17504
17505 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17506
17507         PR target/7618
17508         * config/mips/mips.c: Include cfglayout.h.
17509         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17510         (mips_unspec_offset_high): Add temporary register argument.
17511         (mips_load_call_address): New function, split out from...
17512         (mips_expand_call): ...here.
17513         (mips_output_cplocal): New function.
17514         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17515         (mips_emit_loadgp): New function, split out from...
17516         (mips_expand_prologue): ...here.
17517         (mips_output_mi_thunk): New function.
17518
17519 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17520
17521         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17522         mcpu32): Remove redundant checks for implied target predefines.
17523
17524 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17525
17526         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17527         Return type is unsigned int not int.
17528         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17529         Likewise.
17530
17531 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17532
17533         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17534         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17535         "GNU/Linux" and "Microsoft Windows" terminology.
17536
17537 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17538
17539         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17540         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17541         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17542         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17543         @smallexample instead of @example.
17544
17545 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17546
17547         * objc/objc-act.c (build_objc_method_call): Use target
17548         hooks instead of macros to determine if ..._stret
17549         dispatchers should be used (NeXT runtime only).
17550
17551 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17552
17553         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17554         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17555
17556 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17557
17558         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17559         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17560         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17561         macros.
17562         * reload1.c (emit_reload_insns): Use them.
17563         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17564         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17565         for NULL PATTERN.
17566
17567 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17568
17569         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17570         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17571         a line note after the prologue.  Make static.
17572         (line_note_exists): Remove.
17573         (final): Don't initialize line_note_exists.  Update call to
17574         final_scan_insn.
17575         * output.h (final_scan_insn): Remove prologue.
17576         * function.c (set_insn_locators): Update comment.
17577         (thread_prologue_and_epilogue_insns): Add a comment.
17578
17579 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17580
17581         PR target/10781
17582         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17583         Prototype.
17584         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17585         New function.
17586         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17587         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17588         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17589
17590 2004-01-17  Jan Hubicka  <jh@suse.cz>
17591
17592         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17593         commit.
17594
17595         * toplev.c (HAVE_conditional_execution): Provide default.
17596         (rest_of_handle_reorder_blocks): For conditional_execution target
17597         update liveness once after all transformations
17598         (rest_of_compilation): Do crossjumping before ce3.
17599
17600 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17601
17602         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17603         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17604         for PCH.
17605         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17606         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17607         (get_TOC_alias_set): Mark 'set' for PCH.
17608
17609 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17610
17611         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17612         even after reload, just don't remove the actual jump tables.
17613
17614 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17615
17616         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17617         Remove checks for is_ada() and TREE_UNSIGNED.
17618         (subrange_type_die): Emit a byte_size attribute if the subrange
17619         type size is different from the base type size.
17620         (modified_type_die): Replace call to is_ada_subrange_type() by
17621         call to is_subrange_type().
17622
17623 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17624
17625         * config/sh/sh.c: Include ggc.h.
17626
17627 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17628
17629         * Makefile.in (MD5_H): New.
17630         (fold-const.o): Depend on md5.h.
17631         (dwarf2out.o): Likewise.
17632         (cppfiles.o): Likewise.
17633         * cppfiles.c: Include md5.h.
17634         (should_stack_file): Check against list read from PCH file.
17635         (struct pchf_data): New.
17636         (pchf): New variable.
17637         (struct pchf_adder_info): New.
17638         (pchf_adder): New.
17639         (pchf_save_compare): New.
17640         (_cpp_save_file_entries): New.
17641         (_cpp_read_file_entries): New.
17642         (struct pchf_compare_data): New.
17643         (pchf_compare): New.
17644         (check_file_against_entries): New.
17645         * cpphash.h (_cpp_save_file_entries): Prototype.
17646         (_cpp_read_file_entries): Prototype.
17647         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17648         (cpp_read_state): Read the list of headers.
17649
17650 2004-01-17  Jan Hubicka  <jh@suse.cz>
17651
17652         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17653         builtin_expect specially.
17654         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17655         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17656         * invoke.texi (max-inline-insns-single): Set to 100.
17657         (large-function-insns): Set to 3000.
17658
17659 2004-01-16  Eric Christopher  <echristo@redhat.com>
17660             Chandrakala Chavva <cchavva@redhat.com>
17661
17662         * cppcharset.c (one_iso88591_to_utf8): New function.
17663         (convert_iso88591_utf8): Ditto. Use.
17664         (conversion_tab): Use.
17665         (_cpp_input_to_utf8): New function.
17666         (_cpp_init_iconv_buffer): Ditto.
17667         (_cpp_close_iconv_buffer): Ditto.
17668         * cpphash.h: Prototype new functions.
17669         (cpp_buffer): Add input_cset_desc.
17670         * cppinit.c: Add input_charset default.
17671         * cpplib.c (cpp_push_buffer): Support init and
17672         close of iconv.
17673         * cpplib.h (cpp_options): Add input_charset.
17674
17675 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17676
17677         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17678         * config/alpha/unicosmk.h: Remove a commented-out definition
17679         of ASM_OUTPUT_SECTION_NAME.
17680         * config/stormy16/stormy16.h: Likewise.
17681
17682 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17683
17684         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17685         (alpha___extern_prefix_sys_stat): ... this.
17686         Apply to <sys/mount.h>, too.
17687         Tweak to match more variations.
17688         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17689
17690         * fixinc/inclhack.def (alpha___extern_prefix,
17691         alpha___extern_prefix_standards): New hacks to obey
17692         __PRAGMA_EXTERN_PREFIX.
17693         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17694         test.
17695         * fixinc/tests/base/standards.h: Likewise.
17696
17697         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17698         variations.
17699         New testcase.
17700         * fixinc/tests/base/pthread.h: Handle it.
17701
17702         * fixincl/inclhack.def (bad_lval): Sort file list.
17703         Add many missing files up to Tru64 UNIX V5.1B.
17704         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17705         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17706         order.
17707
17708         * fixinc/fixincl.x: Regenerate.
17709
17710 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17711
17712         * version.c (version_string): Change to 3.5.0.
17713         * doc/include/gcc-common.texi (version-GCC): Likewise.
17714
17715 2004-01-16  Jan Hubicka  <jh@suse.cz>
17716
17717         * i386.md (load_tp_di): Fix pasto.
17718
17719         PR opt/13608
17720         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17721
17722         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17723         pp_c_character_constant, pp_c_floating_constant,
17724         pp_c_additive_expression, pp_c_shift_expression,
17725         pp_c_equality_expression, pp_c_and_expression,
17726         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17727         pp_c_logical_and_expression): Remove inline modifier.
17728         * dwarf2out.c (get_AT): Likewise.
17729         * et-forest.c (et_splay): Likewise.
17730         * ra.h (ra_alloc, ra_calloc): Likewise
17731
17732 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17733
17734         * config/frv/frv-protos.h: Fix comment formatting.
17735         * config/frv/frv.c: Likewise.
17736         * config/frv/frv.h: Likewise.
17737         * config/frv/frv.md: Likewise.
17738         * config/frv/frvbegin.c: Likewise.
17739         * config/frv/frvend.c: Likewise.
17740
17741 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17742
17743         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17744         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17745         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17746         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17747
17748 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17749
17750         PR 11864
17751         * postreload.c (reload_cse_simplify_operands): Don't remove
17752         implicit extension from LOAD_EXTEND_OP.
17753
17754 2004-01-16  Jan Hubicka  <jh@suse.cz>
17755
17756         PR opt/11350
17757         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17758         after reload.
17759         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17760         rtl_try_redirect_by_replacing_branch): Likewise.
17761
17762 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17763
17764         PR pch/13689
17765         * alias.c (struct alias_set_entry): Mark for GC.
17766         (alias_sets): Make static, mark for GC.
17767         (record_alias_subset): Use GC to allocate alias structures.
17768         * varray.c (element): Make generic varrays GCed.
17769
17770         PR pch/13361
17771         * c-typeck.c (constructor_asmspec): Delete.
17772         (struct initializer_stack): Delete field 'asmspec'.
17773         (start_init): Delete saving of asmspec.
17774         (finish_init): Don't update constructor_asmspec.
17775         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17776         * stmt.c (expand_asm): Duplicate strings from tree.
17777         (expand_asm_operands): Likewise.
17778         * tree.c (tree_size): Update computation of size of STRING_CST.
17779         (make_node): Don't make STRING_CST nodes.
17780         (build_string): Allocate string with tree node.
17781         * tree.def (STRING_CST): Update comment.
17782         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17783         (tree_string): Place contents of string in tree node.
17784         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17785         from tree.
17786
17787         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17788         altivec operands.
17789
17790 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17791
17792         * c-common.h: Fix comment formatting.
17793         * c-cppbuiltin.c: Likewise.
17794         * c-pragma.c: Likewise.
17795         * calls.c: Likewise.
17796         * collect2.c: Likewise.
17797         * cppcharset.c: Likewise.
17798         * cpptrad.c: Likewise.
17799         * dbxout.c: Likewise.
17800         * defaults.h: Likewise.
17801         * dwarf2out.c: Likewise.
17802         * fold-const.c: Likewise.
17803         * genautomata.c: Likewise.
17804         * genconditions.c: Likewise.
17805         * genflags.c: Likewise.
17806         * gengtype.c: Likewise.
17807         * integrate.c: Likewise.
17808         * loop.c: Likewise.
17809         * predict.c: Likewise.
17810         * sdbout.c: Likewise.
17811
17812 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17813
17814         * config/ia64/ia64.md (*movti_internal): C output template
17815         extracted to ia64.c.
17816         (*movti_internal_reg): Delete.
17817         (reload_inti, reload_outti): Use the correct mode on operand 2
17818         in the first place, don't fix it up in the output template.
17819         (movtf, reload_ointf, reload_outtf): New expanders.
17820         (*movtf_internal): New define_insn_and_split.
17821         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17822         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17823         (ia64_split_tmode_move): New function, body mostly pulled
17824         from ia64.md:*movti_internal.
17825         (ia64_function_arg_words): New function, extracted common
17826         logic from ia64_function_arg et seq.
17827         (ia64_function_arg_offset): Likewise.  Handle correctly the
17828         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17829         (ia64_function_arg, ia64_function_arg_partial_nregs)
17830         (ia64_function_arg_advance): Use ia64_function_arg_words and
17831         ia64_function_arg_offset.
17832         (ia64_function_value): TCmode does not go in float regs.
17833         (ia64_secondary_reload_class): Also handle TFmode.
17834         * config/ia64/ia64-protos.h: Remove prototype for
17835         ia64_split_timode; add prototype for ia64_split_tmode_move.
17836
17837 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17838
17839         * Makefile.in (MAINT): Make it an immediate assignment.
17840
17841 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17842
17843         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17844
17845 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17846
17847         * config/h8300/coff.h: Replace Hitachi with Renesas.
17848         * config/h8300/elf.h: Likewise.
17849         * config/h8300/h8300-protos.h: Likewise.
17850         * config/h8300/h8300.c: Likewise.
17851         * config/h8300/h8300.h: Likewise.
17852         * config/h8300/h8300.md: Likewise.
17853         * config/h8300/lib1funcs.asm: Likewise.
17854
17855 2004-01-15  Andrew Pinski  <apinski@apple.com>
17856
17857         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17858         around it.
17859
17860 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17861
17862         * config/h8300/h8300.c (h8300_return_in_memory): New.
17863         (TARGET_STRUCT_VALUE_RTX): Likewise.
17864         (TARGET_RETURN_IN_MEMORY): Likewise.
17865         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17866         (RETURN_IN_MEMORY): Likewise.
17867
17868 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17869
17870         PR optimization/13375
17871         * gcse.c (handle_avail_expr): Just return if the source is not a
17872         single set.
17873
17874 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17875             Daniel Jacobowitz  <drow@mvista.com>
17876
17877         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17878         (EQUIV): Define.
17879         (ARM_FUNC_ALIAS): New macro.
17880         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17881         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17882
17883 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17884
17885         PR optimization/12372
17886         * calls.c (expand_call): Add call_fusage data for stack arguments in
17887         constant calls.
17888
17889 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17890
17891         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17892         (rs6000_elf_declare_function_name): Formatting.
17893         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17894
17895 2004-01-15  Jan Hubicka  <jh@suse.cz>
17896
17897         PR bootstrap/13692
17898         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17899         previous patch.
17900
17901 2004-01-15  Richard Henderson  <rth@redhat.com>
17902
17903         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17904         integer regs of the same call-savedness.
17905
17906 2004-01-15  Andreas Schwab  <schwab@suse.de>
17907
17908         PR bootstrap/13562
17909         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17910         status for NOTB/NOTW/NEGW methods.
17911
17912 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17913
17914         * doc/invoke.texi: Update dump file names.  Fix a typo.
17915
17916 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17917
17918         * builtins.c (expand_builtin_va_end): Don't use
17919         EXPAND_BUILTIN_VA_END.
17920         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17921         * config/d30v/d30v.h: Remove a commented-out definition of
17922         EXPAND_BUILTIN_VA_END.
17923         * config/stormy16/stormy16.h: Likewise.
17924
17925 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17926
17927         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17928         * targhooks.c (default_struct_value_rtx): Don't use
17929         STRUCT_VALUE_INCOMING_REGNUM.
17930
17931 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17932
17933         PR bootstrap/12744
17934         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17935         GENINSRC and not parsedir.  Define srcextra as a langhook.
17936         * configure: Regenerate.
17937         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17938         parsedir and delete all references throughout.  Conditionally define
17939         rule for srcextra dependent on GENINSRC.
17940         (stmp-docobjdir): Delete.
17941         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17942         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17943         and gengtype-yacc.h back to source directory.
17944         (maintainer-clean): Delete all parse files in source directory.
17945         (distclean): Delete generated files.
17946
17947         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17948         (objc-parse.c, objc-parse.y): Don't use parsedir.
17949         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17950         directory if requested.
17951         (po-generated): Don't use parsedir.
17952         (objc.maintainer-clean): Delete above files from source directory.
17953
17954 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17955
17956         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17957
17958 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17959
17960         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17961         TARGET_RETURN_IN_MEMORY.
17962
17963 2004-01-15  Jan Hubicka  <jh@suse.cz>
17964
17965         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17966         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17967         functions accepting SSE arguments
17968         (function_arg): Warn only when asked to warn.
17969         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17970
17971 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17972
17973         * c-parse.in (stmts_and_decls): Make label at end of compound
17974         statement a hard error.
17975
17976 2004-01-14  Jan Hubicka  <jh@suse.cz>
17977
17978         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17979         * cgraph.h (cgraph_local_info): Sort fields by size; add
17980         redefined_extern_inline
17981         (cgraph_global_info): Sort fields by size.
17982         (cgraph_node): Likewise.
17983         * cgraphunit.c (cgraph_finalize_function): Se
17984         local.redefined_extern_inline on redefinition.
17985         (cgraph_analyze_function): Use it; fix formating.
17986
17987 2004-01-14  Jan Hubicka  <jh@suse.cz>
17988
17989         PR c++/10776
17990         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17991         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17992         bitmaps
17993         (cache_size): New variable
17994         (add_dependence): Update use; canonize early memory locations
17995         (sched_analyze_1): Likewise.
17996         (sched_analyze_2): Likewise.
17997         (init_dependency_caches): Initialize bitmaps.
17998         (free_dependency_caches): Free bitmaps
17999
18000 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18001
18002         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
18003         targetm.calls.strict_argument_naming().
18004         * target.h: Likewise.
18005
18006 2004-01-14  Richard Henderson  <rth@redhat.com>
18007
18008         PR debug/13231
18009         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
18010         instructions.
18011
18012 2004-01-14  Richard Henderson  <rth@redhat.com>
18013
18014         PR c++/12491
18015         * except.c (struct eh_region): Add u.fixup.resolved.
18016         (resolve_one_fixup_region): Split out from ...
18017         (resolve_fixup_regions): ... here.
18018
18019 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18020
18021         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
18022
18023 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18024
18025         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
18026         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
18027         (STRUCT_VALUE): Remove.
18028
18029 2004-01-14  Steven Bosscher  <stevenb@suse.de>
18030
18031         * system.h: Poison PROMOTED_MODE
18032         * integrate.c (expand_inline_function): Don't mention the
18033         PROMOTED_MODE.
18034         * loop.c (update_giv_derive): Same.
18035         * tree.h (DECL_RTL): Same.
18036
18037 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
18038
18039         PR target/9365
18040         * sh.c (gen_block_redirect): Add special handling of RETURN.
18041         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
18042         far branch target (i.e. it's a return).
18043
18044 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18045
18046         * regrename.c (find_oldest_value_reg): Fix a warning.
18047
18048 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
18049
18050         PR bootstrap/12527
18051         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
18052         Move linux-gas.h and linux-elf.h before aout.h.
18053         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
18054         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
18055
18056 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18057
18058         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
18059         (CONST_INT, VOIDmode, ...).
18060
18061 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
18062
18063         * regrename.c (find_oldest_value_reg): If the replacement uses
18064         multiple hard registers, check that all of them are in CLASS.
18065
18066 2004-01-14  Jan Hubicka  <jh@suse.cz>
18067
18068         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
18069         impossible.
18070
18071 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
18072
18073         * Makefile.in: Define MAINT from --enable-maintainer-mode.
18074
18075 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
18076
18077         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
18078         Calculate always vrsave_mask if TARGET_ALTIVEC.
18079         (rs6000_emit_prologue): Emit code for vrsave
18080         only if TARGET_ALTIVEC_VRSAVE.
18081         (rs6000_emit_epilogue): Likewise.
18082
18083 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
18084
18085         * config/sparc/sparc.md (tie_add32): Fix pasto.
18086         (tie_add64): Likewise.
18087
18088 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18089
18090         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
18091
18092 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18093
18094         * config/iq2000/iq2000-protos.h: Fix comment formatting.
18095         * config/iq2000/iq2000.c: Likewise.
18096         * config/iq2000/iq2000.md: Likewise.
18097
18098 2004-01-14  J. Brobecker  <brobecker@gnat.com>
18099
18100         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
18101         (subrange_type_die): Add handle for nameless subrange types.
18102
18103 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18104
18105         * config/h8300/h8300-protos.h: Replace do_movsi with
18106         h8300_expand_movsi.
18107         * config/h8300/h8300.c (do_movsi): Change to
18108         h8300_expand_movsi.
18109         * config/h8300/h8300.md (movsi): Replace do_movsi with
18110         h8300_expand_movsi.
18111         (movsf): Likewise.
18112
18113 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18114
18115         * config/h8300/h8300.c (dosize): Change to
18116         h8300_emit_stack_adjustment.  Update callers.
18117
18118 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18119
18120         * config/h8300/h8300.md (movstrictqi): Add an alternative with
18121         the source being post_inc.  Tighten the predicate for the
18122         destination to register_operand.
18123         (movstricthi): Likewise.
18124
18125 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18126
18127         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
18128         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
18129         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
18130
18131 2004-01-14  Jan Hubicka  <jh@suse.cz>
18132
18133         Partial fix PR c++/12850
18134         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
18135         at zero nest level.
18136
18137 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
18138
18139         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
18140         pseudo-register.
18141
18142 2004-01-13  Devang Patel <dpatel@apple.com
18143
18144         PR debug/7078
18145         * dbxout.c (dbxout_symbol_name): Emit mangled names for
18146         NAMESPACE_DECL memebers.
18147
18148 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
18149
18150         PR c++/12709
18151         * c-common.c (finish_fname_decls): Use the chain only if the
18152         tree is an expr_stmt.
18153
18154 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
18155
18156         * rtl.def: Add comment about new option in automata_option.
18157
18158         * genautomata.c (PROGRESS_OPTION): New macro.
18159         (progress_flag): New global variable.
18160         (gen_automata_option): Process `progress'.
18161         (transform_insn_regexps, check_unit_distributions_to_automata,
18162         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
18163         expand_automata, write_automata): Print about the progress only if
18164         progress_flag.  Remove fflush.
18165         (initiate_automaton_gen): Process command line flag `-progress'.
18166
18167         * doc/md.texi: Describe the new option.
18168
18169 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18170
18171         * cfg.c (dump_bb): Dump entry edges.
18172
18173 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
18174
18175         * arm.c (thumb_legitimate_address_p): Only allow constant pool
18176         references from SImode.
18177         * arm.md (thumb_movhi_insn): Don't allow minipool references.
18178
18179 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18180
18181         * system.h (TEXT_SECTION): Poison.
18182         * varasm.c (text_section): Don't use TEXT_SECTION.
18183         * config/sh/sh.c (sh_file_start): Fix a comment typo.
18184         * doc/tm.texi (TEXT_SECTION): Remove.
18185
18186 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
18187
18188         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
18189
18190 2004-01-12  James E Wilson  <wilson@specifixinc.com>
18191
18192         * unwind-libunwind.c: Delete.
18193
18194 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18195
18196         PR 13656
18197         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
18198         oldtype is set, set *newtypep or *oldtypep too.  Do not set
18199         them at the very end.
18200         (validate_proto_after_old_defn): Restructure for comprehensibility;
18201         make error messages clearer.
18202
18203 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18204
18205         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18206         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18207         * varray.c: No need to prototype error.
18208         (varray_check_failed): Wrap long string onto two lines.
18209         (varray_underflow): New function.
18210
18211 2004-01-13  Steven Bosscher  <stevenb@suse.de>
18212
18213         PR c++/13376
18214         * function.h (struct function): Kill `name' field.
18215         (current_function_name): Make it an extern function.
18216         * function.c (current_function_name): New function.
18217         * graph.c: Update all uses of current_function_name.
18218         * gcse.c: Likewise.
18219         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18220         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18221         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18222         instead of a strcmp with "main".
18223
18224 2004-01-13  Jan Hubicka  <jh@suse.cz>
18225
18226         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
18227
18228         * cgraphunit.c (cgraph_optimize_function):  Always do
18229         optimize_inline_calls when there is always_inline callee.
18230         (cgraph_decide_inlining): Fix formating.
18231         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18232         functions.
18233         (expand_call_inline): Likewise.
18234         * toplev.h (sorry): Fix prototype.
18235
18236 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18237
18238         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18239         conditional jumps that drop through to unconditional jumps or the
18240         end of the sequence.
18241
18242 2004-01-13  Jan Hubicka  <jh@suse.cz>
18243
18244         * alias.c (new_alias_set): Construct the alias_set varray.
18245         (init_alias_once): Don't do it here.
18246
18247 2004-01-12  Marc Espie <espie@openbsd.org>
18248
18249         * system.h: handle YYBYACC like YYBISON.
18250
18251 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
18252
18253         PR target/10847
18254         * config.gcc: No longer includes conflicting header sparc/sol2.h when
18255         building on sparc64-*-openbsd*.
18256
18257 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
18258
18259         PR debug/13539
18260         * dbxout.c (dbxout_type): Protected inheritance is not
18261         private but protected.
18262
18263 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18264
18265         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18266
18267 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
18268
18269         PR optimization/12508.
18270         * combine.c (try_combine): Remove a dead set in a parallel
18271         even if its destination is a subreg.
18272
18273         Revert:
18274         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
18275         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18276         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18277
18278 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
18279
18280         * real.c: Update copyright date.
18281         * emit-rtl.c: Likewise.
18282         * rtl.h: Likewise.
18283         * dwarf2out.c: Likewise.
18284         * config/rs6000/darwin-ldouble.c: Likewise.
18285         * config/rs6000/rs6000.md: Likewise.
18286
18287 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18288
18289         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18290         TFmode to SImode libfuncs.
18291
18292 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18293
18294         PR middle-end/11397
18295         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18296
18297 2004-01-12  Jan Hubicka  <jh@suse.cz>
18298
18299         PR opt/12826
18300         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18301         stored.
18302
18303         PR opt/12863
18304         * cfgcleanup.c (label_is_jump_target_p): Move to...
18305         * rtlanal.c (label_is_jump_target_p): ... here.
18306         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
18307         edges unified with branch edges.
18308
18309 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
18310
18311         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18312         high word of an integral CONST_DOUBLE.
18313
18314 2004-01-12  Paul Brook  <paul@codesourcery.com>
18315
18316         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18317
18318 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
18319
18320         PR target/13585
18321         * sh-protos.h (check_use_sfunc_addr): Declare.
18322         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18323         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18324
18325 2004-01-12  Jan Hubicka  <jh@suse.cz>
18326
18327         * alias.c:  Invlude varray.h
18328         (alias_sets): Turn into varray.
18329         (get_alias_set_entry): Use VARRAY; mark inline.
18330         (mems_in_disjoint_alias_sets_p): Mark inline.
18331         (record_alias_subset): Use varray.
18332         (init_alias_once): Initialize varray.
18333         (new_alias_set): Grow array.
18334         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18335
18336 2004-01-12  Jan Hubicka  <jh@suse.cz>
18337
18338         Partial fix for PR opt/10776 II
18339         * cselib.c: Include params.h
18340         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18341         locations.
18342         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18343         * Makefile.in (cselib.o): Depend on params.h
18344
18345 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18346
18347         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18348         simplify_unary_operation if the operand has a known mode.
18349
18350 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18351
18352         PR target/13534
18353         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18354         predicate to handle 'ld' conform addresses.
18355         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18356         contraint.
18357         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18358         are memory contraints.
18359         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18360         New prototype.
18361         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18362         Change 'o' to 'Y' constraint.
18363         (*movdf_softfloat64): Ditto.
18364
18365 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18366
18367         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18368         brace-enclosed syntax in all C output statements.
18369
18370 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18371
18372         PR target/13401
18373         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18374         Objective-C language type value is 14.
18375
18376 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18377
18378         PR c/12148
18379         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18380         `int' in a number of places to make sure we always have a SImode
18381         and not a HImode.  Add a 'L' suffix to a number of constants.
18382
18383 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18384
18385         * pa.c: Don't include obstack.h.
18386
18387         * pa.md: Correct constraint in pattern for loading PIC label address.
18388
18389 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18390
18391         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18392          before defining.
18393
18394 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18395
18396         PR fortran/9972
18397         * toplev.c (rest_of_handle_inline): Also consider functions
18398         for deferral if the language is GNU F77.
18399
18400 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18401
18402         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18403         diagnostic messages.
18404
18405 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18406
18407         PR middle-end/13392
18408         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18409         to drop through label.  Don't fall back to SCC even when conditional
18410         jump has not been found.
18411
18412 2004-01-11  Jan Hubicka  <jh@suse.cz>
18413
18414         * invoke.texi: Fix syntax error in previous patch.
18415
18416         Partial fix for PR opt/10776
18417         * Makefile.in (reload.o): Include param.h
18418         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18419         * reload.c: Include params.h.
18420         (find_equiv_reg): Work limiting check.
18421         * invoke.texi: Document.
18422
18423 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18424
18425         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18426         out-of-bounds accesses to string constants.  Simplify mips16
18427         case accordingly.
18428
18429 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18430
18431         PR optimization/13469
18432         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18433         reload_cse_regs (-fnon-call-exceptions only).
18434
18435 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18436
18437         * config/mcore/lib1.asm: Fix comment formatting.
18438         * config/mcore/mcore-elf.h: Likewise.
18439         * config/mcore/mcore.c: Likewise.
18440         * config/mcore/mcore.h: Likewise.
18441         * config/mcore/mcore.md: Likewise.
18442
18443 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18444
18445         * c-decl.c (duplicate_decls): Break apart into...
18446         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18447         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18448         ... these new functions.  Restructure for comprehensibility.
18449         Remove various archaic special cases.  Always report the
18450         location of the previous declaration when a diagnostic is issued.
18451         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18452         (match_builtin_function_types): Delete unnecessary forward declaration.
18453
18454 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18455
18456         * genautomata.c (make_automaton, NDFA_to_DFA):
18457         Print progress bars with '.' characters instead of '*'.
18458         (build_automaton): Change notes to match.
18459
18460 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18461
18462         * config/m32r/m32r.md: Use define_constants for unspec and
18463         unspec_volatile.
18464
18465 2004-01-10  Jan Hubicka  <jh@suse.cz>
18466
18467         PR opt/11635
18468         * expr.c (expand_expr_real):  More curefully expand union casts.
18469
18470 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18471
18472         * config/m32r/m32r.md (flush_icache): Use 1 for
18473         unspec_volatile.
18474
18475 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18476             James E Wilson  <wilson@specifixinc.com>
18477
18478         PR debug/12860
18479         * dbxout.c (dbxout_symbol): Remove initialization of
18480         current_sym_code, current_sym_value, and current_sym_addr.
18481         (dbxout_symbol_location): Same.
18482         (dbxout_prepare_symbol): Zero current_sym_code,
18483         current_sym_value, and current_sym_addr.
18484
18485 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18486
18487         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18488         check is done first.
18489
18490 2004-01-09  Eric Christopher  <echristo@redhat.com>
18491
18492         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18493         if we're running mark_constant_function.
18494
18495 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18496
18497         PR target/12561
18498         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18499
18500 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18501
18502         PR debug/11231
18503         * dbxout.c (dbxout_type_fields): Return if any item is
18504         error_mark_node or the type is error_mark_node.
18505
18506 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18507
18508         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18509         exactly what is expected as a 'long double'.
18510         (_xlqadd): When a value to be returned is representable as a
18511         'double', just return it directly, do not construct it using a union.
18512         Also, correct final fixup.
18513         (_xlqmul): Likewise.
18514         (_xlqdiv): Likewise.
18515         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18516
18517         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18518
18519 2004-01-09  Richard Henderson  <rth@redhat.com>
18520
18521         * recog.c (constrain_operands): Validate mem operands.
18522
18523 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18524
18525         * gcc.c (init_spec): Remove -lunwind from shared case.
18526         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18527
18528 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18529
18530         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18531         * configure: Regenerate
18532
18533 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18534
18535         PR c/11234
18536         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18537         between function and object pointers.
18538         (digest_init): When comparing a pointer to function type to the
18539         target type, only apply TREE_TYPE once to the pointer to function
18540         type.
18541         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18542         function pointer rather than casting it to a function pointer.
18543         (for_each_eh_label): Update caller.
18544         * recog.h (struct insn_data): Use a struct or union for output.
18545         * genoutput.c (output_insn_data): Update.
18546         * final.c (get_insn_template): Update.
18547
18548 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18549
18550         * expr.h (expand_expr): Make it a macro, not a function.
18551         (expand_expr_real): New function.
18552         * expr.c (store_expr): Adjust logic for deciding whether or not to
18553         copy the value returned by expand_expr.
18554         (expand_expr): Rename to ...
18555         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18556         calls to language hooks.
18557         * c-common.h (c_expand_expr): Adjust prototype.
18558         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18559         * langhooks-def.h (lhd_expand_expr): Change prototype.
18560         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18561         * langhooks.h (lang_hooks): Change type of expand_expr.
18562         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18563         (last_expr_alt_rtl): Likewise.
18564         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18565         (clear_last_expr): Clear it.
18566         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18567         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18568         * tree.def (RTL_EXPR): Give it an additional operand.
18569         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18570
18571 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18572
18573         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18574         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18575
18576 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18577
18578         PR target/13380.
18579         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18580         or (ne:SI (reg:CC 17) (const_int 0)).
18581         Be specific about modes wherever possible.
18582
18583 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18584
18585         * config/m32r/m32r.c (m32r_expand_block_move): Call
18586         gen_movestrsi_internal with two more arguments.
18587         (m32r_output_block_move): Adjust operand numbers.
18588         Properly update the source and destination pointers.
18589         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18590         'r+'.  Change the set detinations to match_operand.
18591
18592 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18593
18594         * final.c (FIRST_INSN_ADDRESS): Remove.
18595         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18596         * system.h (FIRST_INSN_ADDRESS): Poison.
18597         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18598         * config/m32r/m32r-protos.h: Remove the prototype for
18599         m32r_first_insn_address.
18600         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18601         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18602         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18603
18604 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18605
18606         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18607         we just created.
18608         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18609         emitted as subrange types too.
18610         (subrange_type_die): Add handling of enumeration subtypes.
18611
18612 2004-01-08  Richard Henderson  <rth@redhat.com>
18613
18614         PR opt/12441
18615         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18616         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18617         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18618         (ix86_address_cost): Be prepared for SUBREGed registers.
18619         (legitimate_address_p): Accept SUBREGed registers.
18620
18621 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18622
18623         * Makefile.in: Rename configure.in to configure.ac
18624         * doc/sourcebuild.texi: Likewise.
18625         * configure: Regenerate.
18626         * config.in: Regenerate.
18627
18628 2004-01-08  Stuart Hastings  <stuart@apple.com>
18629
18630         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18631
18632 2004-01-08  Jan Hubicka  <jh@suse.cz>
18633
18634         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18635
18636 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18637
18638         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18639         (UNSPEC_FIX_TRUNC_TF): New constant.
18640         (movtf_internal): Make splitter active only when insn is active.
18641         (extenddftf2): Rewrite to properly load zero into low part.
18642         (extenddftf2_internal): New.
18643         (extendsftf2): Rewrite.
18644         (truncdftf2): Correct length.
18645         (floatditf2): Delete.
18646         (fix_trunc_helper): New.
18647         (fix_trunctfdi2): Use fix_trunc_helper.
18648         (fix_trunctfsi2): Likewise.fix_trunc
18649         (fix_trunctfsi2_internal): New.
18650
18651         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18652         addresses are legitimate on Darwin even when flag_pic.
18653         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18654         non-offsettable addresses for loads of TFmode constants.
18655
18656 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18657
18658         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18659         variables in the appropriate bss section.
18660
18661 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18662
18663         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18664         target_flags has MASK_POWERPC64 when -m64.
18665         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18666         to 620, 630, power3, power4 and rs64a entries.
18667         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18668
18669 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18670
18671         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18672         floating-point constants.
18673
18674 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18675
18676         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18677         Create the subrange_type DIE using the given context DIE.
18678         (modified_type_die): Update call to subrange_type_die.
18679
18680 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18681
18682         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18683         Add multiple-include guard.
18684
18685 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18686
18687         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18688         all vector constant loadable by vsplt*.
18689         (output_vec_const_move): Likewise.
18690
18691 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18692
18693         PR c/6024
18694         * c-typeck.c (comptypes): Only treat enumerated types in the same
18695         translation unit as compatible with each other when they are the
18696         same type.
18697         * doc/extend.texi: Update.
18698
18699 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18700
18701         PR c/12165
18702         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18703         array type from the array element type.
18704
18705 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18706
18707         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18708         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18709         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18710         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18711         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18712
18713 2004-01-06  Eric Christopher  <echristo@redhat.com>
18714
18715         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18716         (DWARF2_DEBUGGING_INFO): Define.
18717         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18718         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18719         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18720         for irix as.
18721         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18722         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18723         * config/mips/iris5gas.h: Ditto.
18724         (DBX_DEBUGGING_INFO): Remove.
18725         (DWARF2_DEBUGGING_INFO): Ditto.
18726         (MIPS_DEBUGGING_INFO): Ditto.
18727         (PREFERRED_DEBUGGING_TYPE): Ditto.
18728         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18729         (PREFERRED_DEBUGGING_TYPE): Ditto.
18730         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18731         * config/mips/elf64.h: Ditto.
18732
18733 2004-01-06  Jan Hubicka  <jh@suse.cz>
18734
18735         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18736         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18737
18738 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18739
18740         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18741         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18742         * config/rs6000/darwin-ldouble.c: New.
18743
18744         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18745         for constants.
18746         (constant_subword): Delete.
18747         * rtl.h (constant_subword): Delete prototype.
18748         (immed_double_const): Is not in varasm.c.
18749         * simplify-rtx.c (simplify_immed_subreg): New.
18750         (simplify_subreg): Use simplify_immed_subreg.
18751
18752         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18753         than trying to generate RTL directly.
18754         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18755         RTL directly.
18756
18757         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18758
18759 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18760
18761         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18762         function into a separate macro.
18763         (read_only_data_section): Add void argument.
18764         (private_data_section): Same.
18765         (read_only_private_data_section): Same.
18766         (toc_section): Same.
18767
18768 2004-01-06  Jan Hubicka  <jh@suse.cz>
18769
18770         * invoke.texi:  Remove typo in last change.
18771
18772         PR target/10301
18773         * config.gcc: Accept opteron and athlon-64 as variants
18774         of k8.
18775         * i386.c (override_options): Likewise.
18776         * invoke.texi (i386 -mtune): Expand documentation.
18777
18778 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18779
18780         * alias.c: Fix comment typos.
18781         * builtins.c: Likewise.
18782         * cfg.c: Likewise.
18783         * df.c: Likewise.
18784         * dominance.c: Likewise.
18785         * dwarf2out.c: Likewise.
18786         * emit-rtl.c: Likewise.
18787         * expr.c: Likewise.
18788         * final.c: Likewise.
18789         * fold-const.c: Likewise.
18790         * gcse.c: Likewise.
18791         * genattrtab.c: Likewise.
18792         * genrecog.c: Likewise.
18793         * gensupport.c: Likewise.
18794         * ggc-zone.c: Likewise.
18795         * integrate.c: Likewise.
18796         * local-alloc.c: Likewise.
18797         * loop.c: Likewise.
18798         * recog.c: Likewise.
18799         * regmove.c: Likewise.
18800         * reg-stack.c: Likewise.
18801         * reorg.c: Likewise.
18802         * rtlanal.c: Likewise.
18803         * rtl.h: Likewise.
18804         * sched-ebb.c: Likewise.
18805         * simplify-rtx.c: Likewise.
18806         * toplev.c: Likewise.
18807         * varasm.c: Likewise.
18808
18809 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18810
18811         * doc/install.texi: Fix typos.
18812         * doc/invoke.texi: Likewise.
18813         * doc/md.texi: Likewise.
18814
18815 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18816
18817         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18818
18819 2004-01-06  Jan Hubicka  <jh@suse.cz>
18820
18821         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18822         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18823         of MMX_REGPARM.
18824         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18825         add MMX_REGPARM.
18826         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18827         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18828         (MMX_REGPARM_MAX): Similarly for -mmmx.
18829
18830 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18831
18832         * config/sh/linux.h: Fix comment formatting.
18833         * config/sh/netbsd-elf.h: Likewise.
18834         * config/sh/sh.c: Likewise.
18835         * config/sh/sh.h: Likewise.
18836         * config/sh/vxworks.h: Likewise.
18837
18838 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18839
18840         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18841         * toplev.c (output_file_directive): Don't use
18842         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18843
18844 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18845
18846         * toplev.c: Fix broken checkin of 2003-12-30.
18847
18848 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18849
18850         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18851         (USING_MMAP): We don't support non-mmap.
18852         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18853         large objects.
18854         (struct page_entry): Remove bytes_free.
18855         (struct page_table_chain): Remove.
18856         (struct globals): Remove page_table member.
18857         (loookup_page_table_entry): Function deleted.
18858         (set_page_table_entry): Ditto.
18859         (ggc_allocated_p): No longer need page table lookups.
18860         (ggc_marked_p): Ditto.
18861         (alloc_small_page): Don't care about bytes_free anymore.
18862         (alloc_large_page): Round up size.
18863         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18864         their size the new way.
18865         Remove page table lookups and setting.
18866         (ggc_get_size): Calculate large object size the new way.
18867         (sweep_pages): Redo to account for fact that we no longer have
18868         bytes_free.
18869         (ggc_collect): No longer need to reincrement bytes_free.
18870         (ggc_pch_alloc_object): Handle new large objects properly.
18871         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18872
18873 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18874
18875         * doc/invoke.texi: Remove a page break.
18876
18877 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18878
18879         * config/avr/avr.c (avr_output_function_prologue): Remove an
18880         extra pair of curly braces.
18881
18882 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18883
18884         * config/mn10300/mn10300.c: Fix comment formatting.
18885         * config/mn10300/mn10300.h: Likewise.
18886
18887 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18888
18889         * tree.h: Update documentation on nothrow_flag.
18890         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18891         types.
18892
18893 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18894
18895         * doc/invoke.texi: Remove traces of dead ports.
18896
18897 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18898
18899         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18900         option.
18901
18902 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18903
18904         PR target/12945
18905         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18906         counter labels.
18907         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18908         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18909         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18910         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18911         (mips_symbol_insns): Don't trust the local/global classification.
18912         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18913         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18914         -mno-explicit-relocs.
18915         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18916         between local and global symbols.
18917
18918 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18919
18920         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18921         (mips_preferred_reload_class): Declare.
18922         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18923         (EXTRA_CONSTRAINT): Update accordingly.
18924         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18925         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18926         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18927         mips_dangerous_for_la25_p.
18928         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18929         if mips_dangerous_for_la25_p.
18930
18931 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18932
18933         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18934         warning.
18935
18936 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18937
18938         * configure.ac: Use AC_PROG_CPP_WERROR.
18939         * configure: Regenerate.
18940
18941 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18942
18943         * .cvsignore: Add autom4te.cache.
18944
18945 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18946
18947         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18948         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18949         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18950         then architecture options, then ABI options.  General rewording.
18951
18952 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18953
18954         PR c/3414
18955         * doc/extend.texi: Clarify definition of malloc attribute.
18956
18957 2004-01-04  Jan Hubicka  <jh@suse.cz>
18958
18959         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18960         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18961         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18962         (cgraph_inline_p): Add extra argument reason.
18963         * cgraphunit.c: Minor formating fixes.
18964         cgraph_first_inlined_callee): New functions.
18965         (record_call_1): Record builtins too.
18966         (cgraph_analyze_function): Update inline_failed messages.
18967         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18968         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18969         (cgraph_check_inline_limits): Likewise; Add argument reason.
18970         (cgraph_set_inline_failed): New static function.
18971         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18972         reasons.
18973         (cgraph_inline_p): Add new argument reason.
18974         * tree-inline.c (expand_call_inline):  Update warning.
18975
18976 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18977
18978         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18979         with modern equivalents.
18980         * configure: Regenerate.
18981
18982         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18983         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18984         * configure: Regenerate.
18985
18986         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18987
18988         * configure.in: Rename to configure.ac.
18989         * configure.ac: Renamed from configure.in; make minimum necessary
18990         changes for autoconf 2.5x.
18991         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18992         * configure: Regenerate with autoconf 2.57.
18993
18994 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18995
18996         * config/mips/linux.h: Fix comment formatting.
18997         * config/mips/mips.c: Likewise.
18998         * config/mips/mips.h: Likewise.
18999         * config/mips/mips.md: Likewise.
19000         * config/mips/netbsd.h: Likewise.
19001         * config/mips/windiss.h: Likewise.
19002
19003 2004-01-02  Richard Henderson  <rth@redhat.com>
19004
19005         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
19006         for sse and 387; add suppression for mmx.
19007
19008 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
19009
19010         * loop.c (loop_optimize): Free all loops_info's mems.
19011
19012         * c-typeck.c (finish_init): Free spelling_base before
19013         setting it again.
19014
19015         * cfgloop.c (flow_loops_find): Always free the sbitmap
19016         headers.
19017
19018         * predict.c (estimate_probability): Free bbs after being
19019         done with it.
19020
19021 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19022
19023         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
19024         const_8bit_operand and call_address_operand.
19025
19026 2004-01-02  Jan Hubicka  <jh@suse.cz>
19027
19028         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
19029         when there is nothing to inline but warnings are requested.
19030         (cgraph_decide_inlining):  Fix memory leak.
19031
19032 2004-01-02  Jan Hubicka  <jh@suse.cz>
19033
19034         * expr.c (store_constructor):  Fix pasto in previous patch.
19035
19036 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19037
19038         * config/i386/cygming.h: Fix comment formatting.
19039         * config/i386/djgpp.h: Likewise.
19040         * config/i386/gthr-win32.c: Likewise.
19041         * config/i386/i386-interix.h: Likewise.
19042         * config/i386/i386.c: Likewise.
19043         * config/i386/i386.h: Likewise.
19044         * config/i386/openbsd.h: Likewise.
19045         * config/i386/winnt.c: Likewise.
19046         * config/i386/xm-mingw32.h: Likewise.
19047
19048 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
19049
19050         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
19051         copyright and last modification dates.
19052
19053 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
19054
19055         * doc/install.texi (Specific): Mention x86_64.
19056
19057 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
19058
19059         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
19060         Call force_operand on plus_constant result.
19061
19062 2004-01-01  Jan Hubicka  <jh@suse.cz>
19063
19064         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
19065         * expr.c (store_constructor): Use vec_init pattern.
19066         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
19067         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
19068         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
19069         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
19070         New patterns.
19071         (sse2_unpc?pd): Fix pattern.
19072         (sse2_movlpd): Kill.
19073         (sse2_movsd): Deal with movlpd too.
19074         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
19075         (ix86_expand_vector_init): New.
19076         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
19077         * md.texi (vec_set, vec_extract): Document
19078
19079 2003-12-31  Jan Hubicka  <jh@suse.cz>
19080
19081         PR opt/13473
19082         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
19083         ASM input operands
19084
19085         PR opt/12617
19086         * toplev.c (dump_file_index): Reorder ce3 and bbro.
19087         (dump_file): Likewise.
19088         (rest_of_compilation): Likewise.
19089
19090         PR debug/13367
19091         * cgraph.c (cgraph_function_possibly_inlined):  Even with
19092         flag_really_no_inline we inline always_inline functions.
19093         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
19094         for non-always_inline functions when there is flag_really_no_inline.
19095         (cgraph_decide_inlining): Limit work done when not inlining.
19096         (cgraph_decide_inlining_incrementally): Likewise.
19097         (cgraph_optimize_function): Check whether something got inlined.
19098         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
19099         extern inline functions when not inlining.
19100
19101         * opts.c (decode_options):  Disable crossjumping at -O1
19102         * invoke.texi (-O1): Document change.
19103
19104 See ChangeLog.10 for earlier changes.