OSDN Git Service

* config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-20  Roger Sayle  <roger@eyesopen.com>
2
3         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
4         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
5         TARGET_DECOMPOSE_LEA.
6
7 2004-06-20  Richard Henderson  <rth@redhat.com>
8
9         * c-common.h (add_decl_stmt): Move to cp-tree.h.
10         * c-decl.c (finish_decl): Don't use add_decl_stmt.
11         * c-parse.in: Likewise.
12         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
13         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
14         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
15
16 2004-06-20  Richard Henderson  <rth@redhat.com>
17
18         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
19         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
20         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
21         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
22         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
23         * c-pretty-print.c (pp_c_statement): Similarly.
24         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
25         gimplify_if_stmt): Move to cp-gimplify.c.
26         (c_genericize, c_gimplify_expr): Don't call them.
27         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
28         * c-typeck.c (push_cleanup): New.
29         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
30         c_finish_if_stmt): Use COND_EXPR.
31         * tree.h (CLEANUP_EH_ONLY): Update documentation.
32
33 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
34
35         * c-common.h (has_c_linkage): New interface.
36         * c-cppbuiltin.c: Include target.h.
37         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
38         __PRAGMA_EXTERN_PREFIX when appropriate.
39         * c-pragma.c: Include target.h.
40         Document clarified semantics of symbol-renaming #pragmas.
41         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
42         (maybe_apply_renaming_pragma): Rewrite according to clarified
43         semantics.  Always recognize, but do not necessarily execute.
44         (init_pragma): Unconditionally register symbol-renaming pragmas.
45         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
46         and HANDLE_PRAGMA_EXTERN_PREFIX.
47         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
48         and handle_pragma_extern_prefix flags.
49         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
50         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
51         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
52         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
53         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
54         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
55         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
56         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
57         not HANDLE_PRAGMA_EXTERN_PREFIX.
58         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
59         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
60         into one section "Symbol-Renaming Pragmas"; clarify; document
61         adjusted semantics.
62
63         * builtins.c (expand_builtin): Do not issue error for a builtin
64         with no special case code and no DECL_ASSEMBLER_NAME; just do the
65         library call.
66         * c-decl.c (builtin_function): Don't call make_decl_rtl.
67         * c-objc-common.c (has_c_linkage): Stub implementation.
68         * cgraphunit.c (cgraph_expand_function)
69         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
70
71 2004-06-19  Roger Sayle  <roger@eyesopen.com>
72
73         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
74         instead of both an ARGLIST and a result TYPE.  Handle these C99
75         comparison functions as "polymorphic" builtins.  Also handle
76         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
77         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
78         Move handling of BUILT_IN_ISUNORDERED from here to there.
79
80 2004-06-19  Richard Henderson  <rth@redhat.com>
81
82         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
83         * c-gimplify.c: Remove unnecessary prototypes.
84         (c_gimplify_stmt): Merge into ...
85         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
86         * c-semantics.c (prep_stmt): Remove.
87         * gimplify.c (annotate_one_with_locus): Break out from ...
88         (annotate_all_with_locus): ... here.
89         (gimplify_expr): Add locus to expressions even if pre/post queues
90         are not present.
91
92 2004-06-19  Richard Henderson  <rth@redhat.com>
93
94         PR target/15941
95         * function.c (assign_parms): If not padding upward or intentionally
96         forcing upward padding, take offset_rtx into account when determining
97         the alignment for stack_parm.
98
99 2004-06-19  Richard Henderson  <rth@redhat.com>
100
101         PR target/15550
102         * ifcvt.c (noce_try_move): Recognize all generated instructions.
103
104 2004-06-19  Jan Hubicka  <jh@suse.cz>
105
106         * function.c (free_after_compilation): Do not free computed_goto_common*.
107         * function.h (struct function): Kill computed_goto_common*.
108         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
109         * tree-cfg.c (disband_implicit_edges): Do not forward across the
110         commonized computed goto.
111
112 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
113
114         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
115         in binutils.
116
117 2004-06-19  Andrew Pinski  <apinski@apple.com>
118
119         PR c++/15721
120         * toplev.c (wrapup_global_declarations): Do not check
121         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
122         cgraph_varpool_node's needed field.
123
124 2004-06-19  Jan Hubicka  <jh@suse.cz>
125             Steven Bosscher  <stevenb@suse.de>
126
127         CFG transparent RTL expansion:
128         * Makefile.in (cfgexpand.o): New object file.
129         (builtins.o): Add dependency on basic-block.h
130         * builtins.c: Include basic-block.h
131         (entry_of_function): New function.
132         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
133         * cfgexpand.c: New file.
134         * expr.c (execute_expand, pass_expand): Kill.
135         * pass.c (rest_of_compilation): Do not build CFG unless called from
136         coverage code.
137         * tree-cfg.c (delete_tree_cfg): Rename to..
138         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
139         * tree-flow.h (delete_tree_cfg_annotations): Declare.
140         (dleete_tree_cfg): Kill.
141         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
142         (execute_del_cfg): Rename to...
143         (execute_free_datastructures): This one...
144         (pass_del_cfg): Rename to...
145         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
146         (init_tree_optimization_passes): Make cfg build and profiling to happen
147         unconditionally.
148
149 2004-06-19  Steven Bosscher  <stevenb@suse.de>
150
151         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
152         inserting the cache variables.
153
154         * tree-mudflap.c: Include headers to make basic_block available.
155         Move functions around such that related functions are near each
156         other.  Add prototypes for all static functions.  Add comments
157         briefly explaining what IR the mudflap1 and mudflap2 work on and
158         what they do.
159         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
160         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
161         (pass_mudflap_1, pass_mudflap_2): Update.
162         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
163         function tree.
164         (mf_build_check_statement_for): Make it work on the CFG.
165         (mf_xform_derefs_1): Likewise.  Cleanup code style.
166         (mf_xform_derefs): Likewise.
167
168 2004-06-19  Jan Hubicka  <jh@suse.cz>
169
170         * tree-cfg.c (label_to_block): Invent the label destination for
171         undefined labels.
172         (cleanup_dead_labels): Update table in the case label_to_block added
173         new label.
174
175 2004-06-18  Richard Henderson  <rth@redhat.com>
176
177         PR c++/16036
178         * gimple-low.c (lower_function_body): Generate return statement for
179         fall off the end of the function here ...
180         * tree-cfg.c (make_edges): ... instead of here.
181         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
182
183 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
184
185         * tree-ssa.c (raise_value): Removed.
186         (get_eq_name, check_phi_redundancy): New functions.
187         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
188
189 2004-06-18  Roger Sayle  <roger@eyesopen.com>
190
191         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
192         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
193         constant folding for unordered comparison tree nodes.  If both
194         operands are real constants, call fold_relational_const.  If either
195         operand is a NaN, evaluate the other for side-effects and return a
196         constant.  Optimize (double)float1 CMP (double)float2 into the
197         equivalent float1 CMP float2.
198         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
199         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
200         LTGT_EXPR>: Call fold_relational_const for constant operands.
201         (fold_relational_const): Add support for unordered comparison tree
202         nodes.  Don't constant fold "ordered" floating point comparisons
203         against NaN if when flag_trapping_math is set.
204
205 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
206
207         * fold-const.c (build_range_check): If !in_p and recursive call
208         fails, exit immediately.  If high - low overflows and etype is
209         a signed type, retry with unsigned etype.
210         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
211         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
212
213 2004-06-18  Richard Henderson  <rth@redhat.com>
214
215         * c-gimplify.c (gimplify_condition): Remove.
216         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
217         call it.
218
219 2004-06-18  Richard Henderson  <rth@redhat.com>
220
221         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
222         switch estimates.
223
224 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
225
226         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
227         (NORMAL_TEXT_SECTION_NAME): Define.
228         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
229         (SECTION_FORMAT_STRING): Define.
230
231 2004-06-18  Steven Bosscher  <stevenb@suse.de>
232
233         * config/xtensa/xtensa.c
234         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
235         * xtensa.md: Replace the old pipeline description with a DFA model.
236
237 2004-06-18  Steven Bosscher  <stevenb@suse.de>
238             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
239
240         * config/s390/s390.md: Remove the generic pipeline description.
241         * config/s390/2064.md: Make all insn reservations apply to
242         the z900, g5 and g6.
243         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
244         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
245         Define to hook_int_void_1.
246         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
247         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
248
249 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
250                         Diego Novillo  <dnovillo@redhat.com>
251
252         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
253         (create_stmt_ann): Ditto.
254         (create_tree_ann): New function.
255         (create_cst_ann): Remove.
256         (create_expr_ann): Ditto.
257
258         * tree-flow-inline.h (cst_ann): Remove.
259         (get_cst_ann): Ditto.
260         (get_expr_ann): Ditto.
261         (expr_ann): Ditto.
262         (get_tree_ann): New function.
263         (tree_ann): Ditto.
264         (ann_type): tree_ann -> tree_ann_t.
265         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
266         (struct cst_ann_d): Removed.
267         (struct expr_ann_d): Ditto.
268         (union tree_ann_d): Removed cst and expr.
269         (tree_ann): Renamed to tree_ann_t.
270         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
271         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
272         annotation.
273         (set_value_handle): Ditto.
274         (phi_translate): Ditto.
275         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
276
277 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
278
279         * config/sh/t-linux64: New file.
280         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
281
282 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
283
284         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
285         (unshare_all_rtl_again): Call unshare_all_rtl_1.
286         (unshare_all_rtl): New.
287         * function.c (instantiate_virtual_regs): Remove parameters.
288         * function.h (instantiate_virtual_regs): Add prototype.
289         * rtl.h (unshare_all_rtl): Add prototype.
290         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
291         prototype.
292         * passes.c: Remove assertions on the parameters to
293         rest_of_handle_* functions.  Remove the parameters to
294         the functions, replacing decl with current_function_decl
295         and insns with get_insns ().
296
297 2004-06-17  Roger Sayle  <roger@eyesopen.com>
298
299         * fold-const.c (constant_boolean_node): Handle boolean_type_node
300         directly, return either boolean_true_node or boolean_false_node.
301
302 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
303
304         * opts.sh: Delete.  Break out generated code to next four files.
305         * opt-gather.awk: New file.
306         * optc-gen.awk: New file.
307         * opth-gen.awk: New file.
308         * opt-functions.awk: New common file.
309         * Makefile.in: Update for above.
310         * configure.ac: Update comment.
311         * configure: Regenerate.
312
313 2004-06-17  Richard Henderson  <rth@redhat.com>
314
315         * c-common.c (flag_objc_sjlj_exceptions): New.
316         * c-common.h (flag_objc_sjlj_exceptions): Declare.
317         * c-opts.c (c_common_handle_option): Set it.
318         (c_common_post_options): Handle interation of different
319         objective-c exception and runtime switches.
320         * c-decl.c (c_eh_initialized_p): New.
321         (finish_decl): Use it instead of local eh_initialized_p.
322         * c-parse.in (nested_function, notype_nested_function): Record
323         the result of compstmt.
324         (compstmt_or_error): Likewise.
325         (compstmt): Don't add_stmt the result.
326         (stmt): Don't return anything.  Rewrite objc try and sync rules.
327         (objc_try_stmt, objc_catch_list): Remove.
328         (objc_catch_block, objc_finally_block): Remove.
329         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
330         (objc_try_catch_clause, objc_finally_clause): New.
331         (objc_try_catch_stmt): Rewrite.
332         * c-tree.h (c_eh_initialized_p): Declare.
333         * c-opt (fobjc-sjlj-exceptions): New.
334         * except.c (output_function_exception_table): Don't call cgraph
335         on non-decls.
336         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
337         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
338         catch_count_stack, exc_binding_stack, if_nesting_count,
339         blk_nesting_count, objc_enter_block, objc_exit_block,
340         objc_declare_variable, val_stack_push, val_stack_pop,
341         objc_build_try_enter_fragment, objc_build_extract_expr,
342         objc_build_try_exit_fragment, objc_build_extract_fragment,
343         objc_build_try_prologue, objc_build_try_epilogue,
344         objc_build_catch_stmt, objc_build_catch_epilogue,
345         objc_build_finally_prologue, objc_build_finally_epilogue,
346         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
347         objc_build_synchronized_epilogue): Remove.
348         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
349         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
350         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
351         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
352         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
353         objc_begin_catch_clause, objc_finish_catch_clause,
354         objc_build_finally_clause, objc_finish_try_stmt,
355         objc_build_synchronized): New.
356         (objc_is_object_id, objc_is_class_id): New.
357         (objc_comptypes): Use them.
358         (build_next_objc_exception_stuff): Break NeXT sjlj out from
359         build_objc_exception_stuff.
360         (synth_module_prologue): Update to match.
361         (objc_build_throw_stmt): Use cur_try_context to decide if
362         we're in a @catch.
363         * objc/objc-act.h: Update prototypes.
364         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
365
366 2004-06-17  Andrew Pinski <apinski@apple.com>
367
368         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
369         Use TYPE_FIELDS instead of TYPE_VALUES.
370
371 2004-06-17  Jason Merrill  <jason@redhat.com>
372
373         PR c++/16015
374         * gimplify.c (gimplify_target_expr): Handle void initializer.
375         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
376         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
377         and AGGR_INIT_EXPR.
378
379 2004-06-17  Roger Sayle  <roger@eyesopen.com>
380
381         * fold-const.c (fold_relational_const): Use constant_boolean_node.
382
383 2004-06-17  Jan Hubicka  <jh@suse.cz>
384
385         PR target/15433
386         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
387         operand numbering in the output template.
388         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
389
390 2004-06-17  Jan Hubicka  <jh@suse.cz>
391
392         * except.c (can_throw_internal): Recognize RESX expresisons.
393
394 2004-06-17  Jan Hubicka  <jh@suse.cz>
395
396         * cfgbuild.c (make_edges): Do not use label_value_list.
397         (find_basic_blocks_1): Do not collect label_value_list.
398         (find_sub_basic_blocks): Update call of make_edges.
399
400 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
401
402         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
403         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
404         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
405         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
406         (get_v_may_def_result_ptr):  Return a def_operand_p.
407         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
408         (get_v_must_def_op_ptr):  Return a def_operand_p.
409         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
410         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
411         (phi_element_for_edge):  Remove.
412         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
413         (propagate_tree_value):  Add new prototype.
414         (phi_element_for_edge):  Remove prototype.
415         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
416         (prepare_operand_for_rename):  Split into two functions.
417         (prepare_use_operand_for_rename):  Prepare use operands.
418         (prepare_def_operand_for_rename):  Prepare def operands.
419         (rewrite_stmt):  Use new operand types.
420         (rewrite_operand):  Use new operand types, change parameter type.
421         * tree-outof-ssa.c (replace_variable):  Split into two functions.
422         (replace_use_variable):  Rewrite uses.
423         (replace_def_variable):  Rewrite defs.
424         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
425         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
426         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
427         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
428         (ccp_fold, replace_uses_in):  Use new operand types.
429         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
430         and no longer set the value, change parameter type.
431         (replace_exp_1):  Use new operand types.
432         (propagate_value):  Change parameter type, use new operand types.
433         (propagate_tree_value):  Propagate_value without SSA operands.
434         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
435         (cprop_into_successor_phis):  Use new operand types.
436         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
437         (eliminate_redundant_computations):  Use new operand types.
438         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
439         (fix_stmt_v_may_defs):  Use new operand_types.
440         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
441         (build_tree_conflict_graph):  Use new operand_types.
442         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
443         * tree-ssa-operands.c (struct freelist_d):  Remove.
444         (check_optype_freelist, add_optype_freelist):  Remove.
445         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
446         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
447         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
448         Call ggc_free instead of add_optype_freelist.
449         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
450         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
451         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
452         (struct use_optype_d):  Change underlying type.
453         (def_operand_p, use_operand_p):  New types for pointers to operands.
454         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
455         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
456         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
457         pointer types.
458         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
459         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
460         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
461         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
462         PHI result as an operand.
463         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
464         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
465         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
466         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
467         PHI_ARG_DEF_FROM_EDGE.
468         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
469         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
470
471 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
472
473         PR tree-optimization/15991
474         * tree-cfg.c (tree_block_label): Export.
475         * tree-flow-inline.h (bsi_after_labels): New function.
476         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
477         * tree-ssa.c (propagate_into_addr): New function.
478         (replace_immediate_uses): Handle propagation of pointer constants.
479         (raise_value): Do not restrict propagation of pointer constants.
480         * tree-ssanames.c (duplicate_ssa_name): New function.
481         * tree.h (duplicate_ssa_name): Declare.
482
483 2004-06-17  David Ayers  <d.ayers@inode.at>
484
485         * c-parse.in: Unify Objective-C token names.
486
487 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
488
489         Bug 14610
490         * Makefile.in (min-insn-modes.o): Correct dependencies.
491         * real.c (encode_ieee_extended, decode_ieee_extended): Always
492         produce/consume 12-byte little-endian Intel format.
493         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
494         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
495         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
496         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
497         New functions which convert between 12-byte little-endian Intel
498         format and the desired format.
499         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
500         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
501         Update.
502
503 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
504
505         * expmed.c (expand_mult_const): In sanity check, compare only
506         the bits of val and val_so_far that are significant in the
507         result mode.
508
509 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
510
511         * tree-ssa-pre.c:  Update comments.
512         (val_expr_pair_eq): Factor code from here.
513         (expr_pred_trans_eq): and here.
514         (expressions_equal_p): To here.
515         (print_value_set): Print value for expression.
516         (phi_trans_lookup): Rename some variables.
517         (lookup): Ditto.
518         (value_exists_in_set_bitmap): Ditto.
519         (value_remove_from_set_bitmap): Ditto.
520         (value_insert_into_set_bitmap): Ditto.
521
522 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
523
524         * config/s390/s390-modes.def (CCL3mode): New machine mode.
525         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
526         (s390_alc_comparison, s390_slb_comparison): Likewise.
527         (s390_branch_condition_mask): Likewise.
528         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
529         ("*subsi3_cc2", "*subsi3_cconly2"): New.
530
531         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
532         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
533         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
534         Handle SIGN_EXTEND and ZERO_EXTEND.
535
536         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
537         * config/s390/s390.c (s390_expand_addcc): New function.
538         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
539         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
540         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
541
542 2004-06-17  Ben Elliston  <bje@au.ibm.com>
543
544         * tree-alias-common.c: Add whitespace.
545         * tree-inline.c: Correct comment about this file's purpose.
546         * tree-optimize.c: Likewise.
547         * tree-tailcall.c: Likewise.
548
549         * tree-alias-ander.h: Add standard top-of-file comment.
550         * tree-alias-common.h: Likewise.
551         * tree-alias-type.h: Likewise.
552
553 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
554
555         * tree-ssa-pre.c (compute_avail): Value number uses as well.
556         Strip useless type conversions.
557         Casts have to be treated slightly different than normal unaries.
558
559 2004-06-16  Richard Henderson  <rth@redhat.com>
560
561         * c-common.def (COMPOUND_STMT): Remove.
562         * c-common.c (finish_fname_decls): Don't look through it.
563         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
564         * c-common.h (COMPOUND_BODY): Remove.
565         (c_common_stmt_codes): Remove COMPOUND_STMT.
566         * c-dump.c (c_dump_tree): Likewise.
567         * c-gimplify.c (c_gimplify_stmt): Likewise.
568         * c-pretty-print.c (pp_c_statement): Likewise.
569         * tree.h (DECL_SAVED_TREE): Update commentary.
570         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
571         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
572         (GOTO_EXPR): Rename from GOTO_STMT.
573         (GOTO_FAKE_P): Remove.
574         (COMPOUND_STMT): Remove.
575         (HANDLER): Update wrt COMPOUND_STMT.
576         (STMT_EXPR): Likewise.
577         (LABEL_EXPR): Rename from LABEL_STMT.
578         (SCOPE_STMT): Remove.
579         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
580         through COMPOUND_STMT.
581
582 2004-06-16  Richard Henderson  <rth@redhat.com>
583
584         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
585         c_finish_while_stmt_cond): Remove decls.
586         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
587         * c-typeck.c (c_begin_if_stmt): Return void.
588         (c_begin_else): Tidy.  Save stmt_count.
589         * c-tree.h (c_begin_if_stmt): Update decl.
590
591         * objc/objc-act.c (objc_build_try_enter_fragment,
592         objc_build_extract_fragment, objc_build_try_epilogue,
593         objc_build_catch_stmt, objc_build_catch_epilogue,
594         objc_build_finally_prologue, objc_build_finally_epilogue): Update
595         for if builder function changes.
596
597 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
598
599         * config/s390/s390.c (struct machine_function):  New member
600         last_restore_gpr.
601         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
602         Do not modify machine->save_return_addr_p or regs_ever_live.
603         Fill in machine->last_restore_gpr.
604         (s390_optimize_prolog): Use s390_frame_info to compute registers
605         to save/restore, remove duplicated code.
606         (s390_arg_frame_offset): Use s390_frame_info to compute frame
607         size, remove duplicated code.
608         (s390_emit_prologue): Adapt s390_frame_info call.  Update
609         machine->save_return_addr_p and regs_ever_live.
610         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
611         machine->last_save_gpr.
612
613 2004-06-16  Richard Henderson  <rth@redhat.com>
614
615         * c-parse.in (if_stmt_locus): Remove.
616         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
617         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
618         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
619         empty_locus.  Add stmt_count, saw_else.
620         (c_begin_if_stmt): Push if_stack here.
621         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
622         (c_finish_then, c_finish_else): Record empty_locus.
623         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
624         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
625         if or else body.
626         * c-tree.h: Update prototypes.
627
628 2004-06-16  Steven Bosscher  <stevenb@suse.de>
629
630         * tree.h (PHI_CHAIN): New.
631         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
632         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
633         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
634         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
635         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
636         when traversing a list of PHI_NODEs.
637
638 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
639
640         PR target/13292
641         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
642         on -msoft-float.
643         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
644         68040 and soft-float.
645         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
646         in the TARGET_68040_ONLY case.
647
648 2004-06-16 Peter Barada  <peter@the-baradas.com>
649
650         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
651         (movsi_cf): Make named, don't match TARGET_CFV4.
652         (pushexthisi_const): Use mov3q if possible.
653         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
654         to special case mvz.w for ColdFire V4.
655         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
656         to special case mvz.b for ColdFire V4.
657         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
658         divide.
659         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
660         * config/m68k/m68k.c(valid_mov3q_const):  New function.
661         (const_method): SWAP is valid for ColdFire.
662         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
663         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
664
665 2004-06-16  Richard Henderson  <rth@redhat.com>
666
667         * c-common.def (CASE_LABEL): Remove.
668         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
669         (match_case_to_enum_1): Likewise.
670         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
671         * c-dump.c (c_dump_tree): Likewise.
672         * c-gimplify.c (c_gimplify_stmt): Likewise.
673         * c-pretty-print.c (pp_c_statement): Likewise.
674         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
675         * tree.h (CASE_LOW): Update commentary.
676
677 2004-06-16  Richard Henderson  <rth@redhat.com>
678
679         * c-common.def (ASM_STMT): Remove.
680         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
681         * c-dump.c (c_dump_tree): Likewise.
682         * c-gimplify.c (c_gimplify_stmt): Likewise.
683         * c-pretty-print.c (pp_c_statement): Likewise.
684         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
685         * tree.h: Fix commentary.
686
687 2004-06-16  Richard Henderson  <rth@redhat.com>
688
689         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
690         * c-common.c (c_add_case_label): Use LABEL_EXPR.
691         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
692         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
693         * c-dump.c (c_dump_tree): Likewise.
694         * c-gimplify.c (c_gimplify_stmt): Likewise.
695         * c-pretty-print.c (pp_c_statement): Likewise.
696         * c-parse.in (stmt): Use GOTO_EXPR.
697         (label): Use LABEL_EXPR.
698         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
699         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
700
701 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
702
703         * cfgcleanup.c (try_simplify_condjump): Update test to make
704         sure we have a conditional branch around am unconditional branch.
705
706 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
707
708         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
709
710 2004-06-16  Dale Johannesen  <dalej@apple.com>
711
712         * loop.c (loop_givs_reduce): Avoid miscompilation of
713         loops entered at bottom.
714
715 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
716
717         * cfglayout.c (fixup_reorder_chain): Handle case where the
718         destination of E_FALL is EXIT_BLOCK_PTR.
719
720 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
721
722         PR target/15653
723         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
724         after shifts before asm.
725
726 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
727
728         PR tree-optimization/15993
729         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
730         destination is unchanged.
731
732 2004-06-16  Andreas Jaeger  <aj@suse.de>
733
734         * doc/install.texi (Configuration): Update description for
735         --enable-version-specific-runtime-libs.
736
737 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
738
739         * doc/install.texi: boehm-gc now uses automake 1.8.5.
740
741 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
742
743         * toplev.h (rest_of_compilation): Adjust prototype.
744
745 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
746
747         * coverage.c: Remove argument to rest_of_compilation.
748         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
749         * passes.c (rest_of_compilation): Remove argument.
750         (pass_rest_of_compilation): New.
751         (rest_of_handle_final, rest_of_handle_delay_slots,
752         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
753         rest_of_handle_machine_reorg, rest_of_handle_regrename
754         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
755         rest_of_handle_regmove, rest_of_handle_tracer
756         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
757         rest_of_handle_web, rest_of_handle_branch_prob
758         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
759         rest_of_handle_addressof, rest_of_handle_jump_bypass
760         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
761         Check that the two arguments are actually superfluous.
762         * tree-optimize.c (register_dump_files): Add properties argument.
763         Track validity of passes.  Only initialize dump files for
764         tree-based passes.  Store the full set of provided passes in
765         the pass.
766         (init_tree_optimization_passes): Register pass_expand and
767         pass_rest_of_compilation.
768         (execute_one_pass): Do not track the presence of required properties
769         here.  Set in_gimple_form.  Do not update current_properties.
770         (current_properties): Remove.
771         (set_save_expr_context): Remove.
772         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
773         expand to RTL here, and do not call rest_of_compilation.  Push
774         GGC context even before gimplification.
775         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
776         (pass_expand, pass_rest_of_compilation): Declare.
777
778 2004-06-15  Jeff Law  <law@redhat.com>
779
780         * fold-const.c (swap_tree_comparison): No longer static.
781         (tree_swap_operands_p): Similarly.  Return true if both operands
782         are SSA_NAMEs and the first operand has a higher version number than
783         the second operand.
784         * tree.h (swap_tree_comparison): Prototype.
785         (tree_swap_operands_p): Prototype.
786         * tree-ssa-operands.c (get_expr_operands): For commutative
787         operators and relational comparisons, canonicalize the
788         order of the operands.
789
790 2004-06-15  Richard Henderson  <rth@redhat.com>
791
792         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
793         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
794         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
795         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
796         (finish_fname_decls, fname_decl): Use statement_lists.
797         (c_expand_expr_stmt): Don't set last_expr_type.
798         (c_type_hash): Fix indentation.
799         (c_safe_from_p): Don't follow TREE_CHAIN.
800         (c_tree_chain_matters_p): Remove.
801         * c-common.def (SCOPE_STMT): Remove.
802         (CLEANUP_STMT): Redefine to contain its own body.
803         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
804         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
805         Add x_cur_stmt_list.
806         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
807         (cur_stmt_list): New.
808         (STATEMENT_LIST_STMT_EXPR): New.
809         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
810         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
811         (CLEANUP_BODY): New.
812         (CLEANUP_DECL): Move to operand 2.
813         (c_common_stmt_codes): Remove SCOPE_STMT.
814         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
815         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
816         (c_push_function_context, c_pop_function_context): Don't save it.
817         (finish_decl): Set TREE_USED on the decl for a cleanup.
818         Use push_cleanup.
819         (store_parm_decls): Use statement lists.
820         (finish_function): Remove compstmt rule workaround.  Use statement
821         lists.  Call finish_fname_decls after finalizing the body.
822         (c_begin_compound_stmt): Move to c-typeck.c.
823         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
824         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
825         (c_genericize): Invoke them.
826         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
827         (c_build_bind_expr): Export.
828         (gimplify_block, gimplify_cleanup): Remove.
829         (gimplify_condition): Use gimplify_stmt.
830         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
831         (gimplify_if_stmt): Remove recursion hack.
832         (c_gimplify_expr): Remove STMT_EXPR handling.
833         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
834         (is_last_stmt_of_scope): Remove.
835         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
836         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
837         c_end_compound_stmt.
838         * c-objc-common.c (build_cdtor): Likewise.
839         * c-parse.in (primary): Use c_finish_stmt_expr.
840         (push_scope, pop_scope): Remove.
841         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
842         (c99_block_end, compstmt): Use c_end_compound_stmt.
843         (c99_block_lineno_labeled_stmt): Likewise.
844         (compstmt_primary_start): Use c_begin_stmt_expr.
845         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
846         (do_stmt_start): Fill in body directly.
847         (lineno_stmt): Avoid setting lineno on constants.
848         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
849         Remove SCOPE_STMT.
850         * c-semantics.c (begin_stmt_tree): Remove.
851         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
852         (add_stmt): Use statement lists.
853         (add_scope_stmt, finish_stmt_tree): Remove.
854         (push_cleanup): New.
855         * c-tree.h: Move some decls from c-common.h.
856         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
857         (do_case, c_finish_case): Likewise.
858         (c_finish_then): Take body for then as argument.
859         (c_finish_else): Similarly.
860         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
861         c_finish_for_stmt_incr, c_finish_for_stmt): New.
862         (c_begin_stmt_expr, c_finish_stmt_expr): New.
863         (c_begin_compound_stmt): Do scope management.
864         (c_end_compound_stmt): New.
865         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
866         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
867         Look through exception handling constructs.
868         (gimplify_bind_expr): Accept temporary argument.
869         (gimplify_target_expr): Special case BIND_EXPR bodies.
870         (gimplify_expr): Handle fallback == fb_none like a statement.
871         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
872         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
873         * langhooks.h (tree_chain_matters_p): Remove.
874         * stub-objc.c (objc_clear_super_receiver): New.
875         * tree-gimple.h (voidify_wrapper_expr): Update decl.
876         (append_to_statement_list, append_to_statement_list_force): Move
877         to tree-iterator.h.
878         * tree-inline.c (expand_call_inline): Update call.
879         (clone_body): Use statement lists.
880         (walk_tree): Don't check tree_chain_matters_p.
881         (copy_tree_r): Likewise.
882         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
883         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
884         * tree-iterator.h (append_to_statement_list,
885         append_to_statement_list_force): Moved from tree-gimple.h.
886         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
887         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
888         (objc_enter_block): Likewise.
889         (objc_exit_block): Use c_end_compound_stmt.
890         (objc_build_try_enter_fragment): Add #error and comment for
891         rewriting for OBJCPLUS.
892         (objc_build_extract_fragment, objc_build_try_epilogue,
893         objc_build_catch_stmt, objc_build_finally_prologue,
894         objc_build_finally_epilogue): Update for C statement builders.
895         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
896         Remove.
897
898 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
899
900         * df.c (df_reg_clobber_gen): Removed.
901         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
902         Make more effective for hard regs.
903         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
904
905 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
906
907         * c-pragma.h (c_lex_string_translate): Change type to int.
908         * c-parse.in: Change all assignments of c_lex_string_translate
909         to true and false to 1 and 0.
910         * c-lex.c (c_lex_string_translate): Likewise.
911         (lex_string): Convert string without translation in the -1
912         case.
913
914 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
915
916         * convert.h: Add include guards
917
918 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
919
920         * tree-flow-inline.h: Document all functions.
921
922 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
923
924         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
925         * tree-dfa.c (create_stmt_ann): Ditto.
926         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
927         * tree-inline.c (estimate_num_insns_1): Ditto.
928         * tree.c (tree_size): Ditto.
929         (make_node_stat): Ditto.
930         (tree_node_structure): Ditto.
931         (ephi_node_elt_check_failed): Remove.
932         (is_essa_node): Ditto.
933         * tree.def (EPHI_NODE): Ditto.
934         (EEXIT_NODE): Ditto.
935         (EUSE_NODE): Ditto.
936         (EKILL_NODE): Ditto.
937         * tree.h (EREF_NODE_CHECK): Remove.
938         (EPHI_NODE_ELT_CHECK): Ditto.
939         (struct tree_eref_common): Ditto.
940         (struct tree_euse_node): Ditto.
941         (struct ephi_arg_d): Ditto.
942         (struct tree_ephi_node): Ditto.
943         (ephi_node_elt_check_failed): Remove prototype.
944         (is_essa_node): Ditto.
945         (enum tree_node_structure_enum): Remove TS_E*_NODE.
946         (union tree_node): Remove E*_NODE uses.
947
948 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
949
950         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
951         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
952         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
953         Likewise.
954         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
955         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
956         expand_builtin_strcmp, expand_builtin_strncmp,
957         expand_builtin_frame_address): Likewise.
958         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
959         insert_one_insn): Likewise.
960         * calls.c (prepare_call_address, precompute_register_parameters,
961         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
962         * cfganal.c (flow_active_insn_p): Likewise.
963         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
964         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
965         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
966         make_extraction, recog_for_combine, gen_lowpart_for_combine,
967         simplify_comparison, record_dead_and_set_regs_1,
968         record_dead_and_set_regs, record_promoted_value,
969         check_promoted_subreg, get_last_value_validate, get_last_value,
970         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
971         unmentioned_reg_p_1): Likewise.
972         * conflict.c (mark_reg): Likewise.
973         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
974         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
975         merge_equiv_classes, flush_hash_table, invalidate,
976         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
977         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
978         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
979         record_jump_cond, cse_insn, addr_affects_sp_p,
980         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
981         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
982         cse_cc_succs, cse_condition_code_reg): Likewise.
983         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
984         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
985         cselib_record_set, cselib_record_sets): Likewise.
986         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
987         dbxout_block): Likewise.
988         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
989         * dojump.c (do_jump): Likewise.
990         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
991         is_based_loc, rtl_for_decl_location): Likewise.
992         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
993         set_decl_incoming_rtl, mark_user_reg): Likewise.
994         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
995         copy_to_suggested_reg, allocate_dynamic_stack_space,
996         probe_stack_range, hard_function_value): Likewise.
997         * expmed.c (store_bit_field, store_fixed_bit_field,
998         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
999         extract_split_bit_field, expand_divmod, emit_store_flag_force):
1000         Likewise.
1001         * expr.c (convert_move, convert_modes,
1002         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1003         use_group_regs, emit_move_insn, emit_move_insn_1,
1004         compress_float_constant, push_block, emit_single_push_insn,
1005         emit_push_insn, get_subtarget, expand_assignment, store_expr,
1006         store_constructor, store_field, force_operand, safe_from_p,
1007         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1008         Likewise.
1009         * final.c (profile_function, final_scan_insn, alter_subreg,
1010         get_mem_expr_from_op, output_asm_operand_names, output_operand,
1011         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1012         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1013         find_regno_partial, propagate_one_insn, init_propagate_block_info,
1014         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1015         attempt_auto_inc, find_auto_inc, mark_used_regs,
1016         count_or_remove_death_notes_bb): Likewise.
1017         * function.c (find_temp_slot_from_address, update_temp_slot_address,
1018         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1019         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1020         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1021         purge_single_hard_subreg_set, instantiate_decl,
1022         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1023         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1024         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1025         expand_function_start, diddle_return_value, clobber_return_register,
1026         expand_function_end, keep_stack_depressed, handle_epilogue_set,
1027         update_epilogue_consts): Likewise.
1028         * genemit.c (gen_exp, gen_insn): Likewise.
1029         * genrecog.c (make_insn_sequence): Likewise.
1030         * global.c (global_conflicts, expand_preferences, mark_reg_store,
1031         mark_reg_conflicts, set_preference, reg_becomes_live,
1032         build_insn_chain, mark_reg_change): Likewise.
1033         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1034         Likewise.
1035         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1036         Likewise.
1037         * integrate.c (copy_rtx_and_substitute, try_constants,
1038         subst_constants, mark_stores, allocate_initial_values): Likewise.
1039         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1040         delete_computation, rtx_renumbered_equal_p, true_regnum,
1041         reg_or_subregno): Likewise.
1042         * lcm.c (reg_dies, reg_becomes_live): Likewise.
1043         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1044         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1045         wipe_dead_reg, no_conflict_p): Likewise.
1046         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1047         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1048         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1049         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1050         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1051         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1052         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1053         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1054         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1055         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1056         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1057         try_swap_copy_prop): Likewise.
1058         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1059         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1060         Likewise.
1061         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1062         reload_cse_simplify_operands, reload_combine,
1063         reload_combine_note_store, reload_combine_note_use,
1064         reload_cse_move2add, move2add_note_store): Likewise.
1065         * print-rtl.c (print_rtx): Likewise.
1066         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1067         contains_pseudo, handle_asm_insn): Likewise.
1068         * ra-debug.c (ra_print_rtx_object, dump_constraints,
1069         dump_static_insn_cost): Likewise.
1070         * ra-rewrite.c (slots_overlap_p, emit_colors,
1071         remove_suspicious_death_notes): Likewise.
1072         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1073         register_operand, scratch_operand, nonmemory_operand,
1074         constrain_operands): Likewise.
1075         * reg-stack (check_asm_stack_operands, remove_regno_note,
1076         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1077         subst_asm_stack_regs): Likewise.
1078         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1079         record_address_regs, reg_scan_mark_refs): Likewise.
1080         * regmove.c (discover_flags_reg, replacement_quality,
1081         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1082         fixup_match_1): Likewise.
1083         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1084         kill_set_value, copyprop_hardreg_forward_1): Likewise.
1085         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1086         reload_inner_reg_of_subreg, can_reload_into, push_reload,
1087         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1088         operands_match_p, decompose, find_reloads, find_reloads_toplev,
1089         find_reloads_address, subst_indexed_address, find_reloads_address_1,
1090         find_reloads_subreg_address, find_replacement,
1091         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1092         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1093         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1094         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1095         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1096         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1097         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1098         do_output_reload, emit_reload_insns, gen_reload,
1099         delete_address_reloads_1, inc_for_reload): Likewise.
1100         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1101         update_reg_unused_notes, fill_slots_from_thread): Likewise.
1102         * resource.c (update_live_status, mark_referenced_resources,
1103         mark_set_resources, mark_target_live_regs): Likewise.
1104         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1105         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1106         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1107         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1108         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1109         parms_set, find_first_parameter_load, keep_with_call_p,
1110         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1111         num_sign_bit_copies1): Likewise.
1112         * rtlhooks.c (gen_lowpart_general): Likewise.
1113         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1114         sched_analyze): Likewise.
1115         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1116         Likewise.
1117         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1118         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1119         simplify_binary_operation, simplify_const_relational_operation,
1120         simplify_subreg): Likewise.
1121         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1122         expand_end_stmt_expr, expand_return, expand_decl,
1123         expand_anon_union_decl): Likewise.
1124         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1125         find_splittable_regs, find_splittable_givs, find_common_reg_term,
1126         loop_iterations): Likewise.
1127         * var-tracking.c (variable_union, variable_part_different_p,
1128         variable_different_p, count_uses, add_uses, add_stores,
1129         compute_bb_dataflow, set_variable_part, delete_variable_part,
1130         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1131         Likewise.
1132         * varasm.c (assemble_variable): Likewise.
1133
1134 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
1135
1136         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1137         definition.
1138         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1139         #undef and #if 0'd definition.
1140
1141 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1142
1143         * combine.c (distribute_notes): Comment typo fix.
1144
1145 2004-06-15  Roger Sayle  <roger@eyesopen.com>
1146
1147         * expmed.c (synth_mult): Mask bits of the multiplier to the
1148         machine mode of the multiplication.  Don't consider shifts
1149         by more than (or equal to) the width of the operation's mode.
1150
1151 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1152
1153         * doc/install.texi: Yet another update for autoconf
1154         and automake versions.
1155
1156 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1157
1158         * function.h (struct function): Remove cannot_inline field.
1159         (current_function_cannot_inline): Remove.
1160         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1161         Simplify conditionals to ignore warn_return_type.
1162         * tree-optimize.c (tree_rest_of_compilation): Do not reset
1163         DECL_DEFER_OUTPUT.
1164         * objc/objc-act.c (build_module_descriptor, finish_method_def):
1165         Do not set current_function_cannot_inline.
1166
1167 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1168
1169         * cfglayout.c (fixup_reorder_chain): Handle case where the
1170         destination of E_TAKEN is EXIT_BLOCK_PTR.
1171
1172 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
1173
1174         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1175
1176 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1177
1178         * fold-const.c (operand_equal_p): Update comment.
1179
1180 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1181
1182         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1183         (INCOMING_RETURN_ADDR_RTX): Define.
1184         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1185         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1186         __builtin_return_address(0).
1187         (m32r_return_addr): Added for __builtin_return_address(0).
1188         (m32r_reload_lr): Ditto.
1189
1190         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1191
1192 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1193
1194         * doc/install.texi (Prerequisites): Update libbanshee,
1195         fastjar, libcpp, libjava/libltdl entries to
1196         automake 1.8.5.
1197
1198 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1199             Olivier Hainque  <hainque@act-europe.fr>
1200
1201         * function.c (fixup_var_refs): Also adjust the start of sequence
1202         after fixing up the insns.
1203
1204 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1205
1206         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1207
1208 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1209
1210         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1211         automake 1.8.5.
1212
1213 2004-06-14  Eric Christopher  <echristo@redhat.com>
1214
1215         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1216         to -mtpf-trace (-mno-tpf-trace).
1217         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1218         documentation.
1219
1220 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1221
1222         * real.c: Fix bit count in head comment.
1223
1224 2004-06-14  Jeff Law  <law@redhat.com>
1225
1226         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1227         PHIs where the destination or an argument is marked with
1228         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1229
1230 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1231
1232         PR middle-end/15945
1233         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1234         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1235
1236 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1237
1238         * opts.sh (var_args): Fix regexp.
1239
1240 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1241
1242         PR target/15178
1243         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1244
1245 2004-06-14  Paul Brook  <paul@codesourcery.com>
1246
1247         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1248
1249 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1250
1251         * Makefile.in (FLAGS_H): New.
1252         (flags.h): Replace by FLAGS_H.
1253         * c.opt: Document Var, VarExists, Init and Report attributes.
1254         * common.opt: Fill the values of the attributes.
1255         * diagnostic.c (flag_fatal_errors): Do not define.
1256         * except.c (flag_non_call_exceptions): Do not define.
1257         * flags.h: Include options.h.  Remove declarations conflicting with
1258         the automatically defined ones.
1259         * opts.c: Remove automatically defined variables.
1260         (handle_option): Perform default initialization.
1261         (common_handle_option): Do not handle options covered by the
1262         default initialization.
1263         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1264         fields.
1265         (CL_REPORT): New.
1266         * opts.sh: Generate variable declarations, handle CL_REPORT.
1267         * toplev.c: Remove automatically defined variables.
1268         (f_options): Removed.
1269         (print_switch_values): Use cl_options instead of f_options.
1270         * toplev.h (version_flag): Declaration removed.
1271
1272 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1273
1274         * config/sparc/sparc.h: Correct comment about availability of
1275         little endian option.
1276
1277         * config.gcc: Remove sparc64-*-aout*.
1278         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1279         * config/sparc/sp64-aout.h: Remove.
1280         * config/sparc/aout.h: Remove.
1281
1282 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1283
1284         * config/s390/s390.c: Include "tree-gimple.h".
1285         (s390_gimplify_va_arg): New function.
1286         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1287         (s390_va_arg): Remove.
1288         * config/s390/s390-protos.h (s390_va_arg): Remove.
1289         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1290
1291 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1292
1293         * basic-block.h (could_fall_through): Declare.
1294         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1295         Fail if the source already has a fallthrough edge to the exit
1296         block pointer.
1297         (could_fall_through): New function.
1298         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1299         edge to the exit block pointer.
1300         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1301         not called before reload has completed.
1302         Handle special case of first block having a fall-through exit edge.
1303         (cfg_layout_finalize): Don't call it before reload or if we have
1304         rtl epilogues.
1305         (fixup_reorder_chain): A fall through to the exit block does not
1306         require the block to come last.  Add sanity checks.
1307         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1308         edges to the exit block.
1309         * function.c (cfglayout.h): #include.
1310         (thread_prologue_and_epilogue_insns): If we have neither return nor
1311         epilogue, but a fall through to the exit block from mid-function,
1312         force a non-fall-through exit.
1313         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1314
1315 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1316
1317         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1318         for power5 and rs64a.  Correct condition for default.  Correct power3,
1319         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1320
1321 2004-06-13  Steven Bosscher <stevenb@suse.de>
1322
1323         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1324         Revert previous change, don't use CALL_P.
1325
1326 2004-06-13  Jason Merrill  <jason@redhat.com>
1327
1328         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1329         * tree-gimple.h: From here.
1330
1331 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1332
1333         Fix PR tree-optimization/15979
1334         Fix PR tree-optimization/15981
1335         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1336         try to insert values undefined along some path.
1337
1338 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1339
1340         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1341         are available everywhere too.
1342
1343 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1344
1345         * fold-const.c (fold_checksum_tree <case 't'>): Only
1346         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1347         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1348         EXPR is an INTEGERAL_TYPE or a scalar float type.
1349
1350 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1351
1352         * tree-sra.c (tree_sra): Update documentation.
1353
1354 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1355
1356         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1357         function_types_compatible_p, type_lists_compatible_p): Remove
1358         flags parameter.
1359         * c-tree.h (comptypes): Likewise.
1360         (COMPARE_STRICT): Remove.
1361         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1362         callers changed.
1363
1364 2004-06-13  Eric Christopher  <echristo@redhat.com>
1365
1366         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1367         Remove unused code.
1368         * c-typeck.c (comptypes): Add location in standard we're checking.
1369
1370 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1371
1372         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1373         version 3.3.4.
1374
1375 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1376
1377         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1378         index by machine mode.
1379         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1380         tables inside the loop over machine modes.
1381         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1382         expand_divmod): Index shift*_cost by the appropriate machine mode.
1383
1384 2004-06-12  Eric Christopher  <echristo@redhat.com>
1385
1386         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1387         * config/s390/s390.md: Ditto.
1388         * config/s390/s390.c: Ditto.
1389         (s390_frame_info): Conditionalize frame and setup info on
1390         TARGET_TPF_PROFILING.
1391         (s390_arg_frame_offset): Ditto.
1392
1393 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1394
1395         * fold-const.c (omit_two_operands): New function.
1396         * tree.h (omit_two_operands): Prototype here.
1397         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1398         C99 unordered comparison builtins to the appropriate tree nodes.
1399         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1400         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1401         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1402         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1403         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1404         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1405         omit_two_operands function to build the required COMPOUND_EXPRs.
1406
1407 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1408             Andreas Jaeger  <aj@suse.de>
1409
1410         * gcse.c (record_set_info): Use predicates like REG_P.
1411         (mems_conflict_for_gcse_p): Likewise.
1412         (load_killed_in_block_p): Likewise.
1413         (hash_expr_1): Likewise.
1414         (insert_set_in_table): Likewise.
1415         (gcse_constant_p): Likewise.
1416         (hash_scan_set): Likewise.
1417         (hash_scan_insn): Likewise.
1418         (canon_list_insert): Likewise.
1419         (record_last_mem_set_info): Likewise.
1420         (record_last_set_info): Likewise.
1421         (compute_hash_table_work): Likewise.
1422         (mark_set): Likewise.
1423         (mark_clobber): Likewise.
1424         (mark_oprs_set): Likewise.
1425         (compute_transp): Likewise.
1426         (find_avail_set): Likewise.
1427         (cprop_insn): Likewise.
1428         (do_local_cprop): Likewise.
1429         (cprop): Likewise.
1430         (find_implicit_sets): Likewise.
1431         (find_bypass_set): Likewise.
1432         (bypass_conditional_jumps): Likewise.
1433         (insert_insn_end_bb): Likewise.
1434         (pre_insert_copy_insn): Likewise.
1435         (compute_transpout): Likewise.
1436         (next_ls_expr): Likewise.
1437         (invalidate_any_buried_refs): Likewise.
1438         (compute_ld_motion_mems): Likewise.
1439         (reg_set_info): Likewise.
1440         (reg_clear_last_set): Likewise.
1441         (find_moveable_store): Likewise.
1442         (compute_store_table): Likewise.
1443         (find_loads): Likewise.
1444         (store_killed_in_insn): Likewise.
1445         (insert_insn_start_bb): Likewise.
1446         (reg_set_between_after_reload_p): Likewise.
1447         (reg_used_between_after_reload_p): Likewise.
1448         (is_jump_table_basic_block): Likewise.
1449         (gcse_after_reload): Likewise.
1450         (hash_scan_set_after_reload): Likewise.
1451         (compute_hash_table_after_reload): Likewise.
1452
1453 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1454
1455         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1456         (INSN_P): Don't look at the rtx code class, just explicitly
1457         check for one of the tree RTX_INSN codes.
1458
1459 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1460
1461         * c-typeck.c (default_function_array_conversion): Use
1462         build_pointer_type not TYPE_POINTER_TO.
1463
1464 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1465
1466         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1467         * configure, config.in: Regenerate.
1468         * system.h: Unconditionally define bool as unsigned char,
1469         BOOL_BITFIELD as unsigned int.
1470         * domwalk.h: Use BOOL_BITFIELD.
1471
1472 2004-06-12  Andreas Jaeger  <aj@suse.de>
1473
1474         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1475         * libgcc-darwin.ver: Likewise.
1476
1477 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1478
1479         * reload.c (find_reloads): Force reload for pseudo registers on big
1480         endian machines.
1481
1482 2004-06-11  Steven Bosscher <stevenb@suse.de>
1483
1484         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1485         Don't try to mark anything control dependent on the entry or
1486         exit blocks.
1487
1488 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1489
1490         Fix Bug 15899
1491         Fix Bug 15460
1492         * tree.h (SSA_NAME_VALUE): New macro.
1493         (struct tree_ssa_name): Add value_handle member.
1494         * tree-ssa-pre.c: Replaced.
1495         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1496         (struct cst_ann_d): New.
1497         (struct expr_ann_d): New.
1498         (union tree_ann_d): Add cst_ann, expr_ann.
1499         * tree-dfa.c (create_cst_ann): New function.
1500         (create_expr_ann): Ditto.
1501         * tree-flow-inline.h (cst_ann): New function.
1502         (expr_ann): Ditto.
1503         (get_cst_ann): Ditto.
1504         (get_expr_ann): Ditto..
1505
1506 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1507
1508         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1509         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1510         _U_Qfcmp library function.
1511         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1512         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1513
1514         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1515         unspec used for loading address from DLT.
1516         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1517         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1518         Don't use short code sequence when loading the address of a nonlocal
1519         label.
1520         (nonlocal_goto): New expander.
1521         (indirect_goto): New jump pattern for nonlocal gotos.
1522         (short_jump): Remove extra whitespace.
1523         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1524         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1525         pattern.
1526
1527 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1528
1529         * expmed.c (synth_mult): Add an additional MODE argument for the
1530         machine mode of the multiplication.  Update recursive calls.  Use
1531         mode instead of word_mode for determining operation costs.
1532         (choose_mult_variant): Update calls to synth_mult with "mode".
1533
1534 2004-06-11  Richard Henderson  <rth@redhat.com>
1535
1536         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1537         and makes_aliased_stores.
1538
1539 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1540
1541         * doc/install.text (--enable-shared): Fix typo.
1542
1543 2004-06-11  Richard Henderson  <rth@redhat.com>
1544
1545         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1546         argument.  Use internal post for call to gimplify_expr.  Tidy
1547         rounded type size computation.
1548         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1549         get_initialized_tmp_var.
1550
1551 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1552
1553         * doc/install.texi (--enable-shared): Update libobjc's shared library
1554         status.  Remove reference to libf2c.
1555
1556 2004-06-11  Jason Merrill  <jason@redhat.com>
1557
1558         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1559         * config/i386/i386.c (ix86_va_arg): Remove.
1560         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1561         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1562         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1563         * config/alpha/alpha.c (alpha_va_arg): Remove.
1564         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1565         * config/sparc/sparc.c (sparc_va_arg): Remove.
1566
1567         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1568         assignment might throw.
1569         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1570         expressions.
1571
1572 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1573
1574         PR 15886:
1575         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1576
1577 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1578
1579         * doc/install.texi (Prerequisites): Update documentation of
1580         required versions of autoconf and automake.  Remove mention of
1581         libf2c.
1582
1583 2004-06-11  Jason Merrill  <jason@redhat.com>
1584
1585         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1586         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1587
1588 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1589
1590         * typeclass.h: Add GPL plus exception license.  Add include
1591         guard.
1592
1593 2004-06-10  Jason Merrill  <jason@redhat.com>
1594
1595         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1596         of an aggregate_value_p type.
1597
1598 2004-06-10  Jeff Law  <law@redhat.com>
1599
1600         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1601         code when we are in gimple form.
1602
1603 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1604
1605         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1606         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1607         (highest_ssa_version): Remove.
1608         * tree-outof-ssa.c (new_temp_expr_table): Replace
1609         highest_ssa_version with num_ssa_names.
1610         (dump_replaceable_exprs): Likewise.
1611         (rewrite_vars_out_of_ssa): Likewise.
1612         * tree-ssa-ccp.c (initialize): Likewise
1613         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1614         * tree-ssa-dce.c (tree_dce_init): Likewise.
1615         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1616         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1617         (dump_var_map): Likewise.
1618         * tree-ssa.c (verify_ssa): Likewise.
1619         (kill_redundant_phi_nodes): Likewise.
1620         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1621         * tree-ssanames.c: Include tree-flow.h
1622         (ssa_names): New varray.
1623         (init_ssa_names): Initialize ssa_names.
1624         Reserve the first slot of the ssa_names table.
1625         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1626         Assign version numbers using num_ssa_names.
1627
1628 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1629
1630         * doc/sourcebuild.texi (Front End): Add details of more
1631         installation documentation required.
1632
1633 2004-06-10  Brian Booth  <bbooth@redhat.com>
1634
1635         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1636         of V_MAY_DEF and V_MUST_DEF.
1637         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1638         num_vdefs to num_v_may_defs.
1639         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1640         to v_may_def.
1641         (redirect_immediate_uses): Ditto.
1642         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1643         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1644         Also add code to sum up the number of v_must_defs.
1645         (vdefs_disappeared_p): Replace with...
1646         (v_may_defs_disappeared_p): This.
1647         (v_must_defs_disappeared_p): New function.
1648         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1649         Also add code to mark new variables found in V_MUST_DEFs for
1650         renameing.
1651         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1652         vdef_ops to v_may_def_ops.
1653         (get_vdef_ops): Replace with...
1654         (get_v_may_def_ops): This.
1655         * tree-flow-inline.h (get_vdef_ops): Replace with...
1656         (get_v_may_def_ops): This.
1657         (get_v_must_def_ops): New function.
1658         (get_vdef_result_ptr): Replace with...
1659         (get_v_may_def_result_ptr): This.
1660         (get_vdef_op_ptr): Ditto with...
1661         (get_v_may_def_op_ptr); This.
1662         (get_v_must_def_op_ptr): New function.
1663         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1664         to v_may_def. Also add code to mark statements with
1665         V_MUST_DEFs as definition sites.
1666         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1667         add code to register new V_MUST_DEFs made by the statement.
1668         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1669         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1670         add check for V_MUST_DEFs.
1671         (find_replaceable_in_bb): Ditto.
1672         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1673         to v_may_def. Also add code to dump V_MUST_DEFs.
1674         * tree-sra.c (mark_all_vdefs): Replace with...
1675         (mark_all_v_may_defs): This.
1676         (mark_all_v_must_defs): New function.
1677         (create_scalar_copies): Replace call to mark_all_vdefs with
1678         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1679         (scalarize_structures): Rename occurences of vdef to v_may_def.
1680         Also add a check for V_MUST_DEFs.
1681         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1682         * tree-ssa-alias.c (global_var): Update comment.
1683         (compute_may_aliases): Ditto.
1684         (compute_points_to_and_addr_escape): Rename occurences of vdef
1685         to v_may_def. Also add code to mark variables in V_MUST_DEF
1686         operands as being written to.
1687         (group_aliases): Update comment.
1688         (maybe_create_global_var): Ditto.
1689         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1690         Also add a check for V_MUST_DEFs on GIMPLE registers.
1691         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1692         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1693         to v_may_def. Also add code to mark all V_MUST_DEF operands
1694         VARYING.
1695         (initialize): Ditto.
1696         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1697         code to update SSA_NAMEs in V_MUST_DEFs.
1698         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1699         to v_may_def.
1700         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1701         occurences of vdef to v_may_def. Also add code to mark statements
1702         with V_MUST_DEFs as necessary.
1703         (propagate_necessity): Rename occurences of vdef to v_may_def.
1704         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1705         occurences of vdef to v_may_def. Also add code to mark operands
1706         in V_MUST_DEFs for renaming.
1707         (eliminate_redundant_computations): Rename occurences of vdef
1708         to v_may_def.
1709         (record_equivalences_from_stmt): Rename occurences of vdef
1710         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1711         (optimize_stmt): Remove unnesessary variable vdefs. Update
1712         comment.
1713         (register_definitions_for_stmt): Rename occurences of vdef
1714         to v_may_def. Also add code to register definitions made with
1715         V_MUST_DEFs.
1716         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1717         (fix_stmt_v_may_defs): This.
1718         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1719         (dse_optimize_stmt): Ditto.
1720         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1721         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1722         used in virtual operators.
1723         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1724         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1725         renaming.
1726         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1727         definitions.
1728         (build_vdefs): Renamed to...
1729         (build_v_may_defs): This.
1730         (build_v_must_defs): New variable.
1731         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1732         v_may_def_ops.
1733         (append_vdef): Replace with...
1734         (append_v_may_def): This.
1735         (append_v_must_def): New function.
1736         (NUM_FREE): Increment for V_MUST_DEF
1737         (optype_freelist): Increment its size for V_MUST_DEF
1738         (allocate_vdef_optype): Replace with...
1739         (allocate_v_may_def_optype): This.
1740         (allocate_v_must_def_optype): New function.
1741         (free_vdefs): Replace with...
1742         (free_v_may_defs): This.
1743         (free_v_must_defs): New function.
1744         (remove_vdefs): Replace with...
1745         (remove_v_may_defs): This.
1746         (remove_v_must_defs): New function.
1747         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1748         add code to initialize build_v_must_defs.
1749         (finalize_ssa_vdefs): Replace with...
1750         (finalize_ssa_v_may_defs): This.
1751         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1752         (finalize_ssa_v_must_defs): New function.
1753         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1754         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1755         (verify_start_operands): Rename occurences of vdef to v_may_def.
1756         Also add check for build_v_must_defs.
1757         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1758         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1759         killing definitions.
1760         (get_expr_operands): Update comment and use opf_kill_def for
1761         killing definitions.
1762         (add_stmt_operand): Replace code that appends VDEFs with code
1763         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1764         otherwise.
1765         (add_call_clobber_ops): Update comments.
1766         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1767         (v_may_def_optype_d): This.
1768         (v_must_def_optype_d): New structure.
1769         (VDEF_OPS): Replace with...
1770         (V_MAY_DEF_OPS): This.
1771         (STMT_VDEF_OPS): Same with...
1772         (STMT_V_MAY_DEF_OPS): This.
1773         (NUM_VDEFS): And...
1774         (NUM_V_MAY_DEFS): This.
1775         (VDEF_RESULT_PTR): As well as...
1776         (V_MAY_DEF_RESULT_PTR): This.
1777         (VDEF_RESULT): Same goes for...
1778         (V_MAY_DEF_RESULT): This.
1779         (VDEF_OP_PTR): And...
1780         (V_MAY_DEF_OP_PTR): This.
1781         (VDEF_OP): And...
1782         (V_MAY_DEF_OP): This.
1783         (V_MUST_DEF_OPS): New macro.
1784         (STMT_V_MUST_DEF_OPS): Ditto.
1785         (NUM_V_MUST_DEFS): Ditto.
1786         (V_MUST_DEF_OP_PTR): Ditto.
1787         (V_MUST_DEF_OP): Ditto.
1788         (remove_vdefs): Replace signature with...
1789         (remove_v_may_defs): This.
1790         (remove_v_must_defs): New function signature.
1791         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1792         with calls to remove_v_may_defs and remove_v_must_defs.
1793         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1794         Also add code that marks left occurences of operands in V_MUST_DEFs.
1795         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1796         to v_may_def. Also add check for V_MUST_DEFs.
1797         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1798
1799 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1800
1801         PR target/15653
1802         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1803         insn.
1804
1805 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1806
1807         PR web/15263
1808         * doc/install.texi: Remove superfluous linebreak.
1809
1810 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1811
1812         * builtins.c (expand_builtin): Fall back to library function call for
1813         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1814         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1815         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1816         IMAGPART_EXPR respectively.
1817
1818 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1819
1820         * sh.c (dump_table): New argument start.  Changed caller.
1821         (fixup_mova): New function.
1822         (find_barrier): Use it.
1823         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1824         If the label a mova refers to is above the mova itself, change
1825         the mova into a load.
1826         * sh.md (*casesi_worker): Rename to:
1827         (casesi_worker_1).
1828         (casesi_worker_2): New insn.
1829
1830 2004-06-10  Jason Merrill  <jason@redhat.com>
1831
1832         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1833         hook signature.
1834         * tree-gimple.h: Adjust.
1835         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1836         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1837         Use fold_convert.
1838         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1839         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1840         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1841         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1842         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1843         Gimplify valist rather than calling stabilize_va_list.
1844
1845 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1846
1847         * Makefile.in (df.o): Remove fibheap dependency.
1848         * df.h: Do not include sbitmap.h.
1849         (struct ref): New field "data".
1850         (DF_REF_DATA): New accessor macro.
1851         (struct df): Field "dom" removed.
1852         (df_analyze_subcfg): New function.
1853         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1854         (transfer_function): ... new type.
1855         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1856         (iterative_dataflow): ... new function.
1857         (enum set_representation, struct dataflow): New.
1858         * df.c: Do not include fibheap.h.
1859
1860         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1861         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1862         prune_to_subcfg, df_bb_modify): New functions.
1863         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1864         df_refs_update, df_reg_table_realloc, df_ref_create,
1865         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1866         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1867         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1868
1869         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1870         (df_rd_transfer_function, df_ru_transfer_function,
1871         df_lr_transfer_function): Type of bitmaps changed to void *.
1872         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1873         (hybrid_search): ... new function.
1874         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1875         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1876         a worklist.  Do not process basic blocks unnecessarily.
1877
1878 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1879
1880         * fold-const.c (fold_abs_const): Make extern.
1881         * tree.h (fold_abs_const): Prototype here.
1882         * builtins.c (fold_builtin_fabs): New function to transform
1883         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1884         (fold_builtin_abs): New function to transform abs, labs, llabs
1885         and imaxabs builtins into ABS_EXPR tree nodes.
1886         (expand_builtin): Fall back to a function call for abs, labs,
1887         llabs and imaxabs builtins that survive constant folding.
1888         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1889         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1890
1891 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1892
1893         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1894         leaf function without unwind info at RP 0.
1895
1896 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1897
1898         PR c++/14791
1899         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1900         (fileptr_type_node): Define.
1901         * tree.c (build_common_tree_nodes_2): Initialize
1902         fileptr_type_node to ptr_type_node.
1903         * c-common.c (c_common_nodes_and_builtins): For C++, make
1904         fileptr_type_node a distinct type copy.
1905         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1906         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1907         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1908         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1909         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1910         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1911         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1912         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1913         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1914         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1915         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1916         the above *FILEPTR* types instead of *PTR*.
1917
1918 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1919
1920         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1921         match.
1922
1923 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1924
1925         * fold-const.c (fold_not_const): New function.
1926         (fold) <ABS_EXPR>: Don't bother testing wins.
1927         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1928         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1929
1930 2004-06-09  Richard Henderson  <rth@redhat.com>
1931
1932         PR middle-end/15228
1933         * function.c (assign_parms): Always set_mem_align with the computed
1934         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1935
1936 2004-06-09  Richard Henderson  <rth@redhat.com>
1937
1938         PR opt/15108
1939         * tree-tailcall.c (find_tail_calls): Don't check early for
1940         tail_recursion failure.
1941
1942 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1943
1944         Move SSA_NAME annotations into tree_ssa_name.
1945
1946         * tree-dfa.c (create_ssa_name_ann): Remove.
1947         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1948         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1949         (struct ssa_name_ann_d): Remove.
1950         (union tree_ann_d): Update.
1951         (ssa_name_ann_t): Remove.
1952         * tree-ssa-alias.c: (get_ptr_info): New local function.
1953         Replace references to ssa_name_ann_t with struct ptr_info_def.
1954         * tree-ssa-operands.c (get_expr_operands): Likewise.
1955         * tree.h (SSA_NAME_PTR_INFO): Define.
1956         (struct ptr_info_def): Declare.
1957         (struct tree_ssa_name): Add field 'ptr_info'.
1958
1959 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1960
1961         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1962         misplaced ')'.
1963
1964 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1965
1966         * config/i386/k6.md: Rewrite using the DFA model.
1967         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1968         cost of load-operation insns for the K6.
1969         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1970         (ia32_multipass_dfa_lookahead): Likewise.
1971
1972 2004-06-09  Richard Henderson  <rth@redhat.com>
1973
1974         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1975         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1976
1977 2004-06-09  Richard Henderson  <rth@redhat.com>
1978
1979         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1980
1981 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1982
1983         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1984         (CPP_ID_DATA_H): New.
1985         (gtype-desc.o): Update dependencies.
1986         (GTFILES): Use CPP_ID_DATA_H.
1987
1988 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1989
1990         Revert:
1991         PR c++/15815
1992         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1993         * doc/extend.texi: Deprecate #pragma interface and #pragma
1994         implementation.
1995
1996 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1997
1998         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1999
2000 2004-06-09  Richard Henderson  <rth@redhat.com>
2001
2002         * basic-block.h (struct edge_def): Add goto_locus.
2003         * tree-cfg.c (make_goto_expr_edges): Set it.
2004         (disband_implicit_edges): Use it.
2005         * tree-pretty-print.c (dump_implicit_edges): Print it.
2006
2007 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2008
2009         * h8300.md (ldm_h8300s_4): Fix condition for expander.
2010
2011 2004-06-08  Jason Merrill  <jason@redhat.com>
2012
2013         Gimplify VA_ARG_EXPR into simpler forms.
2014         * target.h: Add gimplify_va_arg_expr hook.
2015         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2016         * fold-const.c (build_fold_addr_expr)
2017         (build_fold_addr_expr_with_type): Move from gimplify.c.
2018         * tree.h: Declare them.
2019         * gimplify.c (gimplify_and_add): New fn.
2020         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2021         (gimplify_array_ref_to_plus, gimplify_modify_expr)
2022         (gimplify_expr): Use build_fold_*.
2023         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2024         don't know how to gimplify it.
2025         * builtins.c (std_gimplify_va_arg_expr): New fn.
2026         (dummy_object): New static fn.
2027         (gimplify_va_arg_expr): New fn.
2028         (stabilize_va_list): Use build_fold_*.
2029         * tree-gimple.h: Declare new fns.
2030         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2031         (ix86_gimplify_va_arg): New fn.
2032         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2033         (ia64_gimplify_va_arg): New fn.
2034         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2035         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2036         * alias.c (get_varargs_alias_set): Just return 0 for now.
2037
2038         * c-objc-common.c (c_tree_printer): Improve handling of %T.
2039
2040 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
2041
2042         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2043         of convert.
2044         * tree-inline.c (setup_one_parameter): Likewise.
2045         * tree-sra.c (csc_build_component_ref): Likewise.
2046         * tree-ssa-ccp.c (ccp_fold): Likewise.
2047         * tree-ssa-copy.c (cprop_operand): Likewise.
2048         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2049         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2050
2051 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
2052
2053         PR rtl-optimization/15521:
2054         * sched-int.h (in_post_call_group_p): Change type to enum.
2055         * sched-deps.c (sched_analyze_insn):
2056         (sched_analyze): When in_post_call_group_p is post_call_initial,
2057         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2058         and also reset in_post_call_group_p to post_call.
2059         (sched_analyze): When the previous basic block ended in a CALL_INSN,
2060         initialize in_post_call_group_p as post_call_initial.
2061         (init_deps): initialize in_post_call_group_p to not_post_call.
2062
2063 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
2064
2065         PR ada/6637
2066         * doc/install.texi: List ada, libada as options to --enable-shared
2067
2068 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
2069
2070         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2071         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2072         config.in entries.
2073         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2074         if hard links are not available.
2075         * configure: Regenerate.
2076         * config.in: Regenerate.
2077
2078 2004-06-08  Per Bothner  <per@bothner.com>
2079
2080         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
2081
2082 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2083
2084         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2085         Correct formatting.
2086
2087 2004-06-08  James E Wilson  <wilson@specifixinc.com>
2088
2089         PR target/15790
2090         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2091
2092 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2093
2094         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2095         POINTER_TYPE and INTEGER_TYPE.
2096
2097 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
2098
2099         * modulo-sched.c: Compile only when INSN_SCHEDULING is
2100         defined.
2101
2102 2004-06-08  Jeff Law  <law@redhat.com>
2103
2104         * doc/contrib.texi: Add entries for Stefan Olsson and
2105         Ola Ronnerup.
2106
2107 2004-06-08  DJ Delorie  <dj@redhat.com>
2108
2109         * toplev.c (floor_log2_wide): Replace loop with faster bit
2110         operations.
2111         (exact_log2_wide): Define in terms of the above.
2112         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2113         available.
2114
2115 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2116
2117         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2118         Make sure that we are in INDIRECT mode when getting the
2119         stub name.
2120
2121 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2122
2123         * h8300.md (extendqisi2_h8300): Add constraints.
2124         (ldm_h8300s_4_normal): Fix typo.
2125
2126 2004-06-08  Richard Henderson  <rth@redhat.com>
2127
2128         * gimple-low.c (struct lower_data): Replace the_return_label and
2129         one_return_stmt with return_statements.
2130         (lower_function_body): Process the entire list of return_statements.
2131         (lower_return_expr): Check source value before unifying return_exprs.
2132         * gimplify.c (gimplify_return_expr): Force the use of a temporary
2133         for !aggregate_value_p.
2134         * tree-gimple.c: Update RETURN_EXPR grammer.
2135
2136 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
2137
2138         PR target/15598
2139         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2140
2141 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2142
2143         PR rtl-optimization/15717
2144         * config/i386/i386.c (legitimate_constant_p): Do not allow
2145         x - symbol_ref.
2146
2147 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
2148
2149         * gimplify.c (copy_if_shared_r): Revert:
2150         2004-05-21  Richard Henderson  <rth@redhat.com>
2151         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2152
2153 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2154
2155         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2156         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
2157         (init_expmed): Initialize these cost arrays as appropriate.
2158         (store_bit_field, extract_bit_field): Correct whitespace.
2159         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2160         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2161         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2162         word_mode or compute_mode as appropriate.
2163
2164 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2165
2166         PR target/15783
2167         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2168         parameter.  Enumerate the registers inside the PARALLEL.
2169         (function_arg): Adjust call to function_arg_union_value.
2170         (function_value): Likewise.
2171
2172         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2173
2174 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2175
2176         * real.c (real_copysign): New function to implement libm's copysign.
2177         * real.h (real_copysign): Prototype here.
2178         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2179         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
2180         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2181         fold_builtin_isdigit): Add function prototypes.
2182         (fold_builtin_copysign): New function to fold copysign, copysignf
2183         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
2184         constant arguments at compile-time using real_copysign.  Fold
2185         copysign(X,Y) as fabs(X) if Y is always non-negative.
2186         (fold_builtin_1): Correct minor whitespace/style issues.  Call
2187         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2188
2189 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2190
2191         * tree.c (iterative_hash_expr): Use real_hash.
2192
2193 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2194
2195         PR c/14765
2196         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2197         NULL_TREE.
2198
2199 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2200
2201         PR c++/15815
2202         * doc/extend.texi: Deprecate #pragma interface and #pragma
2203         implementation.
2204
2205 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2206
2207         PR middle-end/15666
2208         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2209         builtin decl as well.
2210
2211 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2212
2213         PR c/14649
2214         * c-typeck.c (require_constant_value, require_constant_elements):
2215         Move declarations to the top of the file.
2216         (build_function_call): If we require a constant value, fold with
2217         fold_initializer.  If the result is a constant, and the function
2218         wasn't called using __builtin_foo, issue a pedantic warning.
2219         (build_unary_op): If we require a constant value, fold tree with
2220         fold_initializer.
2221         (build_binary_op): Use require_constant_value to determine whether
2222         to call fold or fold_initializer.
2223
2224 2004-06-07  Richard Henderson  <rth@redhat.com>
2225
2226         * gimple-low.c (struct lower_data): Add the_return_label and
2227         one_return_stmt.
2228         (lower_function_body): Initialize and use them.
2229         (lower_return_expr): New.
2230         (lower_stmt): Call it.
2231         * gimplify.c (gimplify_return_expr): Force the argument to be either
2232         null or a result_decl.
2233         * tree-gimple.c: Update gimple grammer to match.
2234         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2235         coalescing of result_decls.
2236
2237 2004-06-07  Richard Henderson  <rth@redhat.com>
2238
2239         PR rtl-opt/15193
2240         * expmed.c (extract_bit_field): Fix vector_extract return.
2241
2242         * config/i386/i386.md (negv4sf2): New pattern.
2243
2244 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2245
2246         PR c++/15337
2247         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2248         message.
2249
2250 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2251
2252         * config.in: Regenerate.
2253
2254 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2255
2256         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2257         SWITCH_LABELS are always sorted.
2258
2259 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2260
2261         * hooks.c (hook_int_void_1): New generic hook.
2262         * hooks.h (hook_int_void_1): Add prototype.
2263         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2264         Define to hook_int_void_1.
2265         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2266         with dummies for the new one.
2267
2268 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2269
2270         * tree.h (lvalue_or_else): Delete function prototype.
2271         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2272
2273 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2274
2275         PR target/14542
2276         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2277         a live change of a register after peephole replacement.
2278
2279 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2280
2281         PR c/13519
2282         * c-typeck.c (composite_type, common_pointer_type): New functions.
2283         (common_type): Split parts into composite_type and
2284         common_pointer_type.  Ensure that arithmetic operations return
2285         unqualified types without attributes.  Don't make composite type
2286         of signed enum and compatible integer be unsigned.
2287         (build_conditional_expr, build_binary_op): Use
2288         common_pointer_type.
2289         * c-decl.c (merge_decls): Use composite_type.
2290         * c-tree.h (composite_type): Declare.
2291
2292 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2293
2294         PR target/14457
2295         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2296         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2297         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2298         (inhibit_libc): Must define.
2299         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2300         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2301         ("xorhi3"): Likewise.
2302
2303 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2304
2305         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2306         always_inline pass.
2307
2308 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2309
2310         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2311         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2312
2313 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2314
2315         * regclass.c (init_reg_sets): Check for missing registers in target
2316         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2317
2318 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2319
2320         * Makefile.in (MKDEPS_H): New shorthand.
2321         (c-opts.o): Update dependencies.
2322         * c-opts.c: Include mkdeps.h.
2323         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2324         not cpp_add_dependency_target.
2325
2326 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2327
2328         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2329         * config/v850/v850.md: Convert to DFA scheduler description.
2330
2331 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2332
2333         PR fortran/15478
2334         * doc/install.texi: Document GMP as prerequisite. Document
2335         --with-gmp and --with-gmp-dir configure options.
2336         * fortran/gfortran.texi: Remove section "Compiling and testing",
2337         remove TOC reference to it.
2338
2339 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2340
2341         * combine.c(simplify_shift_const): Check shift amount is a
2342         CONST_INT.
2343
2344 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2345
2346         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2347         opening asm_out_file.
2348         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2349         reading asm_out_file. Replace fflush after reading asm_out_file
2350         with fseek.
2351         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2352         default and add to HOST_HOOKS_INITIALIZER.
2353         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2354         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2355         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2356         to set mmi.offset padding.
2357          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2358         $(srcdir)/config/i386/winnt.c.
2359         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2360         (i[34567]86-*-uwin*): Likewise.
2361         *i[34567]86-*-interix3*): Likewise.
2362         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2363         * config/i386/host-mingw32.c: New file.
2364         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2365         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2366         (extern_head): Likewise.
2367         (struct export_list) Likewise.
2368         (export_head): Likewise.
2369         (i386_pe_record_external_function): Use ggc_alloc.
2370         (i386_pe_record_exported_symbol): Likewise.
2371         Include "gt-winnt.h" at end.
2372         * doc/hostconfig.texi: Document
2373         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2374
2375 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2376
2377         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2378         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2379         trailing whitespace before EOLs and before TABs.
2380         (MAX_CODE_ALIGN): Remove unused macro.
2381         (CALL_USED_REGISTERS): Reformat and add comments.
2382
2383 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2384
2385         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2386         to enumerate -lmudflap* and dependencies when linking.
2387
2388 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2389
2390         PR target/15822
2391         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2392
2393 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2394
2395         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2396         * genconditions.c (write_header): Back out removal of reload.h.
2397
2398 2004-06-04  Jan Hubicka  <jh@suse.cz>
2399
2400         Re-apply hopefully fixed patch:
2401         * i386.md (UNSPECV_EH_RETURN): Kill.
2402         (eh_return): Use jump_insn.
2403         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2404
2405 2004-06-04  Jeff Law  <law@redhat.com>
2406
2407         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2408
2409 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2410
2411         * except.c (for_each_eh_region): New function.
2412         * except.h (for_each_eh_region): Add a prototype for it.
2413         * tree-cfg.c (update_eh_labels): New function, callback for
2414         for_each_eh_region.
2415         (label_for_bb): Make global static, unfortunately.
2416         (cleanup_dead_labels): Also update label references for
2417         exception regions.
2418
2419 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2420
2421         * config/mips/mips.c (struct irix_section_align_entry): Fix
2422         GTY marker.
2423
2424 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2425
2426         * toplev.c (check_global_declarations): Don't ask for
2427         DECL_ASSEMBLER_NAME unless the function really is declared
2428         static and not defined.
2429
2430 2004-06-03  Matt Austern  <austern@apple.com>
2431
2432         PR c++/15428
2433         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2434         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2435         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2436         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2437         documentation to reflect the new macro name and to clarify its
2438         meaning.
2439
2440 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2441
2442         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2443
2444 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2445
2446         * config/darwin.c (machopic_indirect_data_reference): Copy
2447         the SYMBOL_REF_DECL from the original RTX for the new
2448         non-lazy pointer RTX.
2449
2450 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2451
2452         * tree.h: Remove include of version.h
2453         * c-cppbuiltin.c: Include version.h
2454         * diagnostic.c: Include version.h
2455         * dwarf2out.c: Include version.h
2456         * toplev.c: Include version.h
2457         * vmsdbgout.c: Include version.h
2458         * Makefile.in: Remove dependency on version.h from TREE_H, and
2459         add dependencies to required .o targets
2460
2461 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2462
2463         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2464         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2465         (TARGET_H): Add insn-modes.h.
2466         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2467         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2468         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2469         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2470         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2471         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2472         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2473         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2474         CFGLAYOUT_H.
2475         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2476         Replace ra.h with RA_H.
2477         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2478         insn-recog.o): Replace resource.h with RESOURCE_H.
2479         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2480         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2481         with SCHED_INT_H.
2482         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2483         ra-rewrite.o): Replace df.h with DF_H.
2484         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2485         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2486         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2487         (insn-conditions.o): Remove unused reload.h.
2488         * cfglayout.h: Add include guard.  Include basic-block.h.
2489         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2490         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2491         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2492         basic-block.h.
2493         * genconditions.c:  Remove reload.h.
2494         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2495         hard-reg-set.h, insn-modes.h.
2496         * resource.h: Add include guard.  Include hard-reg-set.h.
2497         * sched-int.h:  Add include guard.  Include insn-attr.h,
2498         basic-block.h, rtl.h.
2499         * target.h: Add include guard.  Include insn-modes.h.
2500         * tree-ssa-live.h: Include partition.h.
2501
2502 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2503                 Kenneth Zadeck <zadeck@naturalbridge.com>
2504
2505         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2506         (add_var_to_ssa_edges_worklist): Add value argument.
2507         Update callers.
2508         Use new worklist.
2509         (process_ssa_edge_worklist): New function.
2510         (tree_ssa_ccp): Move worklist processing core to
2511         process_ssa_edge_worklist, and just call that for the two worklists.
2512
2513 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2514
2515         * basic-block.c (tail_recursion_label_list): Don't declare.
2516         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2517         accordingly.
2518         * cfgbuild.c (find_label_refs): Remove.
2519         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2520         * cfgcleanup.c (tail_recursion_label_p): Remove.
2521         (merge_blocks_move): Do not check for tail recursion.
2522         (try_optimize_cfg): Likewise.
2523         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2524         * cfgrtl.c (tail_recursion_label_list): Remove.
2525         * except.c (remove_unreachable_regions): Don't handle
2526         CALL_PLACEHOLDER insns.
2527         (convert_from_eh_region_ranges_1, can_throw_internal,
2528         can_throw_external): Likewise.
2529         * function.c (free_after_compilation): Don't clear
2530         x_tail_recursion_label.
2531         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2532         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2533         (reorder_blocks_1): Likewise.
2534         * function.h (struct function): Remove x_tail_recursion_label
2535         member.  Don't define tail_recursion_label.
2536         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2537         * print-rtl.c (print_rtx): Likewise.
2538         * rtl.def (CALL_PLACEHOLDER): Remove.
2539         * rtl.h (sibcall_use_t): Remove enum.
2540         (optimize_sibling_and_tail_recursive_calls,
2541         replace_call_placeholder): Remove function prototypes.
2542         * stmt.c (tail_recursion_args): Remove.
2543         (optimize_tail_recursion): Remove.
2544         (expand_return): Don't check for possible tail recursion.
2545         * tree.h (optimize_tail_recursion): Remove prototype.
2546
2547 2004-06-02  Jan Hubicka  <jh@suse.cz>
2548
2549         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2550         return_stmt.
2551
2552 2004-06-02  Jason Merrill  <jason@redhat.com>
2553
2554         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2555         Do include c-parse.in.
2556
2557 2004-06-02  Eric Christopher  <echristo@redhat.com>
2558
2559         * c-typeck.c (common_type): Don't lose type qualifiers
2560         when creating new variants.
2561
2562 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2563
2564         PR tree-optimization/14042
2565         PR tree-optimization/14729
2566         PR tree-optimization/14736
2567         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2568         Check the type which the pointer points to
2569         instead of the pointer types.
2570
2571 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2572
2573         PR tree-optimization/15738.
2574         * builtins.c (fold_builtin_strchr): Transform
2575         strrchr (s, '\0') to strchr (s, '\0').
2576
2577 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2578
2579         * i386.c (ix86_adjust_cost): Don't increase the cost for
2580         load+operation for PROCESSOR_PENTIUMPRO, it is already
2581         modelled in the DFA description
2582
2583 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2584
2585         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2586         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2587         (ALIAS_H, EMIT_RTL_H): New.
2588         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2589         (cfgcleanup.o): Add EMIT_RTL_H.
2590         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2591         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2592         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2593         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2594         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2595         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2596         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2597         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2598         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2599         set_mem_size): Move to emit-rtl.h.
2600         * emit-rtl.h: New.
2601         * alias.h: New.
2602
2603 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2604
2605         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2606         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2607         Adjust recursive calls to self.
2608         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2609
2610 2004-06-01  Richard Henderson  <rth@redhat.com>
2611             Andrew Pinski  <pinskia@physics.uc.edu>
2612
2613         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2614         (primary): Handle offsetof.  Add error productions for faux functions.
2615         Move component_ref objc checking to build_component_ref.
2616         (reswords): Add offsetof.
2617         (rid_to_yy): Add offsetof.
2618         * c-tree.h (build_offsetof): Declare.
2619         * c-common.h (objc_is_public): Declare.
2620         * c-typeck.c (build_component_ref): Check objc_is_public.
2621         (build_offsetof): New.
2622         * stub-objc.c (objc_is_public): New.
2623         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2624         from is_public.
2625         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2626         * doc/extend.texi (Offsetof): Move from C++ section to C section
2627         and rewrite for __builtin_offsetof.
2628
2629 2004-06-01  Peter Barada  <peter@the-baradas.com>
2630             Peter Jakubek  <peter@laseranimation.com>
2631
2632         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2633         a scratch to perform an add to memory.
2634
2635 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2636
2637         PR target/14018
2638         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2639         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2640         m68k_align_funcs): Remove.
2641         (override_options): Remove code to handle -malign-* options.
2642         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2643         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2644         (m68k_align_loops_string, m68k_align_jumps_string,
2645         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2646         m68k_align_funcs): Remove definitions.
2647
2648 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2649
2650         PR target/15626
2651         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2652         by the Sun linker in conjunction with the Sun assembler.
2653         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2654
2655 2004-06-01  Jeff Law  <law@redhat.com>
2656
2657         * stmt.c (expand_decl): Be more selective about calling
2658         mark_reg_pointer.
2659
2660 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2661
2662         PR objc/7993
2663         * objc-act.c (is_private): Do not emit the 'instance variable %s
2664         is declared private' error.
2665         (is_public): Emit the error after calling is_private.
2666         (lookup_objc_ivar): If the instance variable is private, return 0
2667         - the instance variable is invisible here.
2668
2669 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2670
2671         * doc/invoke.texi (-static-libgcc): Explicitly mention
2672         non-GNU linkers.
2673
2674 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2675
2676         PR target/12968
2677         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2678
2679 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2680
2681         PR c/15749
2682         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2683         misuses of structures with flexible array members if
2684         in_system_header.
2685
2686 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2687
2688         PR target/15693
2689         * config/sparc/sparc.c (compare_operand): New predicate.
2690         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2691         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2692         operand is a ZERO_EXTRACT and the second operand is not zero,
2693         force the former to a register.
2694         (cmpdi expander): Likewise.
2695
2696 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2697
2698         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2699         looks at.
2700         * alias.c (alias_invariant_size): Make alias_invariant_size
2701         static, fix GTY marker.
2702
2703 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2704
2705         PR tree-optimization/15743.
2706         * builtins.c (fold_builtin_1): Fold index() and rindex().
2707
2708 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2709
2710         PR middle-end/15069
2711         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2712         into "X < 0" (where C is the signbit) if X's type is a full mode.
2713
2714 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2715
2716         * pa.md: Disable the peephole2 patterns that generate indexed
2717         floating-point stores when indexing is disabled.
2718
2719 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2720
2721         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2722         (pp_c_right_bracket): Likewise.
2723         (pp_c_star): Likewise.
2724         (pp_c_ampersand): Define.
2725         * c-pretty-print.h (pp_c_left_bracket): Declare.
2726         (pp_c_right_bracket): Likewise.
2727         (pp_c_star): Likewise.
2728         (pp_c_ampersand): Likewise.
2729
2730 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2731
2732         * config/sol2.h (__enable_execute_stack): ANSIfy function
2733         definition.
2734
2735 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2736
2737         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2738         HAVE_DOS_BASED_FILESYSTEM.
2739
2740 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2741
2742         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2743         Only look at case labels if the immediate dominator is also
2744         the only predecessor.  Don't look for more case labels if the
2745         first seen is a case range.
2746
2747 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2748
2749         * builtins.c: Add a prototype for fold_builtin_strchr().
2750
2751 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2752
2753         Revert this patch:
2754         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2755
2756         * combine.c (gen_binary): Remove.
2757         (known_cond, simplify_shift_const
2758         find_split_point, combine_simplify_rtx,
2759         simplify_if_then_else, simplify_set,
2760         simplify_logical, expand_field_assignment,
2761         extract_left_shift, force_to_mode,
2762         if_then_else_cond, apply_distributive_law,
2763         simplify_and_const_int, simplify_shift_const,
2764         gen_lowpart_for_combine, simplify_comparison,
2765         reversed_comparison): Replace with
2766         simplify_gen_binary, simplify_gen_relational or
2767         distribute_and_simplify_rtx.
2768         (distribute_and_simplify_rtx): New function.
2769
2770 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2771
2772         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2773         when generating PIC code.
2774
2775 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2776
2777         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2778         (c_expand_body): here.
2779         (c_expand_decl): Move to ...
2780         * c-common.c (c_expand_decl): Here and remove check for nested
2781         functions.
2782         * c-common.h (c_expand_decl): Add prototype.
2783         * c-tree.h (c_expand_decl): Remove.
2784
2785 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2786
2787         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2788         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2789         fold_mathfn_compare, fold_inf_compare, fold,
2790         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2791         Use constant_boolean_node where appropriate.  Don't bother using
2792         fold_convert on the second argument to omit_one_operand.
2793
2794 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2795
2796         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2797         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2798         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2799         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2800         Add missing (but documented) tree nodes to the index.
2801
2802 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2803
2804         PR tree-optimization/14819
2805         * builtins.c (fold_builtin_strchr): New.
2806         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2807         with fold_builtin_strchr().
2808
2809 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2810
2811         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2812         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2813         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2814         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2815         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2816         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2817         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2818         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2819         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2820         formatting.
2821
2822 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2823
2824         * gimplify.c (sort_case_labels): New.  Split out from...
2825         (gimplify_switch_expr): ...here.  Use it.
2826         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2827         the SWITCH_EXPR created here before leaving the function.
2828         * tree.c (sort_case_labels): Add prototype.
2829
2830 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2831
2832         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2833         of BOOLEAN_TYPE.
2834
2835 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2836
2837         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2838         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2839         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2840         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2841         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2842         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2843         comment typos.  Follow spelling conventions.
2844
2845 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2846
2847         * gengtype-yacc.y: Add NESTED_PTR token.
2848         (option): Record `nested_ptr' option.
2849         * gengtype-lex.l: Handle `nested_ptr' keyword.
2850         * gengtype.c (walk_type): Process `nested_ptr' option.
2851         * gengtype.h (struct nested_ptr_data): New.
2852         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2853         * stringpool.c (struct string_pool_data): Make 'entries' point to
2854         ht_identifier instead of tree.
2855         (gt_pch_save_stringpool): Don't adjust pointers.
2856         (gt_pch_restore_stringpool): Call ht_load.
2857
2858 2004-05-29  Jason Merrill  <jason@redhat.com>
2859
2860         * gimplify.c (gimplify_expr): Don't build a statement list
2861         if no gimplification was necessary.
2862
2863 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2864
2865         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2866         and %> as well as %'.
2867         * c-format.c: Use %< and %>.
2868         (gcc_diag_char_table, gcc_cdiag_char_table,
2869         gcc_cxxdiag_char_table): Update.
2870
2871 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2872
2873         * c-typeck.c (common_type): Correct comment.
2874
2875 2004-05-29  Peter Barada  <peter@the-baradas.com>
2876
2877         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2878         * config/m68k/m68k.c (const_method): Likewise.
2879         * config/m68k/m68k.c (const_int_cost): Likewise.
2880         * config/m68k/m68k.c (const_int_cost): Likewise.
2881         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2882
2883 2004-05-29  Peter Barada  <peter@the-baradas.com>
2884
2885         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2886         addressing.
2887         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2888         movsi,movhi,movqi insn patterns.
2889
2890 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2891
2892         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2893
2894         PR target/15720
2895         * config/darwin.c (machopic_indirect_call_target): Copy
2896         the SYMBOL_REF_DECL from the original RTX for the new
2897         stub RTX.
2898
2899 2004-05-28  DJ Delorie  <dj@redhat.com>
2900
2901         * stor-layout.c (place_field): Revert erroneous commit.
2902
2903 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2904
2905         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2906         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2907         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2908         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2909         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2910         vec_ste): Remove type checks for integral parameters and literals
2911         from '..._args_eq' macros.
2912
2913 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2914
2915         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2916
2917 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2918
2919         * testsuite/g++.dg/charset/function.cc: New.
2920
2921         * testsuite/gcc.dg/charset/function.c: New.
2922
2923         * c-decl.c (c_make_fname_decl): Free return value from
2924         fname_as_string.
2925
2926         * cp/decl.c (cp_make_fname_decl): Free return value from
2927         fname_as_string.
2928
2929         * c-common.c (fname_as_string): Translate if necessary.
2930
2931 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2932
2933         * stringpool.c: Add comments to PCH saving/restoring routines.
2934
2935 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2936
2937         * c-common.c (c_estimate_num_insns_1): Kill.
2938         (c_estimate_num_insns): Kill.
2939         * c-common.h (c_estimate_num_insns): Kill.
2940
2941         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2942         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2943         Remove comment about not checking for
2944         _POSIX_PRIORITY_SCHEDULING.
2945         * gthr-posix.c: Likewise.
2946
2947 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2948             Roger Sayle  <roger@eyesopen.com>
2949
2950         PR rtl-optimization/15649
2951         Add LTGT_EXPR and improve pretty-printing of unordered
2952         comparisons.
2953         * c-common.c (c_common_truthvalue_conversion):
2954         Handle LTGT_EXPR.
2955         * c-typeck.c (build_binary_op): Likewise.
2956         * dojump.c (do_jump): Likewise.
2957         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2958         * predict.c (tree_predict_by_opcode): Likewise.
2959         * real.c (real_compare): Likewise.
2960         * tree-cfg.c (verify_expr): Likewise.
2961         * tree-inline.c (estimate_num_insns_1): Likewise.
2962         * tree-pretty-print.c (dump_generic_node): Likewise.
2963         Handle ORDERED_EXPR, UNORDERED_EXPR.
2964         (op_symbol): Print unordered comparisons differently
2965         than ordered ones.
2966         * tree.def (LTGT_EXPR): New '<' tree code.
2967         * doc/c-tree.texi (Expressions): Document floating-point
2968         comparison nodes.
2969
2970         Fold comparisons between floating point values.
2971         * fold-const.c (enum comparison_code): New, from
2972         #define'd constants.  Define compcodes for unordered
2973         comparisons and for invalid transformations.
2974         (invert_tree_comparison): Add "honor_nans" parameter.
2975         (fold_truthop): Revamp to work on floating-point types too.
2976         (comparison_to_compcode): Support unordered comparisons.
2977         Use new enum comparison_code.
2978         (compcode_to_comparison): Likewise.
2979         (combine_compcodes): New function.
2980         (invert_truthvalue): Let invert_tree_comparison decide
2981         whether it is valid to fold the comparison.  Fold ORDERED
2982         and UNORDERED even if flag_unsafe_math_optimizations is off,
2983         and the remaining even if flag_unsafe_math_optimizations
2984         is off but we are under -fno-trapping-math.
2985         (fold_relational_const): Integer modes do not honor NaNs.
2986
2987 2004-05-28  Paul Brook  <paul@codesourcery.com>
2988
2989         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2990
2991 2004-05-28  Paul Brook  <paul@codesourcery.com>
2992
2993         * config/arm/arm.c (thumb_force_lr_save): New function.
2994         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2995         thumb_output_function_prologue): Use it.
2996         (thumb_expand_prologue): Set lr_save_eliminated.
2997
2998 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2999
3000         * config/mips/mips.md (extendsidi2): Tie the source and destination
3001         of the register alternative.  Split it into nothing.
3002
3003 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
3004
3005         * rtl.h (skip_consecutive_labels): Declare.
3006         * emit-rtl.c (skip_consecutive_labels): New function.
3007         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3008         * jump.c (follow_jumps): Say what null return values mean.
3009
3010 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3011
3012         PR target/13250
3013         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3014
3015 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3016
3017         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3018         libgcc-std.ver.
3019         * config/sh/libgcc-std.ver: New file.
3020
3021 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3022
3023         * except.c: Revert change of 2004-05-26.
3024         * config/i386/i386.md: Revert change of 2004-05-27.
3025
3026 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3027
3028         * configure.ac: Remove --enable-tree-browser option.
3029         Define TREEBROWSER when ac_tree_checking is defined.
3030         * configure: Rebuilt.
3031
3032 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
3033
3034         * expr.c (store_constructor): Restore sanity check on
3035         the size of the type before clearing.
3036
3037 2004-05-27  Jan Hubicka  <jh@suse.cz>
3038
3039         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
3040
3041 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
3042
3043         * combine.c (gen_binary): Remove.
3044         (known_cond, simplify_shift_const
3045         find_split_point, combine_simplify_rtx,
3046         simplify_if_then_else, simplify_set,
3047         simplify_logical, expand_field_assignment,
3048         extract_left_shift, force_to_mode,
3049         if_then_else_cond, apply_distributive_law,
3050         simplify_and_const_int, simplify_shift_const,
3051         gen_lowpart_for_combine, simplify_comparison,
3052         reversed_comparison): Replace with
3053         simplify_gen_binary, simplify_gen_relational or
3054         distribute_and_simplify_rtx.
3055         (distribute_and_simplify_rtx): New function.
3056         * simplify-rtx.c (simplify_binary_operation):
3057         Use nonzero_bits to simplify ANDs where we are
3058         turning off bits already known to be off in OP0.
3059
3060 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
3061
3062         PR target/14478
3063         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3064
3065 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
3066
3067         PR middle-end/14084
3068         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3069         to size of decl.
3070
3071 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
3072
3073         PR/14924
3074         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3075
3076 2004-05-26  Roger Sayle  <roger@eyesopen.com>
3077
3078         * tree.h: Fix comment typo.
3079
3080 2004-05-27  Steven Bosscher  <stevenb@suse.de>
3081
3082         * gimplify.c (compare_case_labels): New function.
3083         (gimplify_switch_expr): Sort case labels, and make sure the
3084         last label in the label vector is the default case.
3085         * tree-cfg.c (group_case_labels): New function.
3086         (build_tree_cfg): Cleanup redundant labels and group case labels
3087         before creating edges.
3088         (cleanup_dead_labels): Handle GOTO_EXPRs.
3089         (find_case_label_for_value): Use a binary search to find the
3090         case label for the given value.
3091         * tree-gimple.c: Mention that labels are sorted, and that the
3092         last label must be the default.
3093
3094 2004-05-27  Jan Hubicka  <jh@suse.cz>
3095
3096         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3097
3098 2004-05-27  Jan Hubicka  <jh@suse.cz>
3099
3100         * i386.md (UNSPECV_EH_RETURN): Kill.
3101         (eh_return): Use jump_insn.
3102         (eh_return_si, eh_return_di): Change pattern to jump instruction.
3103
3104 2004-05-26  Jan Hubicka  <jh@suse.cz>
3105
3106         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
3107         not loop optimizing.
3108
3109 2004-05-26  Jan Hubicka  <jh@suse.cz>
3110
3111         * except.c (can_throw_internal):  Notice RESX instructions.
3112
3113 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
3114
3115         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3116         of the two sizes to assemble_integer.
3117
3118 2004-05-25  Paul Brook  <paul@codesourcery.com>
3119
3120         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3121         pointless #ifdef.
3122
3123 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3124
3125         * Makefile.in (top_builddir): Define to .
3126
3127 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
3128
3129         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3130         top-level detects, except when in-tree ld is being cross-built.
3131         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
3132         then AS only if target is host.
3133         * configure: Rebuilt.
3134
3135 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
3136
3137         * global.c (global_alloc): Call make_accurate_live_analysis.
3138         (record_one_conflict): Remove dead code.
3139         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3140         (bb_info): New structure.
3141         (BB_INFO, BB_INFO_BY_INDEX): New macros.
3142         (allocate_bb_info, free_bb_info, mark_reg_change,
3143         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3144         modify_bb_reg_pav, calculate_reg_pav,
3145         make_accurate_live_analysis): New functions.
3146
3147 2004-05-25  Devang Patel  <dpatel@apple.com>
3148
3149         * alias.c (init_alias_analysis): Use ggc_calloc instead of
3150         xrealloc.
3151         (end_alias_analysis): Use ggc_free instead fo free.
3152
3153 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
3154
3155         PR target/15546
3156         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3157         as needed to be outputted.
3158
3159 2004-05-25  Jan Hubicka  <jh@suse.cz>
3160
3161         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
3162
3163 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
3164         Mostafa Hagog  <mustafa@il.ibm.com>
3165
3166         * Makefile.in (modulo-sched.o, ddg.o): New.
3167         * ddg.h, ddg.c, modulo-sched.c: New files.
3168         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3169         internals to "dupicate_insn".
3170         (duplicate_insn): New function.
3171         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3172         declarations.
3173         * common.opt (fmodulo-sched): New flag.
3174         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3175         Remove static and forward declaration.
3176         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3177         functions.
3178         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3179         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3180         declarations.
3181         * flags.h (flag_modulo_sched): New flag.
3182         * opts.c (common_handle_option): Handle modulo-sched flag.
3183         * params.def (max-sms-loop-number, sms-max-ii-factor,
3184         sms-dfa-history, sms-loop-average-count-threshold): New
3185         parameters.
3186         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3187         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3188         parameters.
3189         * passes.c ("sms", "sms-vcg"): New dumps.
3190         (rest_of_handle_sched): Call sms_schedule.
3191         * rtl.h (sms_schedule): New declaration.
3192         * timevar.def (TV_SMS): New.
3193         * toplev.c (flag_modulo_sched): Initialize.
3194         (f_options): Handle -fmodulo-sched option.
3195         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3196         * docs/passes.texi: Document new SMS pass.
3197
3198 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3199
3200         * Makefile.in (OBJS): Add rtlhooks.o.
3201         (rtlanal.o): Depend on function.h.
3202         (cse.o): Depend on rtlhooks-def.h.
3203         (combine.o): Depend on rtlhooks-def.h.
3204         (rtlhooks.o): New rule.
3205         * combine.c: Include rtlhooks-def.h.
3206         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3207         num_sign_bit_copies, cached_num_sign_bit_copies,
3208         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3209         (reg_nonzero_bits_for_combine,
3210         reg_num_sign_bit_copies_for_combine): New functions holding
3211         the remnants of the above.
3212         (combine_rtl_hooks): New.
3213         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3214         * cse.c: Include rtlhooks-def.h.
3215         (cse_rtl_hooks): New.
3216         (cse_main): Set rtl_hooks instead of gen_lowpart.
3217         * emit-rtl.c (gen_lowpart): Remove.
3218         (gen_lowpart_general): Move to rtlhooks.c.
3219         * rtl.h (nonzero_bits, num_sign_bit_copies,
3220         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3221         (gen_lowpart_general): Remove.
3222         (gen_lowpart): Temporarily redefine as a macro.
3223         * rtlanal.c: Include function.h.
3224         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3225         num_sign_bit_copies, cached_num_sign_bit_copies,
3226         num_sign_bit_copies1): New, from combine.c.
3227         * rtlhooks.c: New file.
3228         * rtlhooks-def.h: New file.
3229
3230 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3231
3232         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3233         to support 32-bit -mint8 mode.
3234
3235         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3236         option in the AVR architecture.
3237
3238 2004-05-24  Mike Stump  <mrs@apple.com>
3239
3240         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3241
3242 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3243
3244         * intl.h (open_quote, close_quote): New.
3245         * intl.c (open_quote, close_quote): New.
3246         (gcc_init_libintl): Set them.
3247         * pretty-print.c: Include "intl.h".
3248         (pp_base_format_text): Support 'q' format flag and %` and %'
3249         formats.  Use ' instead of ` in comments.
3250         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3251         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3252         foramt_types_orig): Describe these new formats.
3253         (decode_format_attr, check_function_format,
3254         check_format_info_main): Use these new formats.
3255         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3256         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3257         check these formats to 3.5.
3258
3259 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3260
3261         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3262         (BACKEND): Reflect this.
3263         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3264         (LIBS): Likewise.
3265
3266 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3267
3268         PR tree-optimization/14197
3269         * builtins.c: Include "tree-gimple.h"
3270         (readonly_data_expr): Use get_base_address.  Make sure to call
3271         decl_readonly_section only on trees it can handle.
3272         * tree-gimple.c (get_base_address): Accept STRING_CST and
3273         CONSTRUCTOR expressions.
3274         * Makefile.in: Update dependencies.
3275
3276 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3277
3278         Move libcpp to the toplevel.
3279         * Makefile.in: Remove references to libcpp files,
3280         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3281         and change hashtable.h to that.
3282         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3283         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3284         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3285         * configure: Regenerate.
3286         * config.in: Regenerate.
3287         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3288         * cppcharset.c: Removed.
3289         * cpperror.c: Removed.
3290         * cppexp.c: Removed.
3291         * cppfiles.c: Removed.
3292         * cpphash.c: Removed.
3293         * cpphash.h: Removed.
3294         * cppinit.c: Removed.
3295         * cpplex.c: Removed.
3296         * cpplib.c: Removed.
3297         * cpplib.h: Removed.
3298         * cppmacro.c: Removed.
3299         * cpppch.c: Removed.
3300         * cpptrad.c: Removed.
3301         * cppucnid.h: Removed.
3302         * cppucnid.pl: Removed.
3303         * cppucnid.tab: Removed.
3304         * hashtable.c: Removed.
3305         * hashtable.h: Removed.
3306         * line-map.c: Removed.
3307         * line-map.h: Removed.
3308         * mkdeps.c: Removed.
3309         * mkdeps.h: Removed.
3310         * stringpool.h: Include symtab.h instead of hashtable.h.
3311         * tree.h: Include symtab.h instead of hashtable.h.
3312         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3313
3314 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3315
3316         * gcc.c (struct prefix_list): Add forward declaration.
3317         (do_spec_path): New function, extracted from...
3318         (do_spec_1) <'D'>: ... here.  Drop support for
3319         SPACE_AFTER_L_OPTION.
3320         (do_spec_1) <'I'>: Use do_spec_path.
3321         (process_command): Do not store the 'include' suffix
3322         in include_prefixes.
3323         * system.h: Poison SPACE_AFTER_L_OPTION.
3324
3325 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3326
3327         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3328         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3329
3330 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3331
3332         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3333         Update based on printed manual.  Enable setting of offsets for
3334         FSFPRINT and move it to gcc-common.texi.
3335         * doc/gcc.texi: Update FSF printing details.
3336         * doc/gccint.texi: Remove FSF printing details.
3337
3338 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3339
3340         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3341
3342 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3343
3344         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3345         expand_builtin_strrchr, expand_builtin_strpbrk,
3346         expand_builtin_mempcpy, expand_builtin_memcmp,
3347         expand_builtin_strcmp, expand_builtin_strncmp,
3348         expand_builtin_strcat, std_expand_builtin_va_start,
3349         std_expand_builtin_va_arg, expand_builtin_va_copy,
3350         expand_builtin_signbit, fold_builtin_cabs,
3351         fold_builtin_logarithm, fold_builtin_mempcpy,
3352         fold_builtin_signbit, fold_builtin_isascii,
3353         fold_builtin_toascii, fold_builtin_isdigit,
3354         fold_builtin_1, build_function_call_expr,
3355         simplify_builtin_strchr, simplify_builtin_strrchr,
3356         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3357         simplify_builtin_memcmp, simplify_builtin_strcmp,
3358         simplify_builtin_strncmp, simplify_builtin_strncat,
3359         simplify_builtin_strspn, simplify_builtin_strcspn,
3360         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3361         to build with calls to build2, build3 or omit_one_operand.
3362
3363 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3364
3365         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3366         section when generating EABI code.
3367
3368 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3369
3370         PR 15546
3371         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3372         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3373
3374 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3375
3376         * c-common.c (c_common_truthvalue_conversion): Handle
3377         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3378         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3379         i.e. set the type to truthvalue_type_node and return.
3380
3381 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3382
3383        * tree.h (struct tree_decl): Add possibly_inlined bit.
3384         (DECL_POSSIBLY_INLINED): New accessor macro.
3385         * cgraph.h: Remove declaration of cgraph_inline_hash.
3386         * cgraph.c: Remove definition of cgraph_inline_hash.
3387         (hash_node): Revert to hashing DECL_UID.
3388         (eq_node): Take two pointers to cgraph_node structures.
3389         Compare DECL_UIDs.
3390         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3391         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3392         hash on DECL_UID.
3393         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3394         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3395         (cgraph_node): Allocate a temporary node on the stack, fill in
3396         its DECL field, and pass that to htab_find_slot.
3397         (cgraph_varpool_node): Likewise.
3398         (cgraph_function_possibly_inlined_p): If global info is ready,
3399         return the DECL_POSSIBLY_INLINED bit.
3400         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3401         instead of mucking with cgraph_inline_hash.
3402
3403 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3404
3405         * doc/contrib.texi: Add g77 contributors.
3406
3407 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3408
3409         * calls.c (initialize_argument_information): Forbid sibcalls if a
3410         callee-copied argument is stored in the current function's frame.
3411
3412 2004-05-22  Eric Christopher  <echristo@redhat.com>
3413
3414         * fix-header.c (read_scan_file): Update for add_path change.
3415
3416 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3417
3418         * c.opt (Wmissing-include-dirs): New.
3419         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3420         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3421         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3422         * c-incpath.h (add_path): Add fourth (bool) argument.
3423         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3424         (add_standard_paths): Likewise.
3425         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3426         is used and the directory was user-supplied via -I.
3427         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3428         using add_cpp_dir_path ().
3429         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3430         (struct cpp_dir): Add user_supplied_p.
3431         * doc/invoke.texi (Warning Options): Document new option.
3432
3433 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3434
3435         * fold-const.c (fold_read_from_constant_string): Convert result to
3436         requested type.
3437
3438 2004-05-21  Richard Henderson  <rth@redhat.com>
3439
3440         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3441         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3442         Don't mark VA_ARG_EXPRs volatile here.
3443         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3444
3445 2004-05-21  Richard Henderson  <rth@redhat.com>
3446
3447         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3448         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3449
3450 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3451
3452         * fold-const.c (fold, fold_relational_hi_lo,
3453         nondestructive_fold_binary_to_constant,
3454         fold_read_from_constant_string): Use fold_convert instead of convert.
3455         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3456         simplify_builtin_strchr, simplify_builtin_strrchr,
3457         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3458
3459 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3460
3461         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3462         is NULL.
3463
3464 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3465
3466         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3467         override sparc.h definition.
3468
3469 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3470
3471         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3472         get_unwidened, get_narrower): Replace build with build2.
3473         * fold-const.c (negate_expr, associate_trees, size_binop,
3474         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3475         pedantic_omit_one_operand, distribute_bit_expr,
3476         make_bit_field_ref, optimize_bit_field_compare,
3477         decode_field_reference, range_binop, make_range,
3478         build_range_check, fold_range_test, fold_truthop,
3479         optimize_minmax_comparison, extract_muldiv_1,
3480         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3481         fold_inf_compare, fold_single_bit_test, fold,
3482         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3483         Likewise replace build with either build2 or build3.
3484
3485 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3486
3487         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3488         * calls.c (prepare_call_address): Don't test
3489         NO_RECURSIVE_FUNCTION_CSE.
3490         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3491         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3492         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3493         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3494         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3495         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3496         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3497         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3498         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3499         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3500         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3501         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3502         Likewise.
3503         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3504         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3505         * doc/tm.texi (Costs): Remove documentation for
3506         NO_RECURSIVE_FUNCTION_CSE.
3507
3508 2004-05-20  Paul Brook  <paul@codesourcery.com>
3509
3510         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3511         * unwind-dw2.c (extract_cie_info): Ditto.
3512         (_Unwind_FrameState): Change retaddr_column to word type.
3513
3514 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3515
3516         PR middle-end/3074
3517         * fold-const.c (strip_compound_expr): Delete function.
3518         (count_cond): Delete function.
3519         (fold_binary_op_with_conditional_arg): Only perform transformations
3520         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3521         when a is constant.  This greatly simplifies this routine.
3522
3523         * tree.c (saved_expr_p): Delete function.
3524         * tree.h (saved_expr_p): Delete function prototype.
3525
3526 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3527
3528         * common.opt (ftree-loop-optimize): Remove.
3529
3530 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3531
3532         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3533         (NM_FOR_TARGET): Use := and $(shell).
3534         (mainversion): Remove unused variable.
3535
3536 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3537
3538         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3539         sequence containing the insn to be deleted, always reemit it.
3540
3541 2004-05-20  Richard Henderson  <rth@redhat.com>
3542
3543         PR 15454
3544         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3545         * function.c (expand_function_start): Expand static_chain_decl by hand.
3546         * gimplify.c (create_tmp_var_name): Export.
3547         * tree-gimple.h (create_tmp_var_name): Declare.
3548
3549 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3550
3551         * rs6000.c (print_operand) <case 'z'>: Call
3552         mark_decl_referenced before assemble_name.
3553
3554 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3555
3556         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3557         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3558         (cgraph_varpool_node): Hash on the pointer to the decl, not
3559         the DECL_UID.  Fixes 64-bit bootstrap failure.
3560
3561 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3562
3563         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3564         we don't earlyclobber operands used in the second insn.
3565
3566 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3567
3568         * tree-mudflap.c: Formatting fixes.
3569
3570 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3571
3572         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3573         * gengtype.c (open_base_files): Include reload.h in ifiles.
3574         * reload.h (reg_equiv_memory_loc_varray): Declare.
3575         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3576         (init_reload): Initialize it.
3577         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3578         reg_equiv_memory_loc_varray to size 0.
3579         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3580         growing reg_equiv_memory_loc_varray to the desired size.
3581         * passes.c (rest_of_handle_old_regalloc): Likewise.
3582         * reload.c: Amend comment on calling init_reload.
3583
3584 2004-05-20  Nick Clifton  <nickc@redhat.com>
3585
3586         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3587         with 'TRAMP' in the body of the macro definition.
3588
3589 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3590
3591         PR target/15383
3592         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3593         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3594         cmptf_libfunc isn't set.
3595         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3596         conventions.
3597         (ia64_sysv4_init_libfuncs): New.
3598
3599         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3600         ia64_sysv4_init_libfuncs.
3601
3602 2004-05-20  Falk Hueffner  <falk@debian.org>
3603
3604         PR other/15526
3605         * libgcc2.c (__mulvsi3): Fix overflow test.
3606
3607 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3608
3609         PR c/14171
3610         * reg-stack.c (nan): Rename to ...
3611         (not_a_num): Here.
3612         (reg_to_stack): Rename nan to not_a_num.
3613         (subst_stack_regs_pat): Likewise.
3614         (convert_regs_entry): Likewise.
3615         (convert_regs_1): Likewise.
3616
3617         * tree-cfg.c (find_case_label_for_value): Replace call to
3618         simple_cst_equal with tree_int_cst_equal.
3619
3620 2004-05-19  Jeff Law <law@redhat.com>
3621
3622         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3623         If the operand is for a use, then strip away the SSA_NAME, do not
3624         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3625         (mark_def_sites): Appropriately pass additional argument to
3626         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3627         then set the VDEF_RESULT to the VDEF_OP.
3628         (set_def_block): Strip away any SSA_NAME to get to the real
3629         underlying variable.
3630
3631         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3632         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3633         BB directly.
3634
3635 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3636
3637         PR c++/15463
3638         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3639         result of inverse.
3640
3641         PR rtl-optimization/15274
3642         * loop-iv.c (determine_max_iter, shorten_into_mode,
3643         iv_number_of_iterations): Handle constants correctly.
3644         * rtl.h (get_mode_bounds): Declaration changed.
3645         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3646         the target mode.
3647
3648         PR rtl-optimization/14692
3649         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3650         (unswitch_single_loop): Work correctly when may_unswitch_on
3651         returns a folded constant.
3652
3653         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3654         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3655         comparisons with mode bounds.
3656
3657         * function.c (struct temp_slot): Add new field prev.
3658         (free_after_compilation, init_temp_slots): Free new fields.
3659         (cut_slot_from_list, insert_slot_to_list,
3660         temp_slots_at_level, max_slot_level, move_slot_to_level,
3661         make_slot_available): New functions.
3662         (assign_stack_temp_for_type, combine_temp_slots,
3663         find_temp_slot_from_address, preserve_temp_slots,
3664         preserve_rtl_expr_result, free_temp_slots,
3665         free_temps_for_rtl_expr, pop_temp_slots): Work with
3666         the new structure of lists.
3667         (mark_all_temps_used): Removed.
3668         * function.h (struct function): Field x_temp_slots
3669         replaced by x_used_temp_slots and x_avail_temp_slots.
3670         (temp_slots): Replaced by ...
3671         (used_temp_slots, avail_temp_slots): New.
3672         * tree.h (mark_all_temps_used): Declaration removed.
3673
3674         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3675         simplify_using_assignment): Take the expression out of
3676         the expr_list wrapper.
3677
3678         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3679         infinite loops.
3680
3681 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3682
3683         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3684         costs should be based on code size when optimizing for size.
3685
3686 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3687
3688         * fold-const.c: Remove non-printable character 160.
3689
3690 2004-05-19  Nick Clifton  <nickc@redhat.com>
3691
3692         * doc/invoke.texi (ARM Options): Fix typo.
3693         Remove descrption of -mshort-load-bytes and
3694         -mno-short-load-bytes.
3695
3696         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3697         missing parenthesis.
3698         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3699         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3700
3701 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3702
3703         * expr.c (store_constructor): Build loop start and end by hand
3704         instead of via loop functions from stmt.c.
3705         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3706         Remove the code to expand them.
3707
3708         * stmt.c (loop_stack): Remove this and everything related.
3709         (struct nesting, enum nesting_desc): Update.
3710         (expand_fixup): Likewise.
3711         (expand_loop_start, expand_start_loop_continue_elsewhere,
3712         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3713         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3714         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3715         expand_exit_something): Remove.
3716         * tree.h: Remove prototypes.
3717
3718 2004-05-18  Mike Stump  <mrs@apple.com>
3719             Devang Patel  <dpatel@apple.com>
3720
3721         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3722         if this label is for eh.
3723         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3724         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3725         * dwarf2out.c (output_call_frame_info): Likewise.
3726         * output.h (default_emit_unwind_label): Likewise.
3727         * target.h (unwind_label): Likewise.
3728         * varasm.c (default_emit_unwind_label): Likewise.
3729
3730         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3731         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3732         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3733         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3734         DEBUG_RANGES_SECTION): Define.
3735
3736 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3737
3738         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3739         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3740         (cgraph_varpool_node):
3741         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3742         (cgraph_function_possibly_inlined_p): Use the decl itself for
3743         the key, not DECL_ASSEMBLER_NAME.
3744         (change_decl_assembler_name): No need to muck with the hash tables.
3745         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3746         Delete.
3747         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3748         for the key, not DECL_ASSEMBLER_NAME.
3749         * cgraph.h: Remove prototypes of deleted functions.
3750         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3751         (mark_decl_referenced): New function.
3752         * tree.h: Prototype mark_decl_referenced.
3753         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3754         mark_decl_referenced before assemble_name.
3755         * c-decl.c (finish_decl): Use mark_decl_referenced.
3756
3757 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3758             Jeff Law <law@redhat.com>
3759
3760         * tree-ssa-phiopt.c (abs_replacement): New function.
3761         (empty_block_p): New function extracted from...
3762         (candidate_bb_for_phi_optimization): Break out empty block test.
3763         (conditional_replacement): Use empty_block_p.
3764         (value_replacement): Similarly.
3765
3766         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3767         * tree-ssa-phiopt.c: Include flags.h.
3768         (conditional_replacement): Remove argument names from prototype.
3769         Minor formatting and comment fixes.
3770         (tree_ssa_phiopt): If conditional_replacement returns false, then
3771         call value_replacement.
3772         (value_replacement): New function.
3773
3774 2004-05-18  Jeff Law  <law@redhat.com>
3775
3776         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3777         from conditional_replacement.
3778         (candidate_bb_for_phi_optimization): Similarly.
3779         (conditional_replacement): Use replace_phi_with_stmt and
3780         candidate_bb_for_phi_optimization.
3781
3782         * tree-ssa-phiopt.c: Fix various formatting issues.
3783
3784 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3785
3786         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3787         s390_expand_cmpmem): Do not use expand_start_loop and
3788         expand_end_loop, instead build the loop manually.
3789
3790 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3791
3792         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3793         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3794
3795 2004-05-17  Jeff Law  <law@redhat.com>
3796
3797         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3798         * flags.h (flag_delete_null_pointer_checks): Here.
3799         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3800         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3801         (add_phi_arg, remove_phi_arg_num): Similarly.
3802         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3803         property into PHI nodes.
3804         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3805         (record_equivalences_from_phis): If all PHI arguments are known to be
3806         nonzero, then the result must be nonzero as well.
3807         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3808         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3809         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3810         as appropriate.
3811         * tree.h (PHI_ARG_NONZERO): Define.
3812         (phi_arg_d): Add nonzero flag.
3813
3814 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3815
3816         * f: Entire directory removed
3817
3818         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3819         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3820         (g77_integer_type_node, g77_uinteger_type_node)
3821         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3822         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3823         the above set of variables.
3824
3825         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3826         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3827         to g77 manual.
3828
3829 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3830
3831         PR tree-optimization/15438
3832         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3833         attributed functions as pure or const.
3834
3835 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3836
3837         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3838         from source code with errors.
3839
3840 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3841
3842         Enable tree browser for all front ends.
3843         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3844         (BACKEND): ...to here.
3845
3846 2004-05-17  Jan Hubicka  <jh@suse.cz>
3847
3848         * i386.c (construct_container): Do not produce BLKmode registers.
3849         (classify_argument): Properly compute alignment of complex types.
3850
3851 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3852
3853         PR target/15084
3854         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3855         and renamed to movdi_insv_1_rex64.
3856         (insv): Support SImode for 32bit and DImode for 64bit.
3857
3858 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3859
3860         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3861         (TARGET_SWITCHES): Remove debugg.
3862         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3863         TARGET_64BIT.
3864         (subdi3): Replace the define_expand with a define_insn, the latter
3865         renamed from subdi3_internal_3.
3866         (negdi2): Likewise negdi2_internal_2.
3867         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3868         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3869         and associated define_splits.
3870         (adddi3_internal): Renamed from adddi3_internal_3.
3871         (ashldi3_internal): Likewise ashldi3_internal4.
3872         (ashrdi3_internal): Likewise ashrdi3_internal4.
3873         (lshrdi3_internal): Likewise lshrdi3_internal4.
3874
3875 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3876
3877         * optabs.c (expand_unop): Try implementing negation using subtraction
3878         from zero.
3879
3880 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3881
3882         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3883         SAR register.
3884
3885 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3886
3887         PR target/10982
3888         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3889         (ne_zeroextractsi_shifted): New pattern.
3890         (ite_ne_zeroextractsi): New pattern.
3891         (ite_ne_zeroextractsi_shifted): New pattern.
3892
3893 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3894
3895         * c-gimplify.c (c_genericize):
3896         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3897         * c-parse.in <expr_no_commas>: Likewise.
3898         <if_prefix>: Likewise.
3899         <select_or_iter_stmt>: Likewise.
3900         * expr.c (expand_var, expand_expr_real_1): Likewise.
3901         * expr.h (expand_expr): Make it a static inline function.
3902         Move prototype for expand_expr_real up before this.
3903         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3904         Likewise.
3905         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3906         gimplify_asm_expr, gimplify_expr): Likewise.
3907         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3908         dump_function_to_file): Likewise.
3909         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3910         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3911         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3912         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3913         Likewise.
3914         * tree-optimize.c (execute_one_pass): Likewise.
3915         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3916         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3917
3918         * objc/objc-act.c (objc_build_try_enter_fragment,
3919         objc_build_try_epilogue, objc_build_catch_stmt,
3920         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3921         with lang_hooks.foo ().
3922
3923 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3924
3925         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3926         that simplify_builtin doesn't destructively modify its argument.
3927
3928 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3929
3930         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3931         implementations for ARM and Thumb.
3932         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3933
3934 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3935
3936         * prefix.c (update_path): Replace PREFIX with KEY only
3937         when it matches a full directory name in PATH.
3938
3939 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3940
3941         * arm.h (TARGET_APCS_32): Delete.
3942         (TARGET_MMU_TRAPS): Delete.
3943         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3944         define __APCS_26__.
3945         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3946         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3947         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3948         (prog_mode_type): Delete.
3949         (PROMOTE_MODE): Always promote unsigned for HImode.
3950         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3951         (MASK_RETURN_ADDR): Simplify.
3952         * arm.c (arm_prgmode): Delete.
3953         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3954         (print_multi_reg, output_return_instruction): Simplify.
3955         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3956         (arm_return_addr): Simplify.
3957         * arm.md (prog_mode): Delete.
3958         (conds): Simplify.
3959         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3960         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3961         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3962         (loadhi_shiftpredec): Delete.
3963         (peephole for post-increment on HImode load): Delete.
3964         * arm/crtn.asm: (FUNC_END): Simplify.
3965         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3966         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3967         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3968         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3969         MULTILIB_DEFAULTS as required.
3970         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3971         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3972         variables as required.
3973         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3974
3975 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3976
3977         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3978         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3979         count to 8 to handle n_reg > 2.
3980
3981 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3982
3983         * doc/extend.texi: Update WG14 URL.
3984
3985 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3986
3987         * basic-block.h (life_analysis, delete_noop_moves):
3988         Update prototypes.
3989         * bt-load.c (branch_target_load_optimize): Don't take the
3990         insns stream as an argument.  Update the life_analysis calls.
3991         * combine.c (combine_instructions): Update delete_noop_moves
3992         calls.
3993         * flow.c (notice_stack_pointer_modification): Don't take the
3994         insns stream as an argument.  Work on the flow graph.
3995         (life_analysis): Likewise.
3996         (delete_noop_moves): Likewise.
3997         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3998         (rest_of_handle_life): Update life_analysis call.
3999         (rest_of_compilation): Likewise, and also update
4000         branch_target_load_optimize call.
4001         * ra.c (reg_alloc): Update life_analysis call.
4002         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
4003         the insns stream as an argument.
4004         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
4005         call.
4006         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
4007         prototypes.
4008         * value-profile.c (branch_prob): Update life_analysis call.
4009         * web.c (web_main): Work on the CFG, not on the insns stream.
4010
4011         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
4012         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
4013         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4014
4015 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
4016
4017         PR c/15444
4018         * c-format.c (avoid_dollar_number): New function.
4019         (check_format_info_main): Call avoid_dollar_number when operand
4020         numbers might occur but has_operand_number == 0.
4021
4022 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
4023
4024         * arm.md (all peephole2 patterns): Use predicates that validate
4025         register classes as appropriate.
4026
4027 2004-05-14  Steven Bosscher  <stevenb@suse.de>
4028
4029         PR opt/14472
4030         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
4031         ignore type conversions that do not inhibit tail calling.
4032         (find_tail_calls): Likewise.
4033
4034 2004-05-14  Jeff Law  <law@redhat.com>
4035
4036         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
4037         bother marking bypassed virtuals for out-of-ssa.  Instead merge
4038         bypassed virtuals into vars_to_rename just before into-ssa pass.
4039
4040         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
4041         so that it picks up more opportunities to eliminate ABS expressions
4042         or turn them into negations.
4043
4044 2004-05-14  Steven Bosscher  <stevenb@suse.de>
4045
4046         * passes.c (rest_of_handle_null_pointer): Remove.
4047         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
4048         (rest_of_compilation): Likewise.
4049         * rtl.h (delete_null_pointer_checks): Remove prototype.
4050         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
4051         Remove declarations.
4052         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
4053         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
4054         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
4055         expr_reaches_here_p, computing_insn, def_reaches_here_p,
4056         can_disregard_other_sets, handle_avail_expr, classic_gcse,
4057         one_classic_gcse_pass, invalidate_nonnull_info,
4058         delete_null_pointer_checks_1, delete_null_pointer_checks,
4059         expr_reached_here_p_work): Remove.
4060         (gcse_main): Do not perform classic GCSE when optimizing for size.
4061         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
4062         are never used.
4063
4064 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
4065
4066         PR optimization/14466
4067         * tree-complex.c (make_temp): Remove.
4068         (gimplify_val): Replace make_temp with make_rename_temp
4069         and add NULL as the second argument.
4070         (expand_complex_div_wide): Likewise.
4071         * tree-dfa.c (make_rename_temp): New function.
4072         * tree-flow.h (make_rename_temp): Declare.
4073         * tree-sra.c (make_temp): Remove.
4074         (lookup_scalar): Replace make_temp with make_rename_temp.
4075         (create_scalar_copies): Likewise.
4076         * tree-ssa-phiopt.c (conditional_replacement): When we
4077         get non gimple create a temporary variable to hold the
4078         casted expression.
4079
4080 2004-05-14  Paul Brook  <paul@codesourcery.com>
4081
4082         * stor-layout.c (update_alignment_for_field): Use
4083         targetm.align_anon_bitfield.
4084         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
4085         (TARGET_INITIALIZER): Use it.
4086         * target.h (struct gcc_target): Add align_anon_bitfield.
4087         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
4088         (TARGET_ALIGN_ANON_BITFIELD): Define.
4089         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
4090
4091 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
4092
4093         * tree.def (documentation): Remove mention of class 'b'.
4094         (BLOCK): Now in class 'x'.
4095         * c-common.c (verify_tree): Remove case 'b'.
4096         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
4097         * calls.c (calls_function_1): Control cannot get past the switch
4098         when exp is a BLOCK.
4099         * print-tree.c (print_node): Move code for class 'b' to the class
4100         'c'/'x' switch, as case BLOCK.
4101         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
4102         (unsafe_for_reeval, substitute_placeholder_in_expr)
4103         (stabilize_reference_1): Remove case 'b'.
4104         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
4105         of something being 'b' to tests for TREE_CODE of something being
4106         BLOCK.
4107         * tree-ssa-operands.c (get_expr_operands): Likewise.
4108
4109 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4110
4111         * tree-gimple.c: Rename from tree-simple.c.
4112         * tree-gimple.h: Rename from tree-simple.h.
4113         * c-gimplify.c: Rename from c-simplify.c
4114         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
4115         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
4116         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
4117         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
4118         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
4119         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
4120         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
4121         Update.
4122
4123 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
4124
4125         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
4126
4127 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4128
4129         * tree-ssa.c (delete_tree_ssa): XFREE
4130         bitmaps allocated with BITMAP_XMALLOC.
4131
4132         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
4133         idfs_cache at the end of the function.
4134
4135         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
4136         at the end of the function.
4137
4138         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
4139         el at the end of the function.
4140
4141         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
4142         bitmaps allocated with BITMAP_XMALLOC.
4143
4144         * loop-unswitch.c (unswitch_single_loop): Free bbs at
4145         the end.
4146
4147         * final.c (shorten_branches): Free uid_shuid before
4148         reallocating it.
4149
4150         * bb-reoder.c (connect_traces): Free cold_traces at the end.
4151
4152 2004-05-13  Jeff Law  <law@redhat.com>
4153
4154         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
4155         variables.  Simplify slightly by using USE_OP/DEF_OP instead
4156         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
4157
4158         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
4159         rather than iterating through the blocks testing each bit in
4160         livein to initialize the worklist.
4161         (mark_def_sites): Remove useless checks of KILLS for virtual
4162         operands.
4163
4164         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
4165         new parameters for the statement and variable worklist as well
4166         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
4167         worklist recording interesting variables in the variable worklist
4168         and bitmap.  Handle casts between integral and boolean types.
4169         (substitute_single_use_vars): Accept new parameters for the statement
4170         and variable worklist.  When a substitution is made add a new
4171         entry to the statement worklist.  Handle casts between integral
4172         and boolean types.
4173         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
4174         worklists to children.  Iterate until the statement worklist
4175         is empty.
4176
4177 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4178
4179         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
4180         the end of the block.
4181
4182         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
4183         with BITMAP_XMALLOC.
4184
4185         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
4186         with BITMAP_XMALLOC.
4187
4188         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4189         Free nonzero_vars at the end of the function.
4190
4191         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4192         need to generate code instead of a NOP_EXPR.
4193
4194 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
4195
4196         * gcc.c (default_compilers): Fill out initializers for new Fortran
4197         entries.
4198
4199 2004-05-13  Paul Brook  <paul@codesourcery.com>
4200
4201         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4202
4203 2004-05-13  Paul Brook  <paul@codesourcery.com>
4204
4205         * config/arm/arm.c (arm_default_short_enums): New function.
4206         (TARGET_DEFAULT_SHORT_ENUMS): Define.
4207
4208 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4209
4210         Merge from tree-ssa-20020619-branch.
4211
4212         * Makefile.in (reload1.o-warn): Add.
4213         (tree-alias-ander.o-warn): Add.
4214         (GMPLIBS): Define.
4215         (GMPINC): Define.
4216         (BANSHEELIB): Define.
4217         (BANSHEEINC): Define.
4218         (TREE_DUMP_H): Define.
4219         (TREE_SIMPLE_H): Define.
4220         (TREE_FLOW_H): Define.
4221         (LIBDEPS): Add BANSHEELIB.
4222         (INCLUDES): Add BANSHEEINC and GMPINC.
4223         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4224         c-mudflap.o and c-pretty-print.o.
4225         (C_OBJS): Remove c-pretty-print.o.
4226         (OBJS-common): Remove sibcall.o.
4227         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4228         tree-ssa.o, tree-optimize.o, tree-simple.o,
4229         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4230         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4231         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4232         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4233         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4234         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4235         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4236         tree-tailcall.o, gimple-low.o, tree-iterator.o,
4237         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4238         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4239         tree-profile.o.
4240         (OBJC-archive): Add tree-nomudflap.o.
4241         (cc1): Add dependency on @TREEBROWSER@.
4242         (c-decl.o): Add dependency on TREE_DUMP_H.
4243         (c-dump.o): Likewise.
4244         (c-common.o): Add dependency on tree-iterator.h
4245         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4246         (gtype-desc.o): Add dependency on TREE_FLOW_H.
4247         (tree.o): Add dependency on tree-iterator.h,
4248         BASIC_BLOCK_H and TREE_FLOW_H.
4249         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4250         (langhooks.o): Add dependency on TREE_SIMPLE_H.
4251         (tree-alias-type.o, tree-alias-ander.o,
4252         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4253         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4254         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4255         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4256         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4257         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4258         tree-nested.o, tree-iterator.o, tree-dfa.o,
4259         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4260         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4261         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4262         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4263         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4264         tree-sra.o, tree-complex.o, tree-profile.o,
4265         rtl-profile.o): New rules.
4266         (function.o): Add dependency on basic-block.h
4267         (expr.o): Add dependency on tree-iterator.h.
4268         (sibcall.o): Remove.
4269         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4270         (cfg.o): Add dependency on TIMEVAR_H.
4271         (cfghooks.o): Add dependency on TREE_FLOW_H.
4272         (reg-stack.o): Add dependency on basic-block.h.
4273         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4274         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4275         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4276         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4277         tree-alias-type.h, tree-alias-common.h,
4278         tree-alias-type.c, tree-alias-common.c,
4279         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4280         rtl-profile.c and tree-nested.c.
4281         (gt-tree-alias-common.h, gt-tree-mudflap.h,
4282         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4283         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4284         gt-tree-cfg.h, gt-tree-nested.h): New rules.
4285         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4286         * basic-block.h: Include predict.h
4287         (struct edge_def): Add GTY marker.
4288         Change field 'insns' to be a union of tree and rtx.
4289         (EDGE_TRUE_VALUE): Define.
4290         (EDGE_FALSE_VALUE): Define.
4291         (EDGE_EXECUTABLE): Define.
4292         (struct bb_ann_d): Forward declare.
4293         (struct basic_block_def): Add GTY marker.
4294         Remove fields head_tree and end_tree.
4295         Add fields stmt_list, rbi and tree_annotations.
4296         (struct reorder_block_def): Define.
4297         (basic_block_info): Add GTY marker.
4298         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4299         variables instead of macros.
4300         (flow_call_edges_add): Remove declaration.
4301         (make_eh_edge): Remove declaration.
4302         (brief_dump_cfg, find_edge, tree_predicted_by_p,
4303         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4304         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4305         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4306         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4307         (try_redirect_by_replacing_jump): Modfiy return type to
4308         edge instead of bool.
4309         * bb-reorder.c (copy_bb): Call duplicate_block
4310         instead of cfg_layout_duplicate_bb.
4311         (copy_bb_p): Call can_duplicate_block_p instead of
4312         cfg_layout_can_duplicate_bb_p.
4313         * bitmap.c (bitmap_first_set_bit): Abort if word
4314         wasn't found.
4315         (bitmap_last_set_bit): Likewise.
4316         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4317         (DEF_FUNCTION_TYPE_3): Add.
4318         * builtins.c (c_strlen): Make extern.
4319         (builtin_save_expr): New.
4320         (expand_builtin_nonlocal_goto): New.
4321         (expand_builtin_constant_p): Remove.
4322         (expand_builtin_mathfn): Call builtin_save_expr instead
4323         of save_expr.
4324         (expand_builtin_mathfn_2): Likewise.
4325         (expand_builtin_strcmp): Likewise.
4326         (expand_builtin_strncmp): Likewise.
4327         (expand_builtin_strcat): Likewise.
4328         (fold_builtin_cabs): Likewise.
4329         (expand_builtin_alloca): Don't trigger if -fmudflap is
4330         given.
4331         (build_string_literal): Set TREE_INVARIANT on new node.
4332         (expand_builtin_profile_fun): New.
4333         (round_trampoline_addr): New.
4334         (expand_builtin_init_trampoline): New.
4335         (expand_builtin_adjust_trampoline): New.
4336         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4337         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4338         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4339         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4340         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4341         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4342         Handle.
4343         (fold_builtin_expect): New.
4344         (fold_builtin_isascii): Don't return non-constant results
4345         in GIMPLE form.
4346         (fold_builtin_isdigit): Likewise.
4347         (fold_builtin_1): New.
4348         (fold_builtin): Call it.
4349         (build_function_call_expr): Update call to build a new
4350         CALL_EXPR.
4351         (purge_builtin_constant_p): Remove.
4352         (simplify_builtin, simplify_builtin_memcmp,
4353         simplify_builtin_strcmp, simplify_builtin_strncmp,
4354         simplify_builtin_strpbrk, simplify_builtin_strstr,
4355         simplify_builtin_strchr, simplify_builtin_strrchr,
4356         simplify_builtin_strcat, simplify_builtin_strncat,
4357         simplify_builtin_strspn, simplify_builtin_strcspn,
4358         simplify_builtin_next_arg, simplify_builtin_va_start,
4359         simplify_builtin_sprintf): New.
4360         * builtins.def (BUILT_IN_STACK_ALLOC,
4361         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4362         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4363         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4364         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4365         * c-common.c: Include tree-iterator.h and hashtab.h.
4366         (lang_statement_code_p): Declare.
4367         (lang_gimplify_stmt): Declare.
4368         (fix_string_type): Set TREE_INVARIANT for value.
4369         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4370         (c_type_hash): New.
4371         (c_common_get_alias_set): Handle multiple type nodes
4372         referring to "the same" type, currently for C90 only.
4373         (c_add_case_label): Use create_artificial_label.
4374         (finish_label_address_expr): Don't set TREE_CONSTANT on
4375         result.
4376         (c_expand_expr): Don't handle STMT_EXPR.
4377         (handle_alias_attribute): Marke aliased variables to be
4378         TREE_STATIC.
4379         (handle_nonnull_attribute): Initialize arg_num.
4380         (check_function_nonnull): Likewise.
4381         (c_walk_subtrees): New.
4382         (c_estimate_num_insns_1): Don't handle
4383         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4384         (c_decl_uninit_1): Remove.
4385         (c_decl_uninit): Remove.
4386         (c_warn_unused_result): New.
4387         * c-common.def (ASM_STMT): Change number of operands
4388         to 4.
4389         (FILE_STMT): Remove.
4390         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4391         Remove.
4392         (lang_gimplify_stmt): Add.
4393         (expand_stmt): Remove.
4394         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4395         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4396         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4397         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4398         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4399         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4400         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4401         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4402         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4403         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4404         genrtl_compound_stmt, genrtl_asm_stmt,
4405         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4406         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4407         c_tree_chain_matters_p, c_warn_unused_result,
4408         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4409         Declare.
4410         * c-convert.c (convert): Make convert work when
4411         converting to compatible types across translation unit.
4412         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4413         tree-simple.h, diagnostic.h and tree-dump.h
4414         (merge_decls): Initialize oldtype to NULL.
4415         (finish_decl): Use DECL_HARD_REGISTER instead of
4416         DECL_C_HARD_REGISTER.
4417         (check_bitfield_type_and_width): Check for null
4418         lang_type_specific when check the precision of an enum.
4419         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4420         in a pointer-to-array declarator.
4421         (finish_struct): Clear allocated struct lang_type.
4422         (finish_enum): Set enum_min and enum_max.  Set
4423         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4424         not to the enumerators.
4425         (set_decl_nonlocal): New.
4426         (store_parm_decls): Use it via walk_tree.
4427         (c_finalize): New.
4428         (finish_function): When !targetm.have_ctors_dtors,
4429         record static constructors and destructors here...
4430         (c_expand_body_1): ... not here.
4431         (c_expand_decl): Rename from c_expand_decl_stmt.
4432         Handle all C-specific expansion semantics.
4433         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4434         STMT_LINENO.
4435         * c-format.c (handle_format_arg_attribute): Initialize
4436         format_num.
4437         * c-lang.c: Include tree-inline.h
4438         (LANG_HOOKS_EXPAND_DECL,
4439         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4440         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4441         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4442         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4443         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4444         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4445         (c_types_compatible_p): New.
4446         * c-mudflap.c: New file.
4447         * c-objc-common.c: Include tree-mudflap.h
4448         (start_cdtor, finish_cdtor): Collapse
4449         together into
4450         (build_cdtor): ...here.  Update to construct a complete tree
4451         for the function.  No need to call push_scope, pop_scope, or
4452         clear_last_expr, or set current_function_cannot_inline.
4453         (c_missing_noreturn_ok_p): Change prototype to return
4454         bool.
4455         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4456         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4457         opts.c.
4458         (c_common_post_options): Don't ever use rtl inlining.
4459         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4460         * c-pragma.c (handle_pragma_redefine_extname): Define
4461         always.
4462         (init_pragma): Activate #pragma redefine_extname for mudflap.
4463         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4464         (pp_c_initializer): Accept any type CONSTRUCTOR.
4465         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4466         COMPLEX_TYPE.
4467         (decl_name_str): New local function.
4468         (pp_c_direct_declarator): Call it.
4469         (pp_c_primary_expression): Call it.
4470         (pp_c_id_expression): Call it.
4471         (pp_c_statement): Call it.
4472         (print_c_tree): Create new pp object.
4473         * c-pretty-print.h (pp_c_tree_decl_identifier,
4474         print_c_tree): Declare.
4475         * c-semantics.c: Include langhooks.h
4476         (lang_expand_stmt, lang_expand_decl_stmt,
4477         find_reachable_label_1, find_reachable_label,
4478         expand_unreachable_if_stmt, expand_unreachable_stmt,
4479         genrtl_do_stmt_1): Remove.
4480         (begin_stmt_tree): Don't check for changed filename.
4481         Call annotate_with_locus.
4482         (finish_stmt_tree): Don't set line for end of function.
4483         (build_stmt): Don't check type nodes for
4484         side effects.
4485         (build_stmt): Set TREE_SIDE_EFFECTS.
4486         Set EXPR_LOCUS instead of STMT_LINENO.
4487         (lang_expand_stmt, lang_expand_decl_stmt,
4488         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4489         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4490         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4491         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4492         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4493         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4494         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4495         find_reachable_label_1, expand_unreachable_if_stmt,
4496         expand_unreachable_stmt): Remove.
4497         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4498         * c-simplify.c: New file.
4499         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4500         (struct lang_type): Add fields enum_min and enum_max.
4501         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4502         (c_expand_decl, c_missing_noreturn_ok_p,
4503         c_types_compatible_p): Declare.
4504         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4505         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4506         (default_function_array_conversion): Rely on build to
4507         set TREE_CONSTANT.
4508         (parser_build_binary_op, pointer_diff): Likewise.
4509         (build_unary_op, build_binary_op): Likewise.
4510         (build_array_ref):
4511         (build_external_ref): Set TREE_INVARIANT.
4512         (build_c_cast, pop_init_level): Likewise.
4513         (process_init_element): Use ASM_VOLATILE_P.
4514         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4515         (c_finish_case): Call c_do_switch_warnings.
4516         * c.opt (fdump-): Remove.
4517         * calls.c (try_to_integrate): Remove.
4518         (prepare_call_address): Replace fndecl arg with a
4519         precomputed static chain value.
4520         (emit_call_1): New argument for full call expr.
4521         (flags_from_decl_or_type): Call special_function_p.
4522         (initialize_argument_information): Add argument
4523         may_tailcall.
4524         (purge_reg_equiv_notes): New.
4525         (expand_call): Do not try to expand calls inline.
4526         (fixup_tail_calls): New.
4527         * cfg.c: Include timevar.h and ggc.h.
4528         (bb_pool, edge_pool): Remove.
4529         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4530         (entry_exit_blocks): Remove.
4531         (rbi_pool): Declare.
4532         (init_flow): Do not create pools.
4533         Allocate entry/exit block.
4534         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4535         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4536         (unlink_block): Clear b->prev_bb and b->next_bb.
4537         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4538         (dump_flow_info): Work on trees too.
4539         (dump_cfg_bb_info): New.
4540         (brief_dump_cfg): New.
4541         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4542         (find_edge): New.
4543         * cfgbuild.c (rtl_make_eh_edge): Rename from
4544         make_eh_edge.  Update all users.
4545         (find_basic_blocks): Don't call VARRAY_FREE on
4546         basic_block_info.
4547         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4548         and newpos2.
4549         (delete_unreachable_blocks): Return changed status.
4550         (merge_seq_blocks): New.
4551         * cfghooks.c: Include tree-flow.h
4552         (tree_register_cfg_hooks, ir_type): New.
4553         (redirect_edge_and_branch): Change return type to edge.
4554         (predict_edge, predicted_by_p, can_duplicate_block_p,
4555         duplicate_block, block_ends_with_call_p,
4556         block_ends_with_condjump_p, flow_call_edges_add): New.
4557         * cfghooks.h (redirect_edge_and_branch): Change return
4558         type to edge.
4559         (predict_edge, predicted_by_p, can_duplicate_block_p,
4560         duplicate_block, block_ends_with_call_p,
4561         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4562         (redirect_edge_and_branch): Change return type to edge.
4563         (struct cfg_hooks): Add fields block_ends_with_call_p,
4564         block_ends_with_condjump_p, flow_call_edges_add,
4565         predict_edge, predicted_by_p, can_duplicate_block_p and
4566         duplicate_block.
4567         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4568         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4569         (fixup_reorder_chain): Use initialize_bb_rbi.
4570         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4571         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4572         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4573         (insn_locators_initialize): Use new info about blocks.
4574         * cfglayout.h (typedef struct reorder_block_def): Moved to
4575         basic_block.h.
4576         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4577         removed.
4578         * cfgloop.c: Include tree.h and tree-flow.h.
4579         * cfgloop.h (create_loop_notes): Declare.
4580         * cfgloopmanip.c (create_loop_notes): New.
4581         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4582         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4583         and duplicate_block fields.
4584         (create_basic_block_structure): Don't look at
4585         RTX_INTEGRATED_P.
4586         (rtl_block_ends_with_call_p): New.
4587         (rtl_block_ends_with_condjump_p): New.
4588         (need_fake_edge_p): Moved from cfganal.c.
4589         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4590         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4591         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4592         (cfg_layout_rtl_cfg_hooks): Ditto.
4593         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4594         functions to be reachable.
4595         * cgraphunit.c (decide_is_function_needed):
4596         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4597         inline functions don't need to be output.
4598         (cgraph_assemble_pending_functions): Don't do anything
4599         special for nested functions.
4600         (cgraph_mark_functions_to_output): Likewise.
4601         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4602         (cgraph_analyze_function): Use estimate_num_insns.
4603         (cgraph_mark_functions_to_output): Likewise.
4604         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4605         (cgraph_expand_function): Allow functions to not be
4606         emitted.
4607         (cgraph_remove_unreachable_nodes):
4608         (cgraph_recursive_inlining_p): Simplify.
4609         (lookup_recursive_calls,
4610         cgraph_decide_recursive_inlining): New.
4611         (cgraph_decide_inlining_*): Update calls of
4612         cgraph_mark_inline.
4613         * combine.c (get_pos_from_mask): Always set *plen.
4614         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4615         ftree-based-profiling, ftree-ccp, ftree-ch,
4616         ftree-combine-temps, ftree-copyrename, ftree-dce,
4617         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4618         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4619         ftree-lrs): Add.
4620         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4621         Undefine.
4622         * configure.ac: Add --enable-tree-browser option.
4623         Add --with-libbanshee option.
4624         Add GMPLIBS and GMPINC.
4625         * configure: Regenerate.
4626         * coverage.c (tree_ctr_tables): New.
4627         (coverage_counter_alloc): Use it.
4628         (build_ctr_info_value): Ditto.
4629         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4630         (tree_coverage_counter_ref): New.
4631         * coverage.h (coverage_counter_ref): Remove declaration.
4632         (rtl_coverage_counter_ref): Declare.
4633         (tree_coverage_counter_ref): Declare.
4634         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4635         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4636         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4637         (struct cse_basic_block_data): Rename enum values to not
4638         conflict with profile.h; update all uses.
4639         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4640         in comments.
4641         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4642         * diagnostic.h (debug_output_buffer, dump_generic_node,
4643         print_generic_stmt, print_generic_stmt_indented,
4644         print_generic_expr, print_generic_decl,
4645         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4646         Declare.
4647         * dominance.c: Cache immediate dominators.
4648         * domwalk.c: New file.
4649         * domwalk.h: New file.
4650         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4651         (gen_subprogram_die): Generate a DIE for a named
4652         return value.
4653         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4654         (add_location_or_const_value_attribute): Likewise.
4655         (add_bound_info): Likewise.
4656         (gen_decl_die): Likewise.
4657         * emit-rtl.c (maybe_set_first_label_num): New.
4658         (copy_most_rtx): Don't copy the integrated flag.
4659         Copy the new return_val flag.
4660         * et-forest.c (MAX_NODES): Define.
4661         (record_path_before_1): Abort if len is greater than
4662         MAX_NODES.
4663         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4664         gen_eh_region_catch, gen_eh_region_allowed,
4665         gen_eh_region_must_not_throw, get_eh_region_number,
4666         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4667         set_eh_region_tree_label, expand_resx_expr): New.
4668         (expand_eh_region_start, expand_start_catch): Use them.
4669         (expand_end_catch): Tidy.
4670         (note_eh_region_may_contain_throw): Take region argument.
4671         (note_current_region_may_contain_throw): New.
4672         (get_exception_filter): Export.
4673         (collect_eh_region_array): Export.
4674         (remove_unreachable_regions): Check ERT_TRY based on reachability
4675         of catches, not reachability of continue_label.  Never remove
4676         ERT_MUST_NOT_THROW regions.
4677         (collect_rtl_labels_from_trees): New.
4678         (convert_from_eh_region_ranges): Use it.
4679         (connect_post_landing_pads): Handle dying cleanups.
4680         (struct reachable_info): Add callback data.
4681         (add_reachable_handler): Invoke the callback.
4682         (foreach_reachable_handler): New.
4683         (reachable_handlers): Use it.
4684         (arh_to_landing_pad, arh_to_label): New.
4685         (can_throw_internal_1): Split out from can_throw_internal.
4686         (can_throw_external_1): Similarly.
4687         * except.h: Update.
4688         * explow.c (emit_stack_save): Remove savearea mode check.
4689         (update_nonlocal_goto_save_area): New.
4690         (allocate_dynamic_stack_space): Use it.
4691         (probe_stack_range): Never emit loop notes.
4692         * expmed.c (extract_fixed_bit_field): Always propagate the
4693         target for the shift if it is a REG.
4694         * expr.c: Include tree-iterator.h
4695         (is_zeros_p): Remove.
4696         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4697         (count_type_elements): New.
4698         (mostly_zeros_p): Use them.
4699         (expr_wfl_stack): Remove.
4700         (convert_move): Do nothing if to and from are the same.
4701         (emit_block_move_via_loop): Don't emit LOOP notes.
4702         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4703         (emit_move_insn_1): Don't generate inline warnings.
4704         (expand_vars, expand_var): Split from ...
4705         (expand_expr_1): ... here.
4706         (expand_expr_real, expand_expr_real_1):  Use new macros
4707         EXPR_LOCATION and EXPR_HAS_LOCATION.
4708         * expr.h (simplify_builtin_fputs,
4709         simplify_builtin_strcpy, simplify_builtin_strncpy,
4710         expand_var, fixup_tail_calls,
4711         update_nonlocal_goto_save_area): Declare.
4712         (lookup_static_chain, expand_inline_function,
4713         mark_seen_cases): Remove.
4714         (prepare_call_address): Change type of 2nd argument to
4715         rtx.
4716         * final.c (profile_function): Update static chain test.
4717         (final): Don't look at RTX_INTEGRATED_P.
4718         * flags.h (flag_mudflap, flag_mudflap_threads,
4719         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4720         flag_tree_dce, flag_tree_combine_temps,
4721         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4722         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4723         flag_tree_points_to): Declare.
4724         (enum pta_type): Declare.
4725         * flow.c (lang_missing_noreturn_ok_p): Remove.
4726         (check_function_return_warnings): Remove.
4727         (update_life_info): Update comments.
4728         (free_basic_block_vars): Don't call VARRAY_FREE for
4729         basic_block_info.
4730         (regno_uninitialized): Remove.
4731         * fold-const.c (int_const_binop): Make extern.
4732         (non_lvalue): Rely on build to set TREE_CONSTANT.
4733         (operand_equal_p): Replace only_const argument with
4734         flags.  Allow pure functions if OEP_PURE_SAME.
4735         (fold): Use OEP_ONLY_CONST.
4736         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4737         boolean type.
4738         (fold_relational_hi_lo,
4739         nondestructive_fold_binary_to_constant,
4740         nondestructive_fold_unary_to_constant,
4741         fold_read_from_constant_string): New.
4742         * function.c (struct function): Remove calls_constant_p.
4743         (current_function_calls_constant_p): Remove.
4744         (inline_function_decl): Remove.
4745         (put_var_into_stack): Don't use it.
4746         (fix_lexical_addr): Likewise.
4747         (inline_function_decl): Remove extern declaration.
4748         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4749         (trampolines_created): Move to varasm.c.
4750         (free_after_compilation): Update for removed fields.
4751         (allocate_struct_function): Likewise.
4752         (delete_handlers, lookup_static_chain): Remove.
4753         (fix_lexical_addr): Don't consider non-local variable refs.
4754         (trampoline_address): Remove.
4755         (round_trampoline_addr): Move to builtins.c.
4756         (adjust_trampoline_addr): Remove.
4757         (expand_function_start): Update for changes to static chain
4758         and nonlocal goto handling.
4759         (initial_trampoline): Move to varasm.c.
4760         (expand_function_end): Don't build trampolines or kill
4761         unreferenced nonlocal goto labels.
4762         (free_after_compilation): Don't set it.
4763         (expand_function_end): Likewise.
4764         (setjmp_vars_warning): Rename from
4765         uninitialized_vars_warning, remove uninitialized vars warning.
4766         (uninitialized_vars_warning): Remove old comment
4767         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4768         and do not call the langhook.
4769         (expand_function_start, expand_function_end): Don't do
4770         function instrumentation here.
4771         (clear_block_marks): Rename from reorder_blocks_0, export.
4772         (blocks_nreverse): Export.
4773         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4774         of rtl.
4775         (reset_block_changes, record_block_change, finalize_block_changes,
4776         check_block_change, free_block_changes): New functions.
4777         (assign_parms): Setting of current_function_stdarg
4778         moved ...
4779         (allocate_struct_function): ... here.
4780         * function.h (struct function): Remove x_nonlocal_labels,
4781         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4782         x_context_display, x_trampoline_list, needs_context.
4783         Add static_chain_decl, nonlocal_goto_save_area.
4784         (struct function): Remove x_clobber_return_insn.
4785         Add tail_call_emit field, last_label_uid,
4786         unexpanded_var_list, dont_emit_block_notes,
4787         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4788         (clear_block_marks): Declare.
4789         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4790         (mfwrap_spec, mflib_spec): Declare.
4791         (cpp_unique_options, cc1_options): Ditto.
4792         (default_compilers): Add .F and .f90.
4793         (static_specs): Add mfwrap and mflib.
4794         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4795         CONSTANT_RTX_P.
4796         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4797         Update to match insns field in struct edge_def.
4798         * gdbinit.in (pgs, pge): Define.
4799         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4800         instead of the integrated flag.
4801         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4802         * gengtype-yacc.y (bitfieldlen): Add empty action.
4803         (struct_fields): Accept unnamed bitfields.
4804         (bitfieldlen): Split from ...
4805         (bitfieldopt): ... here.
4806         * gengtype.c (ifiles): Add tree-alias-type.h and
4807         tree-flow.h.
4808         * genrecog.c (validate_pattern): Do not handle
4809         CONSTANT_P_RTX.
4810         * gimple-low.c: New file.
4811         * gimplify.c: New file.
4812         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4813         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4814         * ifcvt.c (dead_or_predicable): Initialize local variable
4815         'earliest'.
4816         * input.h (expr_wfl_stack): Remove.
4817         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4818         (setup_initial_hard_reg_value_integration): Likewise.
4819         (initialize_for_inline): Likewise.
4820         (note_modified_parmregs): Likewise.
4821         (integrate_parm_decls): Likewise.
4822         (process_reg_param): Likewise.
4823         (save_parm_insns): Likewise.
4824         (copy_insn_list): Likewise.
4825         (copy_insn_notes): Likewise.
4826         (compare_blocks): Likewise.
4827         (find_block): Likewise.
4828         (inlining): Likewise.
4829         (function_cannot_inline_p): Likewise.
4830         (parmdecl_map): Likewise.
4831         (in_nonparam_insns): Likewise.
4832         (save_for_inline): Likewise.
4833         (FIXED_BASE_PLUS): Likewise.
4834         (expand_inline_function): Likewise.
4835         (copy_rtx_and_substitute): Don't look at map->integrating,
4836         map->inline_target, and inlining, since we are never copying
4837         for integrating.
4838         Don't abort on RTX_INTEGRATED_P.
4839         (old_fun): Remove.
4840         (output_inline_function): Remove.
4841         * integrate.h (struct inline_map): Remove fields integrating,
4842         block_map, leaf_reg_map, inline_target, and local_return_label.
4843         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4844         copy_loop_headers, never_reached_warning): Removed.
4845         (any_uncondjump_p): Reject nonlocal goto.
4846         * langhooks-def.h (lhd_types_compatible_p,
4847         lhd_expand_decl, lhd_gimplify_expr): Declare.
4848         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4849         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4850         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4851         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4852         LANG_HOOKS_GIMPLIFY_EXPR,
4853         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4854         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4855         LANG_HOOKS_GIMPLIFY_EXPR,
4856         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4857         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4858         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4859         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4860         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4861         LANG_HOOKS_DECL_UNINIT,
4862         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4863         * langhooks.c: Include tree-simple.h.
4864         (lhd_expand_decl): New.
4865         (lhd_types_compatible_p): New.
4866         (lhd_decl_uninit): Remove.
4867         (lhd_gimplify_expr): New.
4868         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4869         Remove.
4870         (struct lang_hooks_for_functions): Add field
4871         missing_noreturn_ok_p.
4872         (struct lang_hooks): Add field expand_decl,
4873         types_compatible_p, gimplify_expr and
4874         gimple_before_inlining.
4875         Remove fields decl_uninit and rtl_expand
4876         * opts.c (decode_options): Set flag_tree_ccp,
4877         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4878         flag_tree_pre, flag_tree_ter,
4879         flag_tree_live_range_split, flag_tree_sra,
4880         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4881         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4882         OPT_fmudflapth, OPT_fmudflapir,
4883         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4884         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4885         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4886         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4887         OPT_ftree_points_to_ and OPT_ftree_pre.
4888         * output.h (regno_uninitialized, find_basic_blocks,
4889         cleanup_cfg, delete_unreachable_blocks,
4890         check_function_return_warnings): Remove.
4891         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4892         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4893         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4894         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4895         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4896         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4897         Define.
4898         * passes.c (rest_of_decl_compilation):
4899         (rest_of_handle_sibling_calls): Remove.
4900         (rest_of_handle_inlining): Remove.
4901         (rest_of_handle_gcse): Do not run
4902         purge_builtin_constant_p.
4903         (rest_of_compilation): Update.
4904         Do not call copy_loop_headers.
4905         Do rtl-based profiling only when
4906         !flag_tree_based_profiling.  Register rtl-based profiling
4907         hooks.
4908         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4909         (predicted_by_p): Rename to ...
4910         (rtl_predicted_by_p): .. this one; make global
4911         (tree_predicted_by_p): New.
4912         (dump_prediction): Add FILE argument.
4913         (predict_edge): Rename to ...
4914         (rtl_predict_edge): .. this one.
4915         (tree_predict_edge): New.
4916         (combine_predictions_for_insn): Update calls of predict_edge.
4917         (predict_loops): Break out from ...
4918         (estimate_probability): ... here; update comments; move updating
4919         of unknown probabilities from ...
4920         (estimate_bb_frequencies): ... here.
4921         (combine_predictions_for_bb): New.
4922         (tree_predict_by_opcode): New.
4923         (tree_estimate_probability): New.
4924         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4925         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4926         * predict.h: Add include guard.
4927         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4928         * pretty-print.c (pp_write_text_to_stream): Make extern.
4929         * pretty-print.h (pp_write_text_to_stream): Declare.
4930         * print-rtl.c (print_rtx): Don't print the integrated flag.
4931         Print the return_val flag.
4932         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4933         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4934         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4935         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4936         * profile.c: Include cfghooks.h, tree-flow.h.
4937         (profile_hooks): New.
4938         (profile_dump_file): New.
4939         (instrument_edges): Use hooks instead of RTL-specific code.
4940         (instrument_values): Ditto.
4941         (get_exec_counts): Ditto.
4942         (compute_branch_probabilities): Ditto.
4943         (compute_value_histograms): Ditto.
4944         (branch_prob): Ditto.
4945         (find_spanning_tree): Ditto.
4946         (end_branch_prob): Ditto.
4947         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4948         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4949         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4950         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4951         (tree_register_profile_hooks): New.
4952         (rtl_register_profile_hooks): New.
4953         * ra-rewrite.c (rewrite_program): Clear variable info.
4954         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4955         * regs.h: Add include guards.
4956         * reload.c (decompose): Clear val using memset.
4957         * rtl.def (CONSTANT_P_RTX): Remove.
4958         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4959         (copy_loop_headers): Remove.
4960         (struct rtx_def): Replace the integrated flag with the
4961         return_val flag.
4962         (maybe_set_first_label_num): Declare.
4963         (init_branch_prob): Move declaration to value-prof.h.
4964         (end_branch_prob): Ditto.
4965         (branch_prob): Ditto.
4966         (never_reached_warning): Don't declare it.
4967         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4968         (hoist_insn_to_edge): Update to match field insns in
4969         struct edge_def.
4970         * sbitmap.c (sbitmap_realloc): New.
4971         * sbitmap.h (sbitmap_realloc): Declare.
4972         * sibcall.c: Remove file.
4973         * simplify-rtx.c (simplify_rtx): Do not handle
4974         CONSTANT_P_RTX.
4975         * stmt.c (parse_output_constraint): Don't warn for read-write
4976         memory operand.
4977         (tail_recursion_args): Use types_compatible_p langhook.
4978         (force_label_rtx): Don't look at inline_function_decl.
4979         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4980         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4981         (declare_nonlocal_label): Remove.
4982         (expand_goto): Don't handle nonlocal gotos.
4983         (expand_nl_handler_label): Remove.
4984         (expand_nl_goto_receivers): Remove.
4985         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4986         update_nonlocal_goto_save_area.
4987         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4988         (warn_if_unused_value): Likewise.
4989         (expand_start_loop, expand_loop_continue_here,
4990         expand_end_loop): Don't create loop notes.
4991         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4992         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4993         (expand_end_case_type): Don't do warn_switch handling.
4994         (pushcase, pushcase_range) Update add_case_node calls.
4995         (add_case_node): Add dont_expand_label argument.
4996         (same_case_target_p): Don't search rtl.
4997         (expand_start_bindings_and_block, expand_end_bindings):
4998         Don't emit block notes when dont_emit_block_notes.
4999         (using_eh_for_cleanups_p): Export.
5000         (expand_return): Allow any typed rhs.
5001         (expand_stack_alloc): New.
5002         (expand_stack_save, expand_stack_restore): New.
5003         (containing_blocks_have_cleanups_or_stack_level): New
5004         function.
5005         (asm_op_is_mem_input): New fn.
5006         (expand_asm_expr): New fn.
5007         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
5008         nodes.
5009         * stor-layout.c (layout_type): Just return if type is
5010         error_mark_node.
5011         (update_alignment_for_field): Export.
5012         (variable_size): We don't care about global_bindings_p if
5013         the frontend doesn't want a list of the expressions.
5014         * system.h: Poison INTEGRATE_THRESHOLD.
5015         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
5016         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
5017         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
5018         TV_TREE_SSA_OTHER, TV_TREE_OPS,
5019         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
5020         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
5021         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
5022         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
5023         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
5024         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
5025         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
5026         TV_CONTROL_DEPENDENCES): Define.
5027         * toplev.c: Include tree-alias-common.h
5028         (current_file_decl, flag_mudflap, flag_mudflap_threads,
5029         flag_mudflap_ignore_reads, flag_tree_based_profiling,
5030         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
5031         flag_tree_dce, flag_tree_ch, flag_tree_sra,
5032         flag_tree_combine_temps, flag_tree_ter,
5033         flag_tree_live_range_split, flag_tree_dom,
5034         flag_tree_copyrename, flag_tree_dse): Declare.
5035         (f_options): Add tree-based-profiling, tree-gvn,
5036         tree-pre, tree-ccp, tree-dce,
5037         tree-dominator-opts, tree-copyrename, tree-dse,
5038         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
5039         (wrapup_global_declarations): Don't output nested inlined functions.
5040         (general_init): Call init_tree_optimization_passes.
5041         (process_options): Sorry for -ftree-based-profiling plus
5042         -ftest-coverage or -fprofile-values.
5043         * toplev.h (init_tree_optimization_passes,
5044         flag_tree_based_profiling): Declare.
5045         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
5046         * tree-alias-ander.c: New file.
5047         * tree-alias-ander.h: New file.
5048         * tree-alias-common.c: New file.
5049         * tree-alias-common.h: New file.
5050         * tree-alias-type.c: New file.
5051         * tree-alias-type.h: New file.
5052         * tree-browser.c: New file.
5053         * tree-browser.def: New file.
5054         * tree-cfg.c: New file.
5055         * tree-complex.c: New file.
5056         * tree-dfa.c: New file.
5057         * tree-dump.c (dump_enable_all): New.
5058         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
5059         (dump_node): Remove const from field suffix and swtch.
5060         (dump_files): Add null entry, .generic, .nested, .vcg,
5061         .xml and a match-all entry.
5062         (extra_dump_files, extra_dump_files_in_use,
5063         extra_dump_files_alloced): Declare
5064         (dump_option_value_info): Add raw, details, stats,
5065         blocks, vops, lineno, uid and all.
5066         (dump_register): New.
5067         (get_dump_file_info): New.
5068         (dump_begin): Call it.
5069         Do nothing for TDI_none.
5070         (dump_begin): Include phase number in dump filename.
5071         (dump_enable_all): New.
5072         (dump_switch_p_1): Split out from dump_switch_p.
5073         (dump_switch_p): Handle extra_dump_files.
5074         Start our scan at TDI_none + 1.
5075         If -fdump-tree-all was given, call dump_enable_all.
5076         * tree-dump.h: Include splay-tree.h.
5077         (dump_function, dump_function_to_file, dump_register):
5078         Declare.
5079         * tree-eh.c: New file.
5080         * tree-flow-inline.h: New file.
5081         * tree-flow.h: New file.
5082         * tree-inline.c: Re-write to handle inlining on GIMPLE.
5083         * tree-inline.h (walk_tree,
5084         walk_tree_without_duplicates): Move to tree.h.
5085         (estimate_num_insns): Declare.
5086         * tree-into-ssa.c: New file.
5087         * tree-iterator.c: New file.
5088         * tree-iterator.h: New file.
5089         * tree-mudflap.c: New file.
5090         * tree-mudflap.h: New file.
5091         * tree-nested.c: New file.
5092         * tree-nomudflap.c: New file.
5093         * tree-nrv.c: New file.
5094         * tree-optimize.c (dump_flags, vars_to_rename,
5095         in_gimple_form, all_passes, pass_gimple,
5096         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
5097         (execute_gimple, execute_rebuild_bind,
5098         gate_all_optimizations, execute_del_cfg,
5099         register_one_dump_file, register_dump_files, dup_pass_1,
5100         init_tree_optimization_passes, execute_todo,
5101         execute_one_pass, execute_pass_list): New.
5102         (clear_decl_rtl): Remove.
5103         (tree_rest_of_compilation): Update to use tree
5104         optimizers.
5105         * tree-outof-ssa.c: New file.
5106         * tree-pass.h: New file.
5107         * tree-phinodes.c: New file.
5108         * tree-pretty-print.c: New file.
5109         * tree-profile.c: New file.
5110         * tree-simple.c: New file.
5111         * tree-simple.h: New file.
5112         * tree-sra.c: New file.
5113         * tree-ssa-alias.c: New file.
5114         * tree-ssa-ccp.c: New file.
5115         * tree-ssa-copy.c: New file.
5116         * tree-ssa-copyrename.c: New file.
5117         * tree-ssa-dce.c: New file.
5118         * tree-ssa-dom.c: New file.
5119         * tree-ssa-dse.c: New file.
5120         * tree-ssa-forwprop.c: New file.
5121         * tree-ssa-live.c: New file.
5122         * tree-ssa-live.h: New file.
5123         * tree-ssa-loop.c: New file.
5124         * tree-ssa-operands.c: New file.
5125         * tree-ssa-operands.h: New file.
5126         * tree-ssa-phiopt.c: New file.
5127         * tree-ssa-pre.c: New file.
5128         * tree-ssa.c: New file.
5129         * tree-ssanames.c: New file.
5130         * tree-tailcall.c: New file.
5131         * tree.c: Include tree-iterator.h, basic-block.h and
5132         tree-flow.h.
5133         (tree_node_kind): Add phi_nodes and ssa names.
5134         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
5135         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
5136         (make_node_stat): Handle PHI_NODE and SSA_NAME.
5137         <'c'> Set TREE_INVARIANT.
5138         (copy_node_stat): Abort if trying to copy a
5139         STATEMENT_LIST.
5140         Clear TREE_VISITED.
5141         Clear annotation field.
5142         (build_constructor): Copy TREE_INVARIANT from vals.
5143         Don't clear TREE_CONSTANT.
5144         (expr_first, expr_last, expr_length): Remove.
5145         (staticp): Pass unknown component references to the language.
5146         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
5147         (skip_simple_arithmetic): Likewise.
5148         (stabilize_reference_1): Likewise.
5149         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
5150         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
5151         STATEMENT_LIST.
5152         (lhd_unsave_expr_now): Remove.
5153         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
5154         (recompute_tree_invarant_for_addr_expr): New.
5155         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
5156         Call recompute_tree_invarant_for_addr_expr.
5157         Set TREE_INVARIANT accordingly.
5158         (build2_stat): Don't handle CALL_EXPR.
5159         (build3_stat): Don't call build2_stat for CALL_EXPRs.
5160         (build_expr_wfl): Remove.
5161         (annotate_with_file_line, annotate_with_locus): New.
5162         (simple_cst_equal): Call simple_cst_list_equal to compare
5163         CONSTRUCTOR_ELTS pointers.
5164         (iterative_hash_expr): Don't hash types associated
5165         with conversions.  Instead hash on the signedness of the
5166         toplevel object and the operand of the conversion.
5167         (dump_tree_statistics): Call ssanames_print_statistics
5168         and phinodes_print_statistics.
5169         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
5170         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
5171         needs_to_live_in_memory): New.
5172         (initializer_zerop): Handle VECTOR_CST.  Don't check
5173         AGGREGATE_TYPE_P for CONSTRUCTOR.
5174         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
5175         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
5176         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
5177         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
5178         (CALL_EXPR): Add another operand.
5179         (EXPR_WITH_FILE_LOCATION): Remove.
5180         (SWITCH_EXPR): Add another operand.
5181         * tree.h: Update various comments.
5182         (union tree_ann_d): Forward declare.
5183         (struct tree_common): Add fields nowarning_flag,
5184         invariant_flag and visited.
5185         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
5186         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
5187         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5188         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5189         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5190         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5191         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5192         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5193         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5194         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5195         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5196         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5197         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5198         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5199         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5200         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5201         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5202         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5203         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5204         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5205         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5206         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5207         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5208         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5209         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5210         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5211         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5212         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5213         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5214         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5215         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5216         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5217         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5218         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5219         TDF_UID,): Define.
5220         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5221         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5222         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5223         EXPR_WFL_SET_LINECOL): Remove.
5224         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5225         make_phi_node, init_phinodes, fini_phinodes,
5226         release_phi_node, phinodes_print_statistics,
5227         init_ssanames, fini_ssanames, make_ssa_name,
5228         release_ssa_name, ssanames_print_statistics,
5229         annotate_with_file_line, build_empty_stmt,
5230         annotate_with_locus, expr_only, categorize_ctor_elements,
5231         count_type_elements, add_var_to_bind_expr, is_essa_node,
5232         expand_stack_alloc, expand_stack_save,
5233         expand_stack_restore, add_case_node, operand_equal_p,
5234         nondestructive_fold_unary_to_constant,
5235         nondestructive_fold_binary_to_constant,
5236         fold_read_from_constant_string, int_const_binop,
5237         strip_float_extensions, simplify_builtin, c_strlen,
5238         recompute_tree_invarant_for_addr_expr,
5239         needs_to_live_in_memory, make_vector,
5240         setjmp_vars_warning, update_alignment_for_field,
5241         expand_asm_expr, asm_op_is_mem_input,
5242         containing_blocks_have_cleanups_or_stack_level,
5243         create_artificial_label, gimplify_function_tree,
5244         get_name, unshare_expr, walk_tree,
5245         walk_tree_without_duplicates, in_gimple_form): Declare.
5246         (struct tree_exp): Add fields locus and block.
5247         (struct tree_ssa_name, struct edge_def, struct
5248         tree_phi_node, struct tree_eref_common, struct
5249         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5250         union alias_var_def, struct tree_statement_list_node,
5251         struct tree_statement_list, enum operand_equal_flag): Declare.
5252         (enum tree_node_structure_enum): Add TS_SSA_NAME,
5253         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5254         TS_STATEMENT_LIST.
5255         (union tree_node): Add fields ssa_name, phi, eref, ephi,
5256         euse and stmt_list.
5257         (function_cannot_inline_p, uninitialized_vars_warning,
5258         save_for_inline, output_inline_function, all_cases_count,
5259         check_for_full_enumeration_handling,
5260         declare_nonlocal_label): Remove.
5261         (enum tree_dump_index): Add TDI_none, TDI_tu,
5262         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5263         * unroll.c (unroll_loop): Don't clear map->inline_target.
5264         * unwind-sjlj.c (uw_install_context): Make a proper static inline
5265         function.
5266         * value-prof.c (value_prof_hooks): New.
5267         (find_values_to_profile): Rename to rtl_find_values_to_profile.
5268         Move rtl-specific bits in from branch_prob.
5269         (value_profile_transformations): Rename to
5270         rtl_value_profile_transformations.
5271         (struct value_prof_hooks): New.
5272         (rtl_value_prof_hooks): New.
5273         (rtl_register_value_prof_hooks): New.
5274         (tree_find_values_to_profile): New stub.
5275         (tree_value_profile_transformations): New stub.
5276         (tree_value_prof_hooks): New stub.
5277         (tree_register_value_prof_hooks): New stub.
5278         (find_values_to_profile): New.
5279         (value_profile_transformations): New.
5280         * value-prof.h: Add multiple inclusion guard.
5281         (struct histogram_value): Change rtx fields to void *.
5282         (rtl_register_value_prof_hooks): New declaration.
5283         (tree_register_value_prof_hooks): New declaration.
5284         (find_values_to_profile): New declaration.
5285         (free_profiled_values): New declaration.
5286         (value_profile_transformations): New declaration.
5287         (struct profile_hooks): New declaration.
5288         (init_branch_prob): Declaration moved from rtl.h.
5289         (branch_prob): Declaration moved from rtl.h.
5290         (end_branch_prob): Declaration mooved from rtl.h.
5291         (tree_register_profile_hooks): New declaration.
5292         (rtl_register_profile_hooks): New declaration.
5293         (tree_profile_hooks): New declaration.
5294         (rtl_profile_hooks): New declaration.
5295         * varasm.c: Include tree-mudflap.h.
5296         (TRAMPOLINE_ALIGNMENT): Remove.
5297         (make_decl_rtl): Call mudflap_enqueue_decl.
5298         (assemble_static_space):
5299         (assemble_trampoline_template): Set and return
5300         TRAMPOLINE_ALIGNMENT.
5301         * varray.c (element): Add GENERIC_PTR_NOGC entry.
5302         Add entry for 'tree *'.
5303         Add entry for struct edge_def *.
5304         (varray_copy): New.
5305         * varray.h (enum varray_data_enum): Add
5306         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5307         VARRAY_DATA_TREE_PTR.
5308         (union varray_data_tag): Corresponding changes.
5309         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5310         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5311         VARRAY_EDGE, VARRAY_TREE_PTR,
5312         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5313         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5314         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5315
5316         * config/*/*: Various updates for changed macros, tree
5317         codes, etc.  Check ChangeLog.tree-ssa.
5318
5319         * doc/cfg.texi: New file.
5320         * doc/tree-ssa.texi: New file.
5321         * doc/c-tree.texi: Document new codes.
5322         * doc/gccint.texi: Include new files.
5323         * doc/install.texi: Document new features.
5324         * doc/invoke.texi: Document new switches.
5325         * doc/passes.texi: Document new passes.
5326         * doc/rtl.texi: Update changed RTL codes.
5327         * doc/sourcebuild.texi: Update build instructions.
5328         * doc/standards.texi: Document Fortran changes.
5329         * doc/tm.texi: Update.
5330
5331 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5332
5333         Replace several arrays with a struct of arrays.
5334         * combine.c (struct reg_stat): New.
5335         (init_reg_last_arrays): Renamed to...
5336         (init_reg_last): ...this.  Callers adjusted.
5337         (reg_stat): New.
5338         (combine_instructions): Allocate it and use it.
5339         (reg_last_death, reg_last_set, reg_last_set_value,
5340         reg_last_set_label, reg_last_set_table_tick,
5341         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5342         reg_last_set_mode, reg_last_set_nonzero_bits,
5343         reg_last_set_sign_bit_copies): Replace throughout
5344         with items of reg_stat.
5345
5346 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5347
5348         PR optimization/15100
5349         * combine.c (distribute_notes): Don't create a dangling
5350         REG_LIBCALL/REG_RETVAL note.
5351
5352 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5353
5354         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5355
5356         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5357         negv2si2.
5358
5359 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5360
5361         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5362
5363 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5364
5365         * doc/gty.texi (GTY Options): Clarify example.
5366
5367 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5368
5369         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5370         Add const qualifier to altivec vector type if one is needed.
5371
5372 2004-05-11  Paul Brook  <paul@codesourcery.com>
5373
5374         * flags.h (flag_short_enums): Update comment.
5375         * opts.c (decode_options): Set flag_short_enums to 2.
5376         * toplev.c (flag_short_enums): Update comment.
5377         (process_options): Call default_short_enums target hook.
5378
5379 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5380
5381         PR target/14063
5382         * config/rs6000/altivec.md (altivec_dssall):
5383         Change to unspec_volatile.
5384         (altivec_dss): Likewise.
5385
5386 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5387
5388         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5389         vnor.
5390         ("one_cmplv8hi2"): Same.
5391         ("one_cmplv4si2"): Same.
5392
5393 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5394
5395         PR target/15130
5396         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5397         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5398         into account.  Compute the correct number of general registers
5399         for the return value.  Generate a special push/pop sequence when
5400         failing to get a temporary register for non SHmedia epilogue.
5401         (sh_expand_epilogue): Add an argument to show whether it's for
5402         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5403         -1 if needed.
5404         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5405         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5406         with 1.
5407         (epilogue): Call sh_expand_epilogue with 0.
5408
5409 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5410
5411         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5412         goto a cleanup label.  After the cleanup, free the allocated memory.
5413
5414 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5415
5416         * config/rs6000/altivec.h (vec_sld): Add overloads for
5417         argument/return types of 'vector bool int', 'vector bool short'
5418         and 'vector bool char'.
5419
5420 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5421
5422         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5423         nested function.
5424
5425 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5426
5427         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5428         treating missing ones as "".
5429         * config/mips/mips.md: Remove constraints from match_operands and
5430         match_scratches if they appear in define_expands (except reload*),
5431         define_peephole2s, define_splits or attribute specifications.
5432         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5433         constraint strings.
5434
5435 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5436
5437         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5438         AltiVec vectors.
5439         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5440         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5441         byte boundary.  Remove useless code.  Add function comment.
5442         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5443         call to where it belongs.
5444         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5445         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5446         (rs6000_va_arg): Adjust for AltiVec change.
5447
5448 2004-05-10  Paul Brook  <paul@codesourcery.com>
5449
5450         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5451         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5452         (TARGET_DOUBLEWORD_ALIGN): Use it.
5453         (WCHAR_TYPE): Define.
5454         (WCHAR_SIZE_TYPE): Define.
5455         (SIZE_TYPE): Define.
5456
5457 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5458
5459         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5460         when size is 8 bytes.
5461         (function_arg_advance): Account for stack space used by AltiVec
5462         args when -mabi=altivec.  Simplify alignment calculations.  For
5463         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5464         (function_arg): Similarly.
5465         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5466         not AltiVec ABI.
5467         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5468         Correct alignment, and align before testing reg count.  Remove
5469         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5470         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5471         TARGET_FPRS here..
5472         (rs6000_function_value): .. not here before call.
5473
5474 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5475
5476         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5477
5478 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5479
5480         PR 15007
5481         * c-decl.c (current_file_decl): Rename to all_translation_units,
5482         adjust comment.
5483         (pop_scope): If popping file_scope, construct a
5484         TRANSLATION_UNIT_DECL and make it the context of all the
5485         symbols in the scope.
5486         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5487         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5488         anything to current_file_decl.
5489         (pushdecl_top_level): Likewise.
5490         (store_parm_decls_newstyle): Adjust check for nested function.
5491         (c_write_global_declarations): Update for renamed variable.
5492
5493 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5494
5495         * config/rs6000/rs6000-protos.h
5496         (rs6000_conditional_register_usage): Protoize.
5497
5498         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5499
5500         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5501         function.
5502
5503 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5504
5505         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5506         where op is a comparison operator and C1 and C2 are integer constants
5507         into a range check.
5508         (fold): Call fold_div_compare.
5509
5510 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5511
5512         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5513         problems with earlier versions of the GNU compiler.
5514
5515 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5516
5517         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5518         Declare.
5519
5520         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5521         (rs6000_hard_regno_mode_ok): New.
5522         (rs6000_init_hard_regno_mode_ok): New.
5523         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5524
5525         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5526         result.
5527
5528 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5529
5530         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5531         define as macros #ifdef __APPLE_ALTIVEC__.
5532
5533 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5534
5535         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5536         Generate appropriate parallels for vector arguments
5537         passed to vararg functions. (function_arg): make the call
5538         to rs6000_mixed_function_arg for vector args as needed.
5539
5540 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5541
5542         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5543         EABI_FLOAT_VARARGS_P.
5544
5545 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5546
5547         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5548         * config/mips/mips.c (override_options): Disable branch likely
5549         instructions if TUNE_MIPS5500.
5550
5551 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5552
5553         * config/mips/mips.c (override_options): Allow the hi and lo registers
5554         to store any integral mode, not just MODE_INTs.
5555
5556 2004-05-07  Paul Brook  <paul@codesourcery.com>
5557
5558         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5559         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5560         (TARGET_DOUBLEWORD_ALIGN): Use it.
5561         (WCHAR_TYPE): Define.
5562         (WCHAR_SIZE_TYPE): Define.
5563         (SIZE_TYPE): Define.
5564
5565 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5566
5567         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5568         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5569
5570 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5571
5572         * loop-doloop.c (doloop_valid_p): Make sure that body
5573         gets freed.
5574
5575 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5576
5577         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5578         declaration.
5579         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5580         (sparc_skip_caller_unimp): New global variable.
5581         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5582         Use it instead of SKIP_CALLERS_UNIMP_P.
5583         * config/sparc/sparc.md (call expander): Add sanity check.
5584         (call_address_struct_value_sp32): Re-sync with expander.
5585         (call_symbolic_struct_value_sp32): Likewise.
5586         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5587         of custom predicate.
5588
5589 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5590
5591         PR c++/14962
5592         * c-pragma.c (handle_pragma_redefine_extname): Only change
5593         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5594
5595 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5596
5597         * optabs.h (enum optab_index): Add new OTI_log1p.
5598         (log1p_optab): Define corresponding macro.
5599         * optabs.c (init_optabs): Initialize log1p_optab.
5600         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5601         patterns.
5602         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5603         using log1p_optab.
5604         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5605         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5606
5607         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5608
5609         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5610         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5611         Prototype here.
5612         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5613         x87's fyl2xp1 instruction.
5614         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5615         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5616         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5617         log1p  and log1pl built-ins as inline x87 intrinsics.
5618
5619 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5620
5621         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5622         * config/arm/freebsd.h: Likewise.
5623         * config/ia64/freebsd.h: Likewise.
5624         * config/sparc/freebsd.h: Likewise.
5625
5626 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5627
5628         PR optimization/15296
5629         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5630         getting last consecutive label at a branch.
5631         (relax_delay_slots): Similar, near top of loop.
5632
5633 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5634
5635         PR target/15202
5636         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5637         register to general register.
5638
5639 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5640
5641         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5642         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5643         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5644         (STACK_BOUNDARY): Delete.
5645
5646 2004-05-06  Stuart Hastings  <stuart@apple.com>
5647
5648         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5649         mistakenly clobbered by 1.423.
5650
5651 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5652
5653         * doc/invoke.texi: Document -mvr4130-align.
5654         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5655         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5656         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5657         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5658         * config/mips/mips.md: Include sched-int.h.
5659         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5660         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5661         (override_options): Enable -mvr4130-align at -O3 and above.
5662         (mips_sim_insn): New variable.
5663         (mips_sim): New structure.
5664         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5665         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5666         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5667         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5668         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5669         (mips_reorg): Call vr4130_align_insns.
5670         (vr4130_last_insn): New variable.
5671         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5672         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5673         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5674         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5675         (mips_use_dfa_pipeline_interface): Return true for the same.
5676         * config/mips/4130.md: New file.
5677         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5678         "mult;mflo" into "mtlo;macc".
5679         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5680         target of maccs.
5681         (*msac_using_macc): New pattern.
5682
5683 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5684
5685         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5686         (ir_vr55_hilo): Split into...
5687         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5688         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5689         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5690         Add various multiplication bypasses.
5691         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5692         multiplication.
5693
5694 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5695
5696         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5697         attribute to "XF".
5698
5699 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5700
5701         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5702         (fmod_optab, drem_optab): Define corresponding macros.
5703         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5704         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5705         using fmod?f3 and drem?f3 patterns.
5706         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5707         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5708         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5709         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5710         flag_unsafe_math_optimizations is set.
5711
5712         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5713         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5714
5715         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5716         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5717         Prototype here.
5718         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5719         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5720         fprem and fprem1 instructions.
5721         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5722         Rename insn definition to x86_fnstsw_1.
5723         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5724         x87 instructions.
5725         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5726         and fmodl built-ins as inline x87 intrinsics.
5727         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5728         and dreml built-ins as inline x87 intrinsics.
5729
5730 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5731
5732         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5733
5734 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5735
5736         PR driver/9822
5737         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5738
5739 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5740
5741         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5742         representation.
5743
5744 2004-05-06  Paul Brook  <paul@codesourcery.com>
5745
5746         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5747         (arm_coproc_mem_operand): ... To this.
5748         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5749         (arm_legitimate_index_p): Ditto.
5750         (vfp_mem_operand): Rename ...
5751         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5752         (vfp_secondary_reload_class): Use it.
5753         (output_move_double): Use doubleword load/store instructions.
5754         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5755         * config/arm/arm.h (TARGET_LDRD): Define.
5756         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5757         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5758         New splitter for invalid doubleword loads.
5759         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5760         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5761         * doc/md.texi: Document Uy constraint.
5762
5763 2004-05-05  Jan Hubicka  <jh@suse.cz>
5764
5765         PR opt/14980
5766         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5767         inline clones.
5768
5769 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5770
5771         PR target/15290
5772         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5773         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5774
5775 2004-05-05  Mike Stump  <mrs@apple.com>
5776
5777         * config/darwin-c.c (add_framework): Copy the directory name as it
5778         can be freed later.  Also, ensure we always allocate enough room
5779         for the cached framework information.
5780         (find_subframework_header): Keep track of the directory where the
5781         subframework header was found.
5782         (framework_construct_pathname): Speed up by not trying to re-add a
5783         framework.
5784         * cppfiles.c (search_path_exhausted): Arrange for the missing
5785         header callback to be able to set the directory where the header
5786         was found.
5787         (cpp_get_dir): Add.
5788         * cpplib.h (missing_header_cb): Add a parameter.
5789         (cpp_get_dir): Add.
5790
5791 2004-05-03  Mike Stump  <mrs@apple.com>
5792
5793         * doc/invoke.texi (Directory Options): Document -iquote.
5794         * doc/cpp.texi: Likewise.
5795         * doc/cppopts.texi: Likewise.
5796         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5797         (c_common_handle_option): Likewise.
5798         * c.opt (iquote): Add.
5799         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5800         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5801
5802         * c-opts.c (case OPT_I): Deprecate -I- support.
5803         * doc/invoke.texi: Likewise.
5804         * doc/cpp.texi: Likewise.
5805         * doc/cppopts.texi: Likewise.
5806
5807 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5808
5809         * basic-block.h (free_basic_block_vars): Update prototype.
5810         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5811         argument.
5812         (life_analysis): Update call.
5813         * ifcvt.c (if_convert): Likewise.
5814         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5815         * passes.c (rest_of_handle_final): Likewise.
5816         (rest_of_compilation): Likewise.
5817         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5818
5819         * emit-rtl.c (next_real_insn): Use INSN_P.
5820         (prev_real_insn): Likewise.
5821
5822 2004-05-05  Eric Christopher  <echristo@redhat.com>
5823
5824         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5825         representation.
5826
5827 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5828
5829         * config/rs6000/rs6000.c (build_opaque_vector_type):
5830         New function.
5831         (rs6000_init_builtins): Use it.
5832
5833 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5834
5835         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5836         (func_table): Change type from char ** to vms_func_ref.
5837         (write_rtnbeg):  Update to reflect func_table change.  Use
5838         fde->funcdef_number instead of rtnnum in output.
5839         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5840
5841 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5842             Richard Henderson  <rth@redhat.com>
5843
5844         PR target/14899
5845
5846         * c-common.c (vector_types_convertible_p): New function.
5847         * c-typeck.c (comptypes): Recurse on vector types.
5848         (convert_for_assignment): Use vector_types_convertible_p.
5849         (digest_init): Use vector_types_convertible_p to check
5850         validness of constant vector initializers; otherwise treat
5851         them as scalars.
5852         * tree.c (make_or_reuse_type): New.
5853         (build_common_tree_nodes): Use it.
5854         * cp/call.c (standard_conversion): Likewise.
5855         * cp/typeck.c (comptypes): Recurse on vector types.
5856         (convert_for_assignment): Use vector_types_convertible_p.
5857
5858 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5859
5860         * config/mips/mips.c (override_options): Default to no
5861         generation of branch-likely operations when tuning for
5862         CPUs where they tend to have a negative performance impact
5863         (e.g., SB-1).
5864
5865 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5866
5867         * expr.c (store_constructor_field): Don't call store_constructor
5868         if bitsize is not a multiple of a byte.
5869
5870 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5871
5872         * reload1.c (inherit_piecemeal_p): New function.
5873         (emit_reload_insns): When reloading a group of hard registers, use
5874         inherit_piecemeal_p to decide whether the values of individual hard
5875         registers can be inherited.
5876
5877 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5878
5879         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5880         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5881         * config/t-linux (LIB2ADDEHDEP): Likewise.
5882
5883 2004-05-04  Paul Brook  <paul@codesourcery.com>
5884
5885         * config/arm/crti.asm: Push an even number of registers.
5886         * config/arm/crtn.asm: And restore them.  Load via sp.
5887
5888 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5889
5890         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5891         Collect overhead information.
5892         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5893         parameter and pass it through.
5894         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5895         MEM_STAT_DECL parameter and pass it through.
5896         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5897         MEM_STAT_DECL parameter and pass it through.
5898
5899 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5900
5901         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5902
5903         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5904
5905         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5906         rs6000_hard_regno_nregs.
5907
5908 2004-05-03  Eric Christopher  <echristo@redhat.com>
5909
5910         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5911         prologue insn instead of setting up call.
5912         (s390_emit_epilogue): Ditto.
5913         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5914         (define_constants): Add numbers for above patterns.
5915
5916 2004-05-03  Eric Christopher  <echristo@redhat.com>
5917
5918         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5919         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5920         * config/s390/s390-protos.h: Prototype.
5921
5922 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5923
5924         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5925         assignment.
5926
5927 2004-05-03  Eric Christopher  <echristo@redhat.com>
5928
5929         * config/mips/mips.md: Fix branch length attribute definition.
5930
5931 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5932
5933         * config.gcc: Remove --enable-altivec support.
5934
5935         * config/rs6000/altivec-defs.h: Remove.
5936
5937 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5938
5939         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5940         * fixinc/fixincl.x: Regenerate.
5941
5942 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5943
5944         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5945         definition.
5946         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5947         float_truncate insn.
5948         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5949         (logb?f2): Reimplement expanders with float_truncate insn.
5950
5951 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5952
5953         PR 14718
5954         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5955         force_type_die for CONST_DECL.
5956
5957 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5958             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5959
5960         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5961         tm-dwarf2.h to tm_file.
5962         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5963         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5964         (ASM_DEBUG_SPEC): Delete.
5965
5966 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5967
5968         * optabs.h (enum optab_index): Add new OTI_expm1.
5969         (expm1_optab): Define corresponding macro.
5970         * optabs.c (init_optabs): Initialize expm1_optab.
5971         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5972         patterns.
5973         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5974         using expm1_optab.
5975         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5976         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5977
5978         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5979         to implement expm1, expm1f and expm1l built-ins as inline x87
5980         intrinsics.
5981
5982 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5983
5984         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5985         * config/frv/frv.md (*return_true, *return_false): New patterns.
5986
5987 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5988
5989         * rtl.h (PHI_NODE_P): Remove.
5990
5991 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5992
5993         PR middle-end/14988
5994         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5995         when passed -2 as 'align'.
5996         (put_var_into_stack): Use 'bool' as the type for the three local
5997         predicates.  Adjust calls to put_reg_into_stack.
5998         When passed a CONCAT, instruct put_reg_into_stack to use
5999         a consecutive stack slot for the second part.
6000         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
6001         'consecutive_p' parameter.  Turn the three predicates into 'bool'
6002         parameters.  Retrieve the register mode from 'reg'.
6003         When consecutive_p is true, instruct assign_stack_local_1 to use
6004         BITS_PER_UNIT alignment.
6005         (put_addressof_into_stack): Use 'bool' as the type for the two
6006         local predicates. Adjust call to put_reg_into_stack.
6007
6008 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6009
6010         * fold-const.c (fold_convert_const, fold): Add missing
6011         FIX_ROUND_EXPR case.
6012
6013 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
6014
6015         * configure.ac (FLEX, BISON): Only use tools from the build tree
6016         if build equals host.
6017         * configure: Rebuilt.
6018
6019         * config/frv/frv-protos.h (frv_expand_epilogue,
6020         frv_expand_fdpic_call): Add bool argument.
6021         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
6022         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
6023         (frv_expand_epilogue): Use new argument to decide whether to emit
6024         return instruction or copy the return address to LR.
6025         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
6026         sibcalls.
6027         (sibcall_operand): New.
6028         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
6029         PLUS nor LABEL_REF.  Add sibcall_operand.
6030         * config/frv/frv.md (call, call_value): Pass false to
6031         frv_expand_fdpic_call.
6032         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
6033         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
6034         sibcall_value_internal, sibcall_value_fdpicdi): New.
6035         (return_unsigned_true, return_unsigned_false): New.
6036         (epilogue): Adjust call to frv_expand_epilogue.
6037         (sibcall_epilogue): New.
6038
6039         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
6040         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
6041         before redefining them.
6042
6043 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6044
6045         * builtins.c (fold_fixed_mathfn): New function.
6046         (fold_builtin_lround, fold_builtin): Use it.
6047
6048 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
6049
6050         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
6051         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
6052
6053 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
6054
6055         * config/cris/cris.h: Revert my "fix comment typos" patch.
6056
6057 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
6058
6059         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
6060
6061 2004-05-01  Falk Hueffner  <falk@debian.org>
6062
6063         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
6064         builtin_insll): Disallow 0 as first input operand.
6065
6066 2004-05-01  Falk Hueffner  <falk@debian.org>
6067
6068         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
6069
6070 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
6071
6072         PR middle-end/15054
6073         * expr.c (expand_expr_real): Do not call preserve_temp_slots
6074         on a TARGET_EXPR temp.
6075         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
6076         TARGET_EXPR temp slots.
6077
6078 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
6079
6080         * simplify-rtx.c (simplify_ternary_operation): When
6081         converting an IF_THEN_ELSE to a relational op, return
6082         correct mode.
6083
6084 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6085
6086         * builtins.c (fold_builtin_round): Fix comment typo.
6087         (fold_builtin_lround): New function.
6088         (fold_builtin): Use it.
6089
6090 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
6091
6092         PR target/11608
6093         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
6094         more like the one in config/dbxelf.h.
6095
6096 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
6097
6098         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
6099         and adjust definition accordingly.
6100         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
6101         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
6102         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
6103         VECTOR_TYPE.
6104
6105 2004-04-30  Jason Merrill  <jason@redhat.com>
6106
6107         PR c++/14587
6108         * config/i386/winnt.c (associated_type): Look for attributes on
6109         the TYPE_MAIN_VARIANT of *this.
6110         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
6111         apply the attributes to the variants.
6112
6113 2004-04-30  Paul Brook  <paul@codesourcery.com>
6114
6115         * config.gcc: Simplify arm --with-{cpu,tune} test.
6116         * config/arm/arm-cores.def: Document whitespace restrictions.
6117
6118 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6119
6120         PR other/1963
6121         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
6122
6123 2004-04-30  Brian Ford  <ford@vss.fsi.com>
6124             DJ Delorie  <dj@redhat.com>
6125
6126         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6127         (DWARF2_DEBUGGING_INFO): Define to enable.
6128         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
6129         DWARF2.
6130         * configure.ac (Target-specific assembler checks)
6131         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
6132         relocs.
6133         * configure: Regenerate.
6134         * config.in: Likewise.
6135
6136         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6137         (ASM_OUPUT_DWARF_OFFSET): Define.
6138
6139 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6140
6141         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
6142         (s390_emit_call): New function prototype added.
6143         (s390_tls_get_offset): Function removed.
6144         * config/s390/s390.c (s390_function_ok_for_sibcall,
6145         s390_call_saved_register_used_p): New functions.
6146         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
6147         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
6148         (s390_emit_tls_call_insn): New function.
6149         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
6150         emit_call_insn.
6151         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
6152         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
6153         added.
6154         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
6155         register number used to hold the target address for sibcalls.
6156         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
6157         New expanders.
6158         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
6159         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
6160         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
6161         Expanders removed.
6162         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
6163         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
6164         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
6165         ("epilogue"): Changed the call to s390_emit_epilogue to use the
6166         new parameter.
6167
6168 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
6169
6170         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
6171         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
6172         reg-stack.c, varasm.c, config/alpha/ev4.md,
6173         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
6174         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
6175         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
6176         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
6177         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
6178         config/ia64/itanium2.md, config/ip2k/ip2k.c,
6179         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
6180         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
6181         comment typos.
6182
6183 2004-04-30  Paul Brook  <paul@codesourcery.com>
6184
6185         * config.gcc: Default ep9312 to hard-float.
6186         * config/arm/arm-cores.def: Add ARCH field.
6187         * config/arm/arm.c (FL_FOR_ARCH*): Define.
6188         (arm_arch_cirrus): New variable.
6189         (all_cores): Set and use arch.
6190         (all_architectures): Ditto.
6191         (arm_arch_name): New variable.
6192         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6193         Set and use arm_arch_cirrus.
6194         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6195         (enum processor_type): Update ARM_CORE define.
6196         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
6197         (CPP_SPEC): Remove %(cpp_cpu_arch).
6198         (CPP_ARCH_DEFAULT_SPEC): Remove.
6199         (CPP_CPU_ARCH_SPEC): Remove.
6200         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6201         (FPUTYPE_DEFAULT): Don't define here.
6202
6203 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
6204
6205         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6206         updates too.
6207
6208 2004-04-30  Paul Brook  <paul@codesourcery.com>
6209
6210         * arm.c (arm_needs_doubleword_align): Use mode alignment.
6211
6212 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
6213
6214         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6215         vec_sububs.
6216         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6217         duplicates.
6218
6219 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6220
6221         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6222         atan2?f3 expanders.
6223
6224 2004-04-29  Nick Clifton  <nickc@redhat.com>
6225
6226         Bug 14093
6227         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6228         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6229         Delete static from definition.
6230         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6231
6232 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6233
6234         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6235         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6236         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6237         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6238
6239 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
6240
6241         * commom.opt (Wfatal-errors): Add it.
6242         * diagnostic.c (flag_fatal_errors): Define it.
6243         (diagnostic_action_after_output): Check for flag_fatal_errors.
6244         * flags.h (flag_fatal_errors): Declare it.
6245         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6246         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6247
6248 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
6249
6250         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6251         blocks which have kill flag set.
6252
6253 2004-04-29  Ben Elliston  <bje@au.ibm.com>
6254
6255         * configure.ac (--with-as): Abort if user-supplied assembler
6256         cannot be executed.
6257         (--with-ld): Likewise for the linker.
6258         * configure: Regenerate.
6259
6260 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6261
6262         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6263         isn't NULL before using it.
6264
6265 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
6266
6267         PR target/15189
6268         * config/mips/mips.md (load_df_low): Use default length.
6269         (load_df_high, store_df_high): Likewise.
6270
6271 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6272
6273         * config/mips/mips.md, config/mips/sb1.md,
6274         config/rs6000/rs6000.c: Fix comment typos.
6275
6276 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6277
6278         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6279         Fix comment typos.
6280
6281 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
6282
6283         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6284         (delete_if_ordinary): Use above macro.
6285         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6286         Update copyright.
6287         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6288
6289 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
6290
6291         * c-decl.c (get_parm_info): Use the correct tag keywords when
6292         warning about type declarations in prototypes.
6293
6294 2004-04-29  Paul Brook  <paul@codesourcery.com>
6295
6296         * config.gcc: Pull list of cores from arm-cores.def.
6297
6298 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6299
6300         * combine.c (combine_simplify_rtx): Adjust call to use
6301         simplify_relational_operation.  Do not use SELECT_CC_MODE
6302         when a comparison already has a MODE_CC mode.
6303
6304 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6305
6306         (simplify_set): simplify_relational_operation may now
6307         return another relational expression.
6308         * cse.c (fold_rtx): simplify_relational_operation now
6309         takes of computing the comparison mode.
6310         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6311         remove dead code.
6312         (do_compare_rtx_and_jump): Likewise.
6313         * integrate.c (subst_constants): simplify_relational_operation
6314         may now return another relational expression.
6315         * simplify-rtx.c (simplify_gen_relational): Move most code to
6316         the new simplify_relational_operation and
6317         simplify_relational_operation_1 functions.
6318         (simplify_relational_operation): Rewritten.
6319         (simplify_relational_operation_1): New function.
6320         (simplify_ternary_operation): simplify_relational_operation
6321         may now return another relational expression.
6322         (simplify_rtx): Remove unnecessary temp variable.
6323
6324 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6325
6326         * reg-stack.c (swap_to_top): New function.
6327         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6328         swap_to_top().
6329         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6330         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6331         UNSPEC_FSCALE_EXP.
6332
6333         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6334         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6335         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6336         x87's fscale insn.
6337         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6338         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6339         patterns.
6340
6341 2004-04-28  Serge Belyshev  <1319@bot.ru>
6342
6343         PR 14944
6344         * coverage.c (read_counts_file): Fix usage of warning () call.
6345         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6346
6347 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6348
6349         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6350         options with "-" in the option index.
6351         (SPARC Options): Likewise.
6352         (M32R/D Options): Likewise.
6353
6354 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6355
6356         * convert.c (convert_to_integer): Convert (long)round -> lround,
6357         etc.
6358
6359 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6360
6361         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6362         Return false if we do not have fp register.
6363         (addrs_ok_for_quad_peep): Rename to ...
6364         (mems_ok_for_quad_peep): this.
6365         Add check for volatile memory.
6366         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6367         Rename to ...
6368         (mems_ok_for_quad_peep): this.
6369         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6370         to peephole2's.
6371         (lfq_power2): New instruction.
6372         (stfq_power2): Likewise.
6373
6374 2004-04-28  Jan Hubicka  <jh@suse.cz>
6375
6376         PR c/15004
6377         * function.c (do_warn_unused_parameter): Break out form ...
6378         (expand_function_end): ... here; warn only when not using cgraphunit.
6379         * function.h (do_warn_unused_parameter): Declare.
6380         * cgraphunit.c: Include function.h.
6381         (cgraph_finalize_function): Do unused parameter warning.
6382         * Makefile.in (cgraphunit.o): Depend on function.h
6383
6384 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6385
6386         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6387         calling install-info on $(DESTDIR)$(infodir)/dir already being
6388         present.
6389
6390 2004-04-28  Paul Brook  <paul@codesourcery.com>
6391
6392         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6393
6394 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6395
6396         * gcse.c (find_moveable_store): Do not accept store insns with
6397         REG_EH_REGION note.
6398
6399 2004-04-28  Paul Brook  <paul@codesourcery.com>
6400
6401         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6402         * function.c (assign_temp): Ditto.
6403         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6404
6405 2004-04-28  Paul Brook  <paul@codesourcery.com>
6406
6407         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6408
6409 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6410
6411         * var-tracking.c (variable_different_p): Add a parameter
6412         compare_current_location, compare current location of variable parts
6413         if it is true.
6414         (dataflow_set_different_1): Pass compare_current_location == false.
6415         (dataflow_set_different_2): Pass compare_current_location == false.
6416         (emit_notes_for_differences_1): Pass compare_current_location == true.
6417
6418 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6419
6420         * config/s390/s390.md ("casesi"): Mark jump table access as
6421         non-trapping and unchanging.
6422
6423 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6424
6425         PR debug/14829
6426         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6427         callers.
6428         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6429         number for indexing hard_regno_nregs array.
6430
6431 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6432
6433         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6434         * config/darwin-crt2.c: Only have contents on __ppc__.
6435
6436 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6437
6438         * config/xtensa/xtensa.c (call_insn_operand): Check
6439         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6440         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6441         * config/xtensa/xtensa.md (call, call_value): Likewise.
6442
6443 2004-04-27  Wu Yongwei  <adah@sh163.net>
6444
6445         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6446         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6447         (__gthread_mutex_init_function): Replace CreateMutex with
6448         initialization of custom mutex using CreateSemaphore.
6449         (__gthread_mutex_lock): Use InterlockedIncrement.
6450         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6451         (__gthread_mutex_unlock): Use InterlockedDecrement and
6452         ReleaseSemaphore to unlock
6453         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6454         __gthread_mutex_lock, __gthread_mutex_trylock,
6455         __gthread_mutex_unlock): Adjust to match inline versions in
6456         gthr-win32.h.
6457
6458 2004-04-27  Paul Brook  <paul@codesourcery.com>
6459
6460         * config/arm/arm.c (arm_promote_prototypes): New function.
6461         (TARGET_PROMOTE_PROTOTYPES): Use it.
6462
6463 2004-04-27  Paul Brook  <paul@codesourcery.com>
6464
6465         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6466
6467 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6468
6469         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6470         correctly output .pdesc directive before .end.
6471
6472 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6473
6474         Bug 14927
6475         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6476         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6477
6478 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6479
6480         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6481         * config/pa/pa-hpux10.h: Likewise.
6482         * config/pa/pa-hpux11.h: Likewise.
6483
6484 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6485
6486         * doc/invoke.texi (Overall Options): Document default for -o
6487         for PCH files.
6488
6489 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6490
6491         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6492         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6493         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6494
6495 2004-04-26  Paul Brook  <paul@codesourcery.com>
6496
6497         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6498
6499 2004-04-26  Paul Brook  <paul@codesourcery.com>
6500
6501         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6502
6503 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6504
6505         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6506         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6507         X % -1 as 0.
6508
6509 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6510
6511         PR bootstrap/15141
6512         * except.c (connect_post_landing_pads): Delete insns after the
6513         barrier when generating a unwind_resume_libfunc call.
6514
6515 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6516
6517         PR/c++ 15119
6518         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6519         for TARGET_EXPR.
6520
6521 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6522
6523         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6524         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6525         inhibit_libc is defined.
6526
6527 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6528
6529         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6530         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6531         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6532         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6533         (mips_adjust_cost): Move later in file, next to other sched hooks.
6534         (mips_macc_chains_last_hilo): New variable.
6535         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6536         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6537         * config/mips/mips.md (may_clobber_hilo): New attribute.
6538
6539 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6540             Bruce Korb  <bkorb@gnu.org>
6541
6542         * fixinc/inclhack.def (aix_syswait_2): New fix.
6543         * fixinc/fixincl.x: Regenerate.
6544         * fixinc/tests/base/sys/wait.h: Update for new test.
6545
6546 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6547
6548         PR target/14960
6549         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6550         to non_fixed_size, and leave out fixed_size from the sum.
6551         (generate_set_vrsave): Correct clobbers.
6552         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6553         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6554         (rs6000_libcall_value): Likewise.
6555         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6556         (FUNCTION_ARG_REGNO_P): Likewise.
6557
6558 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6559
6560         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6561         is a CONST_INT.
6562         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6563         with NARROW_OP1 instead of OP1.
6564
6565 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6566
6567         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6568         and __s390x__ hosts.
6569
6570 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6571
6572         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6573         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6574         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6575         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6576         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6577         * builtins.c (expand_builtin_fork_or_exec): New.
6578         (expand_builtin): Call it.
6579         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6580         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6581         * c-common.c (PID_TYPE): New macro.
6582         (c_common_nodes_and_builtins): Initialize pid_type_node.
6583         * calls.c (special_function_p): Do not handle fork and exec.
6584         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6585         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6586         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6587         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6588         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6589         * tree.h (enum tree_index): Add TI_PID_TYPE.
6590         (pid_type_node): New macro.
6591         (ECF_FORK_OR_EXEC): Removed.
6592
6593 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6594
6595         PR optimization/13985
6596         * cfgloopmanip.c (fix_loop_placements): New prototype.
6597         Call fix_bb_placements on the preheader of loops that have
6598         been reparented.
6599         (remove_path): Adjust call to fix_loop_placements.
6600
6601 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6602
6603         * config/darwin7.h: New file.
6604         * config.gcc (*-*-darwin*): Add darwin7.h if the
6605         version is greater than 6.
6606         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6607         (MATH_LIBRARY): Wrap in ifdefs.
6608
6609 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6610
6611         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6612         loading iWMMXt registers with a frame pointer.  Use post-increment
6613         without a frame pointer.
6614         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6615
6616 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6617
6618         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6619         mode" rather than "-funit-at-a-time" since -O2 enables it
6620         without requiring -f* options.  Refer to -fprofile-generate and
6621         -fprofile-use correctly.  Move -funit-at-a-time among options
6622         enabled by -O.  Add information about unit-at-a-time caveats.
6623
6624 2004-04-22  Per Bothner  <per@bothner.com>
6625
6626         * line-map.h (struct line_maps):  New field highest_line.
6627         (linemap_position_for_column):  Make non-inline function.
6628         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6629         * line-map.c (linemap_init):  Clear highest_line field.
6630         (linemap_add):  Set highest_line field.
6631         (linemap_line_start):  Minor optimization - use highest_line field.
6632         Reduce maximum column hint to 10000.  Update highest_line field.
6633         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6634         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6635         line_table->highest_line.
6636         (saved_line):  Remove unused field.
6637         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6638         Use  line_table's highest_line field instead of cpp_reader's line.
6639         * cpplib.c (start_directive):  Likewise use highest_line field.
6640         (do_line, do_linemarker):  Likewise just use newest map.
6641         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6642         * cpperror.c (cpp_error):  Likewise use highest_line field.
6643         * cppfiles.c (open_file_failed:  Likewise.
6644         (cpp_make_system_header):  Likewise use newest map and highest_line.
6645         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6646         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6647         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6648         _cpp_lex_direct):  Likewise use highest_line.
6649         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6650         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6651         and use newest map.
6652         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6653         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6654         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6655
6656 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6657
6658         PR bootstrap/14992
6659         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6660         * config/linux.h (USE_LD_AS_NEEDED): Define.
6661         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6662         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6663         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6664         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6665         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6666         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6667         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6668
6669 2004-04-22  Per Bothner  <per@bothner.com>
6670
6671         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6672         Fixes PR preprocessor/15067.
6673
6674 2004-04-23  Andreas Schwab  <schwab@suse.de>
6675
6676         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6677         avoid aliasing warning.
6678
6679 2004-04-22  Jan Hubicka  <jh@suse.cz>
6680             Mostafa Hagog <mustafa@il.ibm.com>
6681
6682       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6683       * cfgloopanal.c (expected_loop_iterations): Change the return value
6684
6685 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6686
6687         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6688         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6689         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6690         traces.
6691
6692 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6693
6694         Revert
6695         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6696
6697                 * var-tracking.c (variable_part_different_p): Variable parts
6698                 differ when the most recent locations differ.
6699
6700 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6701
6702         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6703         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6704         (embedded_pic_offset): Delete.
6705         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6706         MASK_* constants.
6707         (TARGET_EMBEDDED_PIC): Delete.
6708         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6709         (ASM_SPEC): Remove -membedded-pic.
6710         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6711         (ASM_OUTPUT_CASE_LABEL): Likewise.
6712         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6713         * config/mips/windiss.h (ASM_SPEC): Likewise.
6714         * config/mips/mips.c (struct machine_function): Remove
6715         embedded_pic_fnaddr_rtx.
6716         (TARGET_ENCODE_SECTION_INFO): Remove override.
6717         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6718         (override_options): Remove -membedded-pic handling.
6719         (print_operand): Remove handling of '%S'.
6720         (mips_select_section: Remove -membedded-pic handling.
6721         (mips_encode_section_info): Delete.
6722         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6723         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6724         -membedded-pic handling.
6725         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6726
6727 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6728
6729         * var-tracking.c (frame_base_decl): Remove useless GTY.
6730
6731 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6732
6733         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6734         user wants altivec and e500 instructions.
6735
6736 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6737
6738         PR target/14813
6739         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6740         in .init_array section to ...
6741         * config/ia64/crtbegin.asm: Here.
6742
6743         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6744         and hidden if HAVE_INITFINI_ARRAY is defined.
6745
6746 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6747
6748         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6749         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6750         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6751         (fp_register_operand, lo_operand): New.
6752         (mips_rtx_costs): Add TUNE_SB1 support.
6753         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6754         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6755         (mips_multipass_dfa_lookahead): New.
6756         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6757         TUNE_SB1): New.
6758         (TARGET_SWITCHES): Add -mfp-exceptions support.
6759         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6760         (BRANCH_COST): Fix whitespace.
6761         * config/mips/mips.md: Include sb1.md.
6762         * config/mips/sb1.md: New file.
6763         * doc/invoke.texi: Document -mfp-exceptions.
6764
6765         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6766         comment.
6767         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6768         (fixincl.o-warn): Delete.
6769
6770 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6771
6772         * config/rs6000/rs6000 (print_operand) ['z']:
6773         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6774
6775 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6776
6777         * config.gcc: Support --with-arch=iwmmxt for ARM.
6778
6779 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6780
6781         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6782         in two more places; remove unneeded force_reg
6783
6784 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6785
6786         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6787         for TARGET_MACHO.
6788         (print_operand): For TARGET_MACHO check to see if we need a stub
6789         and output one if we need it.
6790
6791         PR debug/15033
6792         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6793         rtl.
6794
6795 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6796
6797         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6798         (vall_value_gp): Likewise.
6799
6800 2004-04-20  DJ Delorie  <dj@redhat.com>
6801
6802         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6803         variables stored in word registers, then in memory.
6804
6805 2004-04-20  Eric Christopher  <echristo@redhat.com>
6806
6807         * cp/parser.c (cp_parser_declaration): Move translate
6808         up before tokens are lexed.
6809
6810 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6811
6812         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6813         (asin_optab, acos_optab): Define corresponding macros.
6814         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6815         * genopinit.c (optabs): Implement asin_optab and acos_optab
6816         using asin?f2 and acos?f2 patterns.
6817         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6818         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6819         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6820         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6821
6822         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6823         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6824         acos, acosf and acosl built-ins as inline x87 intrinsics.
6825
6826 2004-04-20  Paul Brook  <paul@codesourcery.com>
6827
6828         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6829
6830 2004-04-20  Paul Brook  <paul@codesourcery.com>
6831
6832         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6833
6834 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6835
6836         Revert part of 2004-04-17 change that moved -frename-registers
6837         to -O1.  -frename-registers is buggy.
6838
6839         * toplev.c (flag_rename_registers): Initialize to 0.
6840         * doc/invoke.texi (Optimize options): Move -frename-registers
6841         to "Not triggered by any -O level" section.  Adjust commentary
6842         accordingly.
6843
6844 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6845
6846         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6847
6848 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6849
6850         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6851         for mflo and mfhi instructions.
6852         (mips_output_move): Remove mflo and mfhi handling.
6853         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6854         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6855         Likewise various define_peephole2s.
6856         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6857         alternatives.
6858         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6859         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6860         (mfhilo_di, mfhilo_si): New patterns.
6861
6862 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6863
6864         * function.c (assign_parms): Force
6865         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6866
6867 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6868
6869         * var-tracking.c (variable_part_different_p): Variable parts differ
6870         when the most recent locations differ.
6871
6872 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6873
6874         * rtl.h (reg_set_last): Delete declaration.
6875         * rtlanal.c (reg_set_last): Delete.
6876
6877 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6878
6879         * fold-const.c (fold_convert): Make function extern/public.
6880         * tree.h (fold_convert): Prototype here.
6881         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6882         expand_builtin_strrchr, expand_builtin_strpbrk,
6883         expand_builtin_mempcpy, expand_builtin_bcopy,
6884         expand_builtin_bzero, expand_builtin_memcmp,
6885         expand_builtin_strcmp, expand_builtin_strncmp,
6886         stabilize_va_list, expand_builtin_sprintf,
6887         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6888         fold_builtin_exponent, fold_builtin_mempcpy,
6889         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6890         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6891         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6892
6893 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6894
6895         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6896         (move_from_CR_gt_bit): New.
6897         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6898         E500.
6899         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6900         E500.
6901
6902         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6903         (tstsfeq_gpr): Same.
6904         (cmpsfgt_gpr): Same.
6905         (tstsfgt_gpr): Same.
6906         (cmpsflt_gpr): Same.
6907         (tstsflt_gpr): Same.
6908         (e500_cceq_ior_compare): New.
6909         (e500_flip_gt_bit): New.
6910
6911         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6912         (print_operand): Add 'c' and 'D'.
6913         (rs6000_generate_compare): Rewrite to generate correct rtl.
6914         (rs6000_emit_sCOND): Handle E500.
6915         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6916         (output_e500_flip_gt_bit): New.
6917
6918         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6919         Protoize.
6920
6921 2004-04-19  Eric Christopher  <echristo@redhat.com>
6922
6923         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6924
6925 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6926
6927         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6928         fix information.
6929
6930 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6931
6932         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6933         download URL.
6934
6935 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6936
6937         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6938         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6939
6940 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6941
6942         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6943         (fold_builtin): Update caller to match.
6944
6945         PR bootstrap/15009
6946         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6947
6948         PR bootstrap/14999
6949         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6950
6951 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6952
6953         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6954
6955         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6956         (expand_mult_highpart_optab): Likewise.
6957         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6958
6959 2004-04-19  Paul Brook  <paul@codesourcery.com>
6960
6961         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6962         floatunssisf2, floatunssidf2): New patterns.
6963
6964 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6965
6966         PR other/14918
6967         * doc/invoke.texi (-fprofile-generate): Document requirement to
6968         use -fprofile-generate when linking.
6969
6970         * doc/extend.texi (Strong Using): Warn users against using this
6971         feature.
6972
6973 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6974
6975         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6976         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6977         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6978         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6979         constant.  Propogate change throughout file.
6980         (struct machine_function): Remove insns_len.
6981         (mips_string_length, mips16_strings, string_constants): Delete.
6982         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6983         when generating mips16 code.  Remove special mips16 treatment of
6984         string constants.
6985         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6986         to have the form LABEL+CONSTANT.
6987         (mips_symbolic_address_p): Fix comment.
6988         (m16_usym8_4, m16_usym5_4): Delete.
6989         (mips_output_function_epilogue): Remove mips16 string handling.
6990         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6991         (mips_select_section, mips_encode_section_info): Remove mips16
6992         string handling.
6993         (struct mips16_constant_pool): New.
6994         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6995         sorted into order of ascending mode size.  Keep track of the highest
6996         possible start address, taking padding and the masking of the base PC
6997         value into account.
6998         (dump_constants_1): New function, split out from dump_constants.
6999         Handle vector constants.  Use gen_consttable_{int,float} rather than
7000         separate functions for each mode.
7001         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
7002         rather than separate functions for each alignment.
7003         (mips_find_symbol): Delete.
7004         (mips16_insn_length): New function, split out from
7005         mips16_lay_out_constants.
7006         (mips16_rewrite_pool_refs): New function.
7007         (mips16_lay_out_constants): Rework. Remove string handling.
7008         Always create an inline constant pool.
7009         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
7010         (UNSPEC_ALIGN): New constants.
7011         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
7012         (UNSPEC_ALIGN_[248]): Delete.
7013         (consttable_int, consttable_float, align): New patterns.
7014         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
7015
7016 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
7017
7018         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
7019         __unn_args_eq.
7020
7021 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
7022
7023         PR target/14715
7024         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
7025         with STARTING_FRAME_OFFSET.
7026
7027 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
7028
7029         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
7030         * config/mips/mips.c (macc_msac_operand): New function.
7031         * config/mips/mips.md (*msac): Move after *macc.
7032         (*msac2): New.  Generalize macc-related peepholes so that they apply
7033         to msac too.
7034
7035 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
7036
7037         * opts.c (decode_options): Do not enable flag_rename_registers
7038         and flag_web at -O3.
7039         * toplev.c (flag_rename_registers): Initialize
7040         flag_rename_registers and flag_web to
7041         AUTODETECT_FLAG_VAR_TRACKING.
7042         (default_debug_hooks): New global.
7043         (process_options): Initialize default_debug_hooks.  Warn if
7044         -fvar-tracking specified but not supported by the current
7045         debug format.  Do not run var tracking at -O0 or if not
7046         supported by the current debug format, even if
7047         -fvar-tracking was given.  If -fno-rename-registers
7048         is not specified, always run register renaming if var
7049         tracking is supported by the default debugging information
7050         format for the target, and we are at -O1 or higher; similarly
7051         for -fweb, but only at -O2 or higher.
7052         * doc/invoke.texi (Optimize Options): Document this.
7053
7054 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
7055
7056         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
7057         * configure: Regenerate.
7058
7059 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
7060
7061         * gcc.c (used_arg): Check whether an option has been removed.
7062
7063 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7064
7065         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
7066         debugging on Solaris 7 and up.
7067
7068 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7069
7070         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
7071         IRIX 5 port.
7072         Remove -save-temps workaround, handled automatically.
7073         Require GNU binutils 2.15 for debugging.
7074         Remove SGI make warnings since GNU make is now required.
7075         (Specific, mips-sgi-irix6): Some markup fixes.
7076         Describe MIPSpro C problems and workarounds.
7077         Mention working O32 ABI support.
7078         Recommend GNU as 2.15 for O32 with debugging.
7079         Remove description of fixed structure pass/return bug.
7080
7081 2004-04-16  DJ Delorie  <dj@redhat.com>
7082
7083         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
7084         TYPE_FIELDS.
7085         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
7086
7087 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7088
7089         * pa.md: Remove unnecessary declarations for asm_out_file.
7090
7091         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
7092         SAR register.  Fix comment.
7093         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
7094         (%cr11).
7095
7096         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
7097
7098 2004-04-16  Nick Clifton  <nickc@redhat.com>
7099
7100         * config/arm/arm.c (arm_override_options): Revert previous patch.
7101         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
7102         be safely built.
7103
7104 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7105
7106         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
7107         bug.
7108         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
7109         TARGET_DEFAULT): Changed. Ditto.
7110         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
7111         TARGET_ENDIAN_DEFAULT): Added. Ditto.
7112         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
7113         (TARGET_ENDIAN_DEFAULT): Added.
7114
7115 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7116
7117         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
7118         ATTR_CONST_NOTHROW_LIST.
7119
7120 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7121
7122         PR/middle-end 14915
7123         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
7124         BITS_BIG_ENDIAN.
7125
7126 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
7127
7128         * ra-debug.c (ra_print_rtx): Add break's to case legs.
7129
7130 2004-04-14  James E Wilson  <wilson@specifixinc.com>
7131
7132         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
7133
7134 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
7135
7136         * libada-mk.in: New file.
7137         * configure.ac: Create libada-mk from libada-mk.in.
7138         * configure: Regenerate.
7139
7140 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
7141
7142         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
7143         (logb_optab, ilogb_optab): Define corresponding macros.
7144         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
7145         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
7146         using logb?f2 and ilogb?i2 patterns.
7147         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
7148         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
7149         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
7150         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7151
7152         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
7153         and UNSPEC_XTRACT_EXP.
7154
7155         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
7156         patterns to implement fxtract x87 instruction.
7157         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
7158         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
7159         intrinsics.
7160         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
7161         x87's fxtract insn.
7162
7163 2004-04-14  Eric Christopher  <echristo@redhat.com>
7164
7165         * config/mips/t-elf: Enable multilibs by default.
7166
7167 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
7168
7169         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
7170         previous fix to check HAVE_return at runtime too.
7171
7172 2004-04-14  Nick Clifton  <nickc@redhat.com>
7173
7174         * config/arm/arm.c (arm_override_options): If the user has not
7175         specified an ABI, then default to AAPCS for the iWMMXt processor.
7176         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
7177         * config/arm/t-xscale-coff: Likewise.
7178
7179 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7180
7181         * builtins.c (fold_builtin_isdigit): New.
7182         (fold_builtin): Handle BUILT_IN_ISDIGIT.
7183         * defaults.h: Add TARGET_DIGIT0 and sort.
7184         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
7185
7186 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7187
7188         * builtins.c (fold_builtin_cabs, fold_builtin): Use
7189         `mathfn_built_in' to determine the new builtin.
7190         * fold-const.c (fold): Likewise.
7191
7192 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
7193
7194         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7195         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7196         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7197         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7198         (ASM_SPEC): Update accordingly.
7199         * config/mips/mips.c: Update after above renaming.
7200         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7201         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7202
7203 2004-04-13  James E Wilson  <wilson@specifixinc.com>
7204
7205         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7206         increment errorcount and return false instead of true.
7207
7208 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
7209
7210         * optabs.c (expand_twoval_unop): Reorder function arguments.
7211         * builtins.c (expand_builtin_mathfn_3): Update calls to
7212         expand_twoval_unop.
7213
7214         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7215         and UNSPEC_TAN_TAN. Add missing comment.
7216
7217         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7218         patterns to implement fptan x87 instruction.
7219         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7220         and tanl built-ins as inline x87 intrinsics. Define corresponding
7221         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7222         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7223         x87's fptan insn.
7224
7225 2004-03-13  Richard Henderson  <rth@redhat.com>
7226
7227         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7228         for LABEL_REFs.
7229
7230         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7231         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7232         * doc/invoke.texi: Update to match.
7233
7234         * varasm.c (unlikely_text_section): Use assemble_align instead of
7235         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
7236         correct alignment argument.
7237
7238 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7239
7240         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7241         after setting reg_last_reload_reg for optional output reloads.
7242
7243 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7244
7245         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7246         Definition of these two macros are corrected by adding
7247         matchine right paren.
7248
7249 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
7250
7251         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7252
7253 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7254
7255         * config/i386/i386.c (output_387_reg_move): New function.
7256         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7257         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7258         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7259         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7260         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7261
7262 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7263
7264         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7265         TYPE_DECL.
7266         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7267         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7268         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7269         Use skip_simple_arithmetic to find SAVE_EXPR.
7270         (force_type_save_exprs, force_type_save_exprs_1): New functions.
7271         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7272         Properly chain multiple pointers.
7273         (copy_tree_r): Copy a TYPE_DECL.
7274         * tree.c (variably_modified_type_p): Add some missing tests and
7275         make some other minor changes.
7276         * tree.h (force_type_save_exprs): New declaration.
7277
7278 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7279
7280         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7281         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
7282         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
7283         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
7284         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
7285         x%-1 into 0 (or x&0 if x has side-effects).
7286
7287 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7288
7289         * config/rs6000/rs6000.md: Document why a pattern is not
7290         available.
7291
7292         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7293         of floats on the E500.
7294         (branch_positive_comparison_operator): Do not allow NE even on the
7295         E500.
7296
7297 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7298
7299         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7300         in_text_unlikely_section to in_unlikely_text_section.
7301
7302 2004-04-11  Roger Sayle  <roger@eyesopen.com>
7303
7304         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
7305         calling convention to allow a NULL_TREE to be returned.  Factor
7306         sanity checks from callers, return NULL_TREE when appropriate.
7307         (fold): Handle COMPOUND_EXPR operands of binary expressions
7308         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
7309         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
7310         calls to fold_binary_op_with_conditional_arg.
7311
7312 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7313
7314         * config/mips/iris5.h (current_section_flags):  Add
7315         in_unlikely_executed_text and default case.
7316
7317 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7318
7319         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7320         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7321         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7322         HAVE_return and place it around the place where it is needed.
7323
7324 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7325
7326         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7327         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7328         and NORMAL_TEXT_SECTION_NAME.
7329         (unlikely_text_section): Check targetm.have_named_sections
7330         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7331         instead of SECTION_FORMAT_STRING.
7332         * config/mips/iris5.h (current_section_name): Add
7333         in_unlikely_executed_text case and move the abort into the switch.
7334         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7335         (NORMAL_TEXT_SECTION_NAME): Remove.
7336         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7337         (SECTION_FORMAT_STRING): Remove.
7338         * defaults.h (SECTION_FORMAT_STRING): Remove.
7339         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7340         (SECTION_FORMAT_STRING): Remove.
7341
7342 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7343
7344         * c-typeck.c (common_type): Prefer long long to long when same
7345         precision.
7346
7347 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7348
7349         PR 14887
7350         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7351         mode argument.
7352         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7353         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7354
7355 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7356
7357         * simplify-rtx.c (mode_signbit_p): New function to check whether
7358         an RTX is an immediate constant that represents the most significant
7359         bit of a given machine mode.
7360         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7361         C is the sign bit.
7362         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7363         when C2 is the sign bit.
7364         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7365         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7366         sign bit.
7367
7368 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7369
7370         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7371         TYPE_MODE.
7372
7373 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7374
7375         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7376         of TREE_READONLY for types.
7377
7378 2004-04-09  Caroline Tice  <ctice@apple.com>
7379
7380         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7381         (struct basic_block_def):  Add new field, partition.
7382         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7383         definitions.
7384         (partition_hot_cold_basic_blocks): Add extern function
7385         declaration.
7386         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7387         include statements.
7388         (N_ROUNDS): Increase the maximum number of rounds by 1.
7389         (branch_threshold): Add array value for new round.
7390         (exec_threshold): Add array value for new round.
7391         (push_to_next_round_p): New function.
7392         (add_unlikely_executed_notes): New function.
7393         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7394         (mark_bb_for_unlikely_executed_section): New function.
7395         (add_labels_and_missing_jumps): New function.
7396         (add_reg_crossing_jump_notes): New function.
7397         (fix_up_fall_thru_edges): New function.
7398         (find_jump_block): New function.
7399         (fix_crossing_conditional_branches): New function.
7400         (fix_crossing_unconditional_branches): New function.
7401         (fix_edges_for_rarely_executed_code): New function.
7402         (partition_hot_cold_basic_blocks): New function.
7403         (find_traces):  Add an extra round for partitioning hot/cold
7404         basic blocks.
7405         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7406         and only cold blocks, into the last (extra) round of collecting traces.
7407         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7408         over crossing edges.
7409         (bb_to_key):  Add code to correctly identify cold blocks when
7410         doing partitioning.
7411         (connect_traces): Modify to connect all the non-cold traces first, then
7412         go back and connect up all the cold traces.
7413         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7414         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7415         entry and exit blocks.
7416         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7417         if we are doing hot/cold partitioning.
7418         * cfgcleanup.c (cfglayout.h): Add new include statement.
7419         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7420         that cross section boundaries.
7421         (try_forward_edges): Likewise.
7422         (merge_blocks_move_predecessor_nojumps): Likewise.
7423         (merge_blocks_move_successor_nojumps): Likewise.
7424         (merge_blocks_move): Likewise.
7425         (try_crossjump_to_edge): Modify to not attempt after we have done
7426         the block partitioning.
7427         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7428         cross section boundaries.
7429         (try_optimize_cfg): Likewise.
7430         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7431         jumps that cross section boundaries.
7432         * cfglayout.c (flags.h): Add new include statement.
7433         (update_unlikely_executed_notes):  New function.
7434         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7435         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7436         updated appropriately.
7437         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7438         introduced by this optimization.
7439         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7440         extern function declaration.
7441         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7442         list of notes that can be deleted.
7443         (create_basic_block_structure):  Add initialization for partition field.
7444         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7445         section boundaries.
7446         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7447         cross section boundaries.
7448         (commit_one_edge_insertion): Add code so newly created basic block
7449         ends up in correct (hot or cold) section.  Modify to disallow
7450         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7451         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7452         crosses section boundaries.
7453         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7454         cross section boundaries.
7455         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7456         ends up in correct section, with correct notes attached.
7457         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7458         optimization.
7459         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7460         the end of functions are written into the correct (hot or cold)
7461         section.
7462         (dbx_source_file): Add code so writing debug file information
7463         doesn't incorrectly change sections.
7464         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7465         in partitioning hot/cold basic blocks into separate sections.
7466         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7467         section partitioning.
7468         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7469         conditional branches can span all of memory.
7470         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7471         unconditional branches can span all of memory.
7472         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7473         (final_scan_insn):  Add code to check for NOTE instruction indicating
7474         whether basic block belongs in hot or cold section, and to make sure
7475         the current basic block is being written to the appropriate section.
7476         Also added code to ensure that jump table basic blocks end up in the
7477         correct section.
7478         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7479         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7480         one of the branches has a jump that crosses between sections.
7481         (find_if_case_2): Likewise.
7482         (ifcvt): Modify to not attempt to mark loop exit edges after
7483         hot/cold partitioning has occurred.
7484         * opts.c (decode_options): Code to handle new flag,
7485         flag_reorder_blocks_and_partition; also to turn it off if
7486         flag_exceptions is on.
7487         (common_handle_option): Code to handle new flag,
7488         flag_reorder_blocks_and_partition.
7489         * output.h (unlikely_text_section): New extern function declaration.
7490         (in_unlikely_text_section): New extern function declaration.
7491         * passes.c (rest_of_handle_stack_regs):  Add
7492         flag_reorder_blocks_and_partition as an 'or' condition for calling
7493         reorder_basic_blocks.
7494         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7495         as an 'or' condition for calling reorder_basic_blocks.
7496         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7497         * print-rtl.c (print_rtx): Add code for handling new note,
7498         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7499         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7500         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7501         cross between section boundaries.
7502         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7503         indicating the basic block containing it belongs in the cold section.
7504         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7505         between hot and cold sections.
7506         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7507         initialize this flag, and to tie it to the command-line option
7508         freorder-blocks-and-partition.
7509         * varasm.c (cfglayout.h):  Add new include statement.
7510         (unlikely_section_label_printed):  New global variable, used for
7511         determining when to output section name labels for cold sections.
7512         (in_section):  Add in_unlikely_executed_text to enum data structure.
7513         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7514         NORMAL_TEXT_SECTION_NAME macros.
7515         (unlikely_text_section):  New function.
7516         (in_unlikely_text_section):  New function.
7517         (function_section):  Add code to make sure beginning of function is
7518         written into correct section (hot or cold).
7519         (assemble_start_function):  Add code to make sure stuff is written to
7520         the correct section.
7521         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7522         to an if statement that was checking 'in_text_section'.
7523         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7524         condition to an if statement that was checking 'in_text_section'.
7525         (default_section_type_flags_1):  Add check: if in cold section
7526         flags = SECTION_CODE.
7527         * config/darwin.c (darwin_asm_named_section):  Modify to use
7528         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7529         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7530         specifically for the i386.
7531         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7532         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7533         text string to something more informative.
7534         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7535         (SECTION_FORMAT_STRING):  Add new definition.
7536         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7537         '!in_unlikely_text_section' as an 'and' condition to an if statement
7538         that was already checking '!in_text_section'.
7539         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7540         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7541         sure these are properly defined for linux on ppc.
7542         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7543         for this new flag.
7544         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7545         reg_note.
7546         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7547         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7548         these new macros.
7549
7550 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7551
7552         * function.c (gen_mem_addressof): When changing the RTX from a REG
7553         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7554
7555 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7556
7557         PR target/14888
7558         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7559         truncxfdf2_noop): Provide dummy "fmov" implementations.
7560
7561 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7562
7563         * gcc.c (default_compilers): Add missing initializers.
7564
7565         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7566         Return 1 if file was successfully mapped.
7567
7568 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7569
7570         PR pch/13419
7571         PR pch/14137
7572         Radar #: 3315288
7573         * doc/invoke.texi (Precompiled Headers): Suggest -o
7574         to put an output file in a particular place.  Be more detailed
7575         about which options affect PCH validity and which options
7576         might not work.
7577         * c-pch.c (pch_matching): New.
7578         (MATCH_SIZE): New.
7579         (struct c_pch_validity): New field 'match'.
7580         (pch_init): Handle pch_matching.
7581         (c_common_valid_pch): Check pch_matching.
7582
7583         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7584
7585 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7586
7587         * doc/invoke.texi (Precompiled Headers): Warn about known
7588         problems.
7589
7590 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7591
7592         PR c++/14808
7593         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7594         to 1 if ASM_OUTPUT_DEF is defined.
7595         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7596         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7597         Set to non-zero iff not a one_only decl.
7598
7599 2004-04-08  Paul Brook  <paul@codesourcery.com>
7600
7601         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7602
7603 2004-04-08  Paul Brook  <paul@codesourcery.com>
7604
7605         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7606         PROMOTE_FOR_CALL_ONLY.
7607         * config/arm/arm-protos.h (arm_function_value): Declare.
7608         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7609         (TARGET_PROMOTE_PROTOTYPES): Return false.
7610         (arm_function_value): New function.
7611         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7612         (FUNCTION_VALUE): Call arm_function_value.
7613         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7614         (PROMOTE_FUNCTION_MODE): ... to this.
7615         (PROMOTE_FOR_CALL_ONLY): Remove.
7616         * config/mmix/mmix.h: Likewise.
7617         * config/s390/s390.h: Likewise.
7618         * config/sparc/sparc.h: Likewise.
7619         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7620         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7621         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7622         (PROMOTE_FOR_CALL_ONLY): Remove.
7623
7624 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7625
7626         PR ada/14538
7627         * ada/5rosinte.adb: Remove fake mprotect() body.
7628         * ada/5rosinte.ads: Add SA_SIGINFO.
7629         * ada/5rtpopsp.adb: Rewrite to use new interface.
7630         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7631         is tested before more complex ones which mix UNIX and embedded
7632         systems in the conditional.
7633
7634 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7635
7636         PR ada/14665
7637         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7638         filenames which end in .exe or have versioning suffixes like VMS.
7639
7640 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7641
7642         PR target/10129
7643         * config/darwin.c (darwin_encode_section_info): When the decl has
7644         a DECL_INITIAL, it is only defined also when it is not a common.
7645
7646 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7647
7648         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7649         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7650
7651 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7652
7653         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7654         global register variables.
7655
7656 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7657
7658         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7659         rpc_xdr_lvalue_cast_b): New fixes.
7660         * fixinc/fixincl.x: Regenerate.
7661         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7662
7663 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7664
7665         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7666         to power4 and power5 entries.
7667
7668 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7669
7670         * c-common.h (pending_lang_change): Mark for PCH.
7671
7672 2004-04-07  Caroline Tice  <ctice@apple.com>
7673
7674         * gcc.c (main): Move 'break' in main loops (on an error)
7675         to wait until error processing has occurred.
7676
7677 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7678
7679         * config.gcc: Stop changing enable_threads midstream.
7680         Replace uses of enable_threads_flag with enable_threads.
7681         * configure.ac: Replace uses of enable_threads_flag with
7682         enable_threads.  Improve autoconf quotation in one place.
7683         * configure: Regenerate.
7684
7685 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7686
7687         * builtins.c: Implement support for sincos function.
7688         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7689         BUILT_IN_COS{,F,L}.
7690         (expand_builtin_mathfn_3): New function.
7691         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7692         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7693         flag_unsafe_math_optimization is set.
7694
7695         * optabs.h (enum optab_index): Add new OTI_sincos.
7696         (sincos_optab): Define corresponding macro.
7697
7698         * optabs.c (init_optabs): Initialize sincos_optab.
7699         (expand_twoval_unop): New function.
7700
7701         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7702         patterns.
7703
7704         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7705         and UNSPEC_SINCOS_SIN.
7706
7707         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7708         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7709         built-ins as inline x87 intrinsics. Define splits for
7710         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7711         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7712         sincos patterns.
7713         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7714         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7715
7716         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7717         x87's fsincos insn.
7718
7719 2004-04-06  Devang Patel  <dpatel@apple.com>
7720
7721         PR 14467
7722         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7723
7724 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7725
7726         * doc/install.texi: Update HP-UX 11 installation procedure.
7727
7728 2004-04-06  Paul Brook  <paul@codesourcery.com>
7729
7730         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7731
7732 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7733
7734         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7735         when the TLS address is generated by a function call.
7736         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7737         (tls_local_dynamic): Likewise.
7738
7739 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7740
7741         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7742         and TYPE_VOLATILE.
7743
7744 2004-04-05  Caroline Tice  <ctice@apple.com>
7745
7746         * gcc.c (combine_flag): New global variable, for new driver option.
7747         (struct compiler): Add two new fields, to be used when
7748         combining multiple input files in a single pass (IMA).
7749         (default_compilers):  Add values for the new fields to all
7750         compiler entries. Modify the "@c" compiler entry for doing IMA
7751         properly with "-save-temps" and the "combine" flag.
7752         (option_map):  Add new driver option, "--combine", to tell driver
7753         to pass multiple input files to compiler at one time.
7754         (have_o_argbuf_index): New global variable.
7755         (store_arg): Modify to assign value to have_o_argbuf_index.
7756         (struct infile):  Add three new fields, to help with IMA.
7757         (display_help): Add help for new "combine" option.
7758         (process_command): Remove local variable have_o; add code to check
7759         for new "combine" option; remove assignment to combine_inputs.
7760         (do_spec_1):  Modify to deal with IMA better.
7761         (main): Make variable 'lang_n_infiles' local to entire function
7762         rather than to a single block.  Use flag combine_flag to
7763         determine whether to do IMA or not; Modify loop initializing
7764         infiles to deal properly with linker files.
7765         Add code for doing preprocessing in presence of
7766         IMA with "-save-temps" flag.  Modify "main" loop to handle
7767         multiple input files, in multiple languages, with or without
7768         preprocessing,  gracefully.
7769         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7770         re-set it to same directory it's previously been set to (avoid
7771         irritating, meaningless warning messages when doing IMA with
7772         save-temps).
7773         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7774         remove documentation about IMA that is no longer accurate; Add
7775         documentation explaining what "-combine" does.
7776         * ada/lang-specs.h: Add initialization values for new fields in
7777         "struct compiler".
7778         * cp/lang-specs.h: Likewise.
7779         * f/lang-specs.h: Likewise.
7780         * java/lang-specs.h: Likewise.
7781         * objc/lang-specs.h: Likewise.
7782         * treelang/lang-specs.h: Likewise.
7783
7784 2004-04-05  David Edelsohn
7785
7786         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7787         symbol handling.
7788
7789 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7790             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7791
7792         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7793         * pa.md: Use replace_equiv_address to retain the attributes of the
7794         memory operands used in the split and peephole2 patterns for optimizing
7795         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7796
7797 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7798
7799         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7800         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7801         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7802         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7803         PARM_DECL.
7804         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7805         for a type.
7806         * print-tree.c (print_node): Properly handle side-effects, readonly,
7807         and constant flags.
7808         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7809         and TREE_CONSTANT if not a type.
7810         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7811         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7812         (NON_TYPE_CHECK): New macro.
7813         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7814
7815 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7816
7817         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7818         to DWARF2_DEBUG unconditionally.
7819         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7820
7821 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7822             Nathanael Nerode  <neroden@gcc.gnu.org>
7823
7824         PR target/14548
7825         * config.host: Set the shell variable host_can_use_collect2.
7826         Set it to yes by default, and to no for alpha*-dec-*vms*,
7827         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7828         * configure.ac: Set and substitute the shell variable collect2.
7829         Give an error if use_collect2 is yes and host_can_use_collect2 is
7830         no.
7831         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7832         uses.  Initialize to @collect2@.
7833         (STAGESTUFF): Remove $(USE_COLLECT2).
7834         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7835         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7836         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7837         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7838         * configure: Regenerate.
7839
7840 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7841
7842         * simplify-rtx.c (simplify_binary_operation): Constant fold
7843         DIV, MOD, UDIV and UMOD using div_and_round_double.
7844
7845 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7846
7847         PR c++/14804
7848         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7849         RECORD_TYPEs.
7850
7851 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7852
7853         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7854         documentation.
7855
7856 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7857
7858         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7859         updating the REG_EQUAL note on an insn's libcall_insn.
7860
7861 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7862
7863         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7864
7865 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7866
7867         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7868         with reorder_operands_p.
7869
7870 2004-04-03  Jan Hubicka  <jh@suse.cz>
7871
7872         * md.texi (vec_set, vec_extract, vec_init): Document.
7873
7874 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7875
7876        * opts.c (decode_options): Do function inlining with very small
7877        max-inline-insns-* parameters when optimizing for size.
7878
7879 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7880
7881         * config/i386/i386.h (TARGET_NOCONA): New macro.
7882         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7883         (processor_type): Add PROCESSOR_NOCONA.
7884
7885         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7886
7887         * config/i386/i386.c (nocona_cost): New variable.
7888         (m_NOCONA): New macro.
7889         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7890         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7891         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7892         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7893         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7894         x86_decompose_lea, x86_arch_always_fancy_math_387,
7895         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7896         x86_ext_80387_constants, x86_four_jump_limit):
7897         (override_options): Add nocona_cost to processor_target_table.
7898         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7899         (incdec_operand): Prevent inc/dec generation for Nocona too.
7900         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7901
7902 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7903
7904         * rtlanal.c (find_reg_note): Manually
7905         unswitch the loop.
7906
7907 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7908
7909         * genemit.c (gen_split): Change prototype of generated code.
7910         * genrecog.c (write_action): Adjust prototype for and calls to
7911         gen_split_*.
7912         * gensupport.c (struct queue_elem): Add split field.
7913         (queue_pattern): Return a value.  Clear the split field.
7914         (process_rtx): Maintain an association between an insn and the
7915         split generated from it for a define_insn_and_split.
7916         (process_one_cond_exec): Generate a new split for a
7917         define_insn_and_split.
7918         * config/arm/arm-protos.h (arm_split_constant): Add insn
7919         parameter.
7920         (emit_constant_insn): New function.
7921         (arm_gen_constant): Use it.
7922         * config/arm/arm.md: Adjust calls to arm_split_constant.
7923
7924 2004-04-02  Jan Hubicka  <jh@suse.cz>
7925
7926         * cgraph.c: Add overall comment.
7927         (cgraph_inline_hash): New global variable.
7928         (cgraph_create_node): Break out from ...
7929         (cgraph_node): ... here.
7930         (cgraph_edge): New function.
7931         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7932         (cgraph_remove_edge): Accept edge, intead of source and destination.
7933         (cgraph_redirect_edge_callee): New.
7934         (cgraph_remove_node): Update all new datastructures.
7935         (cgraph_record_call, cgraph_remove_call): Kill.
7936         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7937         (dump_cgraph): ... here.
7938         (cgraph_function_possibly_inlined_p): Use new hashtable.
7939         (cgraph_clone_edge, cgraph_clone_node): New.
7940         * cgraph.h: Include hashtab.h
7941         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7942         fields, add inlined_to pointer.
7943         (cgraph_node): Add pointer to next_clone.
7944         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7945         (cgraph_remove_call, cgraph_record_call): Kill.
7946         (cgraph_inline_hash): Declare.
7947         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7948         cgraph_redirect_edge_callee): Declare.
7949         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7950         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7951         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7952         * cgraphunit.c: Add overall comment.
7953         (cgraph_optimize_function): Kill.
7954         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7955         (cgraph_finalize_function): Update call of cgraph_remove_node
7956         (record_call_1): Record call sites.
7957         (cgraph_create_edges): Accept node instead of decl argument.
7958         (error_found): New static variable.
7959         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7960         (cgraph_analyze_function): Update for new datastructures.
7961         (cgraph_finalize_compilation_unit): Plug memory leak.
7962         (cgraph_optimize_function): Kill.
7963         (cgraph_expand_function): Do not use cgraph_optimize_function.
7964         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7965         cgraph_inlined_callees): Kill.
7966         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7967         clones.
7968         (estimate_growth): Simplify.
7969         (cgraph_clone_inlined_nodes): New function.
7970         (cgraph_mark_inline_edge): Re-implement.
7971         (cgraph_mark_inline): Likewise.
7972         (cgraph_check_inline_limits): Simplify.
7973         (cgraph_recursive_inlining_p): New.
7974         (update_callee_keys): Break out from ...
7975         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7976         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7977         Likewise.
7978         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7979         list.
7980         (cgraph_preserve_function_body_p): New predicate.
7981         (cgraph_optimize): Verify cgraph.
7982         * function.h (struct function): Add fields saved_tree/saved_args.
7983         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7984         * toplev.c (rest_of_compilation): Do not free cfun.
7985         * tree-inline.c: Include function.h
7986         (struct inline_data): Add saving_p field; replace decl/current_decl by
7987         node/current_node.
7988         (insert_decl_map): New function.
7989         (copy_body_r): Handle saving; update cgraph datastructure.
7990         (copy_body): Handle recursive inlining.
7991         (initialize_inlined_parameters): Likewise.
7992         (expand_call_inline): Propagate node attributes; update cgraph.
7993         (optimize_inline_calls): Verify that datastructure still match.
7994         (save_body): New function.
7995         * tree-inline.h (save_body): New.
7996         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7997         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7998         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7999
8000 2004-04-01  Serge Belyshev  <1319@bot.ru>
8001
8002         PR target/14702
8003         * config/i386/i386.md: fix source operand constraints in
8004         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
8005
8006 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8007
8008         * fold-const.c (folda): Preserve types of comparisons.
8009
8010 2004-04-01  Richard Henderson  <rth@redhat.com>
8011
8012         * toplev.c (backend_init): Move init_optimization_passes call ...
8013         (lang_dependent_init): ... here.
8014
8015 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
8016             Jakub Jelinek  <jakub@redhat.com>
8017
8018         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
8019         -lgcc --as-needed -lgcc_s --no-as-needed by default.
8020         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
8021         * configure: Rebuilt.
8022         * config.in: Rebuilt.
8023         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
8024         (stage2-start, stage3-start, stage4-start): Likewise.
8025         (stageprofile-start, stagefeedback-start): Likewise.
8026
8027 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
8028
8029         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
8030         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8031         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8032         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8033         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
8034         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
8035         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
8036         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
8037         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
8038         * config/sparc/t-linux: Removed.
8039
8040 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
8041
8042         PR c++/14755
8043         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
8044         "bitfld++ == const" to "++bitfld == const + incr" transformations.
8045
8046 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8047
8048         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
8049         * stor-layout.c (layout_decl): Likewise.
8050         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
8051         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
8052         * print-tree.c (print_node): Handle various used of unsigned_flag.
8053         * tree.def (BIT_FIELD_REF): Update comment.
8054         * tree.h (TREE_UNSIGNED): Deleted.
8055         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
8056
8057 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8058
8059         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
8060         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
8061         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
8062         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
8063         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
8064         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
8065         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
8066         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
8067         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
8068         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
8069         REAL_TYPE, not INTEGER_TYPE.
8070         (layout_type, case VECTOR_TYPE): Simplify code.
8071         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
8072         * tree.h: Update comments.
8073         (STRIP_NOPS): Use TYPE_UNSIGNED.
8074         (TYPE_UNSIGNED): New macro.
8075         (TYPE_TRAP_SIGNED): Remove now redundant check.
8076         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
8077
8078 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8079
8080         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
8081
8082 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
8083
8084         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
8085         Add darwin-fpsave.asm, darwin-vecsave.asm,
8086         and darwin-world.asm.
8087         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
8088         as the asm files contain altivec instructions.
8089         * config/rs6000/darwin-fpsave.asm: New file.
8090         * config/rs6000/darwin-vecsave.asm: New file.
8091         * config/rs6000/darwin-world.asm: New file.
8092
8093 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
8094
8095         * gengtype-yacc.y (option, stringseq): Add missing
8096         terminating semicolon.
8097
8098 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
8099
8100         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
8101         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
8102         tls_dtprel_ha_32, tls_dtprel_ha_64,
8103         tls_dtprel_lo_32, tls_dtprel_lo_64,
8104         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
8105         tls_tprel_ha_32, tls_tprel_ha_64,
8106         tls_tprel_lo_32, tls_tprel_lo_64,
8107         tls_got_tprel_32, tls_got_tprel_64,
8108         tls_tls_32, tls_tls_64): Replace register_operand with
8109         gpc_reg_operand.
8110
8111 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
8112
8113         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
8114         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
8115         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
8116         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
8117         *ctrdi_internal6): Replace register_operand with
8118         nonimmediate_operand.
8119
8120 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
8121
8122         * fold-const.c (fold): Reassociate multiply expression
8123         with an adjacent non-multiply expression to use
8124         architecture's multiply-add instruction.
8125
8126 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
8127
8128         * gengtype.c (create_option): New function.
8129         * gengtype.h: Prototype it.
8130         * gengtype-yacc.y (stringseq): New rule.
8131         (option): Use create_option.  Add new bare ID production.  Use
8132         stringseq, not STRING directly.
8133
8134         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
8135         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
8136         * varray.h, config/alpha/alpha.c:
8137         Use new shorter form of GTY markers.
8138
8139         * doc/gty.texi: Rewrite.
8140
8141 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
8142
8143         * config/darwin.c (machopic_function_base_name):
8144         Remove current_name and getting the name of the
8145         current function.
8146
8147 2004-03-30  Nick Clifton  <nickc@redhat.com>
8148
8149         * config/arm/arm.md (thumb_jump): Reduce the backward branch
8150         range, and increase the forward branch range, to allow for
8151         the fact that the PC will be off by 4.
8152
8153 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
8154
8155         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
8156
8157 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8158
8159         * config/rs6000/rs6000.c (output_vec_const_move):
8160         Find all cases of EASY_VECTOR_15_ADD_SELF.
8161         (easy_vector_constant_add_self): Accept
8162         all vector constant loadable by vsplt* and vadd*.
8163         (easy_vector_same): Use easy_vector_splat_const.
8164         (easy_vector_const): Use easy_vector_splat_const.
8165         (easy_vector_splat_const): New function.
8166         (gen_easy_vector_constant_add_self): New function.
8167
8168         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
8169         New prototype.
8170
8171         * config/rs6000/altivec.md (movv4si splitter): Change to
8172         emit move insn with halfed vector constant.
8173         (*movv8hi splitter): Likewise.
8174         (*movv16qi splitter): Likewise.
8175
8176 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8177
8178         PR 11591
8179         * config/rs6000/rs6000.c (rs6000_legitimate_address):
8180         Allow any offset to argument pointer in no-strict case.
8181
8182 2004-03-30  Jan Hubicka  <jh@suse.cz>
8183
8184         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
8185         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
8186         dump file in non-unit-at-a-time mode.
8187
8188 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
8189
8190         * config/cris/cris.h: Correct #ifdef to test for
8191         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8192         HAVE_AS_MUL_BUG_ABORT_OPTION.
8193
8194 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8195
8196         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8197         the address inside the old RTL.
8198
8199 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
8200
8201         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8202         (struct c_binding, struct c_scope): Add chain_next
8203         attributes to GTY markers.
8204         (struct lang_identifier, struct lang_tree_node): Define
8205         here...
8206         * c-tree.h: ... not here.  No longer need to declare struct
8207         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8208         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8209         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8210
8211         PR 14734, 11944
8212         * c-decl.c (get_parm_info): If error_mark_node is encountered
8213         in the bindings chain, unbind and discard it; don't abort.
8214
8215 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
8216             Dorit Naishlos <dorit@il.ibm.com>
8217
8218         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8219         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8220
8221 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
8222
8223         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8224
8225         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8226         (m68hc11_attribute_table): New attribute "page0" to mark a global
8227         variable as being allocated from within page0 section.
8228         (m68hc11_encode_label): New function.
8229         (m68hc11_strip_name_encoding): New function.
8230         (m68hc11_page0_symbol_p): New function.
8231         (m68hc11_indirect_p): Accept global variables marked in page0.
8232         (m68hc11_encode_section_info): Lookup "page0" attribute.
8233
8234         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8235         represents access to page0 variables.
8236
8237         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8238         ("*logicalsi3_silshl16_zext"): Likewise.
8239         ("*ashldi3_const32"): Likewise.
8240         (peephole2 ashift): Likewise.
8241
8242 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8243
8244         * c-tree.h (C_DECL_REGISTER): New.
8245         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8246         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8247         (build_array_ref, c_mark_addressable): Set and use it.
8248         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8249         Allow structures with volatile fields to be declared register.
8250         Don't check TREE_ADDRESSABLE before warning about taking address
8251         of register.
8252         * c-decl.c (finish_decl): Don't allow structures with volatile
8253         fields to be placed in named register.
8254         * doc/trouble.texi: Remove reference to structures with volatile
8255         fields in registers.
8256
8257 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8258
8259         * function.c (thread_prologue_and_epilogue): Move
8260         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8261         before the epilogue.
8262
8263 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8264
8265         * expr.c (store_constructor): Use gen_int_mode to correctly
8266         sign-extend CONST_INT value.
8267
8268 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8269
8270         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8271         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
8272         * doc/extend.texi: Likewise.
8273
8274 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
8275
8276         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8277           with TYPE_ORIG_SIZE_TYPE.
8278
8279 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
8280
8281         PR 14219
8282         * c-typeck.c (build_binary_op): Do not allow comparisons of
8283         vectors.
8284
8285 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
8286
8287         * config.gcc: Remove sparc-tti-*.
8288         * config/sparc/pbd.h: Delete.
8289
8290         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8291         * config/sparc/aout.h: Likewise.
8292
8293         * config/sparc/sparc.h: Remove if 0'd code.
8294         * config/sparc/sparc.md (call): Remove if 0'd code.
8295         (call_value): Likewise.
8296         (nonlocal_goto): Likewise.
8297         (unimp_insn): Delete.
8298
8299 2004-03-25  Roger Sayle  <roger@eyesopen.com>
8300
8301         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8302         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8303
8304 2004-03-25  Richard Henderson  <rth@redhat.com>
8305
8306         PR 11527
8307         * c-typeck.c (pop_init_level): Emit pending init elements earlier
8308         rather than later.
8309
8310 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8311
8312         * builtins.c (fold_builtin): Fix error in last change.
8313
8314 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8315
8316         * config/mips/mips.h: Formatting fix.
8317
8318 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8319
8320         * builtins.def: Add ctype builtins.
8321         * doc/extend.texi: Likewise.
8322
8323 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8324
8325         * builtins.c (fold_builtin): Add new builtin optimizations for
8326         sqrt and/or cbrt.
8327         * fold-const.c (fold): Likewise.
8328
8329 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8330
8331         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8332         (rs6000_sched_groups): New variable.
8333         (processor_target_table): Add power5.
8334         (rs6000_override_options): Set rs6000_sched_insert_nops,
8335         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8336         from rs6000_sched_groups.
8337         (output_cbranch): Use rs6000_always_hint.
8338         (rs6000_variable_issue): Use rs6000_sched_groups.
8339         (rs6000_adjust_cost): Add CPU_POWER5.
8340         (is_microcoded_insn): Use rs6000_sched_groups.
8341         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8342         Return 2 for POWER5 cracked instructions.
8343         (is_cracked_insn): Use rs6000_sched_groups.
8344         (is_branch_slot_insn): Use rs6000_sched_groups.
8345         (rs6000_issue_rate): Add CPU_POWER5.
8346         (rs6000_sched_finish): Use rs6000_sched_groups.
8347         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8348         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8349         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8350         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8351         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8352         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8353         * config/rs6000/power5.md: New file.
8354         * doc/invoke.texi: Add power5 option.
8355
8356 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8357
8358         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8359         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8360         * doc/invoke.texi: Fix a typo.
8361
8362 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8363
8364         PR optimization/9707.
8365         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8366         of recursing if both children are single-valued cases with no
8367         children.
8368
8369 2004-03-25  Paul Brook  <paul@codesourcery.com>
8370
8371         * config/arm/arm.c (vfp_print_multi): Remove.
8372         (arm_output_fldmx): New function.
8373         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8374         (arm_expand_prologue): Update to match.
8375         (arm_get_vfp_saved_size): New Function.
8376         (arm_get_frame_offsets): Use it.
8377         (arm_output_epilogue): Use new functions.
8378
8379 2004-03-24  Richard Henderson  <rth@redhat.com>
8380
8381         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8382         (reg_known_value, reg_known_value_size): Likewise; make static.
8383         (reg_known_equiv_p): Make static.
8384         (clear_reg_alias_info): Update for new indexing.
8385         (get_reg_known_value, set_reg_known_value): New.
8386         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8387         (canon_rtx): Use them.
8388         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8389         Don't play queer offsetting games with reg_known_value and
8390         reg_known_equiv_p.
8391         (end_alias_analysis): Free reg_known_value with gc.
8392         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8393         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8394         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8395         functions instead.
8396
8397 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8398
8399         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8400         config/i386/mmintrin.h: Update copyright.
8401
8402 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8403
8404         * configure.ac: Add --enable-werror-always (for top level bootstrap
8405         support).
8406         * configure: Regenerate.
8407
8408 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8409
8410         * objc/objc-act.c (objc_comptypes): Treat comparisons
8411         between 'Class' and '<class> *' as explicitly invalid.
8412
8413 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8414
8415         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8416         (-fprofile-values): Add enabled with profile-{generate,use}.
8417         (-fvpt): Same.
8418         (-ftracer): Add enabled with profile-use.
8419         (-funit-at-a-time): Add enabled at -O2,-O3.
8420         (-funroll-loops): Add enabled with profile-use.
8421         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8422         (max-gcse-passes): Mention default.
8423         (max-cse-path-length): Mention default.
8424
8425 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8426
8427         * Makefile.in (STRICT2_WARN): Reorder.
8428         * configure.ac: Check for -Wold-style-definition, and use it
8429         in strict1_warn if it's available.
8430         * configure: Regnerate.
8431
8432 2004-03-24  Paul Brook  <paul@nowt.org>
8433
8434         * config.gcc <arm>: Add --with-abi=
8435         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8436         thumb_far_jump_used): Remove prototypes.
8437         (arm_needs_doubleword_align): Add prototype.
8438         (thumb_compute_initial_elimination_offset): Ditto.
8439         * config/arm/arm.c (arm_get_frame_offsets): New function.
8440         (use_return_insn, output_return_instruction, arm_output_epilogue,
8441         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8442         arm_expand_prologue, thumb_expand_epilogue): Use it.
8443         (arm_abi, target_abi_name, all_arm_abis): New variables.
8444         (arm_override_options): Set them.  Set structure padding for AAPCS.
8445         (arm_return_in_memory): Update ABI check.
8446         (arm_init_cumulative_args): Initialize can_split.
8447         (arm_needs_doubleword_align): New function.
8448         (arm_function_arg): Don't split args after pushing to stack. Handle
8449         doubleword/even reg alignment.
8450         (arm_va_arg): Handle all doubleword aligned args.
8451         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8452         on ABI, not CPU.
8453         (arm_compute_save_reg0_reg12_mask): Fix comment.
8454         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8455         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8456         value for alignment.
8457         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8458         to match.
8459         (thumb_compute_initial_elimination_offset): New function.
8460         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8461         unneccessary rounding.
8462         * config/arm/arm.h (target_abi_name): Declare.
8463         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8464         arm_abi_type, ARM_DEFAULT_ABI): Define.
8465         (ARM_FLAG_ATPCS): Remove.
8466         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8467         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8468         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8469         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8470         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8471         Contitionalize on ABI, not CPU.
8472         (struct arm_stack_offsets): Define.
8473         (struct machine_function): Add stack_offsets.  Remove frame_size.
8474         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8475         pushed.
8476         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8477         doubleword alignment.
8478         (THUMB_INITIAL_ELIMINATION_OFFSET,
8479         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8480         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8481         * config/arm/arm.md (align_8): Enable for all targets.
8482         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8483         (ARM_DEFAULT_ABI): Define.
8484         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8485         -mstructure-size-boundary.
8486
8487 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8488
8489         * configure.ac: Check for -Wno-variadic-macros; don't use
8490         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8491         and if it's available, use it.  Also, clean up check for
8492         -Wno-long-long.
8493         * configure: Regenerate.
8494
8495 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8496
8497         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8498         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8499         (MULTILIB_DEFAULTS): Use it.
8500         (MIPS_CPU_STRING_DEFAULT): Remove.
8501         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8502         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8503         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8504         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8505         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8506         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8507         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8508         accordingly.
8509
8510 2004-03-24  DJ Delorie  <dj@redhat.com>
8511             Richard Sandiford  <rsandifo@redhat.com>
8512
8513         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8514         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8515         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8516         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8517         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8518         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8519         if TARGET_FIX_VR4122.
8520         * config/mips/mips.md (define_attr length): Account for nops inserted
8521         after macc and dmult when using -mfix-vr4122-bugs.
8522         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8523         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8524         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8525         * config/mips/vr4122-div.S: New file.
8526         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8527
8528 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8529
8530         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8531         (TARGET_MIPS4130): New macro.
8532         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8533         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8534         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8535         with PROCESSOR_R4130.
8536         * config/mips/mips.md (define_attr cpu): Add r4130.
8537         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8538
8539 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8540             Richard Sandiford  <rsandifo@redhat.com>
8541
8542         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8543
8544 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8545
8546         PR preprocessor/14438
8547         * cpplib.c (do_pragma): Remove line_change call after pragma
8548         handler.
8549
8550 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8551
8552         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8553         declarations.
8554
8555 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8556
8557         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8558         if flag_unsafe_math_optimizations.
8559         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8560         and TARGET_80387 expand using truncdfsf2_noop pattern.
8561         (truncxfsf2): Likewise using truncxfsf2_noop.
8562         (truncxfdf2): Likewise using truncxfdf2_noop.
8563         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8564
8565 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8566
8567         * hooks.c (hook_constcharptr_tree_null): New hook.
8568         * hooks.h (hook_constcharptr_tree_null): New prototype.
8569         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8570         * target.h (mangle_fundamental_type): New target hook.
8571         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8572         target hook at rs6000_mangle_fundamental_type.
8573         (rs6000_mangle_fundamental_type): New function.
8574         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8575
8576 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8577
8578         PR 12267, 12391, 12560, 13129, 14114, 14133
8579         * c-tree.h: Forward declare struct c_binding.  Declare
8580         c_override_bindings_to_false.  Update prototypes.
8581         (struct lang_identifier): Update comments.  Change fields to be
8582         struct c_binding *.
8583         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8584         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8585         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8586         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8587         * c-common.h: Update prototypes.
8588         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8589         names_last, parms, parms_last, tags, and shadowed fields.  Add
8590         bindings and depth fields.
8591         (scope_freelist): Move to more appropriate location.
8592         (c_print_identifier): Update for changes to struct lang_identifier.
8593         (objc_mark_locals_volatile): Update for new bindings structures.
8594         (global_bindings_p): Honor c_override_global_bindings_to_false.
8595         (pushlevel): Rename to push_scope; take no arguments; use the
8596         scope_freelist; initialize scope->depth and check for overflow.
8597         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8598         structures.
8599         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8600         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8601         Improve some commentary.  Adjust handling of forward parm decls.
8602         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8603         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8604         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8605         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8606         decls.  Rewrite for new bindings structures.  Improve commentary.
8607         Eliminate the copy_node call.
8608         (implicit_decl_warning): Use the "diag" idiom (as seen in
8609         locate_old_decl) to reduce code duplication; call locate_old_decl
8610         if appropriate.  Relocate to remove need for forward declaration.
8611         (implicitly_declare): Adjust for new bindings structures.  Kludge
8612         around Objective-C not-really-builtin functions.
8613         (undeclared_variable): Improve diagnostics.  If current_function_decl
8614         is nonnull but current_function_scope is null, use current_scope.
8615         Use bind.
8616         (lookup_tag): Adjust for new bindings structures.  Kludge around
8617         Objective-C's tag declarations that wind up in the external scope.
8618         (lookup_name): Adjust for new bindings structures.  Kludge around
8619         c-common.c's pseudo-typedefs that wind up in the external scope.
8620         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8621         second argument indicating the scope to examine; rewrite for
8622         new bindings structures.
8623         (c_init_decl_processing): Adjust for renamed functions.  Do not
8624         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8625         First scope pushed is the external scope, not the global scope.
8626         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8627         for new data structures.  Keep track of builtins that should be
8628         made visible automatically.
8629         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8630         expand_decl.
8631         (grokparms): Return 0 if arg_types is error_mark_node.
8632         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8633         reversed sense.  Rewrite for new bindings structures.  Do not
8634         leave any decls in the scope, to prevent pop_scope from doing
8635         contradictory things with them.
8636         (finish_struct, finish_enum): Remove redundant diagnostics.
8637         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8638         Mark location where -pedantic changes the meaning of the program.
8639         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8640         parameter decls into the function's scope structure using bind.
8641         Warn here about function definitions in the wrong style.
8642         Adjust diagnostics.
8643         (store_parm_decls): Correct the determination of whether a
8644         function was defined with a prototype.
8645         (c_write_global_declarations): Operate on all file decls and on
8646         the external scope.  Split body of the loop to...
8647         (c_write_global_declarations_1): ... this new function, to avoid
8648         code duplication.
8649         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8650         (make_scope, pop_scope, in_parm_level_p, set_block)
8651         (any_external_decl, record_external_decl, bind_label, getdecls)
8652         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8653         (c_reset_state): Delete.
8654         (visible_builtins, c_override_global_bindings_to_false)
8655         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8656         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8657         (external_scope, binding_freelist, bind, free_binding_and_advance)
8658         (push_file_scope, pop_file_scope): New.
8659         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8660         (define_label, c_make_fname_decl, finish_decl)
8661         (mark_forward_parm_decls, build_compound_literal)
8662         (grokdeclarator, start_function, check_for_loop_decls)
8663         (identifier_global_value, record_builtin_type): Minor adjustments
8664         for new bindings structures.  Improve diagnostics and commentary.
8665         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8666         pushlevel/poplevel respectively.
8667         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8668         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8669         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8670         correct loop over multiple translation units; call fatal_error if
8671         requested to compile more than one file at once.  (This disables
8672         IMA temporarily - an up-front error being preferable to a crash.)
8673         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8674         (all actions): Adjust calls to pushlevel/poplevel.
8675         (parsing_iso_function_signature): Delete.
8676         (extdef_1): Fold into extdef.
8677         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8678         warn here about function definitions in the wrong style.
8679         (after_tyle_declarator, parm_declarator_starttypename)
8680         (parm_declarator_nostarttypename, notype_declarator): Remove
8681         commented-out productions.
8682         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8683         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8684         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8685         to suppress -Wold-style-definition after this error.
8686         (c_parse_file): Don't clear the binding stack or call
8687         finish_fname_decls here.  Correct comment.
8688         * c-typeck.c (same_translation_unit_p): Export.
8689         (common_type): Use c_override_global_bindings_to_false, not
8690         pushlevel/poplevel/declare_parm_level.
8691         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8692         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8693         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8694         * objc/objc-lang.c: Likewise.
8695         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8696         get_parm_info.
8697         (OBJC_VOID_AT_END): Delete; replace all uses
8698         with void_list_node.
8699         (generate_forward_declaration_to_string_table): Delete.
8700         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8701
8702         * coverage.c (create_coverage): Don't pushdecl anything.
8703         * langhooks.c (lhd_clear_binding_stack): Call
8704         lang_hooks.decls.poplevel, not poplevel.
8705         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8706         circular list rather than going into an infinite loop.
8707
8708 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8709
8710         * optabs.c (expand_binop): When synthesizing double word rotates
8711         from single word shifts, use a new register target if the provided
8712         target is not a REG already.
8713
8714 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8715
8716         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8717         * c-common.c (handle_mode_attribute): Add extra arg to
8718         build_pointer_type_for_mode and build_reference_type_for_mode.
8719         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8720         for INTEGER_CST.
8721         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8722         Chain pointers via TYPE_NEXT_PTR_TO.
8723         (build_reference_type_for_mode): Similarly.
8724         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8725         and build_reference_type_for_mode.
8726         (tree_check4_failed): New function.
8727         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8728         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8729         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8730         Add check.
8731
8732 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8733
8734         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8735         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8736         when both A and B are nonnegative.
8737         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8738         nonzero.
8739
8740 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8741
8742         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8743         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8744
8745 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8746
8747         PR optimization/14669
8748         * fold-const.c (fold): Only unwiden integer comparisons for equality
8749         and inequality operators, or when the signedness doesn't change.
8750
8751 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8752
8753         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8754         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8755         * config/sparc/t-linux: New file.
8756
8757 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8758
8759         * gcse.c (can_assign_to_reg_p): New function, split out from...
8760         (want_to_gcse_p): ...here.
8761         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8762         the rhs of a store.
8763
8764 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8765
8766         * c-typeck.c (same_translation_unit_p): Fix pasto.
8767
8768 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8769
8770         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8771         (PARAM_MAX_SCHED_REGION_INSNS): New.
8772         * sched-rgn.c: Include params.h
8773         (MAX_RGN_BLOCKS): Delete.
8774         (MAX_RGN_INSNS): Delete.
8775         (too_large): Return bool.  Convert to PARAM_VALUE.
8776         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8777         * doc/invoke.texi (param): Document max-sched-region-blocks and
8778         max-sched-region-insns.
8779
8780 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8781
8782         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8783         for base types.
8784
8785 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8786
8787         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8788         change.
8789
8790 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8791
8792         PR c/14069
8793         * c-decl.c (finish_struct): Change type of incorrect flexible array
8794         field into error_mark_node.
8795
8796 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8797
8798         PR target/14580
8799         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8800         who are not local for Darwin PIC.
8801
8802 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8803
8804         * regrename.c (regrename_optimize): Set regs_ever_live for all
8805         registers introduced as replacement.
8806
8807 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8808
8809         PR middle-end/14470
8810         * expr.c (mark_queue): New function.
8811         (emit_insns_enqueued_after_mark): New function replacing
8812         emit_queue.  Clear the body of emitted queued insns.
8813         (emit_queue): Call emit_insns_enqueued_after_mark.
8814         (store_expr): Mark the increment queue on entry.  Emit
8815         only the incrementations queued when expanding the source.
8816
8817 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8818
8819         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8820         of top level bootstrap, and consistency).  Reindent.
8821         * configure: Regenerate.
8822
8823 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8824
8825         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8826         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8827         unnecessary casts.
8828
8829 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8830
8831         PR target/14291
8832         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8833         __MINGW32__.
8834
8835 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8836
8837         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8838         to nonimmediate_operand.
8839         ("*doloop_di"): Likewise.
8840
8841 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8842
8843         * real.h (struct real_value): Use the same type for all
8844         bitfields.  Rename exp to uexp.
8845         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8846         Adjust all uses of exp...
8847         * builtins.c: ... here, ...
8848         * emit-rtl.c: ... here, and ...
8849         * real.c: ... and here.
8850
8851 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8852
8853         * pretty-print.c (pp_base_maybe_space): New function.
8854         * pretty-print.h (pp_base_maybe_space): Declare.
8855         (pp_maybe_space): New macro.
8856
8857 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8858
8859         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8860
8861 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8862
8863         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8864         of using register multiplication cost.
8865         (expand_mult): Adapt choose_mult_variant call.
8866         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8867         of MODE; pass appropriate cost bound.  Adjust result when
8868         performing signed multiplication by a negative constant.
8869         Don't use intermediate modes larger than word_mode.
8870
8871 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8872
8873         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8874         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8875         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8876         * explow.c (expr_size): Likewise.
8877         * expr.h (placeholder_list, find_placeholder): Deleted.
8878         * expr.c (store_constructor): Likewise.
8879         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8880         (placeholder_list, find_placeholder): Deleted.
8881         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8882         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8883         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8884         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8885         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8886         Likewise.
8887         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8888         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8889         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8890         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8891         Clean up by using first_rtl_op.
8892         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8893         (substitute_placeholder_in_expr): New function.
8894         * tree.def (WITH_RECORD_EXPR): Deleted.
8895         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8896         (substitute_placeholder_in_expr): New.
8897
8898 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8899
8900         * dojump.c (prefer_and_bit_test): Fix which part of
8901         the and_test is replaced.
8902
8903 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8904
8905         * frontends.texi: Add missing line.
8906
8907 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8908             Chris Devers  <cdevers@pobox.com>
8909             Joseph S. Myers  <jsm@polyomino.org.uk>
8910
8911         * doc/frontends.texi: Rewrite.
8912         * doc/gcc.texi: Update last modification date.
8913
8914 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8915
8916         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8917         message before redirecting the edge.
8918
8919 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8920
8921         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8922         flag.
8923         * explow.c (force_not_mem): Set REG_POINTER flag according to
8924         MEM_POINTER one.
8925         * rtl.h (MEM_POINTER): New macro.
8926         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8927         for MEM_POINTER.
8928
8929 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8930
8931         PR target/13889
8932         * cse.c (fold_rtx): Avoid substituting constants into unary
8933         conversion operations.
8934
8935 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8936
8937         * fold-const.c (fold): Replace "expr" with "t".
8938
8939 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8940
8941         PR c/12373
8942         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8943         DECL_ORIGINAL_TYPE if there isn't one.
8944
8945 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8946
8947         * fold-const.c (fold): Replace "final_type" with "type".
8948         Remove variable "final_type".
8949
8950 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8951
8952         * fold-const.c (fold): Constify "type".
8953         Replace "TREE_TYPE (t)" with "type".
8954
8955 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8956
8957         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8958         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8959         via (*targetm.foo) () with targetm.foo ().
8960
8961 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8962
8963         PR other/14630
8964         * doc/install.texi: Add info directory category and entry.
8965
8966 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8967
8968         * fold-const.c (fold): Replace "t" with "tem" where it is used
8969         as a temporary variable.  Remove "orig_t" and all of its uses.
8970
8971 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8972
8973         * fold-const.c (fold): Remove variable "invert".
8974         Move the handling of relational expressions that can be folded
8975         to a constant ...
8976         (fold_relational_const): ... here.
8977         (tree_expr_nonzero_p): New.
8978
8979 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8980
8981         PR c/14635
8982         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8983         DEF_GCC_BUILTIN.
8984
8985 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8986
8987         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8988         (GTFILES): Add $(srcdir)/dojump.h.
8989         (gt-dojump.h): New dependency.
8990         * dojump.c (and_reg, and_test, shift_test): New static variables.
8991         (prefer_and_bit_test): New function.
8992         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8993
8994 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8995
8996         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8997         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8998         reorg.c, tree.h: Fix comment typos.
8999
9000 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9001
9002         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
9003         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
9004         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
9005         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
9006         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
9007         vmsdbgout.c: Replace calls via (*targetm.foo) () with
9008         targetm.foo ().
9009
9010 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
9011
9012         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
9013         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
9014         always_inline attribute.
9015         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
9016         Treat expansion as completed even if literal argument is
9017         invalid (so that other expansions are not tried in vain).
9018
9019 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9020
9021         * loop-doloop.c (add_test): Replace GEN_INT (0) with
9022         const0_rtx.
9023
9024 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9025
9026         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
9027         ...
9028         (fold_abs_const): ... here.
9029
9030 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9031
9032         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
9033
9034 2004-03-19  Denis Chertykov  <denisc@overta.ru>
9035
9036         PR target/11520
9037         * config/avr/avr.md ("call_insn"): Handle explicit integer
9038         specially.
9039         (call_value_insn): Likewise.
9040
9041 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9042
9043         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
9044
9045 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9046
9047         * fold-const.c (negate_expr): Move the handling of constants
9048         ...
9049         (fold_negate_const): ... here.
9050
9051 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9052
9053         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
9054         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
9055         * tree.c (debug_no_type_hash): Deleted.
9056         (type_hash_canon): Abort if passed a variant.
9057         Check lang_hooks.types.hash_types.
9058         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
9059         (build_array_type): Remove unnecessary allocation of pointer type.
9060         (build_complex_type): Properly qualify resulting type.
9061
9062 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
9063
9064         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
9065
9066 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
9067
9068         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
9069         (expand_mult): ...here.
9070         (extract_high_half): New, split out from expand_mult_highpart.
9071         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
9072         (expand_highpart): Evaluate the cost of a shift/add sequence,
9073         then see if any of the specialized optabs are cheaper.
9074
9075 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
9076
9077         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
9078
9079 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9080
9081         * convert.c (convert_to_real): Add more math builtins.
9082
9083 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9084
9085         * convert.c (convert_to_real): Reformat using switch stmt.
9086
9087 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
9088
9089         * c-common.c (pointer_int_sum): Do not complain about using
9090         pointers to pointers-to-members.
9091
9092 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9093
9094         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
9095         have moved to the target hooks structure".
9096
9097 2004-03-18  James E Wilson  <wilson@specifixinc.com>
9098
9099         * config/mips/mips.md (type): Split move into arith and fmove.  Split
9100         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
9101         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
9102         Likewise.
9103         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
9104         Likewise.
9105         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
9106         rm7_fp_quick): Likewise.
9107         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
9108         rm9k_fquick): Likewise.
9109         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
9110         Likewise.
9111         (ir_sr70_icmp): Delete.
9112
9113 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9114
9115         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
9116         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
9117         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
9118         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
9119         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
9120         Protect with proper check.
9121         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
9122         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
9123         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
9124         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
9125         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
9126         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
9127         not TYPE_FIELDS.
9128         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
9129
9130 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
9131
9132         * gcse.c (eliminate_partially_redundant_loads): Reject change if
9133         dest is set between beginning and current insn.
9134
9135 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
9136
9137         * c-decl.c (grokdeclarator): Do not complain about redeclaring
9138         visible "static" identifiers "extern" in a local scope.
9139         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
9140         post-increments/decrements.
9141
9142 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
9143
9144         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
9145         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
9146         (xtensa_va_start): Remove assignment to current_function_arg_words.
9147
9148 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
9149
9150         * alias.c (record_set): Detect the case where a register is assigned
9151         a new value that has the same base term as the old one.
9152
9153 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9154
9155         * doloop.c: Removed.
9156         * loop-doloop.c: New file.
9157         * Makefile.in (doloop.o): Remove.
9158         (loop-doloop.o): New.
9159         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
9160         * cfgloopanal.c (get_loop_level): New function.
9161         * loop-iv.c (iv_number_of_iterations): Handle case when loop
9162         is leaved immediatelly.
9163         * loop.c (strength_reduce): Do not call doloop optimization.
9164         * loop.h (LOOP_BCT): Removed.
9165         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
9166         (rest_of_handle_loop2): Call doloop_optimize_loops.
9167         (rest_of_compilation): Test for optimizations moved to
9168         rest_of_handle_loop2.
9169
9170 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
9171
9172         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
9173         for mixed mode.
9174         (rs6000_emit_prologue): Ditto.
9175         (rs6000_emit_epilogue): Ditto.
9176         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
9177         macro for mixed mode.
9178
9179 2004-03-18  Jan Hubicka  <jh@suse.cz>
9180
9181         * predict.c (propagate_freq): Compute correctly frequency of
9182         EXIT_BLOCK.
9183
9184 2004-03-17  Eric Christopher  <echristo@redhat.com>
9185
9186         * builtins.c (apply_args_size): Use reg_raw_mode.
9187         (apply_result_size): Ditto.
9188
9189 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9190
9191         PR target/14620
9192         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9193
9194 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
9195
9196         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9197         32-bit builds when defaulting to 32-bit.
9198
9199 2004-03-17  Jan Hubicka  <jh@suse.cz>
9200
9201         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9202         array.
9203
9204 2004-03-17  James E Wilson  <wilson@specifixinc.com>
9205
9206         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9207         (hazard_nop): Change type to nop.
9208         (type): Split arith into arith, shift, slt, clz.  Delete darith.
9209         Fix all uses.  Change arith to multi if more than one insn emitted.
9210         * config/mips/5400.md (ir_vr54_arith): Likewise.
9211         * config/mips/5500.md (ir_vr55_arith): Likewise.
9212         * config/mips/7000.md (rm7_int_other): Likewise.
9213         * config/mips/9000.md (rm9k_int): Likewise.
9214         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9215
9216 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
9217
9218         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9219         to hold the subtype tree instead of recomputing it several times.
9220
9221 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9222
9223         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9224         CC_INVERT.
9225         * config/mn10300/mn10300.md (cc): Remove "invert".
9226
9227 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9228
9229         * builtins.c (integer_valued_real_p): Add builtin rint.
9230         (fold_builtin): Likewise.
9231         * convert.c (convert_to_real): Likewise.
9232
9233         * convert.c (convert_to_real): Fix typos in `long double'
9234         builtins.
9235
9236 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
9237
9238         PR c++/14481
9239         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9240         generated COMPOUND_EXPRs.
9241
9242 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9243
9244         * config/h8300/t-rtems (h8300-*-rtems*): New.
9245
9246 2004-03-16  Eric Christopher  <echristo@redhat.com>
9247
9248         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9249
9250 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9251
9252         * config/i386/i386-protos.h: Add a prototype for
9253         ix86_reverse_condition.
9254         * config/i386/i386.c (ix86_reverse_condition): New.
9255         * config/i386/i386.h (REVERSE_CONDITION): Use
9256         ix86_reverse_condition.
9257         * config/i386/i386.md: Use ix86_reverse_condition instead of
9258         REVERSE_CONDITION.
9259
9260 2004-03-16  J. Brobecker  <brobecker@gnat.com>
9261
9262         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9263
9264 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9265
9266         PR bootstrap/12974
9267         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9268
9269 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9270
9271         * c-common.c (c_common_type_for_mode): Build vector types on
9272         demand.
9273         (handle_mode_attribute): Deprecate using the mode attribute
9274         to create vector types.  Fix indentation.
9275         (vector_type_node_list): Remove.
9276         (handle_vector_size_attribute): Create vector types on demand.
9277         Strip a NON_LVALUE_EXPR from the attribute if there is one.
9278         * c-typeck.c (comptypes): Make vector types compatible if they
9279         have the same underlying mode.
9280         (convert_for_assignment): Use comptypes to convert between
9281         vector types.
9282         * tree.c (build_common_tree_nodes_2): Do not create vector types.
9283         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9284         vector types.
9285         * tree.h: Remove vector types.
9286         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9287         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9288         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9289         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9290         * doc/extend.texi (Vector Types): Document how to use the
9291         vector_size attribute to create vectors, rather than mode.
9292
9293         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9294         * config/i386/emmintrin.h: Likewise.
9295         * config/i386/mmintrin.h: Likewise.
9296         * config/i386/xmmintrin.h: Likewise.
9297         * config/sh/ushmedia.h: Likewise.
9298
9299 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9300
9301         * config/freebsd-spec.h, config/arc/arc-protos.h,
9302         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9303         config/arm/linux-gas.h, config/arm/semi.h,
9304         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9305         config/ia64/freebsd.h, config/mips/7000.md,
9306         config/mips/9000.md, config/ns32k/ns32k-protos.h,
9307         config/sparc/pbd.h: Update copyright.
9308
9309 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9310
9311         PR target/14577
9312         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9313
9314 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9315
9316         * combine.c (combine_simplify_rtx): Remove the "last"
9317         parameter and its documentation.  Adjust recursive calls.
9318         (simplify_logical): Always perform the only simplification
9319         controlled by "last", if the simplified expression is
9320         actually different.
9321         (try_combine): Do not pass the "last" parameter to
9322         combine_simplify_rtx.
9323
9324 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9325
9326         PR target/14599
9327         * config/mips/mips.md (UNSPEC_GP): New constant.
9328         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9329         an UNSPEC instead of (reg $gp).
9330         (mips16_gp_pseudo_reg): Change accordingly.
9331         (print_operand): Print $gp directly when handling CONST_GP_P.
9332
9333 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9334
9335         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9336         * longlong.h: Make code 68060 clean when compiling for m68060.
9337
9338 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9339
9340         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9341         * doc/md.texi: Clarify description of "i" constraint.
9342
9343 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9344
9345         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9346         Split store into store, fpstore, fpidxstore.  Fix all uses.
9347         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9348         Likewise.
9349         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9350         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9351         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9352         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9353         ir_sr70_fstore): Likewise.
9354
9355 2004-03-15  Richard Henderson  <rth@redhat.com>
9356
9357         PR middle-end/14535
9358         * except.c (collect_one_action_chain): Record action for cleanup
9359         outer of exception spec.
9360
9361 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9362
9363         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9364         Fix the check for abort and only do the mmap if we can.
9365
9366 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9367
9368         * config/sparc/sparc.h: Rework comments about the code model
9369         in 64-bit environment and the mode 'Pmode'.
9370         * doc/invoke.texi (SPARC options): Rework description of the
9371         different code models supported in 64-bit environment.
9372
9373 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9374
9375         * defaults.h (REVERSIBLE_CC_MODE): Define.
9376         * jump.c (reversed_comparison_code_parts): Don't check if
9377         REVERSIBLE_CC_MODE is defined.
9378
9379 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9380
9381         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9382         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9383         hosthooks.h, params.h, ra-colorize.c, web.c,
9384         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9385         config/avr/avr-protos.h, config/avr/avr.md,
9386         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9387         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9388         config/i386/freebsd.h, config/i386/freebsd64.h,
9389         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9390         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9391         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9392         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9393         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9394         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9395         config/sparc/aout.h, config/sparc/freebsd.h,
9396         config/sparc/litecoff.h, config/vax/vax-protos.h,
9397         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9398         copyright.
9399
9400 2004-03-15  Paul Brook  <paul@codesourcery.com>
9401
9402         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9403
9404 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9405
9406         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9407         (pp_c_cv_qualifier): Document.
9408         (pp_c_space_for_pointer_operator): Likewise.
9409         (pp_c_integer_constant): Likewise.
9410         (pp_c_identifier): Likewise.
9411         (pp_c_init_declarator): Don't print function body.
9412
9413 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9414
9415         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9416         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9417         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9418         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9419         wording and grammar.
9420
9421 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9422
9423         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9424         with lang_hooks.foo ().
9425         * builtins.c (expand_builtin_va_arg): Likewise.
9426         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9427         c_common_type_for_mode, c_common_nodes_and_builtins,
9428         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9429         * c-convert.c (convert): Likewise.
9430         * c-format.c (check_format_types): Likewise.
9431         * c-objc-common.c (c_tree_printer): Likewise.
9432         * c-typeck.c (build_unary_op, build_conditional_expr,
9433         build_binary_op): Likewise.
9434         * calls.c (try_to_integrate, expand_call,
9435         emit_library_call_value_1): Likewise.
9436         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9437         Likewise.
9438         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9439         cgraph_expand_function): Likewise.
9440         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9441         * coverage.c (build_fn_info_type, build_ctr_info_type,
9442         build_gcov_info, create_coverage): Likewise.
9443         * dbxout.c (dbxout_init): Likewise.
9444         * diagnostic.c (diagnostic_report_current_function): Likewise.
9445         * dojump.c (do_jump): Likewise.
9446         * dwarf2out.c (dwarf2_name): Likewise.
9447         * except.c (init_eh): Likewise.
9448         * explow.c (expr_size, int_expr_size): Likewise.
9449         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9450         Likewise.
9451         * expr.c (store_expr, store_constructor, safe_from_p,
9452         expand_expr_real, do_store_flag, try_casesi): Likewise.
9453         * function.c (push_function_context_to, pop_function_context_from,
9454         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9455         put_var_into_stack, allocate_struct_function, current_function_name):
9456         Likewise.
9457         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9458         Likewise.
9459         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9460         lhd_print_error_function): Likewise.
9461         * opts.c (handle_option, decode_options): Likewise.
9462         * passes.c (open_dump_file): Likewise.
9463         * print-tree.c (print_node): Likewise.
9464         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9465         expand_decl_cleanup, emit_case_nodes): Likewise.
9466         * stor-layout.c (variable_size): Likewise.
9467         * toplev.c (announce_function, wrapup_global_declarations,
9468         check_global_declarations, compile_file, default_tree_printer,
9469         process_options, lang_dependent_init, finalize): Likewise.
9470         * tree-dump.c (dequeue_and_dump): Likewise.
9471         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9472         initialize_inlined_parameters, declare_return_variable,
9473         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9474         walk_tree, copy_tree_r): Likewise.
9475         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9476         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9477         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9478         variably_modified_type_p, dump_tree_statistics): Likewise.
9479         * varasm.c (assemble_variable, compare_constant, copy_constant,
9480         force_const_mem, compute_reloc_for_constant, output_constant,
9481         output_addressed_constants, initializer_constant_valid_p): Likewise.
9482
9483 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9484
9485         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9486
9487 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9488
9489         * doc/install.texi: Reflect autoconf and automake version for
9490         libffi. Update autoconf version to 2.59.
9491
9492 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9493
9494         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9495         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9496         make_range, build_range_check, fold_range_test, unextend,
9497         constant_boolean_node, fold_binary_op_with_conditional_arg,
9498         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9499         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9500         with lang_hooks.foo ().
9501
9502 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9503
9504         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9505
9506 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9507
9508         * doc/install.texi: Note status of -fnew-ra.
9509
9510 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9511
9512         PR middle-end/14470
9513         * expr.c (store_expr): Call emit_queue before generating the move
9514         from the temporary to the original target.  Protect the temporary
9515         from emit_queue.
9516
9517 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9518
9519         PR target/14533
9520         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9521         other than UNSPEC_GOTOFF.
9522
9523 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9524
9525         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9526         to arm_legitimate_index_p.  Update all callers with SET as default
9527         value.
9528         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9529         range if OUTER is a sign-extend operation on QImode.  Correctly
9530         reject shift operations on sign-extended QImode addresses.
9531         (bad_signed_byte_operand): Delete.
9532         (arm_extendqisi_mem_op): New function.
9533         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9534         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9535         constraints.
9536         (CONSTRAINT_LEN): New.
9537         (EXTRA_CONSTRAINT): Delete.  Replace with...
9538         (EXTRA_CONSTRAINT_STR): ... this.
9539         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9540         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9541         is now always default.
9542         (define_splits for bad sign-extend loads): Delete.
9543         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9544         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9545         Rework 'U' constraint to 'Uv'.
9546         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9547         arm_extendqisi_mem_op.
9548         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9549         Add Uq constraint.
9550
9551 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9552
9553         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9554         with targetm version.
9555
9556         PR target/14567
9557         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9558         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9559         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9560         Update all users of RS6000_ARG_SIZE.
9561         (function_arg_advance): Count fregno using mode size.
9562         (function_arg): Handle long double split over regs and memory.
9563         (function_arg_partial_nregs): Likewise.
9564         (rs6000_va_arg): Repackage complex args.
9565
9566 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9567
9568         PR target/14047
9569         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9570         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9571         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9572
9573 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9574
9575         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9576         prototype.
9577         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9578         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9579
9580 2004-03-12  Andrew Pinski  <apinski@apple.com>
9581
9582         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9583         Use ret instead of result. Use addr instead of base.
9584
9585 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9586
9587         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9588         fixes required by libstdc++ and update installation instructions
9589         for libstdc++.a.
9590
9591 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9592
9593         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9594         leading '@' on fastcall symbols before stripping suffix.
9595
9596 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9597
9598         * combine.c (unmentioned_reg_p): New function to check whether an
9599         expression is a "specialization" of another, i.e. that there are
9600         no registers or memory references mentioned in the first that don't
9601         appear in the second.
9602         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9603         (combine_instructions): Also try combining instructions using the
9604         REG_EQUAL note from a preceding log-linked instruction.
9605
9606 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9607
9608         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9609
9610 2004-03-12  Matt Austern  <austern@apple.com>
9611
9612         * target.h (struct gcc_target): New target hook, unwind_label.
9613         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9614         * output.h (default_emit_unwind_label): New function.
9615         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9616         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9617         (TARGET_SUPPORTS_HIDDEN): New target macro.
9618         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9619         that corresponds to this FDE.
9620         (FRAME_BEGIN_LABEL): Allow target to override default label.
9621         (output_call_frame_info): If FDEs are linknonce, then use extra
9622         indirection for FDE encoding, output a label for each FDE, and
9623         output an empty label for each function without an FDE.
9624         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9625         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9626         decls with DECL_ONE_ONLY set, if that macro is defined.
9627         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9628         for a SUPPORTS_ONE_ONLY target.
9629         * config/darwin-protos.h (darwin_unique_section): Declare.
9630         (darwin_asm_named_section): Likewise.
9631         (darwin_section_type_flags): Likewise.
9632         (darwin_non_lazy_pcrel): Likewise.
9633         (darwin_emit_unwind_label): Likewise.
9634         (darwin_make_decl_one_only): Likewise.
9635         * config/darwin.c (machopic_finish): Get rid of tweak that
9636         eliminate stubs for symbols that are defined.
9637         (darwin_encode_section_info): Don't treat weak functions as defined.
9638         (darwin_make_decl_one_only): Define.
9639         (darwin_asm_named_section): Likewise.
9640         (darwin_section_type_flags): Likewise.
9641         (darwin_unique_section): Likewise.
9642         (darwin_emit_unwind_label): Likewise.
9643         (darwin_non_lazy_pcrel): Likewise.
9644         (darwin_asm_output_dwarf_delta): Difference between two labels is
9645         local only if both labels are local.
9646         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9647         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9648         (TARGET_SUPPORTS_HIDDEN): Likewise.
9649         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9650         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9651         (FRAME_BEGIN_LABEL): Likewise.
9652         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9653         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9654         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9655         (TARGET_ASM_UNIQUE_SECTION): Define.
9656         (EH_FRAME_SECTION_NAME): Define.
9657         (EH_FRAME_SECTION_ATTR): Likewise.
9658         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9659         (TARGET_ASM_NAMED_SECTION): Likewise.
9660         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9661         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9662         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9663         TARGET_ASM_EMIT_UNWIND_LABEL.
9664
9665 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9666
9667         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9668         existing exp10* case.
9669         (expand_builtin): Likewise.
9670
9671 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9672
9673         * doc/tm.texi (registers) <Values in Registers>: Add
9674         entry for REGMODE_NATURAL_SIZE.
9675
9676 2004-03-12  Richard Henderson  <rth@redhat.com>
9677
9678         PR target/14547
9679         * target.h (struct gcc_target): Move calls substructure before
9680         booleans.  Add split_complex_arg.
9681         * function.c (assign_parms, split_complex_args): Use it.
9682         * calls.c (expand_call): Likewise.
9683         (split_complex_values): Likewise.  Check for splittable types
9684         before allocating memory.
9685         (split_complex_types): Likewise.
9686         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9687         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9688         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9689         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9690         (TARGET_SPLIT_COMPLEX_ARG): New.
9691         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9692         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9693         (rs6000_override_options): Zap it for non-AIX.
9694         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9695         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9696         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9697         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9698         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9699         SPLIT_COMPLEX_ARGS entry.
9700
9701 2004-03-11  Richard Henderson  <rth@redhat.com>
9702
9703         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9704         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9705         (alpha_emit_xfloating_arith): Update to match.
9706         (alpha_emit_xfloating_compare): Likewise.
9707         (alpha_emit_xfloating_cvt): Likewise.
9708         (alpha_emit_xfloating_libcall): Take already built symbol,
9709         mark call const.
9710         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9711         op1 in a register.
9712
9713 2004-03-11  Richard Henderson  <rth@redhat.com>
9714
9715         PR target/14539
9716         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9717
9718         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9719
9720 2004-03-11  Richard Henderson  <rth@redhat.com>
9721
9722         PR middle-end/14477
9723         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9724
9725 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9726
9727         PR target/14262
9728         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9729         defined, pass small BLKmode values in registers in the low-order part.
9730
9731 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9732
9733         * combine.c (if_then_else_cond): Check for NULL return value of
9734         simplify_gen_subreg.
9735
9736 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9737
9738         PR target/14496
9739         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9740         TARGET_SINGLE_FLOAT.
9741
9742 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9743
9744         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9745         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9746         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9747         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9748
9749 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9750
9751         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9752         -((int)X>>C) where C is an integer constant one bit less than the
9753         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9754         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9755
9756         * simplify-rtx.c (simplify_unary_operation): Also implement the
9757         above transformations at the RTL level.
9758
9759 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9760
9761         * real.c (encode_ibm_extended): Do round low word.
9762
9763 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9764
9765         * config/arm/arm.md (is_xscale): Comment this attribute and move
9766         it a bit further up in the file, closer to related attributes.
9767
9768 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9769
9770         * config/host-solaris.c (sol_gt_pch_use_address): Add
9771         missing terminating marker to comment.
9772
9773 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9774
9775         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9776         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9777         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9778         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9779         move_operand as source predicate in all cases.
9780         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9781         Test reg_or_0_operand.  Use move_operand as source predicate.
9782         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9783         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9784         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9785         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9786         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9787         Use move_operand as source predicate.  Remove 'K' constraint.
9788         (*movqi_internal): Likewise movqi_internal.
9789         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9790         reg_or_0_operand.  Use move_operand as source predicate.
9791         (*movsf_softfloat): Likewise movsf_internal2.
9792         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9793         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9794         (*movdf_softfloat): Likewise movdf_internal2.
9795         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9796         for DImode if !TARGET_64BIT.
9797         (mips_legitimize_move): Simplify accordingly.
9798
9799 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9800
9801         PR/14362
9802         * var-tracking.c (struct variable_def): Added field refcount.
9803         (variable_htab_free): Decrease the refcount and delete variable
9804         only if there are no more references.
9805         (unshare_variable): New function.
9806         (vars_copy_1): Increase refcount instead of copying the variable.
9807         (variable_union): Share the variables where possible, unshare
9808         the variables if needed.
9809         (variable_different_p): Return false if var1 and var2 are
9810         the same structure.
9811         (variable_was_changed): Init the refcount of new variable.
9812         (set_frame_base_location): Unshare variable if needed.
9813         (set_variable_part): Init the refcount of new variable.
9814         Unshare the variables if needed.
9815         (delete_variable_part): Unshare the variables if needed.
9816         (emit_notes_for_differences_1): Init the refcount of new variable.
9817         (vt_add_function_parameters): Do not add function parameters to
9818         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9819         (vt_initialize): Do not add frame_base_decl to IN set of
9820         ENTRY_BLOCK_PTR because it is unused anyway.
9821
9822 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9823
9824         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9825         (vars_copy): Likewise.
9826         (variable_union): Likewise.
9827         (set_variable_part): Likewise.
9828         (delete_variable_part): Likewise.
9829
9830 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9831
9832         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9833         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9834         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9835         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9836         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9837         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9838         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9839         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9840         config/stormy16/stormy16.c: Fix comment typos and formatting.
9841
9842 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9843
9844         * configure: Regenerate, since I forgot to while committing Paolo's
9845         changes.
9846
9847 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9848
9849         PR ada/14131
9850         Move language detection to the top level.
9851         * configure.ac: Remove code to detect languages,
9852         it now lives exclusively in the top level.
9853         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9854         top level, renamed to ACX_PROG_GNAT.
9855
9856 2004-03-10  Richard Henderson  <rth@redhat.com>
9857
9858         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9859         extra arguments.
9860         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9861         and host_xmake_file fragments.
9862         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9863         (gt_pch_restore): Similarly for gt_pch_use_address.
9864         (default_gt_pch_get_address): New.
9865         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9866         (default_gt_pch_use_address): Split out of gt_pch_restore.
9867         (mmap_gt_pch_use_address): Likewise.
9868         * hooks.c (hook_voidp_size_t_null): Remove.
9869         (hook_bool_voidp_size_t_false): Remove.
9870         * hooks.h: Likewise.
9871         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9872         default_ or mmap_ definitions.
9873         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9874         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9875         and gt_pch_use_address.
9876         * config/host-linux.c, config/host-solaris.c: New files.
9877         * config/x-linux, config/x-solaris: New files.
9878         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9879         Update for changed definition.
9880         (darwin_rs6000_gt_pch_use_address): Likewise.
9881         * doc/hostconfig.texi: Update docs.
9882
9883 2004-03-10  Richard Henderson  <rth@redhat.com>
9884
9885         PR c/14517
9886         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9887         except for pedantic c90 mode.
9888
9889 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9890
9891         * configure.ac: Bump AC_PREREQ to 2.59.
9892         * configure: Regenerate.
9893
9894 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9895
9896         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9897         (exp10_optab, exp2_optab): Define corresponding macros.
9898         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9899         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9900         using exp10?f2 and exp2?f2 patterns.
9901         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9902         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9903         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9904         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9905
9906         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9907         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9908         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9909
9910 2004-03-10  Anthony Green  <green@redhat.com>
9911
9912         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9913
9914 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9915
9916         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9917         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9918         __LONGDOUBLE128.
9919         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9920         TARGET_OS_AIX_CPP_BUILTINS.
9921         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9922         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9923         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9924         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9925         previous change.
9926
9927 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9928
9929         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9930
9931 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9932
9933         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9934         __LONGDOUBLE128 on AIX.
9935
9936 2004-03-10  Andrew Haley  <aph@redhat.com>
9937
9938         PR optimization/14381
9939         * function.c (expand_function_end): Emit a blockage insn before
9940         the epilogue when -fnon-call-exceptions is used.
9941
9942         * except.c (expand_start_all_catch): Make comment more accurate.
9943
9944 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9945
9946         PR target/14480
9947         * config/rs6000/t-rtems: Add missing file on branch.
9948
9949 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9950
9951         * dbxout.c (dbxout_symbol_location): Do not output references
9952         to optimized-out constant pool symbols.
9953
9954 2004-03-10  Andreas Schwab  <schwab@suse.de>
9955
9956         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9957         twon34_r.
9958
9959 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9960
9961         * alias.c (alias_sets_might_conflict_p): New.
9962         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9963         * common.opt (Wstrict-aliasing=): New.
9964         * flags.h (warn_strict_aliasing): Change type to int.
9965         * opts.c (warn_strict_aliasing): Change type to int.
9966         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9967         * tree.h (alias_sets_might_conflict_p): Declare it.
9968         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9969
9970 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9971
9972         PR bootstrap/12371
9973         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9974         (CALL_USED_REGISTERS): Likewise.
9975         (REG_CLASS_CONTENTS): Likewise.
9976         (REG_ALLOC_ORDER): New.
9977         (REGNO_REG_CLASS): Use regno_reg_class.
9978         * config/m68k/m68k.c: Add regno_reg_class array.
9979
9980 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9981
9982         * config/ia64/ia64.md (divsi3): Fix algorithm.
9983           (udivsi3): Ditto.
9984           (setf_exp_xf): Remove '*' from name.
9985         * testsuite/gcc.dg/20040309-1.c: New test.
9986
9987 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9988
9989         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9990         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9991         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9992         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9993         (sparc_aout_select_rtx_section): Don't check
9994         SUNOS4_SHARED_LIBRARIES.
9995         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9996
9997 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9998
9999         PR other/14474
10000         * doc/md.texi (Pattern Ordering, Dependent Patterns)
10001         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
10002         INTERNALS".
10003
10004 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
10005
10006         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
10007         (LIBGCC_SPEC): Update to match.
10008
10009 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
10010
10011         * c-decl.c (last_function_parms, last_function_parm_tags)
10012         (last_function_parm_others, current_function_parms)
10013         (current_function_parm_tags, current_function_parm_others):
10014         Delete.
10015         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
10016         New macros.
10017         (grokdeclarator): For function definitions, save the arg-info
10018         block from the declarator in DECL_ARGUMENTS.
10019         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
10020         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
10021         contains only PARM_DECLs.  Improve diagnostics.
10022         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
10023         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
10024         (store_parm_decls_newstyle): Take the function to operate on,
10025         and an arg-info block, as arguments; don't get anything from
10026         current_function_* globals.
10027         (store_parm_decls_oldstyle): Likewise.
10028         (store_parm_decls): Pass fndecl and its arg-info block down to
10029         store_parm_decls_newstyle/oldstyle.  Send functions with empty
10030         argument lists through store_parm_decls_newstyle to reduce
10031         overhead.
10032         (pushdecl): Comment on the problems with the call to copy_node.
10033         Clear DECL_ARGUMENTS of the old node after copying it, if it
10034         is an arg-info block instead of a chain of decls.
10035         (start_function): Do not manipulate current_function_parm* or
10036         last_function_parm*.
10037
10038 2004-03-09  Roger Sayle  <roger@eyesopen.com>
10039             Andrew Pinski  <pinskia@physics.uc.edu>
10040
10041         * ifcvt.c (noce_try_sign_mask): New function to transform
10042         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
10043         (noce_process_if_block): Call noce_try_sign_mask.
10044
10045 2004-03-09  Andrew Pinski  <apinski@apple.com>
10046
10047         * c-typeck.c (tagged_types_tu_compatible_p):
10048         Fix typo.
10049
10050 2004-03-09  Roger Sayle  <roger@eyesopen.com>
10051
10052         * simplify-rtx.c (simplify_const_relational_operation): New function
10053         renamed from simplify_relational_operation.
10054         (simplify_relational_operation): Change prototype to accept an
10055         additional mode argument.  Call simplify_const_relational_operation.
10056         (simplify_gen_relational): Update simplify_relational_operation call.
10057         (simplify_ternary_operation): Update simplify_relational_operation
10058         subroutine call to use simplify_const_relational_operation instead.
10059
10060         * rtl.h (simplify_const_relational_operation): Prototype here.
10061         (simplify_relational_operation): Add addtional mode argument.
10062
10063         * combine.c (combine_simplify_rtx): Update calls to
10064         simplify_relational_operation.
10065         (simplify_set): Likewise.
10066         (gen_binary): Likewise.
10067         * cse.c (fold_rtx): Likewise.
10068         * dojump.c (compare_from_rtx): Likewise.
10069         (do_compare_rtx_and_jump): Likewise.
10070         * integrate.c (subst_constants): Likewise.
10071         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
10072
10073 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10074
10075         * config/m32r/m32r.md: Remove all define_peephole's.
10076
10077 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
10078
10079         * config/rs6000/rs6000.md: Remove trailing whitespace.
10080
10081 2004-03-08  Eric Christopher  <echristo@redhat.com>
10082
10083         * Makefile.in (site.exp): Add libiconv variable definition.
10084
10085 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
10086
10087         * configure: Regenerate for config/accross.m4 correction.
10088
10089 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
10090
10091         PR target/14480
10092         * config/rs6000/t-rtems: Add missing file on branch.
10093
10094 2004-03-08  Roger Sayle  <roger@eyesopen.com>
10095
10096         PR middle-end/14289
10097         * c-typeck.c (c_mark_addressable): A register variable should
10098         be considered global if its not automatic, i.e. TREE_PUBLIC,
10099         TREE_STATIC or DECL_EXTERNAL.
10100         * function.c (put_var_into_stack): Call abort when placing a
10101         hard register into the stack, if x_parm_reg_stack_loc is NULL.
10102
10103 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
10104
10105         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
10106         ("*extendqisi2_short_displ"): Likewise.
10107
10108 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10109
10110         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
10111         (comp_operator): Likewise.
10112         * config/pdp11/pdp11-protos.h: Remove corresponding
10113         prototypes.
10114
10115 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
10116
10117         * expr.c (highest_pow2_factor_for_type): Rename into
10118         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
10119         TYPE_ALIGN when the target is a COMPONENT_REF.
10120         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
10121
10122 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10123
10124         * config/rs6000/rs6000.c: Formatting fix.
10125         (legitimate_offset_address_p): Correct offset range check.
10126
10127         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
10128         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
10129         and MASK_STRING.
10130
10131 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10132
10133         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
10134         for little endian.
10135         ("ashrdi3_no_power"): Disable for little endian.
10136         (ashrdi3): Same.
10137
10138 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10139
10140         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
10141         builtins.
10142
10143 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
10144
10145         PR target/14471
10146         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
10147         case, checking for -no-mul-bug-abort option.
10148         * configure, config.in: Regenerate.
10149         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
10150         and -mno-mul-bug-workaround.
10151         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
10152         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
10153         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
10154         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
10155         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
10156         sure mulu.d is not last on cache-line.
10157         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
10158         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
10159         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
10160         (TARGET_SWITCHES): New options -mmul-bug-workaround and
10161         -mno-mul-bug-workaround.
10162         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
10163         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
10164         * config/cris/cris.c (cris_operand_extend_operator): Clarify
10165         relation to MULT in head comment.
10166         (cris_op_str): Abort for MULT.
10167         (cris_print_operand) <case '!'>: New case.
10168
10169 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10170
10171         PR debug/11983
10172         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
10173         dw_val_class_vec.  Replace use throughout file.
10174         (dw_float_const): Delete.
10175         (dw_vec_const): New.
10176         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
10177         throughout file.
10178         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
10179         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
10180         (size_of_die): Adjust dw_val_class_vec sizing.
10181         (output_die): Output dw_val_class_vec.
10182         (insert_int, extract_int, insert_float): New functions.
10183         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
10184         Handle CONST_VECTOR.
10185         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
10186
10187 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10188
10189         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10190         AltiVec abi cannot co-exist.
10191
10192         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10193
10194 2004-03-07  Jan Hubicka  <jh@suse.cz>
10195
10196         * except.c (emit_to_new_bb_before):  Break fallthru edges.
10197
10198 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
10199
10200         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10201         ("*lshrsi3"): Also accept an immediate for 68HC12.
10202         ("*ashrsi3_const"): Likewise.
10203         ("*ashrsi3"): Likewise.
10204         ("*ashlsi3_const"): Likewise.
10205         ("*ashlsi3"): Likewise.
10206         ("cmphi_1_hc12"): Compare two hard register by pushing them and
10207         comparing with a pop; don't use a split for that.
10208         ("cmphi split"): Disable compare split for 68HC12.
10209
10210         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10211         the status operands if they have side effects.
10212
10213 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10214
10215         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10216         definition.
10217         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10218         config/h8300/h8300.h, config/ia64/ia64.h,
10219         config/mcore/mcore.h, config/mmix/mmix.h,
10220         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10221         config/stormy16/stormy16.h, config/v850/v850.h,
10222         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10223         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10224         definition.
10225
10226 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10227
10228         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10229         <XOR_EXPR>: Fold x ^ x as zero.
10230         <AND_EXPR>: Fold x & x as x.
10231
10232 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10233
10234         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10235         "foo++ == const" into "++foo == const+incr".
10236
10237 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
10238
10239         * config/mips/mips.c (mips_in_small_data_p): Return false if
10240         TARGET_ABICALLS.
10241
10242 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
10243
10244         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10245         the stack register.
10246         (expand_prologue): Don't make an interrupt or a trap handler a far
10247         symbol.
10248         (m68hc11_initial_elimination_offset): Likewise.
10249
10250 2004-03-06  Richard Henderson  <rth@redhat.com>
10251
10252         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10253
10254 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10255
10256         * config/ns32k/ns32k-protos.h: Add a prototype for
10257         ns32k_notice_update_cc.
10258         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10259         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10260         ns32k_notice_update_cc.
10261
10262 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10263
10264         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10265         "*load_multiple_si"): Allow only if reload_completed.
10266         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10267         Likewise.
10268
10269 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10270
10271         * config/vax/vax-protos.h: Add a prototype for
10272         vax_notice_update_cc.
10273         * config/vax/vax.c (vax_notice_update_cc): New.
10274         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10275         vax_notice_update_cc.
10276
10277 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
10278
10279         * collect2.c (main): Only export initfunc and finifunc if
10280         LD_INIT_SWITCH not defined.
10281         (scan_prog_file): Only export constructors and destructors if
10282         LD_INIT_SWITCH not defined.  Only export symbols not found in
10283         shared objects.
10284
10285 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10286
10287         * pa.md (icacheflush): Reorder operands to make match_scratch operand
10288         last.
10289         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10290         from calls to gen_icacheflush.
10291
10292 2004-03-06  Richard Henderson  <rth@redhat.com>
10293
10294         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10295         (TARGET_LONG_DOUBLE_128): New.
10296         (TARGET_SWITCHES): Add long-double-{128,64}.
10297         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10298         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10299         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10300         (WIDEST_HARDWARE_FP_SIZE): New.
10301         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10302         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10303         if TARGET_VAX_FLOAT.
10304         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10305         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10306
10307 2004-03-06  Richard Henderson  <rth@redhat.com>
10308
10309         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10310         botched rtx class conversion.
10311
10312 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10313
10314         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10315         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10316
10317         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10318         macros.
10319         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10320
10321 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10322
10323         PR target/14343
10324         * config/i386/i386.md (movv2di_internal): Conditionalize on
10325         TARGET_SSE, not TARGET_SSE2.
10326
10327 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10328
10329         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10330         duplicated line.
10331
10332 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10333
10334         * builtins.c: Consistently use logN not log* in comments.
10335
10336 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10337
10338         * rtl.h (mem_expr_equal_p): Function prototype added.
10339         * cfgcleanup.c (merge_memattrs): New function.
10340         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10341         * emit-rtl.c (mem_expr_equal_p): New function.
10342
10343 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10344
10345         * objc/objc-act.c (synth_module_prologue): Const-qualify
10346         objc_selector type if using the GNU runtime; fix generated
10347         signatures for objc_msg_lookup and objc_msg_lookup_super
10348         to match what GNU ObjC headers provide; reformat and clean up.
10349         (synth_self_and_ucmd_args): Use previously constructed (and
10350         hence possibly const-qualified) objc_selector type.
10351
10352 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10353
10354         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10355
10356 2004-03-05  Jason Merrill  <jason@redhat.com>
10357
10358         * tree.h (TYPE_HASH): Use TYPE_UID.
10359         (TREE_HASH): New macro with old definition of TYPE_HASH.
10360         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10361         (build_array_type, build_function_type): Likewise.
10362         (build_method_type_directly): Likewise.
10363         (build_offset_type, build_complex_type): Likewise.
10364         (type_hash_list, attribute_hash_list): Likewise. Now static.
10365         * except.c: s/TYPE_HASH/TREE_HASH/.
10366
10367 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10368
10369         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10370         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10371         __va_ndx by 2 words when referencing an argument on the stack.
10372         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10373         words when an arg on the stack is first seen.
10374
10375 2004-03-05  Paul Brook  <paul@codesourcery.com>
10376
10377         * arm.h (ARM_FLAG_VFP): Remove.
10378         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10379         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10380
10381 2004-03-05  Paul Brook  <paul@codesourcery.com>
10382
10383         * function.c (assign_parms): Include pretend alignment offset.
10384
10385 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10386
10387         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10388         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10389
10390 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10391
10392         * configure.ac: When passing --enable-languages to subdir
10393         configure when host != build, make sure we don't pass an empty
10394         value.
10395         * configure: Regenerate.
10396
10397 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10398
10399         PR 13577
10400         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10401         options.
10402
10403 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10404
10405         * simplify-rtx.c (simplify_relational_operation): If
10406         flag_wrapv is set, do not move terms between the two
10407         side of a relational operator.
10408
10409 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10410
10411         * rtlanal.c: Include target.h and output.h
10412         (rtx_cost, address_cost, default_address_cost): Move from...
10413         * cse.c (rtx_cost, address_cost, default_address_cost):
10414         ... this file.
10415         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10416         * Makefile.in: Adjust dependencies.
10417
10418 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10419
10420         * cse.c (cse_end_of_basic_block): Make static.
10421         * local-alloc.c (function_invariant_p): Move to
10422         reload1.c.
10423         * loop.c (libcall_other_reg, record_excess_regs):
10424         Make static.
10425         * reload1.c (function_invariant_p): Moved here
10426         from local-alloc.c, made static.
10427         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10428         libcall_other_reg, record_excess_regs): Remove
10429         declarations.
10430
10431 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10432
10433         * config/m32r/m32r.c (signed_comparison_operator): Add a
10434         missing parenthesis.
10435
10436 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10437
10438         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10439         going to call mmap again.  Read the file into the right place.
10440         Give a fatal error if we have to relocate.
10441
10442 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10443
10444         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10445         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10446
10447 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10448
10449         PR other/14354
10450         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10451         round the same.  When rounding, clear bits that would cause a
10452         second rounding in pack_d.
10453         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10454
10455 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10456
10457         PR c++/14425, c++/14426
10458         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10459         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10460         Change C++ definitions to accept a 'const int' argument;
10461         the prototypes already do.
10462         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10463         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10464         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10465         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10466         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10467         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10468         end in ..._int; change them to accept an int instead of a char
10469         as the last parameter.
10470
10471 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10472
10473         * genmultilib:  Change '=' to '-' when translating option names
10474         to directory names.
10475
10476 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10477
10478         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10479         stack slot for temp used for result of BLKmode but in integral mode.
10480
10481 2004-03-04  Jan Hubicka  <jh@suse.cz>
10482
10483         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10484
10485         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10486         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10487
10488 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10489
10490         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10491         * testsuite/gcc.dg/20040303-1.c: New test.
10492
10493 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10494
10495         * ppro.md: Rewrite as a DFA pipeline description.
10496         * i386.md: Remove all uses of the ppro_uops attribute.
10497         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10498         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10499         ix86_sched_reorder, ix86_variable_issue,
10500         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10501         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10502         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10503         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10504         * athlon.md (athlon_ssecmp_load): Fix comment
10505
10506 2004-03-04  Stuart Hastings  <stuart@apple.com>
10507
10508         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10509
10510 2004-03-04  Stuart Hastings  <stuart@apple.com>
10511
10512         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10513         686, tell Darwin assembler to allow prefetch insns, non-empty def
10514         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10515
10516 2004-03-04  DJ Delorie  <dj@redhat.com>
10517
10518         PR optimization/14282
10519         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10520         between a call and the assignment of its return value.
10521
10522 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10523
10524         * config/h8300/h8300.c: Put a comment for every function.
10525
10526 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10527
10528         * config/h8300/h8300.md: Add comments about peephole2's.
10529
10530 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10531
10532         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10533
10534 2004-03-04  Jan Hubicka  <jh@suse.cz>
10535
10536         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10537         * cselib.c (cselib_record_memory): New static variable.
10538         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10539         Give up on memories when asked for.
10540         (cselib_init): Accept new argument.
10541         * cselib.h (cselib_init): Update prototype.
10542         * gcse.c (local_cprop_pass): Update call of cselib_init.
10543         * loop.c (load_mems): Update call of cselib_init.
10544         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10545         * sched-deps.c (sched_analyze): Update call of cselib_init.
10546
10547 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10548             GP <gp@qnx.com>
10549
10550         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10551         when compiling PIC.
10552
10553 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10554
10555         PR/14362
10556         * var-tracking.c (track_expr_p): Do not track variables which
10557         should be ignored for debugging purposes.
10558
10559 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10560
10561         * real.c (encode_ibm_extended): Don't bother rounding low double.
10562         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10563         when fmt->pnan < fmt->p.
10564
10565 2004-03-04  Eric Christopher  <echristo@redhat.com>
10566
10567         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10568         only range of valid arg registers and fixed_regs.
10569
10570 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10571
10572         PR target/14406
10573         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10574         (abstf2, abstf2_internal): New define_expand.
10575
10576 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10577
10578         PR optimization/14235
10579         * expr.c (convert_move): Copy the source to a new pseudo
10580         when converting from a sub-word source to a larger-than-word
10581         register which conflicts with the source.
10582
10583 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10584
10585         PR 13728
10586         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10587         parameters with the same name, unless one is a forward decl.
10588         Do not issue a redundant-redeclaration warning for forward
10589         decls of parameters.
10590
10591 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10592
10593         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10594         configuration.
10595
10596 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10597
10598         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10599
10600 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10601
10602         * target-def.h (TARGET_OPTF): Delete.
10603         * c-opts.c (TARGET_OPTF): Define.
10604
10605 2004-03-04  Jan Hubicka  <jh@suse.cz>
10606
10607         * cselib.c (cselib_finish): Fix another miss-application of my previous
10608         patch.
10609
10610 2004-03-03  Mike Stump  <mrs@apple.com>
10611
10612         Add framework support for darwin.
10613
10614         * c-incpath.c: Include target.h and machmode.h.
10615         (add_path): Use a consistent style for cpp_dir.  Initialize
10616         p->construct to 0.
10617         (add_cpp_dir_path): New.
10618         (register_include_chains): Add use of extra_includes callback.
10619         (hook_void_int): Add.
10620         (target_c_incpath): Add.
10621         * c-incpath.h (add_cpp_dir_path): New.
10622         (target_c_incpath_s): Add.
10623         (target_c_incpath): Add.
10624         (C_INCPATH_INIT): Add.
10625         * c-opts.c (c_common_missing_argument,
10626         c_common_handle_option): Add -F argument processing.
10627         * c.opt: Add -F argument processing.
10628         * gcc.c (trad_capable_cpp): Add -F argument processing.
10629         * cppfiles.c (find_file_in_dir): Update to use construct
10630         callback.
10631         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10632         cpp_get_prev): New.
10633         (_cpp_find_file): Use search_path_exhausted.
10634         (make_cpp_dir): Initialize construct to 0.
10635         * cpplib.h (missing_header_cb
10636         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10637         (cpp_callbacks): Add missing_header
10638         (cpp_dir): Add construct.
10639         * target-def.h: (TARGET_OPTF): New.
10640         * hooks.c (hook_void_int, hook_void_charptr): Add.
10641         * hooks.h (hook_void_int, hook_void_charptr): Add.
10642         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10643         $(MACHMODE_H) dependencies.
10644         * doc/invoke.texi (Darwin Options): Document -F.
10645         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10646         (TARGET_OPTF): Add.
10647         * fix-header.c (target_c_incpath): Add.
10648
10649         * config/darwin-c.c: Add c-incpath.h include.
10650         (using_frameworks, find_subframework_file,
10651         find_subframework_header, add_system_framework_path,
10652         frameworks_in_use, num_frameworks, max_frameworks,
10653         add_framework, find_framework, struct framework_header,
10654         framework_header_dirs, framework_construct_pathname,
10655         find_subframework_file, add_system_framework_path,
10656         add_framework_path, framework_defaults,
10657         darwin_register_frameworks, find_subframework_header): Add.
10658         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10659         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10660         (CPP_SPEC): Add __APPLE_CC__ support.
10661         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10662
10663 2004-03-04  Jan Hubicka  <jh@suse.cz>
10664
10665         * cselib.c (cselib_finish): Fix miss-application of my previous
10666         patch.
10667
10668 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10669
10670         * hooks.c (hook_tree_tree_identity): New.
10671         * hooks.h: Add a prototype for hook_tree_tree_identity.
10672         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10673         instead of MD_ASM_CLOBBERS.
10674         * system.h (MD_ASM_CLOBBERS): Poison.
10675         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10676         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10677         * target.h (gcc_target): Add md_asm_clobbers.
10678         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10679         (ix86_md_asm_clobbers): New.
10680         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10681         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10682         TARGET_MD_ASM_CLOBBERS.
10683
10684 2004-03-03  Stuart Hastings  <stuart@apple.com>
10685
10686         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10687
10688 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10689
10690         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10691
10692         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10693         (ASM_DOUBLE): Likewise.
10694         (ASM_LONGDOUBLE): Likewise.
10695         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10696
10697 2004-03-03  Richard Henderson  <rth@redhat.com>
10698
10699         PR opt/13862
10700         * cselib.c (cselib_record_sets): Don't record multiple sets in
10701         asm insns.
10702
10703 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10704
10705         * common.opt: Add description of the new -fgcse-after-reload flag.
10706
10707         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10708
10709         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10710         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10711         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10712         get_bb_avail_insn, hash_scan_set_after_reload,
10713         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10714         gcse_after_reload, get_bb_avail_insn): New functions to implement
10715         gcse-after-reload.
10716         (gcse_after_reload_main): New function, the main entry point to
10717         gcse-after-reload.
10718
10719         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10720
10721         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10722
10723         * toplev.c (flag_gcse_after_reload): Initialization.
10724
10725         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10726
10727         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10728         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10729         the gcse after reload optimization.
10730
10731         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10732         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10733         parameters.
10734
10735         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10736
10737 2004-03-03  Nicolas Pitre <nico@cam.org>
10738
10739         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10740         small negative values.
10741
10742 2004-03-03  Jan Hubicka  <jh@suse.cz>
10743
10744         * cselib.c (hash_table):  Remove GTY marker.
10745         (reg_values): Turn into array.
10746         (used_regs): Likewise.
10747         (n_used_regs): New static variable.
10748         (reg_values_old): Kill.
10749         (clear_table): Update uses of arrays.
10750         (cselib_lookup): Likewise.
10751         (cselib_record_set): Likewise.
10752         (cselib_init): Likewise.
10753         (cselib_finish): Likewise.
10754         (cselib_udpate_varray_sizes): Kill.
10755         * cselib.h (cselib_update_varray_sizes): Kill.
10756
10757 2004-03-03  Paul Brook  <paul@codesourcery.com>
10758
10759         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10760
10761 2004-03-03  Jan Hubicka  <jh@suse.cz>
10762
10763         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10764         Rename from ...; make statistics transparent.
10765         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10766         (loc_descriptor): New structure.
10767         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10768         add_statistics):
10769         New static function.
10770         (ggc_record_overhead, dump_statistics): New global function.
10771         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10772         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10773         from ...; accept locations
10774         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10775         ggc_realloc, ggc_alloc_typed):  ... this one.
10776         from ...; accept locations
10777         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10778         ggc_alloc_stat): Rename from ... ; pass locations
10779         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10780         ... this one.
10781         (ggc_alloc_stat): Record overehead.
10782         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10783         ggc_realloc, ggc_alloc_typed):  Turn to macros
10784         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10785         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10786         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10787         * langhooks.h (lhd_make_node): Declare.
10788         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10789         * langhooks.c (lhd_make_node): New.
10790         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10791         locations.
10792         (rtx_alloc, swallow_copy_rtx): ... this one.
10793         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10794         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10795         * toplpev.c (finalize): Dump stats.
10796         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10797         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10798         Rename from ... ; pass locators.
10799         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10800         build?,  build_decl): Declare.
10801         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10802         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10803         Declare.
10804         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10805         build?,  build_decl): New macros.
10806         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10807         * statistics.h: New file.
10808
10809 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10810             Richard Sandiford  <rsandifo@redhat.com>
10811
10812         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10813         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10814         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10815         * config/mips/mips.c (mips_output_division): Fill the branch delay
10816         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10817         TARGET_FIX_R4400.
10818         (mips_output_division): Adjust accordingly.
10819         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10820         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10821
10822 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10823
10824         * alias.c (rtx_equal_for_memref_p): Use predicates
10825         to test rtx classes and new rtx class codes, possibly
10826         splitting conditionals that tested against '<' and 'o'.
10827         * caller-save.c (save_call_clobbered_regs): Likewise.
10828         * combine.c (contains_muldiv, find_split_point, subst,
10829         combine_simplify_rtx, simplify_if_then_else,
10830         simplify_set, simplify_logical, expand_compound_operation,
10831         make_compound_operation, if_then_else_cond, known_cond,
10832         apply_distributive_law, cached_nonzero_bits,
10833         cached_num_sign_bit_copies, simplify_shift_const,
10834         gen_binary, simplify_comparison, update_table_tick,
10835         record_value_for_reg, get_lsat_value_validate): Likewise.
10836         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10837         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10838         Likewise.
10839         * emit-rtl.c (copy_insn_1): Likewise.
10840         * expr.c (force_operand): Likewise.
10841         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10842         * flow.c (notice_stack_pointer_modification_1,
10843         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10844         and_reg_cond, elim_reg_cond): Likewise.
10845         * function.c (update_epilogue_consts): Likewise.
10846         * genattrtab.c (attr_rtx_1): Likewise.
10847         * genopinit.c (gen_insn): Likewise.
10848         * integrate.c (subst_constants): Likewise.
10849         * jump.c (reversed_comparison_code_parts,
10850         reversed_comparison_code, delete_related_insns,
10851         rtx_renumbered_equal_p): Likewise.
10852         * local-alloc.c (block_alloc): Likewise.
10853         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10854         canonicalize_condition): Likewise.
10855         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10856         Likewise.
10857         * optabs.c (add_equal_node, expand_binop): Likewise.
10858         * predict.c (estimate_probability): Likewise.
10859         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10860         * recog.c (validate_replace_rtx_1, comparison_operator,
10861         offsettable_address_p, constrain_operands): Likewise.
10862         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10863         Likewise.
10864         * regclass.c (scan_one_insn): Likewise.
10865         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10866         * regrename.c (kill_autoinc_value): Likewise.
10867         * reload.c (find_reusable_reload, find_reloads,
10868         reg_overlap_mentioned_for_reload_p): Likewise.
10869         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10870         * rtl.c (copy_rtx): Likewise.
10871         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10872         * rtlanal.c (commutative_operand_precedence): Likewise.
10873         * sched-deps.c (conditions_mutex_p): Likewise.
10874         * sched-rgn.c (is_cfg_nonregular): Likewise.
10875         * simplify-rtx.c (simplify_gen_binary,
10876         simplify_gen_relational, simplify_replace_rtx,
10877         simplify_unary_operation, simplify_binary_operation,
10878         simplify_ternary_operation, simplify_rtx): Likewise.
10879         * unroll.c (reg_dead_after_loop): Likewise.
10880         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10881         print_operand): Likewise.
10882         * config/arc/arc.c (proper_comparison_operator): Likewise.
10883         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10884         Likewise.
10885         * config/avr/avr.c (_reg_unused_after): Likewise.
10886         * config/frv/frv.c (frv_ifcvt_modify_tests,
10887         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10888         * config/i386/i386.c (ix86_comparison_operator,
10889         ix86_carry_flag_operator, fcmov_comparison_operator,
10890         arith_or_logical_operator, print_operand,
10891         ix86_expand_binary_operator, ix86_binary_operator_ok):
10892         Likewise.
10893         * config/i386/i386.md: Likewise.
10894         * config/ia64/ia64.c (not_postinc_memory_operand,
10895         ia64_print_operand, update_set_flags, errata_emit_nops):
10896         Likewise.
10897         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10898         CONSTRAINT_OK_FOR_S): Likewise.
10899         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10900         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10901         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10902         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10903         Likewise.
10904         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10905         eqne_comparison_operator, signed_comparison_operator):
10906         Likewise.
10907         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10908         Likewise.
10909         * config/mmix/mmix (mmix_foldable_comparison_operator,
10910         mmix_comparison_operator): Likewise.
10911         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10912         * config/rs6000/rs6000.c (stmw_operation,
10913         branch_comparison_operator, trap_comparison_operator,
10914         ccr_bit): Likewise.
10915         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10916         * config/s390/s390.c (s390_alc_comparison,
10917         s390_slb_comparison):L Likewise.
10918         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10919         Likewise.
10920         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10921         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10922         emit_hard_tfmode_operation, reg_unused_after)
10923         * doc/md.texi, doc/rtl.texi: Likewise.
10924
10925         * ra-debug.c: Add 2004 to list of copyright years.
10926         * unroll.c: Likewise.
10927
10928         * combine.c (simplify_logical): Remove dummy test,
10929         (apply_distributive_law): Fix typo in comment.
10930         GET_CODE (x) == AND so x is a commutative binary op.
10931         * jump.c (delete_related_insns): simplify loop
10932         condition, move testing of RTX codes inside the loop.
10933         (rtx_renumbered_equal_p): do not use RTX_CODE.
10934         * rtl.c (rtx_class): Declare as enum rtx_class.
10935         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10936         Move to RTX_COMM_COMPARE class.
10937         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10938         Move to RTX_CONST_OBJ class.
10939         * rtl.h (enum rtx_class): New declaration,
10940         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10941         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10942         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10943         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10944         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10945         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10946         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10947         OBJECT_P): New macros.
10948         * config/sparc/sparc.c (noov_compare_op): Remove register
10949         from parameter.
10950
10951 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10952
10953         * target.h: Remove texi jargons in comments.
10954
10955 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10956
10957         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10958         threshold to 0x4f.
10959
10960         Revert:
10961         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10962         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10963         as well.
10964         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10965         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10966
10967 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10968
10969         * doc/md.texi (cbranchmode4): New.
10970
10971 2004-03-02  Eric Christopher  <echristo@redhat.com>
10972
10973         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10974         fix_trunc.
10975         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10976         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10977         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10978         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10979
10980 2004-03-02  Richard Henderson  <rth@redhat.com>
10981
10982         PR middle-end/11767
10983         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10984         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10985         before the compare, if flag_non_call_exceptions.
10986
10987 2004-03-02  Richard Henderson  <rth@redhat.com>
10988
10989         PR middle-end/14327
10990         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10991         emitting the label, not after.
10992
10993 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10994
10995         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10996         (m68hc11_mov_addr_mode): Likewise.
10997         (m68hc11_override_options): Initialize them based on target.
10998         (register_indirect_p): Allow a MEM for indirect addressing modes and
10999         use flags to control what is allowed.
11000         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
11001         supported addressing modes.
11002         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
11003         (go_if_legitimate_address_internal): Likewise.
11004         (m68hc11_indirect_p): Likewise and check the mode.
11005         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
11006
11007 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11008
11009         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
11010         (expand_builtin_setjmp_setup): Use
11011         targetm.builtin_setjmp_frame_value instead of
11012         BUILTIN_SETJMP_FRAME_VALUE.
11013         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
11014         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
11015         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11016         * target.h (gcc_target): Add builtin_setjmp_frame_value.
11017         * targhooks.c (default_builtin_setjmp_frame_value): New.
11018         * targhooks.h: Add a prototype for
11019         default_builtin_setjmp_frame_value.
11020         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
11021         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11022
11023 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11024
11025         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
11026         sequences of moves.
11027         (add peepholes): New peepholes to optimize sequences adding small
11028         constants.
11029         (bset peepholes): New peepholes to transform an OR in a bset form
11030         (bclr peepholes): Likewise for bclr form.
11031         (cmp peepholes): New peepholes to avoid register copies when comparing.
11032
11033 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11034
11035         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
11036         to separate push from moves.
11037         ("*pushdf_internal"): Likewise.
11038         ("*pushsf_internal"): Likewise.
11039         ("*pushsi_internal"): Likewise.
11040         ("movdi_internal"): Use define_insn_and_split; non push operand.
11041         ("movdf_internal"): Likewise.
11042         ("movsf_internal"): Likewise.
11043         ("movsi_internal"): Likewise.
11044         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
11045         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
11046         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
11047
11048 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11049
11050         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
11051         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
11052         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
11053         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
11054         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
11055         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
11056         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
11057         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
11058         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
11059         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
11060         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
11061
11062 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11063
11064         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
11065         (SOFT_XY_REGNUM): Define.
11066         (cmp split): Use the above instead of hard coded numbers.
11067         (8-bit op split): No need to check the mode; allow Q_REG.
11068         (ashift split): Adjust the first operand if it uses the SP and we
11069         are pushing the shifted value.
11070         (plus shift split): Fix when a source is in register D+X.
11071         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
11072
11073 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11074
11075         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
11076         comparing with Z register.
11077
11078 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11079
11080         * cfgloop.h (struct loop_desc): Removed.
11081         (struct loop): Fields simple, desc and has_desc removed.
11082         (simple_loop_p, count_loop_iterations): Declaration removed.
11083         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
11084         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
11085         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
11086         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
11087         simple_loop_exit_p, variable_initial_value, variable_initial_values,
11088         simple_condition_p, simple_increment, count_strange_loop_iterations,
11089         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
11090         Removed.
11091         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
11092
11093 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11094
11095         * genattrtab.c: Don't handle MATCH_INSN.
11096         * genrecog.c: Likewise.
11097         * gensupport.c: Likewise.
11098         * rtl.def (match_insn): Remove.
11099         * doc/md.texi (match_insn, match_insn2): Remove.
11100
11101 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
11102
11103         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
11104         macro results in memory allocation.
11105
11106 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
11107
11108         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
11109         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
11110         %(fbsd_dynamic_linker),
11111         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
11112         config/i386/freebsd.h
11113         * config/arm/freebsd.h: Ditto.
11114         * config/i386/freebsd.h: Ditto.
11115         * config/i386/freebsd64.h: Ditto.
11116         * config/ia64/freebsd.h: Ditto.
11117         * config/rs6000/sysv4.h: Ditto.
11118         * config/sparc/freebsd.h: Ditto.
11119
11120 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
11121
11122         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
11123
11124 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11125
11126         * rtl.def (define_combine): Remove.
11127
11128 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11129
11130         * config/h8300/h8300.md: Tweak formatting.
11131
11132 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11133
11134         * config/h8300/h8300.md (*cmphi_h8300): Rename to
11135         *cmphi_h8300_znvc.
11136         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
11137
11138 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
11139
11140         PR bootstrap/14356
11141         * gcc.c (process_command): Remove const-qualification from argv.
11142         (main): Likewise.
11143
11144 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11145
11146         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
11147         pushqi1_h8300hs_advanced.  Adjust its caller.
11148         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
11149         Adjust its caller.
11150
11151 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
11152
11153         * Makefile.in (install-libgcc, install-multilib): Pass
11154         mkinstalldirs var to libgcc.mk.
11155
11156 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11157
11158         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
11159         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
11160
11161 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11162
11163         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
11164         * config/h8300/h8300.md: Split several peephole2's, each into
11165         two.
11166
11167 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11168
11169         * dominance.c (recount_dominator): Handle postdominators.
11170
11171 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11172
11173         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
11174         (NUM_SYMBOL_TYPES): Likewise.
11175         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
11176         (mips_unspec_address): Declare.
11177         (mips_gotoff_page, mips_gotoff_global): Delete.
11178         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
11179         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
11180         (mips_symbolic_constant_p, mips_symbolic_address_p)
11181         (mips_symbol_insns): Handle new symbol types.
11182         (general_symbolic_operand): New predicate.
11183         (mips_unspec_address): Make extern.
11184         (mips_gotoff_page, mips_gotoff_global): Delete.
11185         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
11186         Handle new symbol types.
11187         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11188         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11189         mips_unspec_address directly.
11190         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11191         the documentation of -mexplicit-relocs.
11192
11193 2004-03-01  Jeff Law  <law@redhat.com>
11194
11195         * fold-const.c (fold): An equality comparison of a non-weak object
11196         against zero has a known result.  Similarly an equality comparison
11197         of the address of two non-weak, unaliased symbols has a known result.
11198
11199         * ggc-page.c (struct page_entry): New field PREV.
11200         (ggc_alloc): Update PREV field appropriately.
11201         (sweep_pages): Likewise.
11202         (ggc_free): Likewise.  Use PREV field rather than loop to
11203         improve ggc_free performance.
11204
11205 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11206
11207         * config/mips/mips.c (mips_output_division): Use the division
11208         instruction to fill the delay slot of a zero check.
11209         (mips_idiv_insns): Adjust accordingly.
11210
11211 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
11212
11213         * config.gcc: Create a default tmake_file for linux, and use
11214         it in all but two linux clauses.  Comment those two.
11215
11216 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
11217
11218         * combine.c (try_combine):  Do not refer to is_replaced.
11219         (gen_lowpart_for_combine):  Perverse subregs now have a
11220         more politically correct name.
11221         * cse.c (cse_insn): Likewise.
11222         * jump.c: Fix bogus reference to delete_insn.
11223
11224 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
11225
11226         PR debug/14328
11227         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11228         constants as signed values.
11229
11230         PR middle-end/13448
11231         * c-tree.h (readonly_warning): Rename to ...
11232         (readonly_error): ... this.
11233         * c-typeck.c (build_unary_op): Adjust accordingly.
11234         (readonly_warning): Rename to ...
11235         (readonly_error): ... this and issue errors, not warnings.
11236         (build_modify_expr): Call readonly_error, not readonly_warning.
11237         (c_expand_asm_operands): Likewise.
11238         * tree-inline.c (optimize_inline_calls): Do not inline functions
11239         after errors have occurred.
11240
11241 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11242
11243         * configure.ac: Rearrange some threading code for clarity;
11244         add section comment.
11245         * configure: Regenerate.
11246
11247 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11248
11249         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11250         typos.
11251         * doc/cppopts.texi: Fix a typo.
11252
11253 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11254
11255         * config/i386/i386.md: Fix formatting.
11256
11257 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11258
11259         * configure.ac: Add some comments delineating sections of code.
11260
11261         * doc/install.texi: Note that libada uses autoconf 2.57 also.
11262
11263         * doc/install.texi: Fix idiot typo in previous commit.
11264
11265         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11266
11267 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11268
11269         * config/h8300/h8300.md: Add comments about peephole2's.
11270
11271 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11272
11273         * config/h8300/h8300.md: Tweak operand numbers of some
11274         peephole2's.
11275
11276 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11277
11278         * config/h8300/h8300.md: Tweak comments about peephole2's.
11279
11280 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
11281
11282         PR middle-end/14203
11283         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11284         instead of testing whether DECL_RTL is not NULL.
11285
11286 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11287
11288         * config/sh/sh.c: Fix formatting.
11289
11290 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11291
11292         * config/sh/sh.c: Convert to ISO-C.
11293
11294 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
11295
11296         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11297         my previous patch.
11298
11299         * config/darwin.h (machopic_finish): Output stub even if the
11300         symbol is already defined.
11301
11302 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11303
11304         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11305
11306 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11307
11308         * genattr.c (main): Don't define
11309         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11310         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11311         (DFA_PIPELINE_INTERFACE): Likewise.
11312         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11313         (DFA_PIPELINE_INTERFACE): Likewise.
11314
11315 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11316
11317         * config/mips/mips.md (tstsi, tstdi): Delete.
11318
11319 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11320
11321         * config/mips/mips.c (override_options): Remove an obsolete
11322         duplicate definition of the "e" constraint.
11323         * config/mips/mips.h: Update a comment accordingly.
11324
11325 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11326
11327         * config/mips/mips.md: Complete the unfinished R4000
11328         multiply/shift errata workaround.  Improve documentation.
11329         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11330         has a hilo hazard.
11331         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11332         (muldi3, muldi3_internal): Likewise.
11333         (muldi3_internal2): Remove, replacing with...
11334         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11335         (mulsidi3): Take the errata into account.
11336         (mulsidi3_32bit): Remove, replacing with...
11337         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11338         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11339         (umulsidi3): Take the errata into account.
11340         (umulsidi3_32bit): Remove, replacing with..
11341         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11342         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11343         TARGET_FIX_R4000.
11344         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11345         (smuldi3_highpart, umuldi3_highpart): Likewise.
11346         * doc/invoke.texi: Document the errata workaround.
11347
11348 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11349
11350         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11351         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11352         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11353         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11354         * config/mips/mips.c (mips_idiv_insns): New function.
11355         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11356         (mips_output_division): Add a workaround for the R4000 divide/shift
11357         errata.
11358         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11359         the length of an "idiv" instruction.
11360         * doc/invoke.texi: Document the new switches.
11361
11362 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11363
11364         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11365         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11366
11367 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11368
11369         PR optimization/14229
11370         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11371
11372 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11373
11374         * fold-const.c (fold): Strip NOPs that change the signedness
11375         for RSHIFT too.  Expand comment.
11376
11377 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11378
11379         PR optimization/7871
11380         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11381         from or to call insns.
11382
11383 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11384
11385         PR optimization/7871
11386         * flow.c (propagate_one_insn): Interpret calls as setting global
11387         registers, not merely clobbering them.
11388
11389 2004-02-27  Dale Johannesen  <dalej@apple.com>
11390
11391         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11392         config/darwin-protos.h:  Ditto.
11393         config/darwin.h:  Remove call to it.
11394         * combine.c (distribute_notes): Do not place a REG_DEAD note
11395         when value is both set and used.
11396
11397 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11398
11399         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11400         as well.
11401         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11402         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11403
11404 2004-02-27  Andrew Pinski  <apinski@apple.com>
11405
11406         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11407         Speedup common case of the type values being in the same order.
11408
11409 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11410
11411         * config/ia64/ia64.h (no-inline-float-divide): New option.
11412         * config/ia64/ia64.h (no-inline-int-divide): New option.
11413         * config/ia64/ia64.h (no-inline-sqrt): New option.
11414         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11415         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11416         * config/ia64/ia64.c (ia64_override_options): Modify error
11417         checking for inlined division/sqrt.
11418
11419 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11420
11421         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11422         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11423         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11424         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11425         copyright.
11426
11427 2004-02-27  Paul Brook  <paul@codesourcery.com>
11428
11429         * function.c (assign_parms): Don't count pretend args for alignment.
11430
11431 2004-02-27  Richard Henderson  <rth@redhat.com>
11432
11433         * passes.c: New file.
11434         * Makefile.in (OBJS-common): Add it.
11435         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11436         * flags.h (rtl_dump_and_exit): ... here.
11437         * output.h (size_directive_output, last_assemble_variable_decl):
11438         Move from toplev.c.
11439         * rtl.h (reg_alloc): Move from toplev.c.
11440         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11441         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11442         open_dump_file, close_dump_file, rest_of_decl_compilation,
11443         rest_of_type_compilation, rest_of_handle_final,
11444         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11445         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11446         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11447         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11448         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11449         rest_of_handle_tracer, rest_of_handle_if_conversion,
11450         rest_of_handle_if_after_combine, rest_of_handle_web,
11451         rest_of_handle_branch_prob,
11452         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11453         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11454         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11455         rest_of_handle_null_pointer, rest_of_handle_combine,
11456         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11457         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11458         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11459         (decode_d_option): Use enable_rtl_dump_file.
11460         (compile_file, finalize, do_compile): Move profile+combine+graph
11461         cleanup to finish_optimization_passes.
11462         * toplev.h (init_optimization_passes, finish_optimization_passes,
11463         enable_rtl_dump_file): Declare.
11464
11465 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11466             Roger Sayle  <roger@eyesopen.com>
11467
11468         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11469         operands to build a tree with swapped operands.
11470         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11471         'unsignedp' predicate to specify the signedness.
11472
11473 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11474
11475         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11476         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11477         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11478         comment typos and formatting.  Follow spelling conventions.
11479
11480 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11481
11482         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11483         fix_truncsfsi2.
11484
11485         * config/rs6000/spe.md: Delete spe_efsctuiz.
11486         Add spe_fixuns_truncsfsi2.
11487         Add spe_fix_truncsfsi2.
11488
11489 2004-02-26  Eric Christopher  <echristo@redhat.com>
11490
11491         * c-lex.c (c_lex_string_translate): New variable.
11492         (lex_string): Use to determine string translation.
11493         * c-pragma.h: Prototype.
11494         * c-parse.in (start_string_translation): New. Set above.
11495         (stop_string_translation): Ditto.
11496         (attribute, attribute_list, asm_def, asm_stmt,
11497         asm_operand): Use above functions.
11498         * cp/parser.c (cp_parser_declaration): Translate strings
11499         unless token is RID_EXTERN. Set c_lex_string_translate
11500         for recursive use.
11501         (cp_parser_asm_definition): Only translate argument strings
11502         to asms.
11503         (cp_parser_asm_operand_list): Ditto.
11504         (cp_parser_attribute_list): Do not translate attribute strings.
11505
11506 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11507
11508         * stmt.c (expand_start_case_dummy): Remove.
11509         * tree.h: Remove the corresponding prototype.
11510
11511 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11512
11513         * builtins.c (apply_args_register_offset): Remove.
11514         * tree.h: Remove the corresponding prototype.
11515
11516 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11517
11518         * stor-layout.c (is_pending_size): Remove.
11519         * tree.h: Remove the corresponding prototype.
11520
11521 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11522
11523         * recog.c (validate_replace_src): Remove.
11524         * recog.h: Remove the corresponding prototype.
11525
11526 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11527
11528         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11529         MAYBE_REG_PARM_STACK_SPACE.
11530         * function.c: Likewise.
11531         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11532         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11533         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11534         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11535
11536 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11537
11538         * c-decl.c (c_expand_deferred_function): Remove.
11539         * c-tree.h: Remove the corresponding prototype.
11540
11541 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11542
11543         * postreload.c (reload_cse_move2add): Generate just a PLUS
11544         instead of an entire SET.
11545
11546 2004-02-26  Jan Hubicka  <jh@suse.cz>
11547
11548         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11549         /pentium4m.
11550         * i386.c (override_options): Add support for new CPUs.
11551         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11552         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11553         constants.
11554         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11555
11556 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11557
11558         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11559
11560 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11561
11562         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11563         (sparc_emit_fixunsdi): New prototype.
11564         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11565         (sparc_emit_fixunsdi): New function.
11566         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11567         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11568         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11569         to sparc_emit_floatunsdi.
11570         (fixuns_truncsfdi2): New expander.
11571         (fixuns_truncdfdi2): Likewise.
11572
11573 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11574
11575         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11576         unless HAVE_cc0.
11577
11578 2004-02-25  Richard Henderson  <rth@redhat.com>
11579
11580         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11581         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11582         use (op0-op1) == 0 if op0 is a pointer.
11583         * config/alpha/alpha.md (cmpdi): Use some_operand.
11584         (three comparison combine splits): Remove.
11585
11586 2004-02-25  Richard Henderson  <rth@redhat.com>
11587
11588         PR c/12794
11589         * c-common.c (handle_alias_attribute): Reject the attribute if
11590         current_function_decl is set.
11591
11592 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11593
11594         * config.gcc: Add comment describing extra_gcc_objs.
11595         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11596         * configure.ac (extra_gcc_objs): New substitution variable.
11597         (host_extra_gcc_objs): Don't substitute.
11598         * configure: Regenerate.
11599         * Makefile.in: Use extra_gcc_objs.
11600
11601 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11602
11603         * doc/contrib.texi: Add an entry for myself.
11604
11605 2004-02-25  Jan Hubicka  <jh@suse.cz>
11606
11607         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11608         * cfgbuild.c (make_eh_edge):  Make global.
11609         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11610         * except.c (build_post_landing_pads, connect_post_landing_pads,
11611         dw2_build_landing_pads, sjlj_emit_function_enter,
11612         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11613         sjlj_build_landing_pads): Update CFG.
11614         (emit_to_new_bb_before): New function.
11615         (finish_eh_generation): Do not rebuild the CFG.
11616
11617 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11618
11619         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11620         target_cpu_default defines.
11621         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11622         * pa.h (TARGET_DEFAULT): Likewise.
11623
11624 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11625
11626         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11627         comparisons with regard to signedness.
11628
11629 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11630
11631         * arm.c (thumb_legitimize_address): New function.
11632         * arm-protos.h: Prototype it.
11633         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11634         (LEGITIMIZE_ADDRESS): Use it.
11635
11636 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11637
11638         * reload1.c (reload): Only spill eliminable register with multiple
11639         adjacent elimination alternatives if all alternatives fail.
11640
11641 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11642
11643         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11644         is -4095...+4095 inclusive.
11645
11646 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11647
11648         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11649         the bootstrap failure with Sun CC 5.4 and 5.5.
11650
11651 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11652
11653         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11654         which modifies NEWREG.
11655         (cse_condition_code_reg): Update the mode of CC_REG in
11656         CC_SRC_INSN on our own.
11657
11658 2004-02-24  Michael Matz  <matz@suse.de>
11659
11660         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11661         regparm attributes.
11662
11663 2004-02-24  Richard Henderson  <rth@redhat.com>
11664
11665         * toplev.c (dump_file_tbl): Rename from dump_file.
11666         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11667         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11668         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11669         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11670         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11671         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11672         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11673         s/rtl_dump_file/dump_file/g.
11674
11675 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11676
11677         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11678         (spe_fixuns_truncsfsi2): Delete.
11679
11680         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11681         (fixuns_truncsfsi2): Delete.
11682
11683 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11684
11685         PR/14240
11686         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11687
11688 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11689
11690         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11691
11692 2004-02-24  Jason Merrill  <jason@redhat.com>
11693
11694         * tree.c (check_qualified_type): New fn.
11695         (get_qualified_type): Use it.  If type already has the desired
11696         quals, just return it.
11697         * tree.h: Declare it.
11698
11699 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11700
11701         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11702         TARGET_SCHED_FINISH_GLOBAL): New macros.
11703
11704         * target.h (md_init_global, md_finish_global): Function
11705         declarations corresponding to new target macros.
11706
11707         * haifa-sched.c (sched_init, sched_finish): Allow target to
11708         call the new schedular hooks.
11709
11710         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11711         call to update_life_info.
11712
11713         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11714         flag_schedule_insns for SH4.
11715
11716         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11717         find_set_regmode_weight, find_insn_regmode_weight,
11718         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11719         sh_variable_issue, high_pressure, ready_reorder,
11720         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11721         functions used to throttle the insn movement in first
11722         scheduling pass for SH.
11723
11724         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11725         TARGET_SCHED_FINISH_GLOBAL.
11726
11727 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11728
11729         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11730         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11731         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11732         symbols in sections named by the user.
11733         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11734         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11735         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11736         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11737         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11738         the above.
11739         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11740         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11741         one more pseudo to further improve code generation.
11742         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11743         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11744         inside UNSPEC.
11745         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11746         * config/frv/frv.c (frv_legitimate_address_p): Added
11747         allow_double_reg_p argument.  Adjust all callers.  Use it to
11748         decide whether to enable double-register indirect addressing.
11749         (frv_funcdesc_alias_set): Remove.
11750         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11751         register.  Emit movdi_ldd.
11752         (ldd_address_operand): New.
11753         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11754         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11755         (PREDICATE_CODES): Add ldd_address_operand.
11756         * config/frv/frv.md (movdi_ldd): New.
11757         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11758         intermediate computations if possible.
11759         (symGOTOFF2reg_i): Fix harmless typo.
11760         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11761         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11762         relocated p_vaddr to vaddr type.
11763         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11764         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11765         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11766         MEM, or use a funcdesc alias set.  Use regular move instead of
11767         ldd.
11768         (dbl_memory_one_insn_operand): Recognize function descriptors by
11769         type or by alias set, and don't split them.
11770         * config/frv/frv.md (call, call_value): Never use call_internal
11771         for fdpic.
11772         (call_internal, call_value_internal): Never match for FDPIC.
11773         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11774         call_value_fdpicsi): Require FDPIC.
11775         (ldd): Removed.
11776         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11777         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11778         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11779         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11780         FDPIC.  Compute data base address.
11781         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11782         before the other self-specs are processed.
11783         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11784         Build with -fPIC.
11785         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11786         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11787         inhibit_libc is defined.
11788         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11789         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11790         __FRV_FDPIC__.
11791         (__RELOC_POINTER): Define.
11792         (_Unwind_IteratePhdrCallback): Use it.
11793         * config/frv/frv.h (Twrite): Define.
11794         (TRANSFER_FROM_TRAMPOLINE): Use it.
11795         * config/frv/linux.h (INVOKE__main): Undefine.
11796         (Twrite): Override.
11797         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11798         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11799         (-mlibrary-pic): Emphasize that this option generates EABI code.
11800         (-mcpu): Add fr550.
11801         (-mpack): Remove.
11802         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11803         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11804         and CONSTs in FDPIC mode.
11805         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11806         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11807         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11808         constants.
11809         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11810         rather than 'i' constraint for the 2-instruction alternative.
11811         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11812         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11813         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11814         EXTRA_CONSTRAINT_FOR_Y.
11815         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11816         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11817         (addsi3): Change 'Y' constraint to 'Q'.
11818         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11819         * reload.c (CONST_POOL_OK_P): New macro.
11820         (find_reloads): Use it to decide whether a constant can be forced
11821         into memory.
11822         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11823         constant satisfies got12_operand.
11824         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11825         (frv_legitimate_address_p): Check for valid unspec offsets using
11826         got12_operand rather than frv_legitimate_fdpic_operand_p.
11827         (frv_legitimate_fdpic_operand_p): Delete.
11828         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11829         or after reload.
11830         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11831         TARGET_FDPIC.
11832         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11833         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11834         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11835         (frv_fdpic_fptr_operand): Don't declare here.
11836         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11837         rather than fdpic_got12_operand.
11838         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11839         got12_operand and const_unspec_operand.
11840         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11841         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11842         (symbolic_operand): Remove.
11843         (const_unspec_operand): New predicate.
11844         * config/frv/frv.md (*movsi_got): Use got12_operand.
11845         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11846         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11847         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11848         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11849         * config/frv/frv.c (frv_unspec): New structure.
11850         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11851         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11852         validate CONST indices.  Use frv_output_const_unspec to print them.
11853         (frv_print_operand): Update call to unspec_got_name.  Use
11854         frv_output_const_unspec to print constant unspecs.
11855         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11856         Reject UNSPECs otherwise.
11857         (unspec_got_name): Take the relocation number as argument, not an
11858         rtx containing it.
11859         (frv_output_addr_const_extra): Remove, replacing with...
11860         (frv_output_const_unspec): ...this new function.
11861         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11862         (gpr_or_int12_operand): Use fdpic_got12_operand.
11863         (dbl_memory_one_insn_operand): Likewise.
11864         (fdpic_got12_operand): Use frv_const_unspec_p.
11865         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11866         are already legitimate.  Use frv_small_data_reloc_p when deciding
11867         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11868         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11869         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11870         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11871         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11872         label, for real this time.
11873         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11874         representation of visibility.
11875         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11876         such.
11877         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11878         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11879         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11880         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11881         it was explicitly disabled.
11882         (frv_stack_info): There is no need to save the link register in every
11883         frame unless TARGET_LINKED_FP is true.
11884         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11885         frame pointer if the stack pointer might change value.
11886         (frv_return_addr_rtx): Check and process "count" argument.
11887         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11888         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11889         (frv_find_base_term): Declare.
11890         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11891         (FIND_BASE_TERM): Define.
11892         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11893         small_data_register_operand, small_data_symbolic_operand.  Add
11894         symbolic_operand.
11895         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11896         (frv_print_operand_memory_reference, output_move_single): Remove
11897         special handling for unlegitimized sdata addresses.
11898         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11899         and symbolic addresses.
11900         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11901         (frv_find_base_term): New function.
11902         (int_2word_operand): Check specifically for symbolic address constants.
11903         (pic_register_operand, pic_symbolic_operand): Delete.
11904         (small_data_register_operand, small_data_symbolic_operand): Delete.
11905         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11906         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11907         (move_source_operand): Only accept CONSTs if they're a two-insn
11908         symbolic constant.
11909         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11910         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11911         using gen_symGOTOFF2reg*.
11912         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11913         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11914         themselves a cost of 3 insns.
11915         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11916         Change predicate to symbolic_operand.
11917         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11918         (*movsi_lda_sdata): Delete.
11919         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11920         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11921         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11922         frv-*-*linux*.
11923         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11924         label.
11925         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11926         -multilib-library-pic.
11927         (LINK_SPEC): Add -z text for -mfdpic.
11928         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11929         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11930         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11931         Override.
11932         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11933         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11934         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11935         crtstuff-generated files.
11936         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11937         * config.gcc: Add frv-*-*linux*.
11938         * config/frv/linux.h, config/frv/t-linux: New.
11939         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11940         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11941         when -mfdpic even if a linker script is explicitly listed.
11942         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11943         * config/frv/frv.c (frv_override_options): Clear asm_out
11944         unaligned_op for SImode on FDPIC.
11945         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11946         argument passed to decl_readonly_section.
11947         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11948         whole block run with FDPIC even with -fno-PIC.
11949         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11950         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11951         symbol or label plus offset to memory.
11952         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11953         GOTOFF and GPREL for LABEL_REF.
11954         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11955         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11956         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11957         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11958         * doc/invoke.texi: Document them.
11959         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11960         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11961         (frv_splittable_got_operand): Removed.
11962         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11963         LO_SUM.  Add comments.
11964         (frv_override_options): Moved enabling of FDPIC to
11965         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11966         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11967         (frv_legitimize_fdpic_address): Don't duplicate logic in
11968         frv_emit_movsi.
11969         (frv_gen_GPsym2reg): New.
11970         (unspec_got_name): Added gprel.
11971         (frv_expand_fdpic_call): Add support for inlining PLTs.
11972         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11973         (gpr_or_int12_operand): Added GPREL12.
11974         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11975         (small_data_symbolic_operand): Fail if FDPIC.
11976         (fdpic_splittable_got_operand): Removed.
11977         (fdpic_got12_operand): Added GPREL12.
11978         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11979         when appropriate.  Fix sdata GOTOFF.
11980         (frv_legitimate_constant_p): Require legitimate PIC operand for
11981         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11982         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11983         flag_pic case.
11984         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11985         frv_assemble_integer fails.
11986         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11987         (SUBTARGET_DRIVER_SELF_SPECS): New.
11988         (ASM_SPEC): Don't pass -mno-fdpic.
11989         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11990         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11991         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11992         -multilib-library-pic.
11993         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11994         condexec_si_media_operator, condexec_sf_add_operator and
11995         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11996         and condexec_sf_unary_operator.
11997         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11998         New.
11999         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
12000         movsi_internal.  Give them internal names.  movsi_got has type
12001         int.
12002         (fdpic got splitters): Remove.
12003         (symGPREL2reg, symGPREL2reg_hilo): New.
12004         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
12005         to -mlibrary-pic.  Map -multilib-library-pic to it.
12006         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
12007         Document.
12008         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
12009         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
12010         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
12011         (frv_cannot_force_const_mem): New function.
12012         (const_small_data_p, plus_small_data_p): Update comments on sdata
12013         on FDPIC.
12014         (frv_override_options): Set flag_pie for FDPIC too.
12015         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
12016         call-saved registers on FDPIC.
12017         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
12018         don't force LR to be preserved.
12019         (frv_expand_prologue): Likewise.
12020         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
12021         (frv_frame_pointer_required): Don't force it just because the
12022         FDPIC register is used.
12023         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
12024         operand only if !condexec_p.
12025         (frv_legitimize_address): Return the FDPIC-legitimized address.
12026         Don't match small data here on FDPIC.
12027         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
12028         symbols.  Use TRUE/FALSE instead of 1/0.
12029         (frv_local_funcdesc_p): New.
12030         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
12031         immediates when possible.
12032         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
12033         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
12034         an UNSPEC_GOT.
12035         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
12036         12-bit immediates when possible.
12037         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
12038         are not legitimate pic operands.
12039         (frv_in_small_data_p): Re-enable for FDPIC.
12040         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
12041         (FRV_GLOBAL_P): Removed.
12042         * config/frv/frv.md: Add modes to CONSTs.
12043         (movsi_got): New.
12044         (movsi_lo_sum_got): Use separate matches instead of match_dup.
12045         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
12046         (fdpic splittable operations): Match on flag_pic != 1.
12047         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
12048         * config/frv/frv.c (frv_asm_out_constructor,
12049         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
12050         bytes, not bits.
12051         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
12052         * config/frv/frv.c (frv_assemble_integer): Reject complex
12053         expressions referencing function SYMBOL_REFs.
12054         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
12055         (move_source_operand): Reject CONSTs that reference function
12056         SYMBOL_REFs on FDPIC.
12057         (frv_emit_movsi): If we get such a CONST, break it up.
12058         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
12059         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
12060         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
12061         MEM.
12062         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
12063         (frv_trampoline_size): Increase for FDPIC.
12064         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
12065         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
12066         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
12067         Disable use of GOTOFF for now.
12068         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
12069         Disable use of small data in FDPIC for now.
12070         (frv_asm_output_mi_thunk): Implement for FDPIC.
12071         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
12072         * config/frv/frv.c (frv_asm_out_constructor): Use
12073         frv_assemble_integer for FDPIC pointers.
12074         (frv_asm_out_destructor): Likewise.
12075         * config/frv/frv.md (ldd): Fix order of operands.  Use
12076         address_operand for input.
12077         2003-09-18  DJ Delorie  <dj@redhat.com>
12078         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
12079         (unspec_got_name): Correct typo.
12080         (frv_emit_movsi): Pre-expand splittable GOTs.
12081         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
12082         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
12083         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
12084         * config/frv/t-frv: Add -mfdpic multilibs.
12085         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
12086         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
12087         * config/frv/frv.c (frv_override_options): -mfdpic assumes
12088         flag_pic, default to 32-bit pics, require DWORD ops.
12089         (frv_override_options): Add W and Z constraints.
12090         (frv_expand_prologue): No pic prologue for -mfdpic.
12091         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
12092         (frv_print_operand_memory_reference): Handle GOT constants.
12093         (frv_legitimate_address_p): Allow GOT constants.
12094         (frv_legitimize_address): Handle GOT addresses too.
12095         (frv_legitimate_fdpic_operand_p): New.
12096         (frv_legitimize_fdpic_address): New.
12097         (unspec_got_name): New.
12098         (frv_output_addr_const_extra): New.
12099         (frv_expand_fdpic_call): New.
12100         (frv_fdpic_fptr_operand): New.
12101         (gpr_or_int12_operand): Handle GOT operands.
12102         (int_2word_operand): Handle GOT operands.
12103         (fdpic_operand): New.
12104         (fdpic_splittable_got_operand): New.
12105         (fdpic_got12_operand): New.
12106         (frv_emit_movsi): Handle GOT operands.
12107         (frv_assemble_integer): -mfdpic doesn't use rofixups.
12108         (frv_print_operand): Support 'g' code for GOT operands.
12109         * config/frv/frv-protos.h: Add prototypes as needed.
12110         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
12111         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
12112         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
12113         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
12114         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
12115         R_FRV_GOTOFFLO): New.
12116         (movsi_high_got, movsi_lo_sum_got): New.
12117         (*movsi_pic): Don't use this splitter for -mfdpic.
12118         (addsi3): Allow GOT references also.
12119         (call, call_value): Handle -mfdpic separately.
12120         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
12121         call_value_fdpicsi): New.
12122         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
12123         symGOTOFF2reg_i): New.
12124         * config/frv/frv.h (MASK_FDPIC): New.
12125         (TARGET_FDPIC): New.
12126         (TARGET_SWITCHES): Add -mfdpic.
12127         (FDPIC_FPTR_REGNO): New.
12128         (FDPIC_REGNO): New.
12129         (OUR_FDPIC_REG): New.
12130         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
12131         FDPIC_CALL_REGS.
12132         (REG_CLASS_NAMES): Likewise.
12133         (REG_CLASS_CONTENTS): Likewise.
12134         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
12135         (EXTRA_CONSTRAINT): Add it here.
12136         (FRV_GLOBAL_P): New.
12137         (OUTPUT_ADDR_CONST_EXTRA): New.
12138
12139 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12140
12141         * config/sparc/sparc.h: Remove commented-out definitions of
12142         TARGET_EDOM and GEN_ERRNO_RTX.
12143
12144 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12145
12146         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
12147         df_analyse with df_analyze.
12148
12149 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
12150
12151         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
12152         beginning of block.
12153
12154 2004-02-23  James E Wilson  <wilson@specifixinc.com>
12155
12156         * calls.c (precompute_arguments): Update comment.
12157
12158 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12159
12160         * et-forest.c: Replace et_occurences with et_occurrences.
12161
12162 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12163
12164         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
12165         with iv_analyze.
12166
12167 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
12168
12169         * config/i386/i386.c: Rename pni to sse3.
12170         * config/i386/i386.h: Likewise.
12171         * config/i386/i386.md: Likewise.
12172         * config/i386/pmmintrin.h: Likewise.
12173         * doc/extend.texi: Likewise.
12174         * doc/invoke.texi: Likewise.
12175
12176 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
12177             Kazu Hirata  <kazu@cs.umass.edu>
12178
12179         Remove -fwritable-strings.
12180         * c-common.c (fix_string_type): Don't check
12181         flag_writable_strings.
12182         (fix_string_type): Likewise.
12183         * c-opts.c (set_std_c89): Don't initialize
12184         flag_writable_strings.
12185         (set_std_c99): Likewise.
12186         * common.opt (fwritable-strings): Remove.
12187         * flags.h: Remove the external declaration of
12188         flag_writable_strings.
12189         * opts.c (common_handle_option) <OPT_fwritable_strings>:
12190         Remove.
12191         * toplev.c (flag_writable_strings): Remove.
12192         (f_options): Remove an entry for writable-strings.
12193         * varasm.c (const_hash_1) <STRING_CST>: Don't check
12194         flag_writable_strings.
12195         (compare_constant) <STRING_CST>: Likewise.
12196         (build_constant_desc): Likewise.
12197         * config/darwin.c (machopic_select_section): Likewise.
12198         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12199         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12200         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12201         * config/mips/mips.c (mips_select_section): Likewise.
12202         (mips_encode_section_info): Likewise.
12203         * config/pa/pa.c (pa_select_section): Likewise.
12204         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12205         * config/v850/v850.c (v850_select_section): Likewise.
12206         * doc/invoke.texi (-fwritable-strings): Remove.
12207         (-fno-const-strings): Don't mention -fwritable-strings.
12208         * doc/trouble.texi: Don't mention -fwritable-strings.
12209
12210 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
12211
12212         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12213
12214 2004-02-23  Dale Johannesen  <dalej@apple.com>
12215
12216         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12217         (movdf_hardfloat64):  Ditto.
12218         (movdf_softfloat64):  Ditto.
12219
12220 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
12221         * config/rs6000/rs6000.c (function_arg): call to
12222         rs6000_mixed_function_arg for DFmode moved to allow
12223         normal DFmode incoming register assignment.
12224
12225 2004-02-23  Dale Johannesen  <dalej@apple.com>
12226
12227         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12228         (movdf_hardfloat64):  Ditto.
12229
12230 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12231
12232         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12233         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12234         copyright.
12235
12236 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
12237
12238         PR c/14156
12239         * c-typeck.c (c_expand_return): Change check for VAR_DECL
12240         to use DECL_P instead.
12241
12242         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12243         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12244
12245 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12246
12247         * Makefile.in (opts.o): Depend on target.h.
12248         * opts.c (decode_options): Use targetm.default_short_enums
12249         instead of DEFAULT_SHORT_ENUMS.
12250         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12251         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12252         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12253         * target.h (gcc_target): Add default_short_enums.
12254         * config/cris/cris.h: Remove a comment about
12255         DEFAULT_SHORT_ENUMS.
12256         * config/ip2k/ip2k.h: Likewise.
12257         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12258         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
12259
12260 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12261             Falk Hueffner  <falk@debian.org>
12262
12263         PR c/14188
12264         * builtins.c (expand_builtin_va_arg): Emit an informative message
12265         if a trap is generated.
12266         * c-typeck.c (build_function_call): Likewise.
12267
12268 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12269
12270         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12271         fopen.
12272         * libgcov.c: Include sys/stat.h.
12273         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12274         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12275         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12276         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12277
12278 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12279
12280         * reorg.c: Remove comments about dead ports.
12281
12282 2004-02-22  Christopher Faylor  <cgf@redhat.com>
12283
12284         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12285         extra host object file when targetting cygwin rather than generic
12286         object files.
12287
12288 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
12289
12290         Merge from tree-ssa:
12291         2003-11-20  Richard Henderson  <rth@redhat.com>
12292
12293                 * tree-inline.c (insert_decl_map): New.
12294                 (remap_decl, remap_type, remap_block, copy_body_r,
12295                 initialize_inlined_parameters, declare_return_variable,
12296                 remap_save_expr): Use it.
12297
12298         * function.c (copy_body_r): Add mapping from id->ret_label to
12299         id->ret_label.  Revert test for ret_label.
12300
12301 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12302
12303         * genoutput.c (process_template): Strip trailing whitespace in @
12304         templates and issue a warning if there was any.
12305
12306 2004-02-21  Christopher Faylor  <cgf@redhat.com>
12307
12308         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12309         object file when targetting cygwin.
12310         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12311         overridden by top-level Makefile.
12312
12313 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12314
12315         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12316         the x87's load constant instructions when optimizing for size.
12317
12318 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12319
12320         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12321         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12322         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12323         * fold-const.c: Likewise.
12324         * simplify-rtx.c: Likewise.
12325
12326 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12327
12328         * combine.c (can_combine_p): Don't ignore SETs marked with
12329         REG_EH_REGION notes.
12330         (try_combine): When attemting to fix unrecognized insns, don't
12331         split a PARALLEL that contains the original i2.
12332
12333 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12334
12335         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12336         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12337         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12338         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12339         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12340         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12341         portion of header.
12342         (__altivec_link_error_invalid_argument): Remove prototype; will use
12343         __builtin_altivec_compiletime_error("vec_*") instead.
12344         (vec_*): Fix/complete set of available operation overloads given the
12345         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12346         cv-correctness of pointer arguments; in C, always check for correct
12347         argument types before macro expansion.
12348         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12349         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12350         '-W[no-]altivec-long-deprecated' switches.
12351         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12352         '__vector', '__pixel' and '__bool' macros using
12353         '__attribute__((altivec(...)))' types.
12354         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12355         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12356         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12357         New type nodes.
12358         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12359         handling '-W[no-]altivec-long-deprecated'.
12360         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12361         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12362         altivec_expand_dst_builtin): Remove casts from integer literals.
12363         (altivec_expand_builtin): Likewise; handle expansion of new
12364         '__builtin_altivec_compiletime_error' function.
12365         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12366         types, and make them distinct from other vector types; register
12367         '__builtin_altivec_compiletime_error' function.
12368         (print_operand): For 'P', print a full target register name instead of
12369         merely its number.
12370         (rs6000_attribute_table): Add "altivec" attribute.
12371         (rs6000_handle_altivec_attribute): New function.
12372         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12373         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12374         maps to).
12375         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12376         declare.
12377         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12378
12379 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12380
12381         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12382         check.
12383         (shift_mix4left+2): Delete redundant pattern.
12384
12385 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12386
12387         * alias.c (OUTGOING_REGNO): Don't define the default.
12388         * builtins.c (OUTGOING_REGNO): Likewise.
12389         (INCOMING_REGNO): Likewise.
12390         (apply_args_register_offset): Always use OUTGOING_REGNO.
12391         * combine.c (OUTGOING_REGNO): Likewise.
12392         * sibcall.c (OUTGOING_REGNO): Likewise.
12393         * defaults.h (INCOMING_REGNO): Provide the default.
12394         (OUTGOING_REGNO): Likewise.
12395
12396 2004-02-21  Jan Hubicka  <jh@suse.cz>
12397
12398         * params.def (max-peeled-insns, max-completely-peeled-insns,
12399         max-once-peeled-insns): Set to 400.
12400
12401 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12402
12403         PR c++/12007
12404         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12405         are set for parameters before outputing debugging information.
12406
12407 2004-02-20  Falk Hueffner  <falk@debian.org>
12408
12409         PR target/14201
12410         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12411         numbers.
12412
12413 2004-02-20  Per Bothner  <per@bothner.com>
12414
12415         * input.h:  Don't #include line-map.h.  It may cause link problems
12416         with undefined linemap_line_start when line-map.h is included but
12417         line-map.o is not linked, as currently happens with gengtype on
12418         compilers that don't support inline.
12419         * toplev.c:  So we do have to explicitly #include line-map.h here.
12420
12421 2004-02-20  Richard Henderson  <rth@redhat.com>
12422
12423         * doc/invoke.texi: Add -Wvariadic-macros.
12424
12425 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12426
12427         * haifa-sched.c (sched_emit_insn): Remove.
12428         * sched-int.h: Remove the corresponding prototype.
12429
12430 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12431
12432         Revert:
12433         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12434         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12435         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12436         * config/cris/cris.h: Remove a comment about
12437         DEFAULT_SHORT_ENUMS.
12438         * config/ip2k/ip2k.h: Likewise.
12439         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12440
12441 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12442             Tom Tromey  <tromey@redhat.com>
12443
12444         * doc/install.texi: Moved --disable-libgcj and
12445         --with-system-zlib documentation to new section for
12446         Java-specific options.
12447         Added explicit Cross-Compiler-Specific Options subheading.
12448         Added section for Java-specific options.
12449
12450 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12451
12452         * doc/install.texi (Building the Ada compiler): Remove
12453         example.
12454
12455 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12456
12457         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12458
12459 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12460
12461         * gcc.c (process_command): Allow translation of the copyright
12462         symbol but not the rest of the copyright message.
12463         * gcov.c (print_version): Likewise.  Allow translation of the
12464         message about warranty.
12465
12466 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12467
12468         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12469         predicate.
12470         ("*andsi_clear"): Tweak constraints to not match postincrement.
12471         Adjust the predicate to exclude a volatile memory reference.
12472         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12473         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12474
12475 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12476
12477         * move-if-change: Remove.
12478         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12479         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12480         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12481         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12482         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12483         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12484
12485 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12486
12487         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12488         for operand2.  Add condition that requires register_operand operand2
12489         before reload.
12490
12491 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12492             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12493
12494         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12495         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12496
12497 2004-02-19  Richard Henderson  <rth@redhat.com>
12498
12499         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12500         * tree.c (build0, build1, build2, build3, build4): Split out from...
12501         (build): ... here.  Call them.
12502         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12503
12504         * convert.c (convert_to_integer): Remove extra build argument.
12505         * tree-inline.c (expand_call_inline): Likewise.
12506
12507 2004-02-19  Richard Henderson  <rth@redhat.com>
12508
12509         * c-opts.c (warn_variadic_macros): New.
12510         (c_common_handle_option): Set it.
12511         (sanitize_cpp_opts): Copy it to cpp_opts.
12512         * c.opt (Wvariadic-macros): New.
12513         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12514         * cppinit.c (cpp_create_reader): Initialize it.
12515         * cppmacro.c (parse_params): Check it.
12516
12517 2004-02-19  David Daney <ddaney@avtrex.com>
12518
12519         PR preprocessor/14198
12520         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12521         builtin_assert ("machine=mips")
12522
12523 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12524
12525         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12526         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12527         * config/cris/cris.h: Remove a comment about
12528         DEFAULT_SHORT_ENUMS.
12529         * config/ip2k/ip2k.h: Likewise.
12530         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12531
12532 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12533
12534         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12535         when passing single SFmode quantities in general registers,
12536         put them in the high half.
12537
12538 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12539
12540         * doc/md.texi (Standard Names): Document additional dependency on
12541         fix pattern.
12542
12543         * optabs.c (ftruncify): Remove.
12544         (expand_fix): Manually inline ftruncify above.
12545         (can_fix_p): Add FIXME note.
12546
12547 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12548
12549         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12550         spe_fixuns_truncsfsi2.
12551
12552         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12553         fixuns_truncsfsi2.
12554
12555 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12556
12557         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12558         * testsuite/gcc.dg/20040219-1.c: New test.
12559
12560 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12561
12562         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12563         "*subsf3_cconly"): Subtraction is not commutative.
12564
12565 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12566
12567         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12568         (sdbout_symbol): If called before sdbout_init, queue DECL for
12569         later and return.
12570         (sdbout_init): Set sdbout_initialized true, process decls
12571         queued earlier by sdbout_symbol.
12572         (sdbout_finish): Use size_t for index variable.
12573
12574 2004-02-19  Jeff Law  <law@redhat.com>
12575
12576         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12577         for unordered comparison codes.
12578
12579 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12580
12581         * reload1.c (reload): Correct comment.
12582         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12583         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12584         register variables are not used by reload.
12585
12586 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12587
12588         PR target/14209
12589         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12590         constraints to not match postincrement.  Adjust the predicate to
12591         exclude a volatile memory reference.
12592
12593 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12594
12595         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12596
12597 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12598
12599         * hooks.c (hook_void_tree_int): Remove.
12600         (hook_void_constcharptr): Likewise.
12601         (hook_int_void_0): Likewise.
12602         * hooks.h: Remove the prototypes for the above three
12603         functions.
12604         * targhooks.c (hook_bool_machine_mode_true): Remove.
12605         * targhooks.h: Remove the prototype for
12606         hook_bool_machine_mode_true.
12607
12608 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12609
12610         * emit-rtl.c (subreg_realpart_p): Remove.
12611         (reorder_insns_with_line_notes): Likewise.
12612         (end_full_sequence): Likewise.
12613         * rtl.h: Remove the prototype for the above functions.
12614
12615 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12616
12617         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12618         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12619         config/iq2000/iq2000.h, config/m32r/m32r.h,
12620         config/pdp11/pdp11.h, config/sparc/sparc.h,
12621         config/xtensa/xtensa.h: Remove commented-out or useless
12622         definitions of CASE_VECTOR_PC_RELATIVE.
12623
12624 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12625
12626         * loop.c (all_sets_invariant_p): Remove.
12627
12628 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12629
12630         PR target/12916
12631         * config/sparc/sparc.h (NPARM_REGS): Delete.
12632         (BASE_RETURN_VALUE_REG): Likewise.
12633         (BASE_OUTGOING_VALUE_REG): Likewise.
12634         (BASE_PASSING_ARG_REG): Likewise.
12635         (BASE_INCOMING_ARG_REG): Likewise.
12636         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12637         TARGET_ARCH64, not TARGET_V9.
12638         (function_arg_slotno): Dispatch based on the mode class.
12639         Handle vector modes like floating-point modes.
12640         (function_arg_record_value_1): Handle vector types like
12641         floating-point types.
12642         (function_arg_record_value_2): Likewise.
12643         Calculate regno after mode transformation.
12644         (function_arg): Handle vector modes like floating-point modes.
12645         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12646         If ARCH64, do not recheck alignment.
12647         (function_arg_pass_by_reference): Reorder the conditions.
12648         (sparc_return_in_memory): Move after function_arg_padding.
12649         Implement calling conventions for vector modes.
12650         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12651         (function_value): Move scope of 'regbase'.
12652         Implement calling conventions for vector modes.
12653         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12654         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12655         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12656         the argument is passed by reference.
12657         (sparc_type_code): Handle vector types.
12658
12659 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12660
12661         * function.c (assign_parms): When building decl_rtl for
12662         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12663
12664 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12665
12666         * expr.c (is_aligning_offset): Check if we are aligning the
12667         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12668         in bits.
12669
12670 2004-02-18  Matt Austern  <austern@apple.com>
12671
12672         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12673         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12674         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12675         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12676         spec string.
12677         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12678
12679 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12680
12681         * dwarf2out.c (loclabel_num): Move outside #ifdef
12682         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12683         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12684         Mark with GTY(()).
12685         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12686         Allocate memory with ggc_alloc.  No need to copy anything.
12687         (ia64_hpux_file_end): Update to match.
12688
12689 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12690
12691         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12692         by default.
12693
12694 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12695
12696         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12697         ("divmodtisi3"): Likewise.
12698         ("udivmoddi4", "udivmodtidi3"): Likewise.
12699         ("divmodsi4", "divmoddisi3"): Likewise.
12700         ("udivmodsi4", "udivmoddisi3"): Likewise.
12701         ("udivsi3", "umodsi3"): Likewise.
12702
12703 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12704
12705         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12706         placeholder insn when chunkifying the pool.
12707
12708 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12709
12710         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12711         generating PIC code.
12712
12713 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12714
12715         * config/h8300/h8300-protos.h: Add a prototype for
12716         h8300_expand_branch.
12717         * config/h8300/h8300.c (h8300_expand_branch): New.
12718         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12719         bgtu, beq, bne): Call h8300_expand_branch().
12720
12721 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12722
12723         * config/h8300/h8300-protos.h: Add prototypes for
12724         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12725         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12726         (h8300_hard_regno_mode_ok): Likewise.
12727         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12728         h8300_hard_regno_nregs().
12729         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12730
12731 2004-02-18  Per Bothner  <per@bothner.com>
12732
12733         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12734         partly reverts my 2003-10-01 change, because we're back to logically
12735         including <command line> inside the main line.
12736         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12737         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12738         Fixes PR preprocessor/14103.
12739
12740         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12741         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12742         (cpp_push_include):  Don't need to increment pfile's line field.
12743         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12744
12745         * c-ppoutput.c (print struct):  New first_time field.
12746         (init_pp_output):  Set print.first_time.
12747         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12748         which is set also for (say) <command line>.  Clear print.first_time.
12749
12750         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12751         does not match the code, so fix both.
12752         (should_stack_file):  Inline include_pch_p function.
12753         (include_pch_p):  Remove pointless function.
12754
12755         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12756
12757 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12758
12759         * config/h8300/h8300.md (four define_peephole2's): Use
12760         h8300_regs_ok_for_stm().
12761
12762 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12763
12764         * config/h8300/h8300-protos.h: Update the prototype for
12765         expand_a_rotate().
12766         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12767         argument.
12768         * config/h8300/h8300.md: Update all callers.
12769
12770 2004-02-18  Jan Hubicka  <jh@suse.cz>
12771
12772         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12773         floats.
12774         (simplify_binary_operation): Deal with logicals on floats.
12775
12776         * i386.md (SSE fabs splitters): Emit new patterns.
12777         (SSE cmov splitters): Likewise.
12778         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12779         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12780         subregs.
12781         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12782         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12783
12784 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12785
12786         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12787         by hand.
12788         (output_a_rotate): Tweak a comment.
12789         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12790         (*rotlhi3_1): Change to rotlhi3_1.
12791         (*rotlsi3_1): Change to rotlsi3_1.
12792
12793 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12794
12795         PR target/13866
12796         * arm.c (load_multiple_operation): Don't insist that the source reg
12797         of a post-increment component is the same as the destination.
12798         (store_multiple_operation): Likewise.
12799
12800 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12801
12802         * config/h8300/h8300.md: Move movsf patterns into one section
12803         of the file.
12804
12805 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12806
12807         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12808         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12809         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12810         config/mips/linux64.h, config/pa/pa-64.h,
12811         config/rs6000/aix51.h, config/rs6000/aix52.h,
12812         config/rs6000/spe.md, config/sparc/linux.h,
12813         config/sparc/linux64.h: Update copyright.
12814
12815 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12816
12817         * config/h8300/h8300.md: Move push patterns into one
12818         section of the file.
12819
12820 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12821
12822         PR c++/11326
12823         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12824         fntype.
12825
12826 2004-02-18  Paul Brook  <paul@codesourcery.com>
12827
12828         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12829
12830 2004-02-18  Paul Brook  <paul@codesourcery.com>
12831
12832         PR debug/12934
12833         * dwarf2out.c (loc_descriptor_from_tree): Handle
12834         EXPR_WITH_FILE_LOCATION.
12835
12836 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12837
12838         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12839         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12840         trailing whitespace from instructions.
12841
12842 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12843
12844         * configure.ac: When generating auto-build.h, pass
12845         --enable-languages to the sub-configure.
12846         Put quotes around ${program_transform_name} when generating
12847         name of as, ld, nm, objdump.
12848         * configure: Regenerate.
12849
12850 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12851
12852         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12853         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12854         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12855         (s-preds, s-iov): Do not depend on move-if-change.
12856
12857 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12858
12859         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12860         (insert_save): Likewise.
12861
12862 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12863
12864         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12865         warning.
12866
12867 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12868
12869         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12870         *one_cmplsi2_h8300.
12871         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12872
12873 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12874
12875         * config/h8300/h8300-protos.h: Update the prototype of
12876         fix_bit_operand().
12877         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12878         argument "what".
12879         * config/h8300/h8300.md: Update all callers.
12880
12881 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12882
12883         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12884         the last argument to "code" from "type".
12885
12886 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12887
12888         * config/h8300/h8300.c: Remove an extern declaration of
12889         rtx_equal_function_value_matters.
12890
12891 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12892
12893         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12894         by hand.
12895         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12896         (*iorqi3_1): Change to iorqi3_1.
12897         (*xorqi3_1): Change to xorqi3_1.
12898
12899 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12900
12901         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12902         typos.
12903
12904 2004-02-17  Jan Hubicka  <jh@suse.cz>
12905
12906         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12907
12908 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12909
12910         PR optimization/14119
12911         * combine.c (try_combine): When attemting to fix unrecognized insns,
12912         don't delete SETs marked with REG_EH_REGION notes.
12913
12914 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12915
12916         * combine.c (simplify_if_then_else): Do not replace
12917         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12918         modes differ.
12919
12920 2004-02017  Steven Bosscher  <stevenb@suse.de>
12921
12922         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12923         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12924         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12925         * ada/utils.c: Likewise.
12926         * cp/decl.c: Likewise.
12927         * f/com.c: Likewise.
12928         * java/class.c: Likewise.
12929
12930 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12931
12932         * config/h8300/h8300.md: Fix comment typos.
12933
12934 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12935
12936         * config/mips/t-iris6gld: Renamed to ...
12937         * config/mips/t-irix-gld: ... this.
12938         * config.gcc (mips-sgi-irix6*): Reflect this
12939         (mips-sgi-irix5*): Use it with GNU ld.
12940
12941         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12942         to ...
12943         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12944         * config/mips/t-irix-gld: Reflect this.
12945         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12946
12947         * config/mips/iris5gld.h: New file.
12948         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12949         Only use collect2 without gas.
12950
12951         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12952         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12953         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12954         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12955
12956         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12957         * config/mips/iris5.h: ... here.
12958
12959         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12960         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12961         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12962
12963         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12964         using irix_startfile_spec, irix_endfile_spec.
12965
12966 2004-02-16  Gunther Nikl  <gni@gecko.de>
12967
12968         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12969
12970 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12971
12972         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12973         insns by hand.
12974
12975 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12976
12977         * cfghooks.c (split_edge): Speed up updating of dominators.
12978
12979 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12980
12981         PR c++/11326
12982         * c-common.c (flag_abi_version): Remove.
12983         * c-common.h (flag_abi_version): Likewise.
12984         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12985         * c.opt (fabi-version): Remove.
12986         * calls.c (expand_call): Always pass a function type to
12987         struct_value_rtx.  Use convert_memory_address.
12988         * common.opt (fabi-version): Add it.
12989         * flags.h (flag_abi_version): Likewise.
12990         (abi_version_at_least): New macro.
12991         * opts.c (common_handle_option): Add OPT_fabi_version.
12992         * toplev.c (flag_abi_version): Define it.
12993         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12994         New function.
12995         (ia64_output_mi_thunk): Use it.
12996         (ia64_struct_value_rtx): Likewise.
12997
12998 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12999
13000         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
13001         Don't generate insns by hand.
13002
13003 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
13004
13005         PR c++/14178
13006         * doc/invoke.texi (fabi-version): The default is 2 now.
13007
13008 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13009
13010         * loop-iv.c: New file.
13011         * Makefile.in (loop-iv.o): New.
13012         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
13013         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
13014         num_loop_branches): New functions.
13015         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
13016         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
13017         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
13018         get_simple_loop_desc, free_simple_loop_desc): Declare.
13019         (simple_loop_desc): New inline function.
13020         (struct rtx_iv, struct niter_desc): New.
13021         * cfgloopmanip.c (loopify): Specify semantics more precisely.
13022         * expr.c (force_operand): Handle subregs of expressions created by
13023         loop unroller.
13024         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
13025         parts of the initialization to toplev.c
13026         * loop-unroll.c (loop_exit_at_end_p): New.
13027         (unroll_and_peel_loops): Call iv_analysis_done.
13028         (decide_peel_once_rolling, decide_peel_completely,
13029         decide_unroll_stupid, decide_unroll_constant_iterations,
13030         decide_unroll_runtime_iterations, decide_peel_simple,
13031         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
13032         unroll_loop_runtime_iterations): Use new simple loop analysis.
13033         * loop-unswitch.c (compare_and_jump_seq): New.
13034         (may_unswitch_on_p): Renamed to ...
13035         (may_unswitch_on): Use new iv analysis.
13036         (reversed_condition): Export.
13037         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
13038         * predict.c (estimate_probability): Use new simple loop analysis.
13039         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
13040         canon_condition, simplify_using_condition): Declare.
13041         * stor-layout.c (get_mode_bounds): New.
13042         * toplev.c (rest_of_handle_loop2): Some parts of
13043         initialization/finalization moved here from loop-init.c.
13044
13045 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13046
13047         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
13048         pointer.
13049         (CALL_USED_REGISTERS): Likewise.
13050         (REG_ALLOC_ORDER): Likewise.
13051         (REG_CLASS) <GENERAL_REGS>: Likewise.
13052
13053 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
13054
13055         * doc/md.texi (Insn Canonicalizations): Document left-chaining
13056         in associative operators.
13057         * rtlanal.c (commutative_operand_precedence): Create some new
13058         variables.  Prefer a commutative operand on the left, then
13059         binary expressions, then NEG and NOT.
13060
13061 2004-02-16  Matthias Klose  <doko@debian.org>
13062
13063         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
13064         in terms of SHLIB_SOVERSION.
13065         * config/m68k/t-slibgcc-elf-ver: New file.
13066         * config/pa/t-slibgcc-elf-ver: New file.
13067         * config.gcc (m68k-linux, parisc-linux): Use them when not
13068         sjlj exceptions are not configured.
13069
13070 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
13071
13072         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
13073
13074 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
13075
13076         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
13077
13078 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
13079
13080         * doc/sourcebuild.texi: Mention backends.html.
13081
13082 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
13083
13084         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
13085         line-map.c, line-map.h, var-tracking.c: Fix comment
13086         formatting.
13087
13088 2004-02-16  Richard Henderson  <rth@redhat.com>
13089
13090         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
13091
13092         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
13093
13094 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13095
13096         * config/h8300/h8300.md: Remove unnecessary parallels from
13097         all define_insn and define_split patterns.
13098
13099 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13100
13101         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
13102         "clobber").
13103
13104 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
13105
13106         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
13107         '%#'.
13108
13109 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13110
13111         * config/ia64/ia64.c, config/mips/mips.c,
13112         config/mmix/mmix-modes.def: Fix comment typos.
13113
13114 2004-02-15  Roger Sayle  <roger@eyesopen.com>
13115
13116         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
13117         (get_directive_line): Remove unused function prototype.
13118
13119 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13120
13121         * tree-inline.c (copy_body_r): Do not replace ret_label.
13122
13123 2004-02-14  Jan Hubicka  <jh@suse.cz>
13124
13125         * i386.c (x86_four_jump_limit): New variable.
13126         (k8_avoid_jump_misspredicts): Rename to ...
13127         (ix86_avoid_jump_misspredicts): .. this one.
13128         (ix86_pad_returns): Break out from ...
13129         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
13130         to.
13131         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
13132
13133 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13134
13135         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
13136         PARALLEL is NULL.
13137
13138 2004-02-14  Per Bothner  <per@bothner.com>
13139
13140         * fix-header.c (line_table):  Move local variable in main to global.
13141         * scan.h (line_table):  Use it.
13142         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
13143         line (recently renamed to src_loc) before calling recognized_function.
13144
13145 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
13146
13147         * Makefile.in: Fix comment typos.
13148
13149 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
13150
13151         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
13152         for start_value when it is directly moved into reg, and factorize
13153         the retrieval of GET_MODE (reg).
13154
13155 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13156
13157         * config/mips/mips-protos.h (mips_load_got_page): Delete.
13158         (mips_load_got_global): Delete.
13159         (mips_gotoff_page): Declare.
13160         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
13161         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
13162         UNSPEC_LOAD_GOT pattern rather than a MEM.
13163         (*load_got[sd]i): New patterns.
13164         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
13165         (mips_load_got_page, mips_load_got_global): Delete.
13166         (mips_gotoff_page): New function.
13167         (override_options): Don't initialize mips_got_alias_set.
13168
13169 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13170
13171         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
13172         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
13173         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
13174         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
13175         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
13176         * config/mips/mips.c: Fix some overly-long lines.
13177         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
13178         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
13179
13180 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13181
13182         * configure.ac: Search for as, ld below libexec/gcc.
13183         * configure: Regenerate.
13184
13185 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13186
13187         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13188         __builtin_arm_setwcx ().
13189         * config/arm/arm.c (arm_expand_builtin): Generate operands
13190         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13191
13192 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13193
13194         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13195         and "wmuluh" to "wmulsm" and "wmulum", respectively.
13196         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13197         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13198         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13199         (_mm_mulhi_pu16): Likewise.
13200
13201 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
13202
13203         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13204         DECL_NAME != 0 before dereferencing.
13205
13206 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13207
13208         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13209         (s390_output_addr_const_extra): Declare.
13210         (s390_output_pool_entry): Remove FILE * argument.
13211         * config/s390/s390.c (s390_output_symbolic_const): Remove.
13212         (s390_output_addr_const_extra): New function.
13213         (print_operand_address): Call output_addr_const instead of
13214         s390_output_symbolic_const.
13215         (print_operand): Likewise.
13216         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13217         Remove FILE * argument.
13218         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13219         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13220         call.
13221
13222 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13223
13224         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13225         (struct edge, struct vertex, struct graph): New.
13226         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13227         free_graph): New functions.
13228
13229 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
13230
13231         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13232         Use ".set macro" to avoid warnings about multi-instruction
13233         macros, since they're intentional.
13234
13235 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
13236
13237         * config/darwin.h: Add include guards.  Remove old, now incorrect,
13238         comment about STANDARD_EXEC_PREFIX.
13239
13240         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13241         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
13242         for installing .1 manpages.  Add rules for installing cpp
13243         and gcov manpages under their installed names.
13244
13245 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
13246
13247         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13248         host, but try LD_FOR_TARGET first.
13249         * configure: Rebuilt.
13250
13251 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13252
13253         * dbxout.c: Move declaration of dbxout_type_decl outside
13254         #ifdef DBX_DEBUGGING_INFO.
13255         * c-parse.in: Don't give the asmdef production a type.
13256
13257 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13258
13259         * debug.h (struct gcc_debug_hooks): Add type_decl field.
13260         (debug_nothing_tree_int): Prototype.
13261         (dwarf_debug_hooks): Delete, unused.
13262         * debug.c (do_nothing_debug_hooks): Update.
13263         (debug_nothing_tree_int): New function.
13264         * langhooks.h (struct lang_hooks_for_decls):
13265         Remove builtin_type_decls field.
13266         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13267         (LANG_HOOKS_DECLS): Update.
13268         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13269         Use debug_hooks->type_decl.
13270         * dbxout.c (preinit_symbols): New static.
13271         (dbx_debug_hooks, xcoff_debug_hooks): Update.
13272         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13273         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
13274         for symbols to output.
13275         (dbxout_type_decl): New function.
13276         (dbxout_symbol): If called before dbxout_init has run, queue
13277         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13278         to TYPE_DECLs before emitting them.
13279         * xcoffout.c (assign_type_number): Delete.
13280         (xcoff_type_numbers): New static table.
13281         (xcoff_assign_fundamental_type_number): New function.
13282         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13283         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
13284         * sdbout.c: Include varray.h.
13285         (deferred_global_decls): New static.
13286         (sdb_debug_hooks): Update.
13287         (sdbout_global_decl): If we can't emit something right now,
13288         remember it in deferred_global_decls.
13289         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13290         (sdbout_init): Initialize deferred_global_decls.
13291         * Makefile.in: Update dependencies of sdbout.o.
13292         * dwarf2out.c (dwarf2out_type_decl): New function.
13293         (dwarf2_debug_hooks): Update.
13294         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13295         * c-decl.c (getdecls): Just return 0.
13296         (check_for_loop_decls): Don't use getdecls.
13297         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13298         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13299
13300 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
13301
13302         * config/s390/s390.c (s390_sched_reorder2): Remove.
13303         (TARGET_SCHED_REORDER2): Do not redefine.
13304
13305 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13306
13307         * c-parse.in (maybe_type_qual): Delete.
13308         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13309         (asm_argument): New grammar rules.
13310         (extdef_1): Use asmdef.
13311         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13312         (xexpr): Move up with other expression rules.
13313         (stmt): Use asm_stmt.
13314
13315         * c-typeck.c (build_asm_expr): New function - body mostly
13316         pulled from build_asm_stmt.
13317         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13318         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13319
13320 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13321
13322         PR bootstrap/13617
13323         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13324         (mips_declare_object): Make variadic.
13325         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13326         mips_output_aligned_decl_common.
13327         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13328         (mips_declare_object): Make variadic.
13329
13330 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13331
13332         * function.c (update_epilogue_consts): Teach about binary operations.
13333
13334         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13335         previous MEM_VOLATILE in REF.
13336         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13337         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13338
13339 2004-02-12  Gunther Nikl  <gni@gecko.de>
13340
13341         * config.gcc: Restore support for m68k-openbsd.
13342
13343 2004-02-12  Jan Hubicka  <jh@suse.cz>
13344
13345         * tree-optimize.c (tree_rest_of_compilation): Do not release
13346         DECL_ARGUMENTS.
13347
13348 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13349
13350         * doc/install.texi: Fix the spelling of "explicitly".
13351
13352 2004-02-11  Eric Christopher  <echristo@redhat.com>
13353
13354         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13355         duplicate argument structure of cpp_interpret_string.
13356         * cpphash.h: Move prototype...
13357         * cpplib.h: Here.
13358         * cpplib.c: Fix calls to match new function signature.
13359
13360 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13361
13362         PR c/456
13363         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13364         constant expressions at all outside C99 mode if pedantic.
13365
13366 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13367
13368         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13369         (log10_optab, log2_optab): Define corresponding macros.
13370         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13371         * genopinit.c (optabs): Implement log10_optab and log2_optab
13372         using log10?f2 and log2?f2 patterns.
13373         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13374         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13375         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13376         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13377
13378         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13379         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13380         log2, log2f and log2l built-ins as inline x87 intrinsics.
13381
13382 2004-02-11  Richard Henderson  <rth@redhat.com>
13383
13384         PR target/1532
13385         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13386         dead insn after reload.
13387
13388 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13389
13390         * tree.h (frame_base_decl): Add GTY marker.
13391         * var-tracking.c (frame_base_decl): Likewise.
13392
13393 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13394
13395         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13396         incorrect, hunk.
13397         (add_location_or_const_value_attribute): Use text_section_label,
13398         not TEXT_SECTION_NAME.
13399
13400 2004-02-11  Per Bothner  <per@bothner.com>
13401
13402         Represent column numbers using line-map's source_location.
13403         The "next available source_location" is now managed internally by
13404         line-maps.c rather than by clients.
13405         * line-map.h (struct line_map):  New field column_bits.
13406         <from_line>:  Rename field to start_location.
13407         (struct line_maps):  New fields highest_location and max_column_hint.
13408         (linemap_check_files_exited):  New declaration.
13409         (linemap_line_start):  New declaration.
13410         (linemap_add):  Remove from_line parameter; use highest_location field.
13411         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13412         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13413         (CURRENT_LINE_MAP):  Remove macro.
13414         (linemap_position_for_column):  New inline function.
13415         * line-map.c (linemap_init):  Clear new fields.
13416         (linemap_check_files_exited):  New function, extracted from ...
13417         (linemap_free):  Use linemap_check_files_exited.
13418         (linemap_add):  Remove from_line parameter.  Various updates.
13419         (linemap_line_start):  New function.
13420         (linemap_lookeup):  Update for new field names.
13421         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13422         linemap_position_for_column may unpredictably change the current map,
13423         it is cleaner and simpler for us to not cache it in cpp_reader.
13424         (struct cpp_buffer):  New sysp field.
13425         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13426         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13427         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13428         current map using linemap_lookup.
13429         (do_linemarker):  Also set buffer's sysp field.
13430         (destringize_and_run):  No longer need to decrement current line.
13431         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13432         (search_path_head, open_file_failed):  Use buffer's sysp.
13433         (cpp_make_system_header):  Get current map using linemap_lookup.
13434         Also set buffer's sysp flag.
13435         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13436         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13437         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13438         (struct cpp_reader):  ... and adding saved_line_base field.
13439         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13440         Update accordingly.  Don't adjust line.
13441         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13442         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13443         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13444         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13445         * cpplex.c (_cpp_lex_direct):  Likewise.
13446         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13447         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13448         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13449         Remove col field as it is now subsumed by src_loc.
13450         * cpperror.c:  Update various field, parameter, and macro names.
13451         (print_location):  If col==0, try SOURCE_COLUMN of line.
13452         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13453         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13454         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13455         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13456         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13457         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13458         (_cpp_lex_direct):  Use linemap_position_for_column.
13459         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13460         parameter.  Instead get it from the line_table global.  Adjust callers.
13461         (print):  Remove map field.  Replace line field to src_line.
13462         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13463         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13464         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13465         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13466         * cpptrad.c (copy_comment):  Rename variable.
13467         * c-lex.c (map):  Remove static variable, for same reason we removed
13468         cpp_reader's map field.
13469         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13470         to call linemap_lookup.
13471         (cb_line_change):  Token's line field replaced by src_loc.
13472         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13473         Don't save new_map.
13474
13475         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13476         source_location.
13477
13478 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13479
13480         * config/rs6000/altivec.md (*movv4si_internal): At least one
13481         operand must be register_operand.
13482         (*movv8hi_internal1): Likewise.
13483         (*movv16qi_internal1): Likewise.
13484         (*movv4sf_internal1): Likewise.
13485
13486 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13487
13488         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13489         operand.
13490         (movv4hi_internal): Same.
13491         (movv2sf_internal): Same.
13492         (movv1di_internal): Same.
13493
13494 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13495
13496         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13497         TARGET_OLDABI consistently.
13498         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13499         mips_va_arg,override_options,compute_frame_size,
13500         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13501         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13502         and TARGET_OLDABI consistently.
13503         * config/mips/mips.md (exception_receiver): Likewise.
13504         * config/mips/linux64.h: Likewise.
13505
13506 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13507
13508         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13509         Set AltiVec ABI and vrsave as default for ppc64 linux.
13510         (init_cumulative_args): Post error, if try to return
13511         value in AltiVec register without enable AltiVec.
13512         (function_arg_advance): Ditto for passing arguments.
13513
13514 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13515
13516         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13517         a label before updating its usage count.
13518
13519 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13520
13521         * doc/install.texi: Remove extra cd.
13522
13523 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13524
13525         * c-common.c (vector_size_helper): Remove; call
13526         reconstruct_complex_type() instead.
13527         * tree.c (reconstruct_complex_type): New function
13528         (formerly vector_size_helper() in c-common.c).
13529         (make_vector): Make externally visible.
13530         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13531
13532 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13533
13534         * config/h8300/h8300-protos.h: Add a prototype for
13535         h8300_regs_ok_for_stm.
13536         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13537         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13538         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13539         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13540         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13541         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13542         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13543         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13544         h8300_regs_ok_for_stm().
13545
13546 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13547
13548         PR c/14088
13549         * real.c (real_from_string): Look for 'X' as well as 'x' in
13550         hexfloat strings.
13551
13552 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13553
13554         * config/h8300/h8300.md: Remove an incorrect comment about
13555         peephole2.  Add comments.
13556
13557 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13558
13559         PR/14058
13560         * emit-rtl.c (set_decl_incoming_rtl): New.
13561         * tree.h (set_decl_incoming_rtl): New.
13562         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13563         DECL_INCOMING_RTL.
13564         * ada/misc.c (adjust_decl_rtl): Likewise.
13565
13566 2004-02-10  Per Bothner  <per@bothner.com>
13567
13568         * c-opts.c (c_common_post_options):   Don't emit working directory
13569         in cpp output if -P was specified.
13570
13571 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13572
13573         PR c/14092
13574         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13575         negate_expr back to the original type.
13576
13577 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13578
13579         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13580         bump retaddr here.
13581
13582 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13583
13584         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13585         gen_lowpart_SUBREG): Move under the file in which they
13586         are actually declared.
13587
13588 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13589
13590         * doc/sourcebuild.texi: Add libada documentation.
13591
13592         * doc/install.texi: Update documentation on Ada build, now
13593         that the GNAT lib and tools are built automatically.
13594
13595 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13596
13597         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13598         && TARGET_IRIX.
13599
13600 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13601
13602         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13603         boundaries outside build_component_ref() call (a macro in ObjC++).
13604
13605 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13606
13607         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13608         (init_cumulative_args): Likewise.
13609         (a7_overlap_mentioned_p): Delete prototype.
13610         * config/xtensa/xtensa.c (struct machine_function): Replace
13611         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13612         Add set_frame_ptr_insn field.
13613         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13614         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13615         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13616         at the function entry and replace the operand with the pseudo.
13617         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13618         argument and record this flag in CUMULATIVE_ARGS.
13619         (function_arg): Remove result_mode and special-case code to handle
13620         arguments in a7.  Instead, set need_a7_copy flag when there is an
13621         incoming argument in a7.
13622         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13623         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13624         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13625         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13626         special-case code.
13627         (a7_overlap_mentioned_p): Delete.
13628         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13629         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13630         arguments to init_cumulative_args and pass "incoming" flag instead.
13631         (BLOCK_REG_PADDING): Delete.
13632         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13633         checks for reload_in_progress and reload_completed.  Update calls to
13634         xtensa_copy_incoming_a7.
13635         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13636         to call xtensa_copy_incoming_a7.
13637
13638 2004-02-09  DJ Delorie  <dj@redhat.com>
13639
13640         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13641         longer modify standard_exec_prefix, standard_bindir_prefix, or
13642         standard_startfile_prefix.
13643
13644 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13645
13646         PR c++/11295
13647         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13648         to expand_expr_real call, and pass in alt_rtl as last argument.
13649
13650         PR libstdc++/5625
13651         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13652         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13653         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13654         * except.c (expand_builtin_extend_pointer): New.
13655         * except.h (expand_builtin_extend_pointer): Declare.
13656
13657 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13658
13659         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13660         unaligned loads and stores.
13661
13662 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13663
13664         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13665         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13666
13667         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13668         * config/mips/iris5.h: ... here.
13669         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13670
13671         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13672         * config/mips/iris5.h: ... here.
13673
13674 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13675
13676         * configure.ac: Remove default executable files before AC_PROG_CC.
13677         * configure: Regenerate.
13678
13679 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13680
13681         PR target/13721
13682         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13683         print a operand other than a register.
13684
13685 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13686
13687         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13688         tree code rather than call fold_convert, which doesn't specify a
13689         default floating point to integer conversion.
13690
13691 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13692
13693         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13694         code to support SGS assembler.  Reformat adjacent code where possible.
13695         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13696         definition.
13697         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13698         for '%#'.
13699         * config/m68k/linux.h, config/m68k/m68k.c,
13700         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13701         macros and asm_printf() format strings.
13702         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13703         * config/m68k/linux.h: Update copyright.
13704         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13705
13706 2004-02-08  Andreas Schwab  <schwab@suse.de>
13707             Bernardo Innocenti  <bernie@develer.com>
13708
13709         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13710         REGISTER_PREFIX.
13711         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13712         frame pointer register, overridable by OS targets.
13713         * (M68K_REGNAME): Macro to obtain register name for asm output,
13714         eventually replacing %a6 with M68K_FP_REG_NAME.
13715         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13716         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13717         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13718         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13719         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13720
13721 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13722
13723         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13724         hook_rtx_tree_int_null.
13725         * targhooks.c (default_struct_value_rtx): Remove.
13726         * targhooks.h: Remove the prototype for
13727         default_struct_value_rtx.
13728         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13729         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13730         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13731         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13732         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13733         config/rs6000/rs6000.c, config/s390/s390.c,
13734         config/stormy16/stormy16.c, config/v850/v850.c,
13735         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13736         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13737
13738 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13739
13740         * README.Portability: Change "ISO C89" to "ISO C90".
13741         * c-parse.in (primary, initelt): Likewise.
13742
13743 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13744
13745         * real.c (encode_ibm_extended): Normalize the input value before
13746         converting it to a double.  Handle the case where a normal value
13747         rounds to infinity.
13748
13749 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13750
13751         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13752         warning.
13753         * cse.c (preferrable): Change to preferable. Update all of its
13754         callers.
13755         * genautomata.c (ainsn): Change
13756         first_ainsn_with_given_equialence_num to
13757         first_ainsn_with_given_equivalence_num.  Update all of its
13758         references.
13759
13760 2004-02-08  Jan Hubicka  <jh@suse.cz>
13761
13762         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13763
13764 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13765
13766         * function.c (assign_parms): Fix formatting.
13767
13768 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13769
13770         * default.h (PROMOTE_PROTOTYPES): Remove.
13771         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13772         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13773         EXPAND_BUILTIN_SAVEREGS): Poison.
13774         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13775         hook_bool_tree_false.
13776         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13777         * target.h: Replace SETUP_INCOMING_VARARGS with
13778         targetm.calls.setup_incoming_varargs().
13779         * targhooks.c (default_promote_function_return): Remove.
13780         (default_promote_prototypes): Likewise.
13781         (default_struct_value_rtx): Always abort().
13782         (default_expand_builtin_saveregs): Always print an error
13783         message.
13784         (default_setup_incoming_varargs): Do nothing.
13785         (default_pretend_outgoing_varargs_named): Don't depend on
13786         SETUP_INCOMING_VARARGS.
13787         * targhooks.h: Remove the prototype for
13788         default_promote_function_return and
13789         default_promote_prototypes.
13790
13791 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13792
13793         * system.h (SHARED_SECTION_ASM_OP): Poison.
13794         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13795         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13796
13797 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13798
13799         Bug 13856
13800         * c-decl.c (diagnose_mismatched_decls): Only give special
13801         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13802         is also true.
13803         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13804         DECL_FUNCTION_CODE when defining a built-in function.
13805         Don't update DECL_ESTIMATED_INSNS.
13806         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13807         FUNCTION_DECLs.
13808         * tree.h: Delete DECL_ESTIMATED_INSNS.
13809         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13810         (expand_call_inline, optimize_inline_calls): Don't update
13811         DECL_ESTIMATED_INSNS nor inlined_insns.
13812         * cgraphunit.c (cgraph_analyze_function): Don't update
13813         DECL_ESTIMATED_INSNS.
13814
13815 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13816
13817         * c-common.c (shadow_warning): Delete.
13818         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13819         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13820         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13821         * c-parse.in (free_parser_stacks): Delete.
13822
13823 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13824
13825         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13826         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13827         Use the top level mkinstalldirs, not the one in the gcc subdir.
13828         * mkinstalldirs: Remove (from the gcc subdir).
13829
13830 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13831
13832         PR middle-end/13696
13833         * fold-const.c (fold_convert): New function to provide type
13834         conversion to the middle-end without using convert.
13835         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13836         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13837         invert_truthvalue, optimize_bit_field_compare, range_binop,
13838         decode_field_reference, make_range, build_range_check, unextend,
13839         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13840         fold_binary_op_with_conditional_arg, fold_inf_compare,
13841         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13842         convert with calls to fold_convert.
13843
13844 2004-02-07  Jan Hubicka  <jh@suse.cz>
13845
13846         * genrecog.c (find_operand): add extra argument stop.
13847         (validate_pattern): Verify that mach_dup is duplicating operand
13848         defined lexically earlier.
13849
13850 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13851
13852         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13853         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13854         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13855         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13856         config/ia64/ia64.h, config/ip2k/ip2k.h,
13857         config/iq2000/iq2000.h, config/mips/iris5.h,
13858         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13859         config/rs6000/aix51.h, config/rs6000/aix52.h,
13860         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13861         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13862         config/sparc/linux.h, config/sparc/linux64.h,
13863         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13864         config/xtensa/xtensa.h: Remove the definitions of
13865         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13866         MAX_WCHAR_TYPE_SIZE.
13867         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13868         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13869
13870 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13871
13872         PR bootstrap/13990
13873         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13874         gen_rtx_NE.
13875
13876 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13877
13878         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13879         #ifdef ENABLE_CHECKING and #endif.
13880
13881 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13882
13883         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13884         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13885         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13886         integer types and floating point with unsafe_math_optimizations.
13887         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13888         Optimize A - B as A + (-B), if B is easily negated.
13889
13890 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13891
13892         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13893         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13894         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13895         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13896         Update copyright.
13897
13898 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13899
13900         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13901
13902 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13903
13904         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13905         glibc 2.3 or better.
13906
13907 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13908
13909         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13910         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13911
13912 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13913
13914         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13915         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13916         (SHLIB_MKMAP_OPTS): Delete.
13917         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13918         (bispecs): Add rule.
13919         * config/rs6000/libgcc-ppc64.ver: New file.
13920         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13921         (__floatdidf, __floatdisf): Optimize multiply.
13922         (__fixunstfdi): New function.
13923         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13924         real and imag parts larger than one register.
13925         (function_arg): Correct type of reg used when fp arg split partially
13926         to stack.
13927         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13928         and __MACH__ or __powerpc64__.
13929
13930 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13931             Ulrich Weigand  <uweigand@de.ibm.com>
13932
13933         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13934         of gen_highpart or gen_lowpart when the floating point format is
13935         wider than the result mode.
13936
13937 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13938
13939         * dwarf2out.c (loclabel_num): Move into #ifdef
13940         DWARF2_DEBUGGING_INFO.
13941
13942 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13943
13944         * objc/objc-act.c (build_super_template) the 'class' field of
13945         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13946         (get_super_receiver): Likewise.
13947
13948 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13949
13950         * reload1.c (check_eliminable_occurrences): Optimize the reset
13951         of can_eliminate.
13952         (eliminate_regs_in_insn): Likewise.
13953
13954 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13955             Josef Zlomek  <zlomekj@suse.cz>
13956
13957         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13958         at the beginning of function, call dwarf2out_var_location for
13959         NOTE_INSN_VAR_LOCATION note.
13960         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13961         decl_loc_table): New.
13962         (lookup_decl_loc): New function.
13963         (add_var_loc_to_decl): New function.
13964         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13965         only if can_use_fbreg.
13966         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13967         functions.
13968         (loc_descriptor): Likewise. Process VAR_LOCATION.
13969         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13970         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13971         can_use_fbreg == true.
13972         (add_location_or_const_value_attribute): Added parameter enum
13973         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13974         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13975         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13976         with attr == DW_AT_location.
13977         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13978         if frame_base_decl is defined and has a location list.
13979         (gen_variable_die): Call add_location_or_const_value_attribute with
13980         attr == DW_AT_location.
13981         (dwarf2out_var_location): New function.
13982         (dwarf2out_begin_function): New function.
13983         (dwarf2out_init): Create decl_loc_table.
13984
13985 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13986
13987         * loop.c (force_movables): Transitively increase the priorities of
13988         all insns forces by an insn, not just the first one.
13989
13990 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13991             Daniel Berlin <dberlin@dberlin.org>
13992
13993         Josef Zlomek  <zlomekj@suse.cz>
13994         * Makefile.in (var-tracking.o): New.
13995         * common.opt (fvar-tracking): New.
13996         * flags.h (flag_var_tracking): New.
13997         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13998         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13999         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
14000         * rtl.c (note_insn_name): Likewise.
14001         * rtl.def (VAR_LOCATION): New.
14002         * rtl.h (NOTE_VAR_LOCATION): New.
14003         (NOTE_VAR_LOCATION_DECL): New.
14004         (NOTE_VAR_LOCATION_LOC): New.
14005         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
14006         (variable_tracking_main): New exported function.
14007         * timevar.def (TV_VAR_TRACKING): New.
14008         * toplev.c (enum dump_file_index): Added DFI_vartrack.
14009         (dump_file): "vartrack" was added (-dV).
14010         (flag_var_tracking): New.
14011         (f_options): "var-tracking" was added.
14012         (rest_of_handle_variable_tracking): New function.
14013         (rest_of_compilation): Run variable tracking.
14014         (process_options): If user has not specified flag_var_tracking set it
14015         according to optimize, debug_info_level and debug_hooks.
14016         * tree.h (frame_base_decl): New.
14017         * var-tracking.c: New file.
14018         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
14019         (ia64_override_options): Set flags to run variable tracking in machine
14020         dependent reorg instead of toplev.c.
14021         (ia64_reorg): Run variable tracking if wanted.
14022         * doc/invoke.texi: Mention variable tracking in -dV,
14023         add and -fvar-tracking.
14024         * doc/passes.texi: Added variable tracking pass.
14025
14026         Daniel Berlin <dberlin@dberlin.org>
14027         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
14028         * dbxout.c (dbx_debug_hooks): Likewise.
14029         (xcoff_debug): Likewise.
14030         * debug.c (do_nothing_debug_hooks): Likewise.
14031         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
14032         * dwarfout.c (dwarf_debug_hooks): Likewise.
14033         * sdbout.c (sdb_debug_hooks): Likewise.
14034         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14035         * final.c (final_scan_insn): Call var_location debug hook for each
14036         NOTE_INSN_VAR_LOCATION.
14037
14038 2004-02-06  Jan Hubicka  <jh@suse.cz>
14039
14040         * flow.c (update_life_info): Allocate reg_deaths when called from
14041         scheudler.
14042         (attempt_auto_inc):  Update life ranges accordingly.
14043
14044 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
14045
14046         PR debug/11816
14047         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
14048
14049 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
14050
14051         * cfganal.c (flow_call_edges_add): Never split a libcall block.
14052
14053 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
14054
14055         * dwarf2out.c (output_loc_list): Don't use deltas if we have
14056         a separate line info table in use.
14057         Use the correct size for terminators.
14058         (output_die): Use offset, not delta.
14059
14060 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
14061
14062         * doc/invoke.texi: Remove the pni option from -mfpmath=.
14063
14064 2004-02-06  Jan Hubicka  <jh@suse.cz>
14065
14066         * recog.c (split_all_insns): Do not update reg info.
14067         * regrename.c (regrename_optimize): Likewise.
14068         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
14069         * flow.c (struct propagate_block_info): Add insn_num field.
14070         (reg_deaths): New array.
14071         (life_analysis): Free reg_deaths info.
14072         (allocate_reg_life_data): Allocate reg_deaths array.
14073         (propagate_one_insn): Use new array.
14074         (init_propagate_block): Initialize it.
14075         (free_propagate_block_info): Finish compuation of
14076         REG_LIVE_LENGTH
14077         (attempt_auto_inc): Sanity check that REG_INFO is not
14078         computed at same time.
14079         (mark_used_regs): Update new array.
14080
14081         * reg-stack.c (subst_stack_regs): Unshare clobbers before
14082         substitution.
14083
14084 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14085
14086         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
14087         *extendqisi2_short_displ.
14088
14089 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
14090
14091         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
14092         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
14093         (emit_library_call_value_1): Likewise pass nargs.
14094         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
14095         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
14096         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
14097         parameter instead of scanning TYPE_ARGS_TYPES to count args.
14098         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
14099         prototype.
14100         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
14101         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
14102         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
14103         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
14104         INIT_CUMULATIVE_ARGS.
14105         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
14106         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
14107         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
14108         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
14109         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14110         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
14111         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14112         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
14113         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
14114         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
14115         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
14116         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
14117
14118 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14119
14120         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
14121         possible.
14122
14123 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14124
14125         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
14126         note containing (plus (reg) (const_int)), where reg is an
14127         eliminable reg, then perform the register elimination without
14128         depending on eliminate_regs().
14129
14130 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14131
14132         * config/arc/arc.c (arc_return_in_memory): Check the return
14133         value of int_size_in_bytes against -1.  Don't check
14134         TREE_ADDRESSABLE.
14135         * config/avr/avr.c (avr_return_in_memory): Check the return
14136         value of int_size_in_bytes against -1.
14137         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
14138         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
14139         Likewise.
14140         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
14141         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
14142         Likewise.
14143
14144 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14145
14146         * config/frv/frv-protos.h: Remove the prototype for
14147         frv_setup_incoming_varargs.
14148         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
14149         (frv_setup_incoming_varargs): Make it static.
14150         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
14151
14152 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14153
14154         * config/fr30/fr30-protos.h: Remove the prototype for
14155         fr30_setup_incoming_varargs.
14156         Update the prototypes for fr30_num_arg_regs and
14157         fr30_function_arg_partial_nregs.
14158         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
14159         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14160         (fr30_setup_incoming_varargs): Make it static.
14161         Add argument second_time.  Don't do anything when second_time
14162         is nonzero.
14163         (fr30_num_arg_regs): Change the type of the first argument to
14164         enum machine_mode.
14165         (fr30_function_arg_partial_nregs): Change the type of the
14166         second argument to enum machine_mode.
14167         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
14168         (SETUP_INCOMING_VARARGS): Remove.
14169
14170 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14171
14172         * config/arc/arc-protos.h: Remove the prototype for
14173         arc_setup_incoming_varargs.
14174         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14175         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14176         (arc_setup_incoming_varargs): Make it static.
14177         (arc_external_libcall): Likewise.
14178         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
14179         Remove the commented-out definition of
14180         ASM_OUTPUT_EXTERNAL_LIBCALL.
14181
14182 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
14183
14184         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
14185         to $$(slibdir) in the installation commands.
14186
14187 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14188
14189         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14190         with inner_regno, not regno.
14191         * rtlanal.c (refers_to_regno_p): Same.
14192
14193 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14194
14195         * config.gcc: Remove i370 support.
14196
14197 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14198
14199         * doc/install.texi:  Update automake and autoconf version
14200         requirements.  Note where to find gcj automake version.
14201
14202 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14203
14204         * Makefile.in (generate-manpages): Move dependencies to ...
14205         (man): here.
14206         * doc/makefile.texi: Document new targets.
14207         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14208
14209 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14210
14211         PR/13485
14212         Makefile.in (srcextra):  Add a level of indirection to ...
14213         (gcc.srcextra): ... here.
14214         (po-generated): Delete.
14215         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
14216         options.c.
14217         (start.encap): Remove superfluous lang.srcextra dependency.
14218         objc/Make-lang.in (po-generated):  Delete.
14219
14220 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14221
14222         * config/ia64/ia64.c (REG_GP): Remove.
14223
14224 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14225
14226         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14227
14228 2004-02-05  Devang Patel  <dpatel@apple.com>
14229
14230         * dwarf2out.c (force_type_die): Look up input type itself
14231         instead of root_type() of type.
14232
14233 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
14234
14235         * config/s390/s390.md ("*tmqidi_ext"): New insn.
14236         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14237         pre-reload splitters are transformed to post-reload
14238         define_insn_and_split patterns.
14239         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14240
14241 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14242
14243         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14244         TARGET_PROMOTE_PROTOTYPES.
14245
14246 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14247
14248         PR middle-end/13750
14249         Revert:
14250         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14251         PR pch/13361
14252         * c-typeck.c (constructor_asmspec): Delete.
14253         (struct initializer_stack): Delete field 'asmspec'.
14254         (start_init): Delete saving of asmspec.
14255         (finish_init): Don't update constructor_asmspec.
14256         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14257         * stmt.c (expand_asm): Duplicate strings from tree.
14258         (expand_asm_operands): Likewise.
14259         * tree.c (tree_size): Update computation of size of STRING_CST.
14260         (make_node): Don't make STRING_CST nodes.
14261         (build_string): Allocate string with tree node.
14262         * tree.def (STRING_CST): Update comment.
14263         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14264         (tree_string): Place contents of string in tree node.
14265         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14266         from tree.
14267
14268 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14269
14270         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14271         msgid.
14272
14273 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
14274
14275         * config/rs6000/altivec.md (*movv4si_internal): At least one
14276         operand must be altivec_register_operand.
14277         (*movv8hi_internal1): Likewise.
14278         (*movv16qi_internal1): Likewise.
14279         (*movv4sf_internal1): Likewise.
14280
14281 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14282
14283         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14284         * configure: Regenerate.
14285
14286 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
14287
14288         * doc/install.texi: Update description of --gxx-include-dir to
14289         give correct default value.
14290
14291 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14292
14293         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14294         8 with MAC_REG.
14295
14296 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14297
14298         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14299         gen_rtx_PARALLEL.
14300
14301 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14302
14303         * emit-rtl.c: Update the comment about the file.
14304
14305 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14306
14307         * sourcebuild.texi (Test Idioms): Update testcase naming
14308         conventions.
14309
14310 2004-02-04  Per Bothner  <per@bothner.com>
14311
14312         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14313         * c-ppoutput.c (pp_dir_change):  New function.
14314         * c-common.h (pp_dir_change):  New declaration.
14315         * cpplib.h (struct cpp_options):  Remove working_directory field.
14316         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14317         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14318         Don't handle -fworking_directory here, but in c_common_post_options.
14319         (read_original_directory): Don't back up when done.
14320         Don't clear no-longer used working_directory flag.
14321         * cpplib.h:  Update declarations to match.
14322         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14323         (init_c_lex):  Don't set dir_change callback here, since we want
14324         to set it even if flag_preprocess_only.
14325         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14326         (c_common_post_options):  Set dir_change callback.
14327         Call pp_dir_change if approporiate.
14328         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14329         unneeded parameter and result. Do LC_RENAME for <built-in>.
14330         (c_common_post_options):  Call cpp_read_main_file here instead.
14331         (c_common_init):  Update accordingly.
14332         (push_command_line_include):  Don't cpp_push_main_file.
14333         Do LC_RENAME rather than LC_LEASE to get back to main file.
14334         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14335         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14336         files, but call finish_options for all files.
14337         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14338         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14339         cpp_find_main_file + cpp_push_main_file.
14340         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14341         * opts.c (handle_options):  Only set main_input_filename first time.
14342
14343 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14344
14345         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14346
14347 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14348
14349         * reload.c (find_equiv_reg): When checking for register overlap,
14350         don't index hard_regno_nregs with a pseudo-reg.
14351
14352 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14353
14354         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14355
14356 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14357
14358         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14359         against FIRST_PSEUDO_REGISTER.
14360
14361 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14362
14363         * Makefile.in: Move target, host overrides after per-language
14364         fragments.
14365
14366         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14367         (GNATLIBCFLAGS): Remove -g.
14368
14369 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14370
14371         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14372         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14373         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14374         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14375         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14376         config/sparc/sparc.c, config/vax/vax.c: Revert the
14377         replacements of "FALLTHRU" with "Fall through" done in the
14378         previous patch.
14379
14380 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14381
14382         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14383         config/arm/arm.c, config/arm/arm.md,
14384         config/cris/cris-protos.h, config/fr30/fr30.c,
14385         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14386         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14387         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14388         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14389         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14390         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14391         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14392         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14393         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14394         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14395         config/s390/s390.md, config/sparc/netbsd-elf.h,
14396         config/sparc/openbsd.h, config/sparc/sparc.c,
14397         config/xtensa/lib2funcs.S: Fix comment formatting.
14398
14399 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14400
14401         * config/alpha/alpha.c, config/arc/arc.c,
14402         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14403         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14404         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14405         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14406         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14407         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14408         config/iq2000/iq2000.c, config/m32r/m32r.c,
14409         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14410         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14411         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14412         config/rs6000/rs6000.h, config/sparc/sparc.c,
14413         config/vax/vax.c: Fix comment typos.  Follow spelling
14414         conventions.
14415
14416 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14417
14418         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14419         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14420         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14421         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14422         config/arm/fpa.md, config/arm/iwmmxt.md,
14423         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14424         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14425         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14426         config/sparc/netbsd-elf.h: Update copyright.
14427
14428 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14429
14430         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14431         for all modes whose size is greater than 8 bytes if ARCH32.
14432         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14433         by reference if ARCH32.
14434
14435 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14436
14437         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14438
14439 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14440
14441         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14442         to before adddi3 insn patterns.
14443         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14444         "reload_insi"): Move to before addsi3 insn patterns.
14445
14446 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14447
14448         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14449         parameter.  Use it instead of current_function_is_thunk.
14450         * function.h (struct function): Update documentation for is_thunk.
14451         * tree.h (CALL_FROM_THUNK_P): New macro.
14452         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14453         no_new_pseudos when testing current_function_is_thunk.
14454         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14455
14456 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14457
14458         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14459         TARGET_SETUP_INCOMING_VARARGS.
14460
14461 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14462
14463         * emit-rtl.c (gen_rtx): Remove.
14464         * genattrtab.c: Don't mention gen_rtx in a comment.
14465         * rtl.h: Remove the prototype for gen_rtx.
14466         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14467
14468 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14469
14470         * config/arc/arc.h, config/fr30/fr30.h
14471         (SETUP_INCOMING_VARARGS): Remove the target-independent
14472         comments.
14473         * doc/tm.texi: Don't mention deprecated target macros.
14474
14475 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14476
14477         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14478         target-independent comment.
14479
14480 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14481
14482         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14483         mention deprecated target macros.
14484
14485 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14486
14487         * config.gcc: Remove obsolete ports and configurations.
14488         * config/linux-aout.h, config/netware.h,
14489         config/t-linux-gnulibc1, config/d30v/abi,
14490         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14491         config/d30v/d30v.h, config/d30v/d30v.md,
14492         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14493         config/dsp16xx/dsp16xx-modes.def,
14494         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14495         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14496         config/i370/README, config/i370/i370-c.c,
14497         config/i370/i370-protos.h, config/i370/i370.c,
14498         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14499         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14500         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14501         config/i386/moss.h, config/i386/netware.h,
14502         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14503         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14504         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14505         config/i960/i960-c.c, config/i960/i960-coff.h,
14506         config/i960/i960-modes.def, config/i960/i960-protos.h,
14507         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14508         config/i960/rtems.h, config/i960/t-960bare,
14509         config/m68k/hp310.h, config/m68k/hp320.h,
14510         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14511         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14512         Remove.
14513         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14514         doc/md.texi: Remove mentions of obsolete ports.
14515
14516 2004-02-04  Jan Hubicka  <jh@suse.cz>
14517
14518         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14519         pointer when all VALUE's locations has been invalidated.
14520         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14521
14522 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14523
14524         * doc/invoke.texi (x86 options): Fix spelling/wording.
14525
14526 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14527
14528         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14529         put the original string in a comment.
14530         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14531         * config/mips/mips.c (mips_output_ascii): Likewise.
14532         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14533
14534 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14535
14536         * system.h (GIV_SORT_CRITERION): Poison.
14537         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14538         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14539
14540 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14541
14542         PR target/9348
14543         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14544         multiplies with a multiplication of the wrong signedness, its the
14545         signedness of the multiplication that we've performed that needs to
14546         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14547         if expand_mult_highpart_adjust places the result in target.
14548
14549 2004-02-03  Richard Henderson  <rth@redhat.com>
14550
14551         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14552
14553 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14554
14555         * config.gcc (sh[234]l): Use little endian fragments.
14556
14557 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14558
14559         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14560         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14561         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14562         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14563         floating point format.
14564         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14565         the above functions.
14566         (output_move_quad): Output float values in correct target format.
14567         (legitimate_const_double_p): New function.
14568         * config/pdp11/pdp11.h: Fix typos.
14569         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14570         (TARGET_FLOAT_FORMAT): Ditto.
14571         (pdp11_f_format, pdp11_d_format): Add external declarations.
14572         (MAX_REGS_PER_ADDRESS): Corrected.
14573         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14574         (PRINT_OPERAND): Output float literals in target format.
14575
14576 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14577
14578         PR c++/13975
14579         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14580         TI_PRIVATE.
14581         (access_public_node): Redefine.
14582         (access_protected_node): Likewise.
14583         (access_private_node): Likewise.
14584         * tree.c (build_common_tree_nodes): Create access_public_node,
14585         access_protected_node, and access_private_node.
14586
14587 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14588
14589         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14590         (MASK_INLINE_INT_DIV_THR): Ditto.
14591         (MASK_INLINE_SQRT_LAT): Ditto.
14592         (MASK_INLINE_SQRT_THR): Ditto.
14593         (MASK_DWARF2_ASM): Ditto.
14594         (MASK_EARLY_STOP_BITS): Ditto.
14595
14596 2004-02-02  Paul Brook  <paul@codesourcery.com>
14597
14598         Merge from csl-arm-branch.
14599
14600         2004-01-30  Paul Brook  <paul@codesourcery.com>
14601
14602         * aof.h (REGISTER_NAMES): Add vfp reg names
14603         (ADDITIONAL_REGISTER_NAMES): Ditto.
14604         * aout.h (REGISTER_NAMES): Ditto.
14605         (ADDITIONAL_REGISTER_NAMES): Ditto.
14606         * arm-protos.h: Update/Add Prototypes.
14607         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14608         Only allow 0.0 for VFP.
14609         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14610         (values_fp): Rename from values_fpa.  Update Users.
14611         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14612         Update users.  Only check valid constants for this hardware.
14613         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14614         Only allow consts for FPA.
14615         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14616         Only allow consts for FPA.
14617         (use_return_insn): Check for saved VFP regs.
14618         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14619         (arm_legitimize_address): Ditto.
14620         (arm_general_register_operand): New function.
14621         (vfp_mem_operand): New function.
14622         (vfp_compare_operand): New function.
14623         (vfp_secondary_reload_class): New function.
14624         (arm_float_compare_operand): New function.
14625         (vfp_print_multi): New function.
14626         (vfp_output_fstmx): New function.
14627         (vfp_emit_fstm): New function.
14628         (arm_output_epilogue): Output VPF reg restore code.
14629         (arm_expand_prologue): Output VFP reg save code.
14630         (arm_print_operand): Add 'P'.
14631         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14632         (arm_regno_class): Return classes for VFP regs.
14633         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14634         (arm_get_frame_size): Ditto.
14635         * arm.h (FIXED_REGISTERS): Add VFP regs.
14636         (CALL_USED_REGISTERS): Ditto.
14637         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14638         (FIRST_VFP_REGNUM): Define.
14639         (LAST_VFP_REGNUM): Define.
14640         (IS_VFP_REGNUM): Define.
14641         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14642         (HARD_REGNO_NREGS): Handle VFP regs.
14643         (REG_ALLOC_ORDER): Add VFP regs.
14644         (enum reg_class): Add VFP_REGS.
14645         (REG_CLASS_NAMES): Ditto.
14646         (REG_CLASS_CONTENTS): Ditto.
14647         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14648         (REG_CLASS_FROM_LETTER): Add 'w'.
14649         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14650         (EXTRA_MEMORY_CONSTRAINT): Define.
14651         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14652         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14653         (REGISTER_MOVE_COST): Ditto.
14654         (PREDICATE_CODES): Add arm_general_register_operand,
14655         arm_float_compare_operand and vfp_compare_operand.
14656         * arm.md (various): Rename as above.
14657         (divsf3): Enable when TARGET_VFP.
14658         (divdf3): Ditto.
14659         (movdfcc): Ditto.
14660         (sqrtsf2): Ditto.
14661         (sqrtdf2): Ditto.
14662         (arm_movdi): Disable when TARGET_VFP.
14663         (arm_movsi_insn): Ditto.
14664         (movsi): Only split with general regs.
14665         (cmpsf): Use arm_float_compare_operand.
14666         (push_fp_multi): Restrict to TARGET_FPA.
14667         (vfp.md): Include.
14668         * vfp.md: New file.
14669         * fpa.md (various): Rename as above.
14670         * doc/md.texi: Document ARM w and U constraints.
14671
14672         2004-01-15  Paul Brook  <paul@codesourcery.com>
14673
14674         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14675         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14676         Break out of loop when we find a float-abi.  Fix typo.
14677         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14678         Set -mfloat-abi=.
14679         * doc/install.texi: Document --with-fpu.
14680
14681         2003-01-14  Paul Brook  <paul@codesourcery.com>
14682
14683         * config.gcc (with_arch): Add armv6.
14684         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14685         * config/arm/arm.c (arm_overrride_options): Ditto.
14686
14687         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14688
14689         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14690         (FL_ARCH6): Renamed from FL_ARCH6J.
14691         (arm_arch3m): Renamed from arm_fast_multiply.
14692         (arm_arch6): Renamed from arm_arch6j.
14693         * arm.h: Update all uses of above.
14694         * arm-cores.def: Likewise.
14695         * arm.md: Likewise.
14696
14697         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14698         not arm6j.  Add entry for arch armv6.
14699
14700         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14701
14702         * arm.c (arm_emit_extendsi): Delete.
14703         * arm-protos.h (arm_emit_extendsi): Delete.
14704         * arm.md (zero_extendhisi2): Also handle zero-extension of
14705         non-subregs.
14706         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14707         (thumb_zero_extendhisi2): Only match if not v6.
14708         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14709         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14710         (thumb_extendqisi2): Likewise.
14711         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14712         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14713         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14714         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14715         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14716         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14717         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14718         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14719         (arm_extendqisi2addsi): Likewise.
14720
14721         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14722
14723         Revert this change:
14724         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14725         + REG addressing modes.
14726
14727         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14728         + REG addressing modes.
14729
14730         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14731
14732         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14733         CONSTANT_P_RTX.
14734
14735         2003-30-12  Paul Brook  <paul@codesourcery.com>
14736
14737         * longlong.h: protect arm inlines with !defined (__thumb__)
14738
14739         2003-30-12  Paul Brook  <paul@codesourcery.com>
14740
14741         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14742
14743         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14744
14745         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14746         change.
14747
14748         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14749
14750         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14751         to the virtual incoming args pointer for downward stacks.
14752
14753         2003-12-29  Paul Brook  <paul@codesourcery.com>
14754
14755         * config/arm/arm-cores.def: Add cost function.
14756         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14757         (arm_rtx_costs): Remove
14758         (struct processors): Add rtx_costs field.
14759         (all_cores, all_architectures): Ditto.
14760         (arm_override_options): Set targetm.rtx_costs.
14761         (thumb_rtx_costs): New function.
14762         (arm_rtx_costs_1): Remove cases handled elsewhere.
14763         * config/arm/arm.h (processor_type): Add COSTS parameter.
14764
14765         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14766
14767         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14768         (arm926ejs.md): Include it.
14769         * config/arm/arm926ejs.md: New pipeline description.
14770
14771         2003-12-24  Paul Brook  <paul@codesourcery.com>
14772
14773         * config/arm/arm.c (arm_arch6j): New variable.
14774         (arm_override_options): Set it.
14775         (arm_emit_extendsi): New function.
14776         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14777         * config/arm/arm.h (arm_arch6j): Declare.
14778         * config/arm/arm.md: Add sign/zero extend insns.
14779
14780         2003-12-23  Paul Brook  <paul@codesourcery.com>
14781
14782         * config/arm/arm.c (all_architectures): Add armv6.
14783         * doc/invoke.texi: Document it.
14784
14785         2003-12-19  Paul Brook  <paul@codesourcery.com>
14786
14787         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14788         insn patterns to match.
14789         * config/arm/arm-generic.md: Ditto.
14790         * config/arm/cirrus.md: Ditto.
14791         * config/arm/fpa.md: Ditto.
14792         * config/amm/iwmmxt.md: Ditto.
14793         * config/arm/arm1026ejs.md: Ditto.
14794         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14795         for 11_loadb.
14796
14797         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14798
14799         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14800         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14801         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14802         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14803         arm_no_early_mul_dep): Correctly deal with conditional execution,
14804         parallels and single shift operations.
14805         (arm_no_early_alu_shift_value_dep): Define.
14806         * arm.md (attr type): Replace 'normal' with 'alu',
14807         'alu_shift' and 'alu_shift_reg'.
14808         (attr core_cycles): Adjust.
14809         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14810         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14811         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14812         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14813         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14814         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14815         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14816         attribute appropriately.
14817         * config/arm/arm1026ejs.md (alu_op): Adjust.
14818         (alu_shift_op, alu_shift_reg_op): New.
14819         * config/arm/arm1136.md: Add better bypasses for early
14820         registers. Remove load[234] and store[234] bypasses.
14821         (11_alu_op): Adjust.
14822         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14823
14824         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14825
14826         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14827         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14828         * config/arm/arm.c (arm_no_early_store_addr_dep,
14829         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14830         * config/arm/arm1026ejs.md: Add load-store bypass.
14831         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14832         Add bypasses between instructions.
14833
14834         2003-12-10  Paul Brook  <paul@codesourcery.com>
14835
14836         * config/arm/arm.c (arm_fpu_model): New variable.
14837         (arm_fload_abi): New variable.
14838         (target_fpe_name): Rename from target_fp_name.
14839         (target_fpu_name): New variable.
14840         (arm_is_cirrus): Remove.
14841         (fpu_desc): New struct.
14842         (all_fpus): Define.
14843         (pf_model_for_fpu): Define.
14844         (all_loat_abis): Define.
14845         (arm_override_options): Set fp arch flags based on -mfpu=
14846         and -float-abi=.
14847         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14848         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14849         (*): Use new TARGET_* flags.
14850         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14851         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14852         (TARGET_SOFT_FLOAT): Ditto.
14853         (TARGET_SOFT_FLOAT_ABI): New.
14854         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14855         TARGET_HARD_FLOAT.
14856         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14857         (TARGET_OPTIONS): Add -mfpu=.
14858         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14859         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14860         (arm_pf_model): Define.
14861         (arm_float_abi_type): Define.
14862         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14863         * config/arm/arm.md: Use new TARGET_* flags.
14864         * config/arm/cirrus.md: Ditto.
14865         * config/arm/fpa.md: Ditto.
14866         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14867         * config/arm/semi.h (ASM_SPEC): Ditto.
14868         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14869         (FPUTYPE_DEFAULT): Set to VFP.
14870         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14871
14872         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14873
14874         PR target/12476
14875         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14876         'bx' instead of 'b' to avoid branch range restrictions.  Output
14877         the thunk immediately before the thunked-to function.
14878         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14879         .thumb_func if a thunk is being generated.  Emit .code 16 along
14880         with .thumb_func if a thunk is not being generated.
14881
14882         2003-11-15  Nicolas Pitre <nico@cam.org>
14883
14884         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14885         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14886         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14887         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14888         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14889
14890         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14891             Ian Lance Taylor  <ian@wasabisystems.com>
14892
14893         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14894         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14895
14896         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14897
14898         * config/arm/arm.md (insn):  Add new V6 instruction names.
14899         (generic_sched):  New attr.
14900         * config/arm/arm-generic.md:  Use generic_sched here.
14901         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14902         stages of pipeline.  Adjust latency counts accordingly.
14903         * config/arm/arm1136jfs.md:  New file.
14904
14905         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14906
14907         * config/arm/arm.h (processor_type): New enumeration type.
14908         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14909         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14910         (CPP_CPU_ARCH_SPEC): Likewise.
14911         * config/arm/arm.c (arm_tune): New variable.
14912         (all_cores): Use cores.def.
14913         (all_architectures): Add representative processor.
14914         (arm_override_options): Restructure way in which tuning
14915         information is deduced.
14916         * arm.md: Update "insn" and "type" attributes throughout.
14917         (insn): New attribute.
14918         (type): Compute "mult" from "insn" attribute.  Add load2,
14919         load3, load4 alternatives.
14920         (arm automaton): Move to arm-generic.md.
14921         * config/arm/arm-cores.def: New file.
14922         * config/arm/arm-generic.md: Likewise.
14923         * config/arm/arm1026ejs.md: Likewise.
14924
14925 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14926
14927         * doc/invoke.texi (SPARC options): Remove -mflat and
14928         all -mxxx (xxx:chip) options.
14929         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14930         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14931         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14932         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14933         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14934         * config/sparc/sparc.c: Likewise.
14935         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14936         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14937         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14938         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14939         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14940         (sparc_flat_must_save_register_p): Likewise.
14941         (sparc_flat_compute_frame_size): Likewise.
14942         (sparc_flat_save_restore): Likewise.
14943         (sparc_flat_function_prologue): Likewise.
14944         (sparc_flat_function_epilogue): Likewise.
14945         (sparc_flat_epilogue_delay_slots): Likewise.
14946         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14947         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14948         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14949         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14950         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14951         (CONDITIONAL_REGISTER_USAGE): Likewise.
14952         (FRAME_POINTER_REQUIRED): Likewise.
14953         (INITIAL_ELIMINATION_OFFSET): Likewise.
14954         (BASE_RETURN_VALUE_REG): Likewise.
14955         (BASE_OUTGOING_VALUE_REG): Likewise.
14956         (BASE_PASSING_ARG_REG): Likewise.
14957         (BASE_INCOMING_ARG_REG): Likewise.
14958         (INCOMING_REGNO): Likewise.
14959         (OUTGOING_REGNO): Likewise.
14960         (LOCAL_REGNO): Likewise.
14961         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14962         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14963         (EPILOGUE_USES): Likewise.
14964         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14965         ("flat" attribute): Delete.
14966         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14967         handling.
14968         (call followed by jump define_peephole's): Delete.
14969         (exception_receiver): Likewise.
14970         (builtin_setjmp_receiver): Likewise.
14971         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14972
14973 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14974
14975         PR c/11658
14976         PR c/13994
14977         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14978         on langhooks.h.
14979         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14980         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14981         Include langhooks.h.  Replace c_common_truthvalue_conversion
14982         with the truthvalue_conversion language hook throughout.
14983         (expr_no_commas): Call default_conversion before save_expr
14984         for the first term of the production 'x ? : y'.
14985         * c-common.c (c_common_truthvalue_conversion): Remove
14986         obsolete block.  Invoke recursively the hook instead
14987         of this function.
14988         * c-convert.c (convert): handle ERROR_MARK_NODE.
14989         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14990         returned by the truthvalue_conversion language hook.
14991         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14992         c_objc_common_truthvalue_conversion.
14993         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14994         New function.
14995         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14996         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14997         c_objc_common_truthvalue_conversion.
14998
14999 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15000
15001         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
15002         of gen_rtx.
15003         (LIBCALL_VALUE): Likewise.
15004         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
15005         gen_rtx_CC0 instead of gen_rtx.
15006         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
15007         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
15008         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
15009         gen_rtx.
15010         (m68hc11_emit_logical): Likewise.
15011
15012 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15013
15014         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
15015         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
15016         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
15017         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
15018         config/mips/mips.md, config/mmix/mmix.c,
15019         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
15020         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
15021         config/rs6000/altivec.md, config/s390/s390.c,
15022         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
15023         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
15024         Use const0_rtx instead of GEN_INT (0).  Do the same for other
15025         constants that are readily available.
15026
15027 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15028
15029         * doloop.c, optabs.c, regmove.c, sched-deps.c,
15030         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
15031         instead of GEN_INT (0).  Do the same for other constants that
15032         are readily available.
15033
15034 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15035
15036         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
15037         gen_rtx.
15038         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
15039         instead of gen_rtx.
15040         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
15041         gen_rtx.
15042         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
15043         gen_rtx_ASHIFT instead of gen_rtx.
15044         (udivmodqi4): Likewise.
15045
15046 2004-02-02  Richard Henderson  <rth@redhat.com>
15047
15048         PR target/13789
15049         * expr.c (store_expr): Use force_operand before emit_move_insn.
15050
15051 2004-02-02  Jeff Law  <law@redhat.com>
15052             Roger Sayle  <roger@eyesopen.com>
15053
15054         * tree.c (commutative_tree_code, associative_tree_code): New
15055         functions.
15056         (iterative_hash_expr): Use commutative_tree_code.
15057         * tree.h (commutative_tree_code, associative_tree_code): Declare.
15058         * fold-const.c (operand_equal_p): Use commutative_tree_code
15059         rather than inlining the commutativity check.
15060         (fold): Likewise.
15061
15062 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15063
15064         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
15065         * config/frv/frv-protos.h: Remove the prototype for
15066         frv_function_arg_keep_as_reference.
15067         * config/frv/frv.c (frv_function_arg_keep_as_reference):
15068         Remove.
15069         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
15070         * config/stormy16/stormy16.h: Remove the commented-out
15071         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
15072
15073 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
15074
15075         PR target/13914
15076         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
15077         for retaddr_column.
15078
15079 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15080
15081         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
15082         gen_rtx.
15083
15084 2004-02-02  Eric Christopher  <echristo@redhat.com>
15085             Zack Weinberg  <zack@codesourcery.com>
15086
15087         * c-opts.c (c_common_handle_option): Add -finput-charset.
15088         * c.opt: Ditto.
15089         * cppcharset.c (one_iso88591_to_utf8): Remove.
15090         (convert_iso88591_utf8): Ditto.
15091         (conversion_tab): Remove 8859-1 converter.
15092         (_cpp_input_to_utf8): Remove.
15093         (_cpp_init_iconv_buffer): Ditto.
15094         (_cpp_close_iconv_buffer): Ditto.
15095         (_cpp_convert_input): New function.
15096         (_cpp_default_encoding): Ditto.
15097         * cpphash.h: Add/remove prototypes for above.
15098         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
15099         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
15100         for narrow execution and input character sets.
15101         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
15102         * doc/cppopts.texi: Document -finput-charset.
15103
15104 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
15105
15106         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
15107         against FIRST_PSEUDO_REGISTER.
15108
15109 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15110
15111         * doc/invoke.texi (SPARC options): Further improve.
15112
15113 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15114
15115         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
15116         config/h8300/h8300.c, config/ip2k/ip2k.md,
15117         config/iq2000/iq2000.c, config/mips/mips.c,
15118         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
15119         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
15120         config/v850/v850.md: Fix indentation.
15121
15122 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15123
15124         * config/sparc/sparc.c (function_arg_slotno): Align TImode
15125         arguments on a 16-byte boundary in the parameter array if ARCH64.
15126         Split handling of TFmode.
15127
15128 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
15129
15130         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
15131         Don't test CONSTANT_P (x).
15132         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
15133         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
15134         Fix misindentation.
15135
15136 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15137
15138         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
15139
15140 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15141
15142         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
15143         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
15144         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
15145         config/iq2000/iq2000.c, config/m32r/m32r.c,
15146         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
15147         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
15148         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
15149         config/stormy16/stormy16.c, config/v850/v850.md,
15150         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
15151
15152 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15153
15154         * config/mcore/mcore.c (block_move_sequence): Replace
15155         gen_rtx_CONST_INT with GEN_INT.
15156
15157 2004-02-02  Jan Hubicka  <jh@suse.cz>
15158
15159         * alias.c (record_set): Use hard_regno_nregs.
15160         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
15161         * builtins.c (apply_args_size): Likewise.
15162         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
15163         mark_set_regs, add_stored_regs, mark_referenced_regs,
15164         insert_restore, insert_save, insert_one_insn): Likewise.
15165         * cfgcleanup.c: Include regs.h
15166         (mark_effect, mentions_nonequal_regs): Likewise.
15167         * cfgrtl.c (mark_killed_regs): Likewise
15168         * combine.c (update_table_tick, record_value_for_reg,
15169         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
15170         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
15171         reg_bitfield_target_p, distribute_notes): Likewise.
15172         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
15173         exp_equiv_p, cse_insn): Likewise.
15174         * cselib.c (cselib_lookup): Likewise.
15175         (cselib_invalidate_regno, cselib_record_set): Likewise.
15176         * df.c (df_ref_record): Likewise.
15177         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
15178         Likewise.
15179         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
15180         count_or_remove_death_notes_bb): Likewise.
15181         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
15182         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
15183         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
15184         * integrate.c (mark_stores): Likewise.
15185         * jump.c (delete_prior_computation): Likewise.
15186         * lcm.c (reg_dies, reg_becomes_live): Likewise.
15187         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15188         * loop.c (LOOP_REGNO_NREGS): Likewise.
15189         * postreload.c (reload_combine, reload_combine_note_store,
15190         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15191         * ra-colorize.c (combine, color_usable_p, get_free_reg,
15192         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
15193         try_recolor_web, insert_coalesced_conflicts, check_colors,
15194         break_precolored_alias): Likewise.
15195         * ra-debug.c: Include regs.h
15196         (ra_print_rtx_object): Likewise.
15197         * ra-rewrite (choose_spill_colors): Likewise.
15198         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15199         * ra.c (init_ra): Likewise.
15200         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15201         peep2_find_free_register): Likewise.
15202         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15203         * regclass.c (hard_regno_nregs): New array.
15204         (init_reg_modes_once): Initialize it.
15205         (choose_hard_reg_mode): Use it.
15206         (record_reg_classes): Likewise.
15207         * regmove.c (mark_flags_life_zones): Likewise.
15208         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15209         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15210         copy_value, maybe_mode_change, find_oldest_value_reg,
15211         copyprop_hardreg_forward_1):
15212         * regs.h (hard_regno_nregs): Declare.
15213         * realod.c (reload_inner_reg_of_subreg): Use it.
15214         (push_reload, combine_reloads, find_dummy_reload,
15215         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15216         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15217         reload_adjust_reg_for_mode): Likewise.
15218         * reload1.c (compute_use_by_pseudos, count_pseudo,
15219         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15220         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15221         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15222         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15223         delete_output_reload): Likewise.
15224         * resource.c (update_live_status, mark_referenced_resources,
15225         mark_set_resources, mark_target_live_regs): Likewise.
15226         * rtlanal.c:  Include regs.h
15227         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15228         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15229         subreg_regno_offset, subreg_offset_representable_p,
15230         hoist_test_store): Likewise.
15231         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15232         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15233         * stmt.c: Include regs.h
15234         (decl_conflicts_with_clobbers_p): Likewise.
15235         * varasm.c (make_decl_rtl): Likewise.
15236         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15237
15238 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15239
15240         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15241         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15242         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15243         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15244         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15245         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15246         config/iq2000/iq2000.h, config/m32r/m32r.c,
15247         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15248         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15249         config/mcore/mcore.c, config/mcore/mcore.h,
15250         config/mcore/mcore.md, config/mips/mips.c,
15251         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15252         config/rs6000/rs6000.c, config/s390/s390.c,
15253         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15254         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15255         "gen_rtx (FOO, " with "gen_rtx_FOO (".
15256
15257 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15258
15259         * config/h8300/h8300.md (two peephole2's): New.
15260
15261 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15262
15263         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15264         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15265         (ASM_CPU_SPEC): Likewise
15266         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15267         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
15268
15269 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15270
15271         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15272         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15273         (expand_builtin): Always call expand_builtin_pow.
15274
15275 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15276
15277         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15278         BUILT_IN_SIGNBITL): New GCC builtins.
15279         * builtins.c (expand_builtin_signbit): New function to RTL expand
15280         calls to signbit, signbitf and signbitl as inline intrinsics.
15281         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15282         (fold_builtin_signbit): New function to perform constant folding
15283         of signbit, signbitf and signbitl.
15284         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15285
15286         * doc/extend.texi: Document new signbit{,f,l} builtins.
15287
15288 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
15289
15290         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15291
15292 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
15293
15294         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15295         "mips_const_double_ok" and "simple_memory_operand", which were
15296         removed from the MIPS port with the mips-3_4-rewrite branch merge.
15297         * config/mips/mips.c (mips16_lay_out_constants): Update comment
15298         for removal of simple_memory_operand.
15299
15300 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15301
15302         * config/c4x/c4x.md: Use GEN_INT instead of
15303         gen_rtx (CONST_INT, ...).
15304
15305 2004-01-31  Richard Henderson  <rth@redhat.com>
15306
15307         * varasm.c (output_constant_pool): Don't zap the pool.
15308
15309 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15310
15311         * genrecog.c (decision_type): Add DT_const_int.
15312         (write_cond) [DT_const_int]: Print a comparison against small
15313         constant.
15314         (write_node): Simplify comparisons against small constants
15315         before printing tests.
15316
15317 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15318
15319         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15320         instead of gen_rtx_CONST_INT.
15321
15322 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15323
15324         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15325         instead of gen_rtx_CONST_INT.
15326
15327 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15328
15329         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15330         hook_bool_CUMULATIVE_ARGS_false.
15331         * targhooks.c (default_strict_argument_naming): Rename to
15332         hook_bool_CUMULATIVE_ARGS_false.
15333         * targhooks.h: Update the prototype for
15334         default_strict_argument_naming.
15335
15336 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15337
15338         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15339         * config/sh/sh.h: Likewise.
15340         * config/sh/sh.md: Likewise.
15341
15342 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15343
15344         * doc/invoke.texi (SPARC options): Restructure and update.
15345
15346 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15347
15348         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15349         STRICT_ARGUMENT_NAMING): Poison.
15350         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15351         hook_bool_tree_false.
15352         * targhooks.c (default_promote_function_args): Remove.
15353         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15354         Don't check incoming.
15355         (default_strict_argument_naming): Don't use
15356         STRICT_ARGUMENT_NAMING.
15357         * targhooks.h: Remove the prototype for
15358         default_promote_function_args.
15359
15360 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15361
15362         * config/i386/i386-protos.h: Remove the prototype for
15363         ix86_setup_incoming_varargs.
15364         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15365         (ix86_setup_incoming_varargs): Make it static.
15366         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15367
15368 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15369
15370         * alloc-pool.c: Fix comment typos.
15371         * builtin-types.def: Likewise.
15372         * builtins.def: Likewise.
15373         * c-pretty-print.c: Likewise.
15374         * df.h: Likewise.
15375         * reload1.c: Likewise.
15376
15377 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15378
15379         * doc/invoke.texi: Follow spelling conventions.
15380         * doc/tm.texi: Likewise.
15381
15382 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15383
15384         * doc/install.texi: Fix typos.
15385         * doc/invoke.texi: Likewise.
15386
15387 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15388
15389         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15390         registers as pointers.
15391         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15392
15393 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15394
15395         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15396         and restore it to gen_lowpart_general on exit.
15397         (gen_lowpart_for_combine): Adjust all callers to go through
15398         gen_lowpart.
15399         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15400         and restore it to gen_lowpart_general on exit.
15401         (gen_lowpart_if_possible): Adjust all callers to go through
15402         gen_lowpart.
15403         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15404         (gen_lowpart): Declare as pointer to function, initialized to
15405         gen_lowpart_general.
15406         * rtl.h (gen_lowpart): Declare as pointer to function.
15407
15408 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15409
15410         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15411         * calls.c: Likewise.
15412         * emit-rtl.c: Likewise.
15413         * function.c: Likewise.
15414         * reload1.c: Likewise.
15415         * config/i386/cygming.h: Likewise.
15416         * config/i386/i386.c: Likewise.
15417         * config/i386/winnt.c: Likewise.
15418
15419 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15420
15421         PR bootstrap/9249
15422         * doc/install.texi: document --enable-__cxa_atexit option.
15423         * configure.ac: Disable __cxa_atexit if not supported.
15424         * configure: Regenerate.
15425
15426 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
15427
15428         * ggc-zone.c (ggc_free): New function.
15429
15430 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15431
15432         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15433         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15434         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15435         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15436         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15437         config/alpha/alpha.c, config/alpha/alpha.h,
15438         config/alpha/alpha.md, config/alpha/unicosmk.h,
15439         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15440         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15441         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15442         config/frv/frvend.c, config/i386/cygming.h,
15443         config/i386/djgpp.h, config/i386/emmintrin.h,
15444         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15445         config/i386/i386-protos.h, config/i386/openbsd.h,
15446         config/i386/winnt.c, config/i386/xm-mingw32.h,
15447         config/i386/xmmintrin.h, config/ia64/ia64.md,
15448         config/iq2000/iq2000.md, config/m32r/m32r.md,
15449         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15450         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15451         config/mips/iris5gas.h, config/mips/iris6.h,
15452         config/mips/iris6gas.h, config/mips/linux.h,
15453         config/mips/mips.md, config/mips/netbsd.h,
15454         config/mips/openbsd.h, config/mips/windiss.h,
15455         config/pa/fptr.c, config/rs6000/aix.h,
15456         config/rs6000/altivec.h, config/rs6000/darwin.h,
15457         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15458         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15459         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15460         config/sparc/sol2.h: Update copyright.
15461
15462 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15463
15464         * Makefile.in (abs_docdir, abs_srcdir): Define.
15465         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15466
15467 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15468
15469         * genconfig.c (main): Have CC0_P check its operand even on a
15470         target without cc0.
15471
15472 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15473
15474         * config/alpha/alpha.c: Remove mentions of deprecates macros
15475         in comments, remove some target-independent comments about target
15476         macros, and/or add minimal function comments for target hook
15477         implementations.
15478         * config/avr/avr.c: Likewise.
15479         * config/ia64/ia64.h: Likewise.
15480         * config/ip2k/ip2k.c: Likewise.
15481         * config/iq2000/iq2000.c: Likewise.
15482         * config/m32r/m32r.h: Likewise.
15483         * config/m68hc11/m68hc11.c: Likewise.
15484         * config/mcore/mcore.c: Likewise.
15485         * config/mmix/mmix.c: Likewise.
15486         * config/mn10300/mn10300.c: Likewise.
15487         * config/pa/pa.c: Likewise.
15488         * config/pdp11/pdp11.c: Likewise.
15489         * config/rs6000/rs6000.h: Likewise.
15490         * config/sh/sh.c: Likewise.
15491         * config/sh/sh.h: Likewise.
15492         * config/sparc/sparc.c: Likewise.
15493         * config/sparc/sparc.h: Likewise.
15494         * config/stormy16/stormy16.c: Likewise.
15495         * config/xtensa/xtensa.c: Likewise.
15496
15497 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15498
15499         PR optimization/12147
15500         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15501         RELOAD_FOR_OPADDR_ADDR.
15502         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15503         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15504
15505 2004-01-30  Jan Hubicka  <jh@suse.cz>
15506
15507         * reload.c (get_secondary_mem): Fix updating of
15508         secondary_memlocs_elim_used.
15509
15510 2004-01-30  Richard Henderson  <rth@redhat.com>
15511
15512         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15513         (MAX_RTX_HASH_TABLE): Remove.
15514         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15515         (first_pool, last_pool, pool_offset): Remove.
15516         (struct rtx_constant_pool): Split out from ...
15517         (struct varasm_status): ... here.  Reference one via pointer.
15518         (struct constant_descriptor_rtx): Merge struct pool_constant.
15519         (SYMHASH): Remove.
15520         (decode_rtx_const): Remove.
15521         (const_hash_rtx, compare_constant_rtx): Remove.
15522         (record_constant_rtx): Remove.
15523         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15524         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15525         (const_rtx_hash_1, const_rtx_hash): New.
15526         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15527         (simplify_subtraction): Use simplify_rtx.
15528         (force_const_mem): Rewrite to use new data structures.
15529         (find_pool_constant): Likewise.
15530         (get_pool_constant, get_pool_constant_mark,
15531         get_pool_constant_for_function, get_pool_mode,
15532         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15533         (output_constant_pool_2): Split out from output_constant_pool.
15534         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15535         (output_constant_pool): Zap entire pool datastructure.
15536         (mark_constant): Use new pool datastructures.
15537         (mark_constants): Use for_each_rtx.
15538         (mark_constant_pool): Use new pool datastructures.
15539
15540 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15541
15542         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15543         Copy operands[1] to pseudo for simplify_gen_subreg.
15544
15545 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15546
15547         * gcse.c (bypass_block): Fix a typo in the previous check-in
15548         to the file.
15549
15550 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15551
15552         * toplev.c: Include alloc-pool.h.
15553         * Makefile.in (toplev.c): Update dependencies.
15554
15555 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15556
15557         * combine.c (simplify_shift_const, case XOR): Be careful when
15558         commuting XOR with ASHIFTRT.
15559
15560 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15561             Eric Botcazou  <ebotcazou@libertysurf.fr>
15562
15563         * config/sparc/sparc-protos.h: Remove the prototype for
15564         sparc_builtin_saveregs.
15565         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15566         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15567         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15568         (TARGET_STRUCT_VALUE_RTX): Likewise.
15569         (TARGET_RETURN_IN_MEMORY): Likewise.
15570         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15571         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15572         (sparc_builtin_saveregs): Make it static.
15573         (sparc_promote_prototypes): New.
15574         (sparc_struct_value_rtx): Likewise.
15575         (sparc_return_in_memory): Likewise.
15576         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15577         (PROMOTE_FUNCTION_RETURN): Likewise.
15578         (RETURN_IN_MEMORY): Likewise.
15579         (STRUCT_VALUE): Likewise.
15580         (STRUCT_VALUE_INCOMING): Likewise.
15581         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15582         (STRICT_ARGUMENT_NAMING): Likewise.
15583         (PROMOTE_PROTOTYPES): Likewise.
15584
15585         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15586
15587 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15588
15589         PR c/12818
15590         * varasm.c (const_hash_1) <STRING_CST>: Use the
15591         address to compute the hash value if flag_writable_strings.
15592         (compare_constant) <STRING_CST>: Compare the addresses
15593         if flag_writable_strings.
15594         (build_constant_desc): Do not copy the expression for a
15595         STRING_CST if flag_writable_strings.
15596
15597 2004-01-30  Jan Hubicka  <jh@suse.cz>
15598
15599         * alloc-pool.c: Include hashtab.h
15600         (alloc_pool_descriptor): New structure
15601         (alloc_pool_hash): New global variable.
15602         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15603         (create_alloc_pool): Update statistics.
15604         (free_alloc_pool): Likewise.
15605         (pool_alloc): Likewise.
15606         (output_info): New structure
15607         (print_statistics, dump_alloc_pool_statistics): New function.
15608         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15609         (dump_alloc_pool_statistics): Declare.
15610         * toplev.c (finalize):  Dump statistics.
15611
15612         * reload.c (secondary_memlocs_elim_used): New static variable.
15613         (get_secondary_mem): Update it.
15614         (find_reloads): Use it.
15615
15616 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15617
15618         * toplev.c: Fix broken checkin of 2003-12-30, again.
15619
15620 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15621
15622         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15623         s390*-*-* targets by specifying a 'nop' insn.
15624         * configure: Regenerate.
15625
15626 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15627
15628         PR target/11475
15629         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15630
15631 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15632
15633         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15634         of addr when creating MEM copy.
15635
15636 2004-01-29  Devang Patel  <dpatel@apple.com>
15637
15638         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15639
15640 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15641
15642         PR inline-asm/6162
15643         * reload.c (find_reloads): Only support one pair of commutative
15644         operands.
15645
15646 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15647
15648         PR java/13824
15649         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15650         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15651         recursion.
15652
15653 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15654
15655         * config/frv/frv.c: Don't mention deprecated macros in
15656         comments.  Remove some target-independent comments about
15657         target macros.
15658         * config/frv/frv.h: Likewise.
15659
15660 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15661
15662         * cfghooks.c (split_block): Set probability and count of the
15663         new edge.
15664
15665 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
15666
15667         * dwarf2out.c (struct die_struct): Added field decl_id.
15668         (decl_die_table): Changed to hash table.
15669         (decl_die_table_allocated): Deleted.
15670         (decl_die_table_in_use): Deleted.
15671         (DECL_DIE_TABLE_INCREMENT): Deleted.
15672         (decl_die_table_hash): New function.
15673         (decl_die_table_eq): New function.
15674         (lookup_decl_die): Lookup in a hash table.
15675         (equate_decl_number_to_die): Insert into a hash table.
15676         (dwarf2out_init): Init hash table decl_die_table.
15677
15678 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15679
15680         PR optimization/13424
15681         * expr.c (store_constructor): Revert 2003-12-03 change.
15682
15683         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15684         expected before returning early.  Avoid sharing RTL if they
15685         need to be changed.
15686
15687         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15688         handling so that memory attributes are preserved.  Don't call
15689         ix86_set_move_mem_attrs.
15690         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15691         (ix86_expand_clrstr): Rename src argument to
15692         dst.  Rework rep_stos and strset handling so that memory attributes
15693         are preserved.
15694         (ix86_expand_strlen): Pass src argument to
15695         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15696         memory attributes are preserved.
15697         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15698         change_address instead of gen_rtx_MEM.
15699         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15700         expanders.
15701         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15702         strmovqi, strmovqi_rex64): Remove.
15703         (rep_mov*, strmov*): Prefix insn names with *.
15704         (strset, strset_singleop, rep_stos): New expanders.
15705         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15706         strsetqi, strsetqi_rex64): Remove.
15707         (rep_stos*, strset*): Prefix insn names with *.
15708         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15709         to SImode.
15710         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15711         are preserved.
15712         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15713         Prefix insn names with *.
15714         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15715         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15716         (strlenqi_1): New expander.
15717         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15718
15719 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15720
15721         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15722         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15723         verify_flow_info): Declaration removed.
15724         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15725         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15726         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15727         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15728         instead of delete_block.
15729         * cfghooks.c: Include timevar.h and toplev.h.
15730         (cfg_hooks): Define here.
15731         (verify_flow_info, dump_bb): Moved from cfg.c.
15732         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15733         split_block, split_block_after_labels, move_block_after,
15734         delete_basic_block, split_edge, create_basic_block,
15735         create_empty_bb, can_merge_blocks_p, merge_blocks,
15736         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15737         New functions.
15738         * cfghooks.h (struct cfg_hooks): Added fields name,
15739         make_forwarder_block, tidy_fallthru_edge and
15740         move_block_after. Changed type of verify_flow_info, dump_bb,
15741         split_block fields. Renamed cfgh_split_edge and delete_block
15742         fields.
15743         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15744         split_block, delete_block, split_edge, create_basic_block,
15745         can_merge_blocks_p, merge_blocks): Macros removed.
15746         (cfg_hooks): Do not export.
15747         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15748         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15749         move_block_after, 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         Declare.
15753         (cfg_layout_rtl_cfg_hooks): Declare.
15754         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15755         New functions.
15756         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15757         (redirect_edge_with_latch_update): Removed.
15758         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15759         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15760         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15761         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15762         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15763         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15764         cfghooks.c.
15765         (rtl_create_basic_block): Coding style fix.
15766         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15767         rtl_make_forwarder_block): New functions.
15768         (update_cfg_after_block_merging): Removed.
15769         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15770         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15771         to dump_bb.
15772         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15773         find_if_case_2): Don't update dominators.
15774         * timevar.def (TV_CFG_VERIFY): New.
15775         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15776         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15777         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15778         (remove_bbs): Don't call remove_bbs.
15779         (create_preheader): Use make_forwarder_block.
15780         (mfb_keep_just, mfb_update_loops): New static functions.
15781
15782 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15783
15784         * config/avr/avr.h: Remove target-independent comments about
15785         target macros.
15786
15787 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15788
15789         * timevar.c (timevar_print): Mention when checking is enabled.
15790
15791 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15792
15793         * c-lex.c (c_lex): Rename to...
15794         (c_lex_with_flags): Add new parameter to get CPP flags.
15795         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15796         * c-pragma.h (c_lex_with_flags): Declare.
15797
15798 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15799
15800         * config/mcore/mcore.c (mcore_external_libcall): Add a
15801         comment.
15802         (mcore_return_in_memory): Likewise.
15803
15804 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15805
15806         * config/mcore/mcore-protos.h: Remove the prototype for
15807         mcore_setup_incoming_varargs.
15808         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15809         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15810         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15811         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15812         (TARGET_STRUCT_VALUE_RTX): Likewise.
15813         (TARGET_RETURN_IN_MEMORY): Likewise.
15814         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15815         (mcore_setup_incoming_varargs): Make it static.  Receive the
15816         first argument by reference.  Add argument second_time.
15817         (mcore_external_libcall): New.
15818         (mcore_return_in_memory): Likewise.
15819         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15820         (PROMOTE_FUNCTION_RETURN): Likewise.
15821         (STRUCT_VALUE): Likewise.
15822         (RETURN_IN_MEMORY): Likewise.
15823         (SETUP_INCOMING_VARARGS): Likewise.
15824         (PROMOTE_PROTOTYPES): Likewise.
15825         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15826
15827 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15828
15829         * config/m32r/m32r-protos.h: Remove the prototype for
15830         m32r_setup_incoming_varargs.
15831         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15832         (TARGET_STRUCT_VALUE_RTX): Likewise.
15833         (TARGET_RETURN_IN_MEMORY): Likewise.
15834         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15835         (m32r_return_in_memory): New.
15836         (m32r_setup_incoming_varargs): Make it static.
15837         * config/m32r/m32r.h: Remove #undef of
15838         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15839         definitions of PROMOTE_FUNCTION_ARGS and
15840         PROMOTE_FUNCTION_RETURN.
15841         (PROMOTE_PROTOTYPES): Remove.
15842         (RETURN_IN_MEMORY): Likewise.
15843         (STRUCT_VALUE): Likewise.
15844
15845 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15846
15847         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15848         (TARGET_STRUCT_VALUE_RTX): Likewise.
15849         (m68k_struct_value_rtx): Likewise.
15850         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15851         STRUCT_VALUE_REGNUM.
15852         (PROMOTE_PROTOTYPES): Remove.
15853         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15854         STRUCT_VALUE_REGNUM.
15855         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15856         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15857
15858 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15859
15860         * config/stormy16/stormy16.c
15861         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15862         TARGET_BUILD_BUILTIN_VA_LIST.
15863
15864 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15865
15866         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15867         (TARGET_STRUCT_VALUE_RTX): Likewise.
15868         (TARGET_RETURN_IN_MEMORY): Likewise.
15869         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15870         (v850_return_in_memory): Likewise.
15871         (v850_setup_incoming_varargs): Likewise.
15872         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15873         (SETUP_INCOMING_VARARGS): Likewise.
15874         (RETURN_IN_MEMORY): Likewise.
15875         (STRUCT_VALUE): Likewise.
15876
15877 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15878
15879         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15880         (fr30_setup_incoming_varargs): Don't use
15881         STRICT_ARGUMENT_NAMING.
15882         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15883         (STRICT_ARGUMENT_NAMING): Likewise.
15884
15885 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15886
15887         * config/frv/frv-protos.h: Remove the prototype for
15888         frv_expand_builtin_saveregs.
15889         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15890         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15891         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15892         STRUCT_VALUE_REGNUM.
15893         (frv_expand_builtin_saveregs): Make it static.
15894         (frv_struct_value_rtx): New.
15895         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15896
15897 2004-01-29  Jan Hubicka  <jh@suse.cz>
15898
15899         PR c++/12850
15900         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15901         initial pointers.
15902         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15903         for functions that will be only inlined.
15904         (cgraph_mark_function_to_output): Likewise.
15905         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15906         do not clear function body.
15907         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15908         (tree_rest_of_compilation): Reorganize the logic releasing function
15909         body to use callgraph datastructure.
15910
15911 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15912
15913         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15914         to register_operand.
15915
15916 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15917
15918         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15919         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15920         match_operand expressions so that all match_dups appear
15921         lexically after their corresponding match_operands.
15922
15923 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15924
15925         * config/h8300/h8300.c (WORD_REG_USED): Use
15926         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15927         (compute_saved_regs): Likewise.
15928         (h8300_expand_prologue): Likewise.  Allocate locals after
15929         saving registers.
15930         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15931         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15932         registers.
15933         (h8300_initial_elimination_offset): Adjust for the new frame
15934         layout, which swaps flips the order of locals and saved
15935         registers.
15936         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15937         (HARD_FRAME_POINTER_REGNUM): New.
15938         (ELIMINABLE_REGS): Add an elimination rule from
15939         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15940         (REGISTER_NAMES): Add fp.
15941         * config/h8300/h8300.md (FP_REG): Change to 11.
15942         (HFP_REG): New.
15943
15944 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15945
15946         * genrecog.c (write_node): Remove a useless local variable.
15947
15948 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15949
15950         * Makefile.in (options.c options.h): Use stamp file s-options to
15951         avoid unnecessary rebuilds.
15952         (options.o): New target listing dependencies.
15953         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15954         (STAGESTUFF): Add s-gtyp-gen.
15955
15956 2004-01-28  Richard Henderson  <rth@redhat.com>
15957
15958         * ggc.h (ggc_free): Declare.
15959         * ggc-common.c (ggc_realloc): Use it.
15960         * ggc-page.c: Remove lots of inline markers.
15961         (globals): Add free_object_list.
15962         (ggc_alloc): Tidy.
15963         (ggc_free, validate_free_objects): New.
15964         (poison_pages): Provide default.
15965         (ggc_collect): Call validate_free_objects; emit markers to
15966         the debug file.
15967
15968 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15969             Jim Wilson  <wilson@specifixinc.com>
15970
15971         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15972         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15973         scratch pointer.
15974         (ia64_secondary_reload_class): Delete case GR_REGS.
15975         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15976         Do not allocate a scratch register.
15977         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15978
15979 2004-01-28  Jan Hubicka  <jh@suse.cz>
15980
15981         * gcse.c (bypass_block): Prevent edges to be unified when we are
15982         about to emit compenstation code.
15983
15984 2004-01-28  Nick Clifton  <nickc@redhat.com>
15985
15986         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15987         the setcwx insn into a register.
15988
15989 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15990
15991         * config/fp-bit.c (pack_d): When using paired doubles to implement
15992         a long double, round the high part separately.
15993         (unpack_d): Fix the case in which the high part is a power of two
15994         and the low part is a nonzero value of the opposite sign.
15995
15996 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15997
15998         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15999         (TARGET_STRUCT_VALUE_RTX): Likewise.
16000         (c4x_external_libcall): Likewise.
16001         (c4x_struct_value_rtx): Likewise.
16002         * config/c4x/c4x.h: Remove.
16003         (STRUCT_VALUE_REGNUM): Likewise.
16004         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
16005
16006 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16007
16008         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
16009         (TARGET_STRUCT_VALUE_RTX): Likewise.
16010         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
16011         (STRUCT_VALUE): Likewise.
16012         (PROMOTE_PROTOTYPES): Likewise.
16013
16014 2004-01-27  Roger Sayle  <roger@eyesopen.com>
16015
16016         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
16017         CONST_INT before using INTVAL.
16018
16019 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
16020
16021         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
16022         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
16023         frame if !TARGET_BACKCHAIN.
16024         * config/s390/s390.md ("allocate_stack"): Use pattern only if
16025         TARGET_BACKCHAIN.
16026         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
16027
16028 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16029
16030         * ia64.c (ia64_function_arg): When placing HFAs in integer
16031         registers, do not special case the mode used for complex
16032         types.  Do not advance int_regs until the current register
16033         is full.
16034
16035 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
16036
16037         PR target/7297
16038         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
16039
16040 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
16041
16042         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
16043         slow, unaligned loads and stores while debugging.  Fix formatting.
16044
16045 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
16046
16047         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
16048         of computing wmode.
16049         (restore_stack_nonlocal): Same.
16050
16051 2004-01-27  Devang Patel <dpatel@apple.com>
16052
16053         * Makefile.in (dwarf2out.o): Depend on input.h
16054         * dbxout.c (dbx_debug_hooks): Add new empty hook for
16055         imported_module_or_decl.
16056         (xcoff_debug_hooks): Same.
16057         * sdbout.c (sdb_debug_hooks): Same.
16058         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
16059         * debug.c (do_nothing_debug_hooks): Same.
16060         (debug_nothing_tree_tree): New function.
16061         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
16062         * dwarf2out.c: Include input.h.
16063         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
16064         (remove_child_TAG): New function.
16065         (dwarf_tag_name): Handle DW_TAG_imported_module.
16066         (gen_subprogram_die): Equate decl number to declaration die. Do not
16067         remove all children dies while reusing declaration die for definition.
16068         Instead, selectively remove only formal parameters.
16069         (gen_variable_die): Equate variable decl to declaration die.
16070         (gen_field_die): Equate field decl to line number.
16071         (force_namespace_die): Replace it with ...
16072         (force_decl_die): ... this.
16073         (force_type_die): New function.
16074         (setup_namespace_context): Replace use of force_namespace_die() with
16075         force_decl_die().
16076         (gen_namespace_die): Same.
16077         (dwarf2out_imported_module_or_decl): New function.
16078
16079 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
16080
16081         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
16082         on CQImode and CHImode incoming arguments in register a7.
16083         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
16084         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
16085         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
16086         xtensa_copy_incoming_a7 before reload.
16087
16088 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
16089
16090         * coverage.c (get_coverage_counts): Give a different message
16091         if flag_guess_branch_prob is set.
16092         * predict.c (counts_to_freqs): Return an int.
16093         (estimate_bb_frequencies): If counts_to_freqs returns zero,
16094         calculate estimates.
16095
16096 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
16097
16098         * config/iq2000/iq2000-protos.h: Remove the prototype for
16099         iq2000_setup_incoming_varargs.
16100         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16101         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16102         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16103         (TARGET_STRUCT_VALUE_RTX): Likewise.
16104         (TARGET_RETURN_IN_MEMORY): Likewise.
16105         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16106         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16107         (iq2000_return_in_memory): Likewise.
16108         (iq2000_setup_incoming_varargs): Make it static.  Receive the
16109         first argument by reference.
16110         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
16111         (PROMOTE_FUNCTION_RETURN): Likewise.
16112         (PROMOTE_PROTOTYPES): Likewise.
16113         (RETURN_IN_MEMORY): Likewise.
16114         (STRUCT_VALUE): Likewise.
16115         (SETUP_INCOMING_VARARGS): Likewise.
16116         (STRICT_ARGUMENT_NAMING): Likewise.
16117
16118 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
16119
16120         * fixinc/fixinc.c (test_test): Initialize res.
16121         (start_flexer): Initialize pz_cmd_save.
16122
16123 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16124
16125         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
16126         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
16127
16128 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16129
16130         PR 7198
16131         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
16132         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
16133         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
16134         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
16135         Possibly rename pattern for consistency.
16136         Remove ??? comments suggesting that this be done.
16137         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
16138         New patterns.
16139         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
16140         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
16141         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
16142         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
16143         Update to match.
16144
16145 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
16146
16147         * config/arm/arm.c (output_return_instruction): Only restore IP
16148         into SP if frame_pointer_needed.
16149
16150 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16151
16152         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16153         for SCmode and DCmode if ARCH32.
16154         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
16155         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
16156         if ARCH32.
16157         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
16158         if ARCH32.
16159         (BASE_OUTGOING_VALUE_REG): Likewise.
16160
16161 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16162
16163         PR target/10904
16164         PR target/13058
16165         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
16166         Forbid mode changes from SImode for lower FP regs if ARCH64.
16167
16168 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
16169
16170         * Makefile.in (bt-load.o): Depend on except.h.
16171         * bt-load.c (except.h): #include.
16172         (compute_defs_uses_and_gen): If insn at end of BB can throw
16173         within this function, consider registers used by it unavailable for
16174         btr migration.
16175         (move_btr_def): If insn at end of BB can throw, insert before rather
16176         than after.
16177
16178         * flags.h (flag_btr_bb_exclusive): Declare.
16179         * toplev.c (flag_btr_bb_exclusive): New variable.
16180         (f_options): Add btr-bb-exclusive.
16181         * bt-load.c (augment_live_range): Restore old behaviour if
16182         flag_btr_bb_exclusive is set.
16183         * common.opt: Add entry for -fbtr-bb-exclusive.
16184         * opts.c (common_handle_options): Same.
16185         * doc/invoke.texi: Document -fbtr-bb-exclusive.
16186
16187         * bt-load.c (btrs_live_at_end): New variable.
16188         (compute_defs_uses_and_gen): Compute its pointed-to array.
16189         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16190         (augment_live_range): When augmenting with a new dominator,
16191         use only its btrs_live_at_end set, but also add in the full set
16192         of the old dominator.
16193         (btr_def_live_range): Use btrs_live_at_end.
16194         (move_btr_def): Set other_btr_uses_before_def, and move new set
16195         to the end of the basic block, if appropriate.
16196         (migrate_btr_defs): Allocate and free btrs_live_at_end.
16197
16198         * bt-load.c (basic_block_freq): Remove outdated comment.
16199
16200 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
16201
16202         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16203         (PREDICATE_CODES): Remove duplicate.
16204         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16205         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16206         (MASK_PROFILE_KERNEL): Adjust define.
16207
16208 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
16209
16210         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16211         of long string literals from 32 bytes to sizeof (void *) when !-Os
16212         and to 1 with -Os.
16213
16214 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16215
16216         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16217         constant addresses in the normal mode.
16218
16219 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16220
16221         * system.h (CHAR_BITFIELD): Delete.
16222         (BOOL_BITFIELD): New.
16223         * c-decl.c (c_scope): Use BOOL_BITFIELD.
16224         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16225
16226 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16227
16228         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16229         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16230         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16231         (TARGET_STRUCT_VALUE_RTX): Likewise.
16232         (TARGET_RETURN_IN_MEMORY): Likewise.
16233         (arc_return_in_memory): Likewise.
16234         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16235         (PROMOTE_FUNCTION_RETURN): Likewise.
16236         (RETURN_IN_MEMORY): Likewise.
16237         (STRUCT_VALUE): Likewise.
16238
16239 2004-01-26  Richard Henderson  <rth@redhat.com>
16240
16241         * c-parse.in (extension): Use itype.
16242         (SAVE_EXT_FLAGS): Don't allocate a tree.
16243         (RESTORE_EXT_FLAGS): Don't read a tree.
16244
16245 2004-01-26  Jan Hubicka  <jh@suse.cz>
16246
16247         * cselib.c (discard_useless_values):  Clear out value pointer pointing
16248         to datastructure to be recycled.
16249
16250 2004-01-25  Jan Hubicka  <jh@suse.cz>
16251
16252         * genextract.c (main): Do not output the memset when not checking.
16253
16254 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16255
16256         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16257         switch statement instead of a chain of if statements.
16258
16259 2004-01-26  Jeff Law  <law@redhat.com>
16260
16261         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
16262         acute accents for Petur Runolfsson's entry.
16263
16264 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16265
16266         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16267         (TARGET_RETURN_IN_MEMORY): Likewise.
16268         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16269         (RETURN_IN_MEMORY): Likewise.
16270
16271 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16272
16273          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16274          unaligned load/store into smaller loads and stores.
16275
16276 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16277
16278         * function.c (assign_parms): Do not assign
16279         long long argument to memory in prologue if
16280         is it loaded into register.
16281
16282 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16283
16284          PR middle-end/13779
16285          * expr.c (emit_group_load): split constant
16286          correctly into register components of PARALLEL insn.
16287
16288 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16289
16290         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16291         Use adjust_address_nv directly with appropriate mode.
16292         (restore_stack_nonlocal): Ditto.
16293
16294 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16295
16296         * config/xtensa/xtensa-protos.h: Remove the prototype for
16297         xtensa_builtin_saveregs.
16298         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16299         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16300         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16301         (TARGET_STRUCT_VALUE_RTX): Likewise.
16302         (TARGET_RETURN_IN_MEMORY): Likewise.
16303         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16304         (xtensa_builtin_saveregs): Make it static.
16305         (xtensa_return_in_memory): New.
16306         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16307         (PROMOTE_FUNCTION_RETURN): Likewise.
16308         (PROMOTE_PROTOTYPES): Likewise.
16309         (STRUCT_VALUE): Likewise.
16310         (RETURN_IN_MEMORY): Likewise.
16311         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16312
16313 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16314
16315         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16316         (arm_setup_incoming_varargs): Likewise.
16317         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16318
16319 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16320
16321         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16322         (cris_setup_incoming_varargs): Likewise.
16323         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16324
16325 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16326
16327         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16328         (ns32k_struct_value_rtx): Likewise.
16329         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16330         NS32K_STRUCT_VALUE_REGNUM.
16331
16332 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16333
16334         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16335         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16336         (TARGET_STRUCT_VALUE_RTX): Likewise.
16337         (arm_struct_value_rtx): Likewise.
16338         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16339         (STRUCT_VALUE): Likewise.
16340         (STRUCT_VALUE_REGNUM): Likewise.
16341         (PROMOTE_PROTOTYPES): Likewise.
16342
16343 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16344
16345         * config/ia64/ia64-protos.h: Remove the prototype for
16346         ia64_setup_incoming_varargs and ia64_return_in_memory.
16347         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16348         (TARGET_RETURN_IN_MEMORY): Likewise.
16349         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16350         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16351         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16352         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16353         (ia64_return_in_memory): Make it static.  Change the return
16354         type to bool from int.  Add an argument.
16355         (ia64_struct_value_rtx): New.
16356         * config/ia64/ia64.h: Remove commented-out definitions of
16357         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16358         PROMOTE_PROTOTYPES.
16359         (RETURN_IN_MEMORY): Remove.
16360         (STRUCT_VALUE_REGNUM): Likewise.
16361         (STRICT_ARGUMENT_NAMING): Likewise.
16362
16363 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16364
16365         PR target/13666
16366         * config/sparc/sparc.c (function_arg_union_value): New function.
16367         (function_arg): Use it to deal with unions.
16368         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16369         Replace a conditional statement by a simpler one.
16370
16371 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16372
16373         * config/mips/mips.c (mips16_optimize_gp): Delete.
16374         (mips_reorg): Don't call it.
16375
16376 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16377
16378         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16379         (floatunsqihf2): Remove operand 6.
16380         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16381         fix patterns.
16382         (ldi_conditional, ldf_conditional): Validate operands.
16383
16384 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16385
16386         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16387         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16388
16389 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16390
16391         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16392         memory references if TARGET_EXPOSE_LDP nonzero.
16393
16394 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16395
16396         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16397
16398 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16399
16400         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16401         invalid operand combinations.
16402
16403 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16404
16405         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16406         c4x_legitimate_address_p.  Fix post_modify check.
16407
16408         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16409         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16410
16411 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16412
16413         * config/pa/pa-protos.h: Remove the prototype for
16414         hppa_builtin_saveregs.  Add a prototype for
16415         pa_return_in_memory.
16416         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16417         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16418         (TARGET_STRUCT_VALUE_RTX): Likewise.
16419         (TARGET_RETURN_IN_MEMORY): Likewise.
16420         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16421         (pa_struct_value_rtx): Likewise.
16422         (pa_return_in_memory): Likewise.
16423         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16424         PA_STRUCT_VALUE_REGNUM.
16425         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16426         (EXPAND_BUILTIN_SAVEREGS): Remove.
16427         (PROMOTE_PROTOTYPES): Likewise.
16428         (PROMOTE_FUNCTION_RETURN): Likewise.
16429
16430 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16431
16432         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16433         (TARGET_STRUCT_VALUE_RTX): Likewise.
16434         (vax_struct_value_rtx): Likewise.
16435         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16436         VAX_STRUCT_VALUE_REGNUM.
16437         (PROMOTE_PROTOTYPES): Remove.
16438
16439 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16440
16441         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16442
16443 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
16444
16445         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16446         and MIPS64 have HI/LO interlocks.  Update comment.
16447
16448 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16449
16450         * config/stormy16/stormy16-protos.h: Remove the prototype for
16451         xstormy16_setup_incoming_varargs.
16452         * config/stormy16/stormy16.c
16453         (xstormy16_setup_incoming_varargs): Remove.
16454         (xstormy16_return_in_memory): New.
16455         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16456         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16457         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16458         (TARGET_STRUCT_VALUE_RTX): Likewise.
16459         (TARGET_RETURN_IN_MEMORY): Likewise.
16460         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16461         (PROMOTE_FUNCTION_RETURN): Likewise
16462         (PROMOTE_PROTOTYPES): Likewise
16463         (RETURN_IN_MEMORY): Likewise
16464         (STRUCT_VALUE): Likewise
16465         (SETUP_INCOMING_VARARGS): Likewise
16466
16467 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16468
16469         * config/mips/mips.c (mips_offset_within_object_p): New function.
16470         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16471         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16472         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16473
16474 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16475
16476         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16477         (PROMOTE_FUNCTION_RETURN): Likewise.
16478
16479 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16480
16481         * config/mn10300/mn10300-protos.h: Remove the prototype for
16482         mn10300_builtin_saveregs.
16483         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16484         (TARGET_STRUCT_VALUE_RTX): Likewise.
16485         (TARGET_RETURN_IN_MEMORY): Likewise.
16486         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16487         (mn10300_return_in_memory): Likewise.
16488         (mn10300_builtin_saveregs): Make it static.
16489         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16490         (RETURN_IN_MEMORY): Likewise.
16491         (STRUCT_VALUE): Likewise.
16492         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16493
16494 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16495
16496         PR bootstrap/13853
16497         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16498
16499 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16500
16501         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16502         using ccr.
16503
16504 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16505
16506         * config/i860/i860-protos.h: Remove the prototype for
16507         i860_saveregs.
16508         * config/i860/i860.c (i860_saveregs): Make it static.
16509         (i860_struct_value_rtx): New.
16510         (TARGET_STRUCT_VALUE_RTX): Likewise.
16511         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16512         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16513         I860_STRUCT_VALUE_REGNUM.
16514         (EXPAND_BUILTIN_SAVEREGS): Remove.
16515
16516 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16517
16518         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16519         (TARGET_RETURN_IN_MEMORY): Likewise.
16520         (m68hc11_struct_value_rtx): Likewise.
16521         (m68hc11_return_in_memory): Likewise.
16522         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16523         of PROMOTE_PROTOTYPES.
16524         (RETURN_IN_MEMORY): Remove.
16525         (STRUCT_VALUE_REGNUM): Likewise.
16526
16527 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16528
16529         * config/mmix/mmix-protos.h: Remove the prototype for
16530         mmix_setup_incoming_varargs.
16531         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16532         (TARGET_STRUCT_VALUE_RTX): Likewise.
16533         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16534         (mmix_setup_incoming_varargs): Make it static.
16535         (mmix_struct_value_rtx): New.
16536         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16537         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16538         (STRUCT_VALUE_REGNUM): Remove.
16539         (SETUP_INCOMING_VARARGS): Likewise.
16540
16541 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16542
16543         * config/mips/mips-protos.h: Remove the prototypes for
16544         mips_setup_incoming_varargs and mips_return_in_memory.
16545         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16546         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16547         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16548         (TARGET_STRUCT_VALUE_RTX): Likewise.
16549         (TARGET_RETURN_IN_MEMORY): Likewise.
16550         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16551         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16552         (mips_setup_incoming_varargs): Match the prototype for
16553         TARGET_SETUP_INCOMING_VARARGS.
16554         (mips_return_in_memory): Make it static.  Add argument fntype.
16555         (mips_strict_argument_naming): New.
16556         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16557         (PROMOTE_FUNCTION_ARGS): Likewise.
16558         (PROMOTE_FUNCTION_RETURN): Likewise.
16559         (STRUCT_VALUE): Likewise.
16560         (RETURN_IN_MEMORY): Likewise.
16561         (SETUP_INCOMING_VARARGS): Likewise.
16562         (STRICT_ARGUMENT_NAMING): Likewise.
16563
16564 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16565
16566         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16567         (TARGET_RETURN_IN_MEMORY): Likewise.
16568         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16569         (ip2k_return_in_memory): Likewise.
16570         (ip2k_setup_incoming_varargs): Likewise.
16571         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16572         (STRUCT_VALUE): Likewise.
16573         (STRUCT_VALUE_INCOMING): Likewise.
16574         (SETUP_INCOMING_VARARGS): Likewise.
16575
16576 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16577
16578         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16579         (TARGET_RETURN_IN_MEMORY): Likewise.
16580         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16581         (avr_return_in_memory): Remove.
16582         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16583         (STRUCT_VALUE): Likewise.
16584         (STRUCT_VALUE_INCOMING): Likewise.
16585         (STRICT_ARGUMENT_NAMING): Likewise.
16586
16587 2004-01-25  Jan Hubicka  <jh@suse.cz>
16588
16589         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16590
16591 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16592
16593         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16594         (mips_regno_mode_ok_for_base_p): Declare.
16595         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16596         (FRAME_POINTER_REGNUM): Renumber to 78.
16597         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16598         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16599         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16600         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16601         (REG_MODE_OK_FOR_BASE_P): Likewise.
16602         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16603         entry for 77 to "$arg" and entry for 78 to "$frame".
16604         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16605         (mips_reg_mode_ok_for_base_p): Remove.
16606         (mips_regno_mode_ok_for_base_p): New function, derived from old
16607         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16608         restrictions unless we're being strict.
16609         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16610
16611 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16612
16613         * c-common.h: Fix comment typos.
16614         * c-decl.c: Likewise.
16615         * cgraphunit.c: Likewise.
16616         * combine.c: Likewise.
16617         * et-forest.c: Likewise.
16618         * flow.c: Likewise.
16619         * function.c: Likewise.
16620         * ifcvt.c: Likewise.
16621         * integrate.c: Likewise.
16622         * jump.c: Likewise.
16623         * postreload.c: Likewise.
16624         * varray.c: Likewise.
16625
16626 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16627
16628         * doc/frontends.texi: Update copyright.
16629         * doc/gcov.texi: Likewise.
16630         * doc/gty.texi: Likewise.
16631         * doc/sourcebuild.texi: Likewise.
16632         * doc/standards.texi: Likewise.
16633
16634 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16635
16636         PR target/12978
16637         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16638         Remove movstrqi_small because it conflicts with movstrqi_large.
16639
16640 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16641
16642         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16643         (TARGET_STRUCT_VALUE_RTX): Likewise.
16644         (cris_struct_value_rtx): Likewise.
16645         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16646         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16647         STRUCT_VALUE_REGNUM.
16648         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16649
16650 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16651
16652         PR bootstrap/13848
16653         * cse.c (cse_cc_succs): Change the mode of the source expression
16654         as soon as decide we need a new mode.  Don't permit changing modes
16655         if we found a match in a successor block.
16656         (cse_condition_code_reg): Save original mode of source expression
16657         so that we know whether we have to change the mode in other
16658         insns.
16659
16660 2004-01-24  Jan Hubicka  <jh@suse.cz>
16661
16662         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16663         widen_memory_access):  Return early when there is nothing to change.
16664
16665 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16666
16667         * simplify-rtx.c (simplify_relational_operation): Don't
16668         simplify address == constant into address + -constant == 0.
16669
16670 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16671
16672         * gcc.c (process_command): Don't internationalize the
16673         Copyright message.
16674         * mips-tfile.c (main): Likewise.
16675
16676 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16677
16678         * cse.c: (cse_cc_succs) Fix comparison warning.
16679
16680 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16681
16682         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16683
16684 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16685
16686         * config/h8300/h8300-protos.h: Provide prototypes for
16687         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16688         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16689         (h8300_rtx_ok_for_base_p): Likewise.
16690         (h8300_legitimate_address_p): Likewise.
16691         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16692         h8300_legitimate_constant_p.
16693         (RTX_OK_FOR_BASE_P): Remove.
16694         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16695
16696 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16697
16698         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16699         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16700         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16701         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16702         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16703         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16704         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16705         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16706
16707 2004-01-24  Jan Hubicka  <jh@suse.cz>
16708
16709         * cselib.c (remove_useless_values):  Do not access discarded values.
16710
16711 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16712
16713         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16714         arrays.
16715
16716 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16717
16718         * recog.c: Fix a typo in copyright.
16719
16720 2004-01-23  Andrew Pinski  <apinski@apple.com>
16721
16722         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16723         (call_value): Likewise.
16724
16725 2004-01-23  Richard Henderson  <rth@redhat.com>
16726
16727         PR opt/12941
16728         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16729         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16730         if SHIFT_COUNT_TRUNCATED is set.
16731
16732 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16733
16734         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16735         separate real and imaginary parts.
16736         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16737
16738 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16739
16740         PR target/13674
16741         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16742         loading into GPR.
16743
16744 2004-01-23  Jan Hubicka  <jh@suse.cz>
16745
16746         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16747         change.
16748
16749         * alloc-pool.c (align_four): Kill.
16750         (create_alloc_pool): Align size to eight.
16751         (free_alloc_pool, free_pool): Invalidate deallocated data.
16752
16753 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16754
16755         PR gcc/1532
16756         * cse.c (cse_change_cc_mode): New static function.
16757         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16758         (cse_condition_code_reg): New function.
16759         * rtl.h (cse_condition_code_reg): Declare.
16760         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16761         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16762         cc_modes_compatible.
16763         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16764         (TARGET_CC_MODES_COMPATIBLE): Define.
16765         (TARGET_INITIALIZER): Add new initializers.
16766         * targhooks.c (default_cc_modes_compatible): New function.
16767         * targhooks.c (default_cc_modes_compatible): Declare.
16768         * hooks.c (hook_bool_intp_intp_false): New function.
16769         * hooks.h (hook_bool_intp_intp_false): Declare.
16770         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16771         (TARGET_CC_MODES_COMPATIBLE): Define.
16772         (ix86_fixed_condition_code_regs): New static function.
16773         (ix86_cc_modes_compatible): Likewise.
16774         * doc/tm.texi (Condition Code): Document new hooks.
16775
16776 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16777
16778         * fixinc/inclhack.def (bad_lval): Renamed to ...
16779         (alpha_bad_lval): ... this.
16780         Removed file list.
16781         Restrict to alpha*-dec-osf*.
16782         * fixinc/fixincl.x: Regenerate.
16783         * fixinc/tests/base/dirent.h: Remove, moving test ...
16784         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16785
16786 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16787
16788         PR c/13814
16789         * c-decl.c (diagnose_mismatched_decls): Also discard a
16790         built-in if we encounter an old-style definition with the
16791         same name.
16792
16793 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16794
16795         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16796         set to default{32,64}.
16797
16798 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16799
16800         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16801         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16802
16803 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16804             Olivier Hainque  <hainque@act-europe.fr>
16805
16806         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16807         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16808
16809 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16810
16811         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16812         size for minipool references.
16813
16814 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16815
16816         * real.c (real_floor, real_ceil): Tweak to allow input and output
16817         arguments to overlap.
16818         (real_round): New function to implement round(3m) semantics.
16819         * real.h (real_round): Prototype here.
16820         * builtins.c (fold_builtin_round): New function to constant fold
16821         round, roundf and roundl.
16822         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16823
16824 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16825
16826         PR optimization/13819
16827         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16828         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16829         (sh_handle_sp_switch_attribute): Remove warning.
16830
16831 2004-01-23  Jan Hubicka  <jh@suse.cz>
16832
16833         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16834
16835 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16836
16837         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16838         may or may not return non-NIL.
16839         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16840         check CANNOT_CHANGE_MODE_CLASS
16841
16842 2004-01-23  Jan Hubicka  <jh@suse.cz>
16843
16844         * basic-block.h (PROP_POSTRELOAD): New macro.
16845         (CLEANUP_LOG_LINKS): New.
16846         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16847         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16848
16849         * cselib.c (value_pool): New.
16850         (new_cselib_val): Use pool.
16851         (cselib_init): Initialize value_pool
16852         (cselib_finish): Free pool.
16853
16854 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16855
16856         * config/sparc/sparc.c (scan_record_type): New function.
16857         (function_arg_slotno): Use it to determine which kinds of
16858         registers the record can be passed in.
16859
16860 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16861
16862         * config/pa/fptr.c: Fix old-style definition.
16863
16864 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16865
16866         PR optimization/13724
16867         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16868         represents the zero bits produced by a ZERO_EXTEND operation.
16869
16870 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16871
16872         PR optimization/13821
16873         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16874         correctly calculate the lowpart offset of the contracted subreg.
16875
16876 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16877
16878         * doc/invoke.texi (Optimize Options): Note that --param arguments
16879         are subject to change without notice.
16880
16881 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16882
16883         * config.gcc (mips-sgi-irix6*o32): Removed.
16884         * config/mips/iris6-o32-as.h: Likewise.
16885         * config/mips/iris6-o32-gas.h: Likewise.
16886         * config/mips/iris6-o32.h: Likewise.
16887
16888 2004-01-22  Jan Hubicka  <jh@suse.cz>
16889
16890         * cfgcleanup.c (first_pass): New static variable.
16891         (try_forward_edges):  Add work limiting check for threading.
16892         (try_crossjump_bb):  Add work limiting check for crossjumping.
16893         (try_optimize_cfg):  Maintain first pass variable.
16894
16895 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16896
16897         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16898         handles complex and vector modes.
16899
16900 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16901
16902         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16903         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16904         (STRICT): Likewise.
16905
16906 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16907
16908         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16909         (genrtl_for_stmt): Remove emit_nop calls.
16910
16911 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16912
16913         PR target/13713
16914         PR target/13324
16915         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16916         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16917         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16918
16919 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16920
16921         * config/arm/arm.c: Include "debug.h".
16922         (thumb_pushpop): Take two new arguments.  Add some commentary.
16923         Output frame information when pushing.
16924         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16925         thumb_pushpop.
16926         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16927         offset, and pass it to thumb_pushpop.  Output CFI information.
16928         (thumb_expand_prologue): Add some frame-related markers and notes.
16929
16930 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16931
16932         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16933         for TARGET_64BIT.
16934         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16935         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16936
16937 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16938             Paolo Bonzini  <bonzini@gnu.org>
16939
16940         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16941         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16942         * rtl.h (subreg_lsb_1): Prototype here.
16943         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16944         sign extensions.
16945
16946 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16947
16948         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16949         macro need not be defined if jump-tables should contain
16950         relative addresses only when -fPIC or -fPIC is in effect.
16951
16952 2004-01-22  Jan Hubicka  <jh@suse.cz>
16953
16954         * alias.c (reg_base_value): Turn into varray.
16955         (reg_base_value_size): Kill.
16956         (old_reg_base_value): New deletable varray.
16957         (alias_invariant_size): New variable.
16958         (REG_BASE_VALUE): Update to use varray.
16959         (find_base_value): Likewise.
16960         (record_set): Likewise.
16961         (record_base_value): Likewise.
16962         (memrefs_conflict_p): Likewise.
16963         (record_set): Likewise
16964         (record_base_value): Likewise.
16965         (memrefs_conflict_p): Use alias_invariant_size.
16966         (init_alias_analysis): Use varray; set alias_invariant_size;
16967         rescale other arrays to be sized by maxreg.
16968         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16969
16970 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16971
16972         * config/sparc/sparc.c (function_arg_slotno): Use
16973         FLOAT_TYPE_P to detect FP fields in structures.
16974         (function_arg_record_value_1): Likewise.
16975         (function_arg_record_value_2): Likewise.
16976
16977 2004-01-22  Jan Hubicka  <jh@suse.cz>
16978
16979         * function.c (allocate_struct_function): Do not initialize expr, emit
16980         and varasm.
16981         (prepare_function_start): Do it here.
16982         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16983
16984 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16985
16986         PR target/13559
16987         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16988         to 'word_mode' once the first slot has been filled.
16989
16990 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16991
16992         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16993         computation of the number of integer registers required.
16994
16995 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16996
16997         * config/i386/i386.md: Simplify certain comparisons of
16998         const_int.
16999
17000 2004-01-21  Andrew Pinski  <apinski@apple.com>
17001
17002         PR target/13785
17003         * config/rs6000/rs6000.md (call_value): Force operand
17004         1 not operand 0 into a register.
17005
17006 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17007
17008         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
17009         unwind-dw2-fde.h: Update copyright.
17010
17011 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17012
17013         * pa-protos.h: Update copyright.
17014         * pa.h: Likewise.
17015         * pa.md: Likewise.
17016
17017 2004-01-21  Caroline Tice  <ctice@apple.com>
17018
17019         PR target/12308
17020         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
17021         flags register.
17022         (fix_truncdfdi2): Likewise.
17023         (fix_truncsfdi2): Likewise.
17024         (*fix_truncdi_1): Likewise.
17025         (fix_truncxfsi2): Likewise.
17026         (fix_truncdfsi2): Likewise.
17027         (fix_truncsfsi2): Likewise.
17028         (*fix_truncsi_1): Likewise.
17029         (fix_truncxfhi2): Likewise.
17030         (fix_truncdfhi2): Likewise.
17031         (fix_truncsfhi2): Likewise.
17032         (*fix_trunchi_1): Likewise.
17033
17034 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17035
17036         * alias.c, basic-block.h, c-common.c, c-common.h,
17037         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
17038         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
17039         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
17040         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
17041         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
17042         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
17043         genautomata.c, genconditions.c, genemit.c, genflags.c,
17044         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
17045         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
17046         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
17047         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
17048         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
17049         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
17050         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
17051         unwind.h, varray.c, varray.h: Update copyright.
17052
17053 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17054
17055         * config/h8300/coff.h: Update copyright.
17056         * config/h8300/elf.h: Likewise.
17057         * config/h8300/h8300-protos.h: Likewise.
17058         * config/h8300/h8300.c: Likewise.
17059         * config/h8300/h8300.h: Likewise.
17060         * config/h8300/h8300.md: Likewise.
17061
17062 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17063
17064         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
17065         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
17066         ultrix_unistd): New hacks.
17067         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
17068         ULTRIX_CONST2_CHECK): Add checks.
17069         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
17070         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
17071         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
17072         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
17073         * fixinc/tests/base/locale.h: New file.
17074         * fixinc/fixincl.x: Rebuilt.
17075
17076 2004-01-21  Andreas Jaeger  <aj@suse.de>
17077             Michael Matz  <matz@suse.de>
17078
17079         * doc/extend.texi (Extended Asm): Clarify memory clobber.
17080
17081 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
17082
17083         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
17084         _Jv_RegisterClasses through a function pointer.
17085
17086 2004-01-21  Falk Hueffner  <falk@debian.org>
17087
17088         PR target/12898
17089         * config/alpha/alpha.c (alpha_emit_set_const_1): If
17090         no_new_pseudos, use gen_rtx_SET directly for SImode constants
17091         which need multiple instructions to emit.
17092
17093 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
17094
17095         * config/m32r/m32r.h (CPP_SPEC): Define.
17096
17097 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
17098
17099         * c-decl.c (merge_decls): Kill different_binding_level and
17100         different_tu arguments; simplify throughout.
17101         (duplicate_decls): Likewise.
17102         (pushdecl, merge_translation_unit_decls): Update calls to
17103         duplicate_decls.
17104
17105 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17106
17107         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
17108         $(SYSTEM_H).
17109         (print-rtl1.o): Depend on $(SYSTEM_H).
17110
17111 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17112
17113         PR bootstrap/12730
17114         * configure.ac: Delete definition and subsitution of docdir.
17115         Add info, man, srcman and srcinfo to target hooks. Create doc/
17116         directory.
17117         * configure: Regenerate.
17118         * Makefile.in: Don't substitute docdir and delete all references
17119         throughout.
17120         (MAKEINFOFLAGS): Define.
17121         (stmp-docobjdir): Delete.
17122         (INFOFILES, MANFILES): Define.
17123         (info): Call lang.info, srcinfo and lang.srcinfo.
17124         (generated-manpages): Call lang.man, srcman and lang.srcman.
17125         (srcinfo, srcman): New rules to copy back files to source directory.
17126         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
17127         (install-man): Revamp rule.
17128         (clean): Update dvi directory.
17129         (distclean): Delete TAGS from front end directorys.
17130         (maintainer-clean): Delete all document files in source directory.
17131
17132         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
17133         (objc.srcman, objc.srcinfo): Likewise.
17134
17135 2004-01-20  Bruce Korb  <bkorb@gnu.org>
17136
17137         * fixinc/inclhack.def(math_exception): bypass only for glibc.
17138         (matherr_decl): rename & relocate as exception_structure.
17139         This fix must precede the math_exception fix.
17140
17141 2004-01-20  Roger Sayle  <roger@eyesopen.com>
17142
17143         * fold-const.c (fold_convert): Rename to fold_convert_const.
17144         (fold_convert_const): Change arguments to take a tree_code,
17145         a type and the operand/expression to be converted.  Return
17146         NULL_TREE if no simplification is possible.  Add support for
17147         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
17148         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
17149         Adjust call to fold_convert to match new fold_convert_const.
17150         Avoid modifying the tree passed to fold in-place.
17151
17152 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
17153
17154         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
17155         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
17156         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
17157
17158 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17159
17160         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
17161         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
17162         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
17163         (emit_move_sequence): Check scratch_reg first in various if statements.
17164         Extend source simplification to handle all 64-bit CONST_INTs.
17165         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
17166         frame size.
17167         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
17168         frame offset calculations.
17169         * pa.h (NEW_HP_ASSEMBLER): Add comment.
17170         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
17171         LEGITIMATE_64BIT_CONST_INT_P): Define.
17172         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
17173         any CONST_INT as legitimate during and after reload.
17174         (VAL_32_BITS_P, INT_32_BITS): Define.
17175         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
17176
17177 2004-01-20  Jan Hubicka  <jh@suse.cz>
17178
17179         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
17180         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
17181         containing hard regs are shared.
17182         (gen_hard_reg_clobber): New function.
17183         (hard_reg_clobbers): New array.
17184         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
17185         (copy_rtx): Do not copy clobbers containing hard regs.
17186         * rtl.h (gen_hard_reg_clobber): Declare.
17187
17188 2004-01-20  Jan Hubicka  <jh@suse.cz>
17189
17190         * varray.c:  Include hashtab.h
17191         (varray_descriptor): New structure.
17192         (hash_descriptor, eq_descriptor, varray_descriptor,
17193         print_statistics): New static functions
17194         (varray_init, varray_grow): Update statistics
17195         (dump_varray_statistics): New function.
17196         * varray.h (dump_varray_statistics): Declare.
17197         * toplev.c (finalize): Call it.
17198         * Makefile.in (varray.o): Add dependency.
17199
17200 2004-01-20  Jan Hubicka  <jh@suse.cz>
17201
17202         * cselib.c: Include alloc-pool.h
17203         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17204         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17205         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17206         unchain_one_elt_loc_list_pool, unchain_one_value,
17207         new_cselib_val): Simplify using allocpool.
17208         (cselib_init): Initialize allocpools.
17209         (cselib_finish): Finish allocpools.
17210         * Makefile.in (cselib.o): Depend on alloc-pool.h
17211
17212 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
17213
17214         * config/mips/mips.c (mips_load_call_address): Make the call insn
17215         use $gp if it could be calling a lazy binding stub.
17216
17217 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17218
17219         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17220         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17221         (TARGET_STRUCT_VALUE_RTX): Likewise.
17222         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17223         (PROMOTE_FUNCTION_RETURN): Remove.
17224         (STRUCT_VALUE): Remove.
17225
17226 2004-01-20  Denis Chertykov  <denisc@overta.ru>
17227
17228         PR bootstrap/13735
17229         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17230         register as pointer after reload.
17231
17232 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17233
17234         PR optimization/12440
17235         * loop.c: Include ggc.h.
17236         (loop_optimize): Run garbage collector between optimization of loops.
17237         * Makefile.in (loop.o): Add GGC_H dependency.
17238
17239 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
17240
17241         * gcc/config/rs6000/rs6000.c (function_arg) Handle
17242         vector register special in function without prototype.
17243         (function_arg_advance): Vector parameters get always
17244         GPRs allocated for the linux64 target.
17245
17246 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17247
17248         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17249         not TARGET_M32RX_MASK.
17250
17251 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
17252
17253         PR target/13557
17254         * config/sparc/sparc.c (function_arg): Reorder the cases.
17255
17256 2004-01-19  Per Bothner  <per@bothner.com>
17257
17258         Move cpp_reader's line_maps field to a shared global.
17259         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
17260         and change the type to a pointer rather than a struct.
17261         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
17262         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17263         Likewise.
17264         * cppfiles.c (validate_pch):  Likewise.
17265         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17266         Likewise.
17267         * cpperror.c (print_location):  Likewise.
17268         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
17269         * cppinit.c (cpp_create_reader):  Handle new parameter.
17270         (cpp_destroy):  Don't free line_maps - that's no longer our job.
17271         * input.h (line_table):  New variable.
17272         * toplev.c (line_table):  Declare variable.
17273         (general_init):  Initialize line_table.
17274         * c-opts.c (c_common_init_options):  Pass line_table to
17275         cpp_create_reader.
17276         * fix-header.c (read_scan_file):  New local variable line_table.
17277         Initialize, and pass it to cpp_create_reader.
17278         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
17279         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
17280
17281 2004-01-19  Per Bothner  <per@bothner.com>
17282
17283         Implement a cache for linemap_lookup.
17284         * line-map.h (struct_line_maps):  Add cache field.
17285         * line-map.c (linemap_init):  Zero cache field.
17286         (linemap_add):  Set cache field to offset of newly allocated map.
17287         (linemap_lookup):  Use and set cache field.
17288
17289 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17290
17291         PR optimization/13567
17292         * cse.c (cse_basic_block): Call cse_insn with a non-null
17293         libcall_insn for the last SET insn of a no-confilict block.
17294
17295 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17296
17297         * Makefile.in (target_noncanonical, program_transform_name): Use
17298         immediate define instead of deferred.
17299         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17300         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17301         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17302         deferred backquote.
17303
17304 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
17305
17306         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17307         true unconditionally.
17308         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17309         Remove.
17310         (build_unary_op, build_modify_expr): Don't handle extended
17311         lvalues.
17312         (build_component_ref, build_conditional_expr): Call non_lvalue
17313         instead of pedantic_non_lvalue.
17314         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17315         * fold-const.c (fold): Don't check pedantic directly for
17316         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17317         passed to pedantic_non_lvalue.
17318         * doc/extend.texi: Remove documentation of extended lvalues.
17319
17320 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17321
17322         PR optimization/5263
17323         * simplify-rtx.c (associative_constant_p): Delete.
17324         (simplify_associative_operation): Rewrite to linearize terms, and
17325         attempt to simplify new term against both left and right subterms.
17326         (simplify_binary_operation): Call swap_commutative_operands_p on
17327         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17328         trueop0 and trueop1 down to where first needed.
17329         (simplify_relational_operation): Likewise.
17330         * rtlanal.c (commutative_operand_precedence): Also order constant
17331         operands using avoid_constant_pool_reference.
17332
17333 2004-01-19  Richard Henderson  <rth@redhat.com>
17334
17335         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17336         don't check memory mode.
17337         (unaligned_memory_operand): Likewise.
17338         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17339         abort for op0 not MEM.
17340
17341         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17342         is not a reg, copy to a scratch first.
17343         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17344         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17345         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17346         (reload_inqi, reload_inhi): Fix mode of op0.
17347         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17348         reload_outhi_help): Likewise.  Use define_insn_and_split.
17349
17350         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17351         as well as $29 dead.
17352
17353 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17354
17355         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17356         "tls_object" for thread-local objects.
17357         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17358         "#tls" for thread-local sections.
17359         * configure.ac (thread-local checks): Specify --fatal-warnings in
17360         every binutils-specific checks.  For sparc*-*-*, test whether the
17361         OS is Solaris and the tools are native and act accordingly.
17362         * configure: Rebuild.
17363
17364 2004-01-19  Jeff Law  <law@redhat.com>
17365
17366         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17367         Jerry Quinn and Petur Runolfsson.
17368
17369 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17370
17371         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17372         size, don't use the larger zero-extending loads.
17373
17374 2004-01-19  Richard Henderson  <rth@redhat.com>
17375
17376         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17377         * alpha.md (UNSPEC_NT_LDA): Remove.
17378         (UNSPEC_CVTLQ, cvtlq): New.
17379         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17380         (extendsidi2_fix): Remove.
17381         (extendsidi2 splitter): Use cvtlq.
17382         (extendsidi2 fp peepholes): Remove.
17383         (cvtql): Use SFmode instead of SImode.
17384         (fix_trunc?fsi): Update to match.
17385         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17386         (movsi): Rename from movsi_nofix, remove f alternatives.
17387         (movsi_nt_vms): Similarly.
17388         (movsi_fix, movsi_nt_vms_fix): Remove.
17389         (nt_lda): Remove.
17390         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17391
17392 2004-01-19  Jan Hubicka  <jh@suse.cz>
17393
17394         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17395         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17396         list.
17397         (cgraph_remove_unreachable_nodes): New function
17398         (cgraph_decide_inlining_of_small_function): Fix pasto.
17399         (cgraph_decide_inlining_incrementally): Fix pasto.
17400         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17401
17402 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17403
17404         * gengtype.c (header_file): Make it static.
17405         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17406         * gengtype.h (header_file): No longer extern.
17407
17408 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17409
17410         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17411         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17412         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17413
17414 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17415
17416         * stmt.c (HAVE_casesi): Define it not already defined.
17417         (HAVE_tablejump): Likewise.
17418         (expand_end_case_type): Resort to the binary tree method if
17419         neither casesi or tablejump is available.
17420
17421 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17422
17423         * final.c (final_scan_insn): Make non-static again.
17424         * output.h (final_scan_insn): Re-add prototype.
17425         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17426         to final_scan_insn call.
17427         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17428         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17429         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17430         * config/sh/sh.c (print_slot): Likewise.
17431         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17432         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17433
17434 2004-01-18  Jan Hubicka  <jh@suse.cz>
17435
17436         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17437         * cfgcleanup.c (try_optimize_cfg): Use it.
17438         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17439         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17440         Kill hack.
17441         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17442
17443         Revert:
17444         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17445
17446                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17447                 even after reload, just don't remove the actual jump tables.
17448
17449 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17450
17451         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17452
17453 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17454
17455         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17456         the size of a pointer in bytes.
17457
17458 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17459
17460         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17461         live "next" variable, which could lead to an infinite loop.
17462
17463 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17464
17465         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17466         block.
17467
17468         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17469         Check for NULL in the chain and remove repeated code.
17470
17471 2004-01-18  Jan Hubicka  <jh@suse.cz>
17472
17473         * coverage.c (checksum_string): Rename to ...
17474         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17475         names containing random number and zero the number out in order to get
17476         match.
17477
17478 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17479
17480         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17481
17482 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17483
17484         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17485         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17486         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17487         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17488         doc/trouble.texi: Remove trailing whitespace.
17489
17490 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17491
17492         PR target/7618
17493         * config/mips/mips.c: Include cfglayout.h.
17494         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17495         (mips_unspec_offset_high): Add temporary register argument.
17496         (mips_load_call_address): New function, split out from...
17497         (mips_expand_call): ...here.
17498         (mips_output_cplocal): New function.
17499         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17500         (mips_emit_loadgp): New function, split out from...
17501         (mips_expand_prologue): ...here.
17502         (mips_output_mi_thunk): New function.
17503
17504 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17505
17506         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17507         mcpu32): Remove redundant checks for implied target predefines.
17508
17509 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17510
17511         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17512         Return type is unsigned int not int.
17513         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17514         Likewise.
17515
17516 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17517
17518         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17519         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17520         "GNU/Linux" and "Microsoft Windows" terminology.
17521
17522 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17523
17524         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17525         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17526         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17527         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17528         @smallexample instead of @example.
17529
17530 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17531
17532         * objc/objc-act.c (build_objc_method_call): Use target
17533         hooks instead of macros to determine if ..._stret
17534         dispatchers should be used (NeXT runtime only).
17535
17536 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17537
17538         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17539         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17540
17541 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17542
17543         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17544         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17545         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17546         macros.
17547         * reload1.c (emit_reload_insns): Use them.
17548         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17549         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17550         for NULL PATTERN.
17551
17552 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17553
17554         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17555         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17556         a line note after the prologue.  Make static.
17557         (line_note_exists): Remove.
17558         (final): Don't initialize line_note_exists.  Update call to
17559         final_scan_insn.
17560         * output.h (final_scan_insn): Remove prologue.
17561         * function.c (set_insn_locators): Update comment.
17562         (thread_prologue_and_epilogue_insns): Add a comment.
17563
17564 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17565
17566         PR target/10781
17567         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17568         Prototype.
17569         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17570         New function.
17571         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17572         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17573         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17574
17575 2004-01-17  Jan Hubicka  <jh@suse.cz>
17576
17577         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17578         commit.
17579
17580         * toplev.c (HAVE_conditional_execution): Provide default.
17581         (rest_of_handle_reorder_blocks): For conditional_execution target
17582         update liveness once after all transformations
17583         (rest_of_compilation): Do crossjumping before ce3.
17584
17585 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17586
17587         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17588         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17589         for PCH.
17590         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17591         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17592         (get_TOC_alias_set): Mark 'set' for PCH.
17593
17594 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17595
17596         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17597         even after reload, just don't remove the actual jump tables.
17598
17599 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17600
17601         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17602         Remove checks for is_ada() and TREE_UNSIGNED.
17603         (subrange_type_die): Emit a byte_size attribute if the subrange
17604         type size is different from the base type size.
17605         (modified_type_die): Replace call to is_ada_subrange_type() by
17606         call to is_subrange_type().
17607
17608 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17609
17610         * config/sh/sh.c: Include ggc.h.
17611
17612 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17613
17614         * Makefile.in (MD5_H): New.
17615         (fold-const.o): Depend on md5.h.
17616         (dwarf2out.o): Likewise.
17617         (cppfiles.o): Likewise.
17618         * cppfiles.c: Include md5.h.
17619         (should_stack_file): Check against list read from PCH file.
17620         (struct pchf_data): New.
17621         (pchf): New variable.
17622         (struct pchf_adder_info): New.
17623         (pchf_adder): New.
17624         (pchf_save_compare): New.
17625         (_cpp_save_file_entries): New.
17626         (_cpp_read_file_entries): New.
17627         (struct pchf_compare_data): New.
17628         (pchf_compare): New.
17629         (check_file_against_entries): New.
17630         * cpphash.h (_cpp_save_file_entries): Prototype.
17631         (_cpp_read_file_entries): Prototype.
17632         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17633         (cpp_read_state): Read the list of headers.
17634
17635 2004-01-17  Jan Hubicka  <jh@suse.cz>
17636
17637         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17638         builtin_expect specially.
17639         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17640         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17641         * invoke.texi (max-inline-insns-single): Set to 100.
17642         (large-function-insns): Set to 3000.
17643
17644 2004-01-16  Eric Christopher  <echristo@redhat.com>
17645             Chandrakala Chavva <cchavva@redhat.com>
17646
17647         * cppcharset.c (one_iso88591_to_utf8): New function.
17648         (convert_iso88591_utf8): Ditto. Use.
17649         (conversion_tab): Use.
17650         (_cpp_input_to_utf8): New function.
17651         (_cpp_init_iconv_buffer): Ditto.
17652         (_cpp_close_iconv_buffer): Ditto.
17653         * cpphash.h: Prototype new functions.
17654         (cpp_buffer): Add input_cset_desc.
17655         * cppinit.c: Add input_charset default.
17656         * cpplib.c (cpp_push_buffer): Support init and
17657         close of iconv.
17658         * cpplib.h (cpp_options): Add input_charset.
17659
17660 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17661
17662         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17663         * config/alpha/unicosmk.h: Remove a commented-out definition
17664         of ASM_OUTPUT_SECTION_NAME.
17665         * config/stormy16/stormy16.h: Likewise.
17666
17667 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17668
17669         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17670         (alpha___extern_prefix_sys_stat): ... this.
17671         Apply to <sys/mount.h>, too.
17672         Tweak to match more variations.
17673         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17674
17675         * fixinc/inclhack.def (alpha___extern_prefix,
17676         alpha___extern_prefix_standards): New hacks to obey
17677         __PRAGMA_EXTERN_PREFIX.
17678         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17679         test.
17680         * fixinc/tests/base/standards.h: Likewise.
17681
17682         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17683         variations.
17684         New testcase.
17685         * fixinc/tests/base/pthread.h: Handle it.
17686
17687         * fixincl/inclhack.def (bad_lval): Sort file list.
17688         Add many missing files up to Tru64 UNIX V5.1B.
17689         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17690         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17691         order.
17692
17693         * fixinc/fixincl.x: Regenerate.
17694
17695 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17696
17697         * version.c (version_string): Change to 3.5.0.
17698         * doc/include/gcc-common.texi (version-GCC): Likewise.
17699
17700 2004-01-16  Jan Hubicka  <jh@suse.cz>
17701
17702         * i386.md (load_tp_di): Fix pasto.
17703
17704         PR opt/13608
17705         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17706
17707         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17708         pp_c_character_constant, pp_c_floating_constant,
17709         pp_c_additive_expression, pp_c_shift_expression,
17710         pp_c_equality_expression, pp_c_and_expression,
17711         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17712         pp_c_logical_and_expression): Remove inline modifier.
17713         * dwarf2out.c (get_AT): Likewise.
17714         * et-forest.c (et_splay): Likewise.
17715         * ra.h (ra_alloc, ra_calloc): Likewise
17716
17717 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17718
17719         * config/frv/frv-protos.h: Fix comment formatting.
17720         * config/frv/frv.c: Likewise.
17721         * config/frv/frv.h: Likewise.
17722         * config/frv/frv.md: Likewise.
17723         * config/frv/frvbegin.c: Likewise.
17724         * config/frv/frvend.c: Likewise.
17725
17726 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17727
17728         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17729         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17730         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17731         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17732
17733 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17734
17735         PR 11864
17736         * postreload.c (reload_cse_simplify_operands): Don't remove
17737         implicit extension from LOAD_EXTEND_OP.
17738
17739 2004-01-16  Jan Hubicka  <jh@suse.cz>
17740
17741         PR opt/11350
17742         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17743         after reload.
17744         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17745         rtl_try_redirect_by_replacing_branch): Likewise.
17746
17747 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17748
17749         PR pch/13689
17750         * alias.c (struct alias_set_entry): Mark for GC.
17751         (alias_sets): Make static, mark for GC.
17752         (record_alias_subset): Use GC to allocate alias structures.
17753         * varray.c (element): Make generic varrays GCed.
17754
17755         PR pch/13361
17756         * c-typeck.c (constructor_asmspec): Delete.
17757         (struct initializer_stack): Delete field 'asmspec'.
17758         (start_init): Delete saving of asmspec.
17759         (finish_init): Don't update constructor_asmspec.
17760         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17761         * stmt.c (expand_asm): Duplicate strings from tree.
17762         (expand_asm_operands): Likewise.
17763         * tree.c (tree_size): Update computation of size of STRING_CST.
17764         (make_node): Don't make STRING_CST nodes.
17765         (build_string): Allocate string with tree node.
17766         * tree.def (STRING_CST): Update comment.
17767         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17768         (tree_string): Place contents of string in tree node.
17769         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17770         from tree.
17771
17772         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17773         altivec operands.
17774
17775 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17776
17777         * c-common.h: Fix comment formatting.
17778         * c-cppbuiltin.c: Likewise.
17779         * c-pragma.c: Likewise.
17780         * calls.c: Likewise.
17781         * collect2.c: Likewise.
17782         * cppcharset.c: Likewise.
17783         * cpptrad.c: Likewise.
17784         * dbxout.c: Likewise.
17785         * defaults.h: Likewise.
17786         * dwarf2out.c: Likewise.
17787         * fold-const.c: Likewise.
17788         * genautomata.c: Likewise.
17789         * genconditions.c: Likewise.
17790         * genflags.c: Likewise.
17791         * gengtype.c: Likewise.
17792         * integrate.c: Likewise.
17793         * loop.c: Likewise.
17794         * predict.c: Likewise.
17795         * sdbout.c: Likewise.
17796
17797 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17798
17799         * config/ia64/ia64.md (*movti_internal): C output template
17800         extracted to ia64.c.
17801         (*movti_internal_reg): Delete.
17802         (reload_inti, reload_outti): Use the correct mode on operand 2
17803         in the first place, don't fix it up in the output template.
17804         (movtf, reload_ointf, reload_outtf): New expanders.
17805         (*movtf_internal): New define_insn_and_split.
17806         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17807         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17808         (ia64_split_tmode_move): New function, body mostly pulled
17809         from ia64.md:*movti_internal.
17810         (ia64_function_arg_words): New function, extracted common
17811         logic from ia64_function_arg et seq.
17812         (ia64_function_arg_offset): Likewise.  Handle correctly the
17813         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17814         (ia64_function_arg, ia64_function_arg_partial_nregs)
17815         (ia64_function_arg_advance): Use ia64_function_arg_words and
17816         ia64_function_arg_offset.
17817         (ia64_function_value): TCmode does not go in float regs.
17818         (ia64_secondary_reload_class): Also handle TFmode.
17819         * config/ia64/ia64-protos.h: Remove prototype for
17820         ia64_split_timode; add prototype for ia64_split_tmode_move.
17821
17822 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17823
17824         * Makefile.in (MAINT): Make it an immediate assignment.
17825
17826 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17827
17828         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17829
17830 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17831
17832         * config/h8300/coff.h: Replace Hitachi with Renesas.
17833         * config/h8300/elf.h: Likewise.
17834         * config/h8300/h8300-protos.h: Likewise.
17835         * config/h8300/h8300.c: Likewise.
17836         * config/h8300/h8300.h: Likewise.
17837         * config/h8300/h8300.md: Likewise.
17838         * config/h8300/lib1funcs.asm: Likewise.
17839
17840 2004-01-15  Andrew Pinski  <apinski@apple.com>
17841
17842         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17843         around it.
17844
17845 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17846
17847         * config/h8300/h8300.c (h8300_return_in_memory): New.
17848         (TARGET_STRUCT_VALUE_RTX): Likewise.
17849         (TARGET_RETURN_IN_MEMORY): Likewise.
17850         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17851         (RETURN_IN_MEMORY): Likewise.
17852
17853 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17854
17855         PR optimization/13375
17856         * gcse.c (handle_avail_expr): Just return if the source is not a
17857         single set.
17858
17859 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17860             Daniel Jacobowitz  <drow@mvista.com>
17861
17862         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17863         (EQUIV): Define.
17864         (ARM_FUNC_ALIAS): New macro.
17865         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17866         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17867
17868 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17869
17870         PR optimization/12372
17871         * calls.c (expand_call): Add call_fusage data for stack arguments in
17872         constant calls.
17873
17874 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17875
17876         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17877         (rs6000_elf_declare_function_name): Formatting.
17878         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17879
17880 2004-01-15  Jan Hubicka  <jh@suse.cz>
17881
17882         PR bootstrap/13692
17883         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17884         previous patch.
17885
17886 2004-01-15  Richard Henderson  <rth@redhat.com>
17887
17888         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17889         integer regs of the same call-savedness.
17890
17891 2004-01-15  Andreas Schwab  <schwab@suse.de>
17892
17893         PR bootstrap/13562
17894         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17895         status for NOTB/NOTW/NEGW methods.
17896
17897 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17898
17899         * doc/invoke.texi: Update dump file names.  Fix a typo.
17900
17901 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17902
17903         * builtins.c (expand_builtin_va_end): Don't use
17904         EXPAND_BUILTIN_VA_END.
17905         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17906         * config/d30v/d30v.h: Remove a commented-out definition of
17907         EXPAND_BUILTIN_VA_END.
17908         * config/stormy16/stormy16.h: Likewise.
17909
17910 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17911
17912         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17913         * targhooks.c (default_struct_value_rtx): Don't use
17914         STRUCT_VALUE_INCOMING_REGNUM.
17915
17916 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17917
17918         PR bootstrap/12744
17919         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17920         GENINSRC and not parsedir.  Define srcextra as a langhook.
17921         * configure: Regenerate.
17922         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17923         parsedir and delete all references throughout.  Conditionally define
17924         rule for srcextra dependent on GENINSRC.
17925         (stmp-docobjdir): Delete.
17926         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17927         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17928         and gengtype-yacc.h back to source directory.
17929         (maintainer-clean): Delete all parse files in source directory.
17930         (distclean): Delete generated files.
17931
17932         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17933         (objc-parse.c, objc-parse.y): Don't use parsedir.
17934         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17935         directory if requested.
17936         (po-generated): Don't use parsedir.
17937         (objc.maintainer-clean): Delete above files from source directory.
17938
17939 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17940
17941         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17942
17943 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17944
17945         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17946         TARGET_RETURN_IN_MEMORY.
17947
17948 2004-01-15  Jan Hubicka  <jh@suse.cz>
17949
17950         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17951         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17952         functions accepting SSE arguments
17953         (function_arg): Warn only when asked to warn.
17954         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17955
17956 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17957
17958         * c-parse.in (stmts_and_decls): Make label at end of compound
17959         statement a hard error.
17960
17961 2004-01-14  Jan Hubicka  <jh@suse.cz>
17962
17963         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17964         * cgraph.h (cgraph_local_info): Sort fields by size; add
17965         redefined_extern_inline
17966         (cgraph_global_info): Sort fields by size.
17967         (cgraph_node): Likewise.
17968         * cgraphunit.c (cgraph_finalize_function): Se
17969         local.redefined_extern_inline on redefinition.
17970         (cgraph_analyze_function): Use it; fix formating.
17971
17972 2004-01-14  Jan Hubicka  <jh@suse.cz>
17973
17974         PR c++/10776
17975         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17976         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17977         bitmaps
17978         (cache_size): New variable
17979         (add_dependence): Update use; canonize early memory locations
17980         (sched_analyze_1): Likewise.
17981         (sched_analyze_2): Likewise.
17982         (init_dependency_caches): Initialize bitmaps.
17983         (free_dependency_caches): Free bitmaps
17984
17985 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17986
17987         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17988         targetm.calls.strict_argument_naming().
17989         * target.h: Likewise.
17990
17991 2004-01-14  Richard Henderson  <rth@redhat.com>
17992
17993         PR debug/13231
17994         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17995         instructions.
17996
17997 2004-01-14  Richard Henderson  <rth@redhat.com>
17998
17999         PR c++/12491
18000         * except.c (struct eh_region): Add u.fixup.resolved.
18001         (resolve_one_fixup_region): Split out from ...
18002         (resolve_fixup_regions): ... here.
18003
18004 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18005
18006         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
18007
18008 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18009
18010         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
18011         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
18012         (STRUCT_VALUE): Remove.
18013
18014 2004-01-14  Steven Bosscher  <stevenb@suse.de>
18015
18016         * system.h: Poison PROMOTED_MODE
18017         * integrate.c (expand_inline_function): Don't mention the
18018         PROMOTED_MODE.
18019         * loop.c (update_giv_derive): Same.
18020         * tree.h (DECL_RTL): Same.
18021
18022 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
18023
18024         PR target/9365
18025         * sh.c (gen_block_redirect): Add special handling of RETURN.
18026         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
18027         far branch target (i.e. it's a return).
18028
18029 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18030
18031         * regrename.c (find_oldest_value_reg): Fix a warning.
18032
18033 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
18034
18035         PR bootstrap/12527
18036         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
18037         Move linux-gas.h and linux-elf.h before aout.h.
18038         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
18039         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
18040
18041 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18042
18043         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
18044         (CONST_INT, VOIDmode, ...).
18045
18046 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
18047
18048         * regrename.c (find_oldest_value_reg): If the replacement uses
18049         multiple hard registers, check that all of them are in CLASS.
18050
18051 2004-01-14  Jan Hubicka  <jh@suse.cz>
18052
18053         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
18054         impossible.
18055
18056 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
18057
18058         * Makefile.in: Define MAINT from --enable-maintainer-mode.
18059
18060 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
18061
18062         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
18063         Calculate always vrsave_mask if TARGET_ALTIVEC.
18064         (rs6000_emit_prologue): Emit code for vrsave
18065         only if TARGET_ALTIVEC_VRSAVE.
18066         (rs6000_emit_epilogue): Likewise.
18067
18068 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
18069
18070         * config/sparc/sparc.md (tie_add32): Fix pasto.
18071         (tie_add64): Likewise.
18072
18073 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18074
18075         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
18076
18077 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18078
18079         * config/iq2000/iq2000-protos.h: Fix comment formatting.
18080         * config/iq2000/iq2000.c: Likewise.
18081         * config/iq2000/iq2000.md: Likewise.
18082
18083 2004-01-14  J. Brobecker  <brobecker@gnat.com>
18084
18085         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
18086         (subrange_type_die): Add handle for nameless subrange types.
18087
18088 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18089
18090         * config/h8300/h8300-protos.h: Replace do_movsi with
18091         h8300_expand_movsi.
18092         * config/h8300/h8300.c (do_movsi): Change to
18093         h8300_expand_movsi.
18094         * config/h8300/h8300.md (movsi): Replace do_movsi with
18095         h8300_expand_movsi.
18096         (movsf): Likewise.
18097
18098 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18099
18100         * config/h8300/h8300.c (dosize): Change to
18101         h8300_emit_stack_adjustment.  Update callers.
18102
18103 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18104
18105         * config/h8300/h8300.md (movstrictqi): Add an alternative with
18106         the source being post_inc.  Tighten the predicate for the
18107         destination to register_operand.
18108         (movstricthi): Likewise.
18109
18110 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18111
18112         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
18113         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
18114         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
18115
18116 2004-01-14  Jan Hubicka  <jh@suse.cz>
18117
18118         Partial fix PR c++/12850
18119         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
18120         at zero nest level.
18121
18122 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
18123
18124         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
18125         pseudo-register.
18126
18127 2004-01-13  Devang Patel <dpatel@apple.com
18128
18129         PR debug/7078
18130         * dbxout.c (dbxout_symbol_name): Emit mangled names for
18131         NAMESPACE_DECL memebers.
18132
18133 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
18134
18135         PR c++/12709
18136         * c-common.c (finish_fname_decls): Use the chain only if the
18137         tree is an expr_stmt.
18138
18139 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
18140
18141         * rtl.def: Add comment about new option in automata_option.
18142
18143         * genautomata.c (PROGRESS_OPTION): New macro.
18144         (progress_flag): New global variable.
18145         (gen_automata_option): Process `progress'.
18146         (transform_insn_regexps, check_unit_distributions_to_automata,
18147         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
18148         expand_automata, write_automata): Print about the progress only if
18149         progress_flag.  Remove fflush.
18150         (initiate_automaton_gen): Process command line flag `-progress'.
18151
18152         * doc/md.texi: Describe the new option.
18153
18154 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18155
18156         * cfg.c (dump_bb): Dump entry edges.
18157
18158 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
18159
18160         * arm.c (thumb_legitimate_address_p): Only allow constant pool
18161         references from SImode.
18162         * arm.md (thumb_movhi_insn): Don't allow minipool references.
18163
18164 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18165
18166         * system.h (TEXT_SECTION): Poison.
18167         * varasm.c (text_section): Don't use TEXT_SECTION.
18168         * config/sh/sh.c (sh_file_start): Fix a comment typo.
18169         * doc/tm.texi (TEXT_SECTION): Remove.
18170
18171 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
18172
18173         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
18174
18175 2004-01-12  James E Wilson  <wilson@specifixinc.com>
18176
18177         * unwind-libunwind.c: Delete.
18178
18179 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18180
18181         PR 13656
18182         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
18183         oldtype is set, set *newtypep or *oldtypep too.  Do not set
18184         them at the very end.
18185         (validate_proto_after_old_defn): Restructure for comprehensibility;
18186         make error messages clearer.
18187
18188 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18189
18190         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18191         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18192         * varray.c: No need to prototype error.
18193         (varray_check_failed): Wrap long string onto two lines.
18194         (varray_underflow): New function.
18195
18196 2004-01-13  Steven Bosscher  <stevenb@suse.de>
18197
18198         PR c++/13376
18199         * function.h (struct function): Kill `name' field.
18200         (current_function_name): Make it an extern function.
18201         * function.c (current_function_name): New function.
18202         * graph.c: Update all uses of current_function_name.
18203         * gcse.c: Likewise.
18204         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18205         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18206         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18207         instead of a strcmp with "main".
18208
18209 2004-01-13  Jan Hubicka  <jh@suse.cz>
18210
18211         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
18212
18213         * cgraphunit.c (cgraph_optimize_function):  Always do
18214         optimize_inline_calls when there is always_inline callee.
18215         (cgraph_decide_inlining): Fix formating.
18216         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18217         functions.
18218         (expand_call_inline): Likewise.
18219         * toplev.h (sorry): Fix prototype.
18220
18221 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18222
18223         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18224         conditional jumps that drop through to unconditional jumps or the
18225         end of the sequence.
18226
18227 2004-01-13  Jan Hubicka  <jh@suse.cz>
18228
18229         * alias.c (new_alias_set): Construct the alias_set varray.
18230         (init_alias_once): Don't do it here.
18231
18232 2004-01-12  Marc Espie <espie@openbsd.org>
18233
18234         * system.h: handle YYBYACC like YYBISON.
18235
18236 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
18237
18238         PR target/10847
18239         * config.gcc: No longer includes conflicting header sparc/sol2.h when
18240         building on sparc64-*-openbsd*.
18241
18242 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
18243
18244         PR debug/13539
18245         * dbxout.c (dbxout_type): Protected inheritance is not
18246         private but protected.
18247
18248 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18249
18250         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18251
18252 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
18253
18254         PR optimization/12508.
18255         * combine.c (try_combine): Remove a dead set in a parallel
18256         even if its destination is a subreg.
18257
18258         Revert:
18259         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
18260         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18261         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18262
18263 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
18264
18265         * real.c: Update copyright date.
18266         * emit-rtl.c: Likewise.
18267         * rtl.h: Likewise.
18268         * dwarf2out.c: Likewise.
18269         * config/rs6000/darwin-ldouble.c: Likewise.
18270         * config/rs6000/rs6000.md: Likewise.
18271
18272 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18273
18274         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18275         TFmode to SImode libfuncs.
18276
18277 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18278
18279         PR middle-end/11397
18280         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18281
18282 2004-01-12  Jan Hubicka  <jh@suse.cz>
18283
18284         PR opt/12826
18285         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18286         stored.
18287
18288         PR opt/12863
18289         * cfgcleanup.c (label_is_jump_target_p): Move to...
18290         * rtlanal.c (label_is_jump_target_p): ... here.
18291         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
18292         edges unified with branch edges.
18293
18294 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
18295
18296         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18297         high word of an integral CONST_DOUBLE.
18298
18299 2004-01-12  Paul Brook  <paul@codesourcery.com>
18300
18301         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18302
18303 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
18304
18305         PR target/13585
18306         * sh-protos.h (check_use_sfunc_addr): Declare.
18307         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18308         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18309
18310 2004-01-12  Jan Hubicka  <jh@suse.cz>
18311
18312         * alias.c:  Invlude varray.h
18313         (alias_sets): Turn into varray.
18314         (get_alias_set_entry): Use VARRAY; mark inline.
18315         (mems_in_disjoint_alias_sets_p): Mark inline.
18316         (record_alias_subset): Use varray.
18317         (init_alias_once): Initialize varray.
18318         (new_alias_set): Grow array.
18319         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18320
18321 2004-01-12  Jan Hubicka  <jh@suse.cz>
18322
18323         Partial fix for PR opt/10776 II
18324         * cselib.c: Include params.h
18325         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18326         locations.
18327         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18328         * Makefile.in (cselib.o): Depend on params.h
18329
18330 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18331
18332         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18333         simplify_unary_operation if the operand has a known mode.
18334
18335 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18336
18337         PR target/13534
18338         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18339         predicate to handle 'ld' conform addresses.
18340         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18341         contraint.
18342         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18343         are memory contraints.
18344         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18345         New prototype.
18346         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18347         Change 'o' to 'Y' constraint.
18348         (*movdf_softfloat64): Ditto.
18349
18350 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18351
18352         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18353         brace-enclosed syntax in all C output statements.
18354
18355 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18356
18357         PR target/13401
18358         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18359         Objective-C language type value is 14.
18360
18361 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18362
18363         PR c/12148
18364         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18365         `int' in a number of places to make sure we always have a SImode
18366         and not a HImode.  Add a 'L' suffix to a number of constants.
18367
18368 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18369
18370         * pa.c: Don't include obstack.h.
18371
18372         * pa.md: Correct constraint in pattern for loading PIC label address.
18373
18374 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18375
18376         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18377          before defining.
18378
18379 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18380
18381         PR fortran/9972
18382         * toplev.c (rest_of_handle_inline): Also consider functions
18383         for deferral if the language is GNU F77.
18384
18385 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18386
18387         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18388         diagnostic messages.
18389
18390 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18391
18392         PR middle-end/13392
18393         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18394         to drop through label.  Don't fall back to SCC even when conditional
18395         jump has not been found.
18396
18397 2004-01-11  Jan Hubicka  <jh@suse.cz>
18398
18399         * invoke.texi: Fix syntax error in previous patch.
18400
18401         Partial fix for PR opt/10776
18402         * Makefile.in (reload.o): Include param.h
18403         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18404         * reload.c: Include params.h.
18405         (find_equiv_reg): Work limiting check.
18406         * invoke.texi: Document.
18407
18408 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18409
18410         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18411         out-of-bounds accesses to string constants.  Simplify mips16
18412         case accordingly.
18413
18414 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18415
18416         PR optimization/13469
18417         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18418         reload_cse_regs (-fnon-call-exceptions only).
18419
18420 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18421
18422         * config/mcore/lib1.asm: Fix comment formatting.
18423         * config/mcore/mcore-elf.h: Likewise.
18424         * config/mcore/mcore.c: Likewise.
18425         * config/mcore/mcore.h: Likewise.
18426         * config/mcore/mcore.md: Likewise.
18427
18428 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18429
18430         * c-decl.c (duplicate_decls): Break apart into...
18431         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18432         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18433         ... these new functions.  Restructure for comprehensibility.
18434         Remove various archaic special cases.  Always report the
18435         location of the previous declaration when a diagnostic is issued.
18436         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18437         (match_builtin_function_types): Delete unnecessary forward declaration.
18438
18439 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18440
18441         * genautomata.c (make_automaton, NDFA_to_DFA):
18442         Print progress bars with '.' characters instead of '*'.
18443         (build_automaton): Change notes to match.
18444
18445 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18446
18447         * config/m32r/m32r.md: Use define_constants for unspec and
18448         unspec_volatile.
18449
18450 2004-01-10  Jan Hubicka  <jh@suse.cz>
18451
18452         PR opt/11635
18453         * expr.c (expand_expr_real):  More curefully expand union casts.
18454
18455 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18456
18457         * config/m32r/m32r.md (flush_icache): Use 1 for
18458         unspec_volatile.
18459
18460 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18461             James E Wilson  <wilson@specifixinc.com>
18462
18463         PR debug/12860
18464         * dbxout.c (dbxout_symbol): Remove initialization of
18465         current_sym_code, current_sym_value, and current_sym_addr.
18466         (dbxout_symbol_location): Same.
18467         (dbxout_prepare_symbol): Zero current_sym_code,
18468         current_sym_value, and current_sym_addr.
18469
18470 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18471
18472         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18473         check is done first.
18474
18475 2004-01-09  Eric Christopher  <echristo@redhat.com>
18476
18477         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18478         if we're running mark_constant_function.
18479
18480 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18481
18482         PR target/12561
18483         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18484
18485 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18486
18487         PR debug/11231
18488         * dbxout.c (dbxout_type_fields): Return if any item is
18489         error_mark_node or the type is error_mark_node.
18490
18491 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18492
18493         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18494         exactly what is expected as a 'long double'.
18495         (_xlqadd): When a value to be returned is representable as a
18496         'double', just return it directly, do not construct it using a union.
18497         Also, correct final fixup.
18498         (_xlqmul): Likewise.
18499         (_xlqdiv): Likewise.
18500         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18501
18502         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18503
18504 2004-01-09  Richard Henderson  <rth@redhat.com>
18505
18506         * recog.c (constrain_operands): Validate mem operands.
18507
18508 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18509
18510         * gcc.c (init_spec): Remove -lunwind from shared case.
18511         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18512
18513 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18514
18515         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18516         * configure: Regenerate
18517
18518 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18519
18520         PR c/11234
18521         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18522         between function and object pointers.
18523         (digest_init): When comparing a pointer to function type to the
18524         target type, only apply TREE_TYPE once to the pointer to function
18525         type.
18526         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18527         function pointer rather than casting it to a function pointer.
18528         (for_each_eh_label): Update caller.
18529         * recog.h (struct insn_data): Use a struct or union for output.
18530         * genoutput.c (output_insn_data): Update.
18531         * final.c (get_insn_template): Update.
18532
18533 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18534
18535         * expr.h (expand_expr): Make it a macro, not a function.
18536         (expand_expr_real): New function.
18537         * expr.c (store_expr): Adjust logic for deciding whether or not to
18538         copy the value returned by expand_expr.
18539         (expand_expr): Rename to ...
18540         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18541         calls to language hooks.
18542         * c-common.h (c_expand_expr): Adjust prototype.
18543         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18544         * langhooks-def.h (lhd_expand_expr): Change prototype.
18545         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18546         * langhooks.h (lang_hooks): Change type of expand_expr.
18547         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18548         (last_expr_alt_rtl): Likewise.
18549         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18550         (clear_last_expr): Clear it.
18551         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18552         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18553         * tree.def (RTL_EXPR): Give it an additional operand.
18554         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18555
18556 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18557
18558         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18559         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18560
18561 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18562
18563         PR target/13380.
18564         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18565         or (ne:SI (reg:CC 17) (const_int 0)).
18566         Be specific about modes wherever possible.
18567
18568 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18569
18570         * config/m32r/m32r.c (m32r_expand_block_move): Call
18571         gen_movestrsi_internal with two more arguments.
18572         (m32r_output_block_move): Adjust operand numbers.
18573         Properly update the source and destination pointers.
18574         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18575         'r+'.  Change the set detinations to match_operand.
18576
18577 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18578
18579         * final.c (FIRST_INSN_ADDRESS): Remove.
18580         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18581         * system.h (FIRST_INSN_ADDRESS): Poison.
18582         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18583         * config/m32r/m32r-protos.h: Remove the prototype for
18584         m32r_first_insn_address.
18585         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18586         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18587         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18588
18589 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18590
18591         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18592         we just created.
18593         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18594         emitted as subrange types too.
18595         (subrange_type_die): Add handling of enumeration subtypes.
18596
18597 2004-01-08  Richard Henderson  <rth@redhat.com>
18598
18599         PR opt/12441
18600         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18601         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18602         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18603         (ix86_address_cost): Be prepared for SUBREGed registers.
18604         (legitimate_address_p): Accept SUBREGed registers.
18605
18606 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18607
18608         * Makefile.in: Rename configure.in to configure.ac
18609         * doc/sourcebuild.texi: Likewise.
18610         * configure: Regenerate.
18611         * config.in: Regenerate.
18612
18613 2004-01-08  Stuart Hastings  <stuart@apple.com>
18614
18615         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18616
18617 2004-01-08  Jan Hubicka  <jh@suse.cz>
18618
18619         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18620
18621 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18622
18623         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18624         (UNSPEC_FIX_TRUNC_TF): New constant.
18625         (movtf_internal): Make splitter active only when insn is active.
18626         (extenddftf2): Rewrite to properly load zero into low part.
18627         (extenddftf2_internal): New.
18628         (extendsftf2): Rewrite.
18629         (truncdftf2): Correct length.
18630         (floatditf2): Delete.
18631         (fix_trunc_helper): New.
18632         (fix_trunctfdi2): Use fix_trunc_helper.
18633         (fix_trunctfsi2): Likewise.fix_trunc
18634         (fix_trunctfsi2_internal): New.
18635
18636         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18637         addresses are legitimate on Darwin even when flag_pic.
18638         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18639         non-offsettable addresses for loads of TFmode constants.
18640
18641 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18642
18643         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18644         variables in the appropriate bss section.
18645
18646 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18647
18648         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18649         target_flags has MASK_POWERPC64 when -m64.
18650         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18651         to 620, 630, power3, power4 and rs64a entries.
18652         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18653
18654 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18655
18656         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18657         floating-point constants.
18658
18659 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18660
18661         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18662         Create the subrange_type DIE using the given context DIE.
18663         (modified_type_die): Update call to subrange_type_die.
18664
18665 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18666
18667         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18668         Add multiple-include guard.
18669
18670 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18671
18672         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18673         all vector constant loadable by vsplt*.
18674         (output_vec_const_move): Likewise.
18675
18676 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18677
18678         PR c/6024
18679         * c-typeck.c (comptypes): Only treat enumerated types in the same
18680         translation unit as compatible with each other when they are the
18681         same type.
18682         * doc/extend.texi: Update.
18683
18684 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18685
18686         PR c/12165
18687         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18688         array type from the array element type.
18689
18690 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18691
18692         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18693         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18694         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18695         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18696         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18697
18698 2004-01-06  Eric Christopher  <echristo@redhat.com>
18699
18700         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18701         (DWARF2_DEBUGGING_INFO): Define.
18702         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18703         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18704         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18705         for irix as.
18706         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18707         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18708         * config/mips/iris5gas.h: Ditto.
18709         (DBX_DEBUGGING_INFO): Remove.
18710         (DWARF2_DEBUGGING_INFO): Ditto.
18711         (MIPS_DEBUGGING_INFO): Ditto.
18712         (PREFERRED_DEBUGGING_TYPE): Ditto.
18713         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18714         (PREFERRED_DEBUGGING_TYPE): Ditto.
18715         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18716         * config/mips/elf64.h: Ditto.
18717
18718 2004-01-06  Jan Hubicka  <jh@suse.cz>
18719
18720         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18721         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18722
18723 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18724
18725         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18726         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18727         * config/rs6000/darwin-ldouble.c: New.
18728
18729         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18730         for constants.
18731         (constant_subword): Delete.
18732         * rtl.h (constant_subword): Delete prototype.
18733         (immed_double_const): Is not in varasm.c.
18734         * simplify-rtx.c (simplify_immed_subreg): New.
18735         (simplify_subreg): Use simplify_immed_subreg.
18736
18737         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18738         than trying to generate RTL directly.
18739         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18740         RTL directly.
18741
18742         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18743
18744 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18745
18746         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18747         function into a separate macro.
18748         (read_only_data_section): Add void argument.
18749         (private_data_section): Same.
18750         (read_only_private_data_section): Same.
18751         (toc_section): Same.
18752
18753 2004-01-06  Jan Hubicka  <jh@suse.cz>
18754
18755         * invoke.texi:  Remove typo in last change.
18756
18757         PR target/10301
18758         * config.gcc: Accept opteron and athlon-64 as variants
18759         of k8.
18760         * i386.c (override_options): Likewise.
18761         * invoke.texi (i386 -mtune): Expand documentation.
18762
18763 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18764
18765         * alias.c: Fix comment typos.
18766         * builtins.c: Likewise.
18767         * cfg.c: Likewise.
18768         * df.c: Likewise.
18769         * dominance.c: Likewise.
18770         * dwarf2out.c: Likewise.
18771         * emit-rtl.c: Likewise.
18772         * expr.c: Likewise.
18773         * final.c: Likewise.
18774         * fold-const.c: Likewise.
18775         * gcse.c: Likewise.
18776         * genattrtab.c: Likewise.
18777         * genrecog.c: Likewise.
18778         * gensupport.c: Likewise.
18779         * ggc-zone.c: Likewise.
18780         * integrate.c: Likewise.
18781         * local-alloc.c: Likewise.
18782         * loop.c: Likewise.
18783         * recog.c: Likewise.
18784         * regmove.c: Likewise.
18785         * reg-stack.c: Likewise.
18786         * reorg.c: Likewise.
18787         * rtlanal.c: Likewise.
18788         * rtl.h: Likewise.
18789         * sched-ebb.c: Likewise.
18790         * simplify-rtx.c: Likewise.
18791         * toplev.c: Likewise.
18792         * varasm.c: Likewise.
18793
18794 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18795
18796         * doc/install.texi: Fix typos.
18797         * doc/invoke.texi: Likewise.
18798         * doc/md.texi: Likewise.
18799
18800 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18801
18802         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18803
18804 2004-01-06  Jan Hubicka  <jh@suse.cz>
18805
18806         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18807         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18808         of MMX_REGPARM.
18809         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18810         add MMX_REGPARM.
18811         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18812         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18813         (MMX_REGPARM_MAX): Similarly for -mmmx.
18814
18815 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18816
18817         * config/sh/linux.h: Fix comment formatting.
18818         * config/sh/netbsd-elf.h: Likewise.
18819         * config/sh/sh.c: Likewise.
18820         * config/sh/sh.h: Likewise.
18821         * config/sh/vxworks.h: Likewise.
18822
18823 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18824
18825         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18826         * toplev.c (output_file_directive): Don't use
18827         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18828
18829 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18830
18831         * toplev.c: Fix broken checkin of 2003-12-30.
18832
18833 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18834
18835         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18836         (USING_MMAP): We don't support non-mmap.
18837         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18838         large objects.
18839         (struct page_entry): Remove bytes_free.
18840         (struct page_table_chain): Remove.
18841         (struct globals): Remove page_table member.
18842         (loookup_page_table_entry): Function deleted.
18843         (set_page_table_entry): Ditto.
18844         (ggc_allocated_p): No longer need page table lookups.
18845         (ggc_marked_p): Ditto.
18846         (alloc_small_page): Don't care about bytes_free anymore.
18847         (alloc_large_page): Round up size.
18848         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18849         their size the new way.
18850         Remove page table lookups and setting.
18851         (ggc_get_size): Calculate large object size the new way.
18852         (sweep_pages): Redo to account for fact that we no longer have
18853         bytes_free.
18854         (ggc_collect): No longer need to reincrement bytes_free.
18855         (ggc_pch_alloc_object): Handle new large objects properly.
18856         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18857
18858 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18859
18860         * doc/invoke.texi: Remove a page break.
18861
18862 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18863
18864         * config/avr/avr.c (avr_output_function_prologue): Remove an
18865         extra pair of curly braces.
18866
18867 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18868
18869         * config/mn10300/mn10300.c: Fix comment formatting.
18870         * config/mn10300/mn10300.h: Likewise.
18871
18872 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18873
18874         * tree.h: Update documentation on nothrow_flag.
18875         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18876         types.
18877
18878 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18879
18880         * doc/invoke.texi: Remove traces of dead ports.
18881
18882 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18883
18884         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18885         option.
18886
18887 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18888
18889         PR target/12945
18890         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18891         counter labels.
18892         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18893         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18894         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18895         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18896         (mips_symbol_insns): Don't trust the local/global classification.
18897         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18898         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18899         -mno-explicit-relocs.
18900         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18901         between local and global symbols.
18902
18903 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18904
18905         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18906         (mips_preferred_reload_class): Declare.
18907         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18908         (EXTRA_CONSTRAINT): Update accordingly.
18909         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18910         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18911         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18912         mips_dangerous_for_la25_p.
18913         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18914         if mips_dangerous_for_la25_p.
18915
18916 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18917
18918         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18919         warning.
18920
18921 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18922
18923         * configure.ac: Use AC_PROG_CPP_WERROR.
18924         * configure: Regenerate.
18925
18926 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18927
18928         * .cvsignore: Add autom4te.cache.
18929
18930 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18931
18932         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18933         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18934         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18935         then architecture options, then ABI options.  General rewording.
18936
18937 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18938
18939         PR c/3414
18940         * doc/extend.texi: Clarify definition of malloc attribute.
18941
18942 2004-01-04  Jan Hubicka  <jh@suse.cz>
18943
18944         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18945         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18946         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18947         (cgraph_inline_p): Add extra argument reason.
18948         * cgraphunit.c: Minor formating fixes.
18949         cgraph_first_inlined_callee): New functions.
18950         (record_call_1): Record builtins too.
18951         (cgraph_analyze_function): Update inline_failed messages.
18952         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18953         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18954         (cgraph_check_inline_limits): Likewise; Add argument reason.
18955         (cgraph_set_inline_failed): New static function.
18956         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18957         reasons.
18958         (cgraph_inline_p): Add new argument reason.
18959         * tree-inline.c (expand_call_inline):  Update warning.
18960
18961 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18962
18963         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18964         with modern equivalents.
18965         * configure: Regenerate.
18966
18967         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18968         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18969         * configure: Regenerate.
18970
18971         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18972
18973         * configure.in: Rename to configure.ac.
18974         * configure.ac: Renamed from configure.in; make minimum necessary
18975         changes for autoconf 2.5x.
18976         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18977         * configure: Regenerate with autoconf 2.57.
18978
18979 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18980
18981         * config/mips/linux.h: Fix comment formatting.
18982         * config/mips/mips.c: Likewise.
18983         * config/mips/mips.h: Likewise.
18984         * config/mips/mips.md: Likewise.
18985         * config/mips/netbsd.h: Likewise.
18986         * config/mips/windiss.h: Likewise.
18987
18988 2004-01-02  Richard Henderson  <rth@redhat.com>
18989
18990         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18991         for sse and 387; add suppression for mmx.
18992
18993 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18994
18995         * loop.c (loop_optimize): Free all loops_info's mems.
18996
18997         * c-typeck.c (finish_init): Free spelling_base before
18998         setting it again.
18999
19000         * cfgloop.c (flow_loops_find): Always free the sbitmap
19001         headers.
19002
19003         * predict.c (estimate_probability): Free bbs after being
19004         done with it.
19005
19006 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19007
19008         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
19009         const_8bit_operand and call_address_operand.
19010
19011 2004-01-02  Jan Hubicka  <jh@suse.cz>
19012
19013         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
19014         when there is nothing to inline but warnings are requested.
19015         (cgraph_decide_inlining):  Fix memory leak.
19016
19017 2004-01-02  Jan Hubicka  <jh@suse.cz>
19018
19019         * expr.c (store_constructor):  Fix pasto in previous patch.
19020
19021 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19022
19023         * config/i386/cygming.h: Fix comment formatting.
19024         * config/i386/djgpp.h: Likewise.
19025         * config/i386/gthr-win32.c: Likewise.
19026         * config/i386/i386-interix.h: Likewise.
19027         * config/i386/i386.c: Likewise.
19028         * config/i386/i386.h: Likewise.
19029         * config/i386/openbsd.h: Likewise.
19030         * config/i386/winnt.c: Likewise.
19031         * config/i386/xm-mingw32.h: Likewise.
19032
19033 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
19034
19035         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
19036         copyright and last modification dates.
19037
19038 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
19039
19040         * doc/install.texi (Specific): Mention x86_64.
19041
19042 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
19043
19044         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
19045         Call force_operand on plus_constant result.
19046
19047 2004-01-01  Jan Hubicka  <jh@suse.cz>
19048
19049         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
19050         * expr.c (store_constructor): Use vec_init pattern.
19051         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
19052         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
19053         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
19054         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
19055         New patterns.
19056         (sse2_unpc?pd): Fix pattern.
19057         (sse2_movlpd): Kill.
19058         (sse2_movsd): Deal with movlpd too.
19059         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
19060         (ix86_expand_vector_init): New.
19061         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
19062         * md.texi (vec_set, vec_extract): Document
19063
19064 2003-12-31  Jan Hubicka  <jh@suse.cz>
19065
19066         PR opt/13473
19067         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
19068         ASM input operands
19069
19070         PR opt/12617
19071         * toplev.c (dump_file_index): Reorder ce3 and bbro.
19072         (dump_file): Likewise.
19073         (rest_of_compilation): Likewise.
19074
19075         PR debug/13367
19076         * cgraph.c (cgraph_function_possibly_inlined):  Even with
19077         flag_really_no_inline we inline always_inline functions.
19078         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
19079         for non-always_inline functions when there is flag_really_no_inline.
19080         (cgraph_decide_inlining): Limit work done when not inlining.
19081         (cgraph_decide_inlining_incrementally): Likewise.
19082         (cgraph_optimize_function): Check whether something got inlined.
19083         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
19084         extern inline functions when not inlining.
19085
19086         * opts.c (decode_options):  Disable crossjumping at -O1
19087         * invoke.texi (-O1): Document change.
19088
19089 See ChangeLog.10 for earlier changes.