OSDN Git Service

PR target/15941
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-19  Richard Henderson  <rth@redhat.com>
2
3         PR target/15941
4         * function.c (assign_parms): If not padding upward or intentionally
5         forcing upward padding, take offset_rtx into account when determining
6         the alignment for stack_parm.
7
8 2004-06-19  Richard Henderson  <rth@redhat.com>
9
10         PR target/15550
11         * ifcvt.c (noce_try_move): Recognize all generated instructions.
12
13 2004-06-19  Jan Hubicka  <jh@suse.cz>
14
15         * function.c (free_after_compilation): Do not free computed_goto_common*.
16         * function.h (struct function): Kill computed_goto_common*.
17         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
18         * tree-cfg.c (disband_implicit_edges): Do not forward across the
19         commonized computed goto.
20
21 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22
23         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
24         in binutils.
25
26 2004-06-19  Andrew Pinski  <apinski@apple.com>
27
28         PR c++/15721
29         * toplev.c (wrapup_global_declarations): Do not check
30         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
31         cgraph_varpool_node's needed field.
32
33 2004-06-19  Jan Hubicka  <jh@suse.cz>
34             Steven Bosscher  <stevenb@suse.de>
35
36         CFG transparent RTL expansion:
37         * Makefile.in (cfgexpand.o): New object file.
38         (builtins.o): Add dependency on basic-block.h
39         * builtins.c: Include basic-block.h
40         (entry_of_function): New function.
41         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
42         * cfgexpand.c: New file.
43         * expr.c (execute_expand, pass_expand): Kill.
44         * pass.c (rest_of_compilation): Do not build CFG unless called from
45         coverage code.
46         * tree-cfg.c (delete_tree_cfg): Rename to..
47         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
48         * tree-flow.h (delete_tree_cfg_annotations): Declare.
49         (dleete_tree_cfg): Kill.
50         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
51         (execute_del_cfg): Rename to...
52         (execute_free_datastructures): This one...
53         (pass_del_cfg): Rename to...
54         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
55         (init_tree_optimization_passes): Make cfg build and profiling to happen
56         unconditionally.
57
58 2004-06-19  Steven Bosscher  <stevenb@suse.de>
59
60         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
61         inserting the cache variables.
62
63         * tree-mudflap.c: Include headers to make basic_block available.
64         Move functions around such that related functions are near each
65         other.  Add prototypes for all static functions.  Add comments
66         briefly explaining what IR the mudflap1 and mudflap2 work on and
67         what they do.
68         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
69         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
70         (pass_mudflap_1, pass_mudflap_2): Update.
71         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
72         function tree.
73         (mf_build_check_statement_for): Make it work on the CFG.
74         (mf_xform_derefs_1): Likewise.  Cleanup code style.
75         (mf_xform_derefs): Likewise.
76
77 2004-06-19  Jan Hubicka  <jh@suse.cz>
78
79         * tree-cfg.c (label_to_block): Invent the label destination for
80         undefined labels.
81         (cleanup_dead_labels): Update table in the case label_to_block added
82         new label.
83
84 2004-06-18  Richard Henderson  <rth@redhat.com>
85
86         PR c++/16036 
87         * gimple-low.c (lower_function_body): Generate return statement for
88         fall off the end of the function here ...
89         * tree-cfg.c (make_edges): ... instead of here.
90         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
91
92 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
93
94         * tree-ssa.c (raise_value): Removed.
95         (get_eq_name, check_phi_redundancy): New functions.
96         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
97
98 2004-06-18  Roger Sayle  <roger@eyesopen.com>
99
100         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
101         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
102         constant folding for unordered comparison tree nodes.  If both
103         operands are real constants, call fold_relational_const.  If either
104         operand is a NaN, evaluate the other for side-effects and return a
105         constant.  Optimize (double)float1 CMP (double)float2 into the
106         equivalent float1 CMP float2.
107         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
108         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
109         LTGT_EXPR>: Call fold_relational_const for constant operands.
110         (fold_relational_const): Add support for unordered comparison tree
111         nodes.  Don't constant fold "ordered" floating point comparisons
112         against NaN if when flag_trapping_math is set.
113
114 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
115
116         * fold-const.c (build_range_check): If !in_p and recursive call
117         fails, exit immediately.  If high - low overflows and etype is
118         a signed type, retry with unsigned etype.
119         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
120         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
121
122 2004-06-18  Richard Henderson  <rth@redhat.com>
123
124         * c-gimplify.c (gimplify_condition): Remove.
125         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
126         call it.
127
128 2004-06-18  Richard Henderson  <rth@redhat.com>
129
130         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
131         switch estimates.
132
133 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
134
135         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
136         (NORMAL_TEXT_SECTION_NAME): Define.
137         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
138         (SECTION_FORMAT_STRING): Define.
139
140 2004-06-18  Steven Bosscher  <stevenb@suse.de>
141
142         * config/xtensa/xtensa.c
143         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
144         * xtensa.md: Replace the old pipeline description with a DFA model.
145
146 2004-06-18  Steven Bosscher  <stevenb@suse.de>
147             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
148
149         * config/s390/s390.md: Remove the generic pipeline description.
150         * config/s390/2064.md: Make all insn reservations apply to
151         the z900, g5 and g6.
152         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
153         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
154         Define to hook_int_void_1.
155         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
156         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
157
158 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
159                         Diego Novillo  <dnovillo@redhat.com>
160
161         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
162         (create_stmt_ann): Ditto.
163         (create_tree_ann): New function.
164         (create_cst_ann): Remove.
165         (create_expr_ann): Ditto.
166
167         * tree-flow-inline.h (cst_ann): Remove.
168         (get_cst_ann): Ditto.
169         (get_expr_ann): Ditto.
170         (expr_ann): Ditto.
171         (get_tree_ann): New function.
172         (tree_ann): Ditto.
173         (ann_type): tree_ann -> tree_ann_t.
174         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
175         (struct cst_ann_d): Removed.
176         (struct expr_ann_d): Ditto.
177         (union tree_ann_d): Removed cst and expr.
178         (tree_ann): Renamed to tree_ann_t.
179         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
180         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
181         annotation.
182         (set_value_handle): Ditto.
183         (phi_translate): Ditto.
184         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
185
186 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
187
188         * config/sh/t-linux64: New file.
189         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
190
191 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
192
193         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
194         (unshare_all_rtl_again): Call unshare_all_rtl_1.
195         (unshare_all_rtl): New.
196         * function.c (instantiate_virtual_regs): Remove parameters.
197         * function.h (instantiate_virtual_regs): Add prototype.
198         * rtl.h (unshare_all_rtl): Add prototype.
199         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
200         prototype.
201         * passes.c: Remove assertions on the parameters to
202         rest_of_handle_* functions.  Remove the parameters to
203         the functions, replacing decl with current_function_decl
204         and insns with get_insns ().
205
206 2004-06-17  Roger Sayle  <roger@eyesopen.com>
207
208         * fold-const.c (constant_boolean_node): Handle boolean_type_node
209         directly, return either boolean_true_node or boolean_false_node.
210
211 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
212
213         * opts.sh: Delete.  Break out generated code to next four files.
214         * opt-gather.awk: New file.
215         * optc-gen.awk: New file.
216         * opth-gen.awk: New file.
217         * opt-functions.awk: New common file.
218         * Makefile.in: Update for above.
219         * configure.ac: Update comment.
220         * configure: Regenerate.
221
222 2004-06-17  Richard Henderson  <rth@redhat.com>
223
224         * c-common.c (flag_objc_sjlj_exceptions): New.
225         * c-common.h (flag_objc_sjlj_exceptions): Declare.
226         * c-opts.c (c_common_handle_option): Set it.
227         (c_common_post_options): Handle interation of different
228         objective-c exception and runtime switches.
229         * c-decl.c (c_eh_initialized_p): New.
230         (finish_decl): Use it instead of local eh_initialized_p.
231         * c-parse.in (nested_function, notype_nested_function): Record
232         the result of compstmt.
233         (compstmt_or_error): Likewise.
234         (compstmt): Don't add_stmt the result.
235         (stmt): Don't return anything.  Rewrite objc try and sync rules.
236         (objc_try_stmt, objc_catch_list): Remove.
237         (objc_catch_block, objc_finally_block): Remove.
238         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
239         (objc_try_catch_clause, objc_finally_clause): New.
240         (objc_try_catch_stmt): Rewrite.
241         * c-tree.h (c_eh_initialized_p): Declare.
242         * c-opt (fobjc-sjlj-exceptions): New.
243         * except.c (output_function_exception_table): Don't call cgraph
244         on non-decls.
245         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
246         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
247         catch_count_stack, exc_binding_stack, if_nesting_count,
248         blk_nesting_count, objc_enter_block, objc_exit_block,
249         objc_declare_variable, val_stack_push, val_stack_pop, 
250         objc_build_try_enter_fragment, objc_build_extract_expr,
251         objc_build_try_exit_fragment, objc_build_extract_fragment,
252         objc_build_try_prologue, objc_build_try_epilogue, 
253         objc_build_catch_stmt, objc_build_catch_epilogue,
254         objc_build_finally_prologue, objc_build_finally_epilogue,
255         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
256         objc_build_synchronized_epilogue): Remove.
257         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
258         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
259         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
260         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
261         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
262         objc_begin_catch_clause, objc_finish_catch_clause,
263         objc_build_finally_clause, objc_finish_try_stmt,
264         objc_build_synchronized): New.
265         (objc_is_object_id, objc_is_class_id): New.
266         (objc_comptypes): Use them.
267         (build_next_objc_exception_stuff): Break NeXT sjlj out from
268         build_objc_exception_stuff.
269         (synth_module_prologue): Update to match.
270         (objc_build_throw_stmt): Use cur_try_context to decide if
271         we're in a @catch.
272         * objc/objc-act.h: Update prototypes.
273         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
274
275 2004-06-17  Andrew Pinski <apinski@apple.com>
276
277         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
278         Use TYPE_FIELDS instead of TYPE_VALUES.
279
280 2004-06-17  Jason Merrill  <jason@redhat.com>
281
282         PR c++/16015
283         * gimplify.c (gimplify_target_expr): Handle void initializer.
284         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
285         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
286         and AGGR_INIT_EXPR.
287
288 2004-06-17  Roger Sayle  <roger@eyesopen.com>
289
290         * fold-const.c (fold_relational_const): Use constant_boolean_node.
291
292 2004-06-17  Jan Hubicka  <jh@suse.cz>
293
294         PR target/15433
295         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
296         operand numbering in the output template.
297         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
298
299 2004-06-17  Jan Hubicka  <jh@suse.cz>
300
301         * except.c (can_throw_internal): Recognize RESX expresisons.
302
303 2004-06-17  Jan Hubicka  <jh@suse.cz>
304
305         * cfgbuild.c (make_edges): Do not use label_value_list.
306         (find_basic_blocks_1): Do not collect label_value_list.
307         (find_sub_basic_blocks): Update call of make_edges.
308
309 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
310
311         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
312         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
313         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
314         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
315         (get_v_may_def_result_ptr):  Return a def_operand_p.
316         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
317         (get_v_must_def_op_ptr):  Return a def_operand_p.
318         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
319         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
320         (phi_element_for_edge):  Remove.
321         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
322         (propagate_tree_value):  Add new prototype.
323         (phi_element_for_edge):  Remove prototype.
324         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
325         (prepare_operand_for_rename):  Split into two functions.
326         (prepare_use_operand_for_rename):  Prepare use operands.
327         (prepare_def_operand_for_rename):  Prepare def operands.
328         (rewrite_stmt):  Use new operand types.
329         (rewrite_operand):  Use new operand types, change parameter type.
330         * tree-outof-ssa.c (replace_variable):  Split into two functions.
331         (replace_use_variable):  Rewrite uses.
332         (replace_def_variable):  Rewrite defs.
333         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
334         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
335         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
336         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
337         (ccp_fold, replace_uses_in):  Use new operand types.
338         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
339         and no longer set the value, change parameter type.
340         (replace_exp_1):  Use new operand types.
341         (propagate_value):  Change parameter type, use new operand types.
342         (propagate_tree_value):  Propagate_value without SSA operands.
343         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
344         (cprop_into_successor_phis):  Use new operand types.
345         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
346         (eliminate_redundant_computations):  Use new operand types.
347         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
348         (fix_stmt_v_may_defs):  Use new operand_types.
349         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
350         (build_tree_conflict_graph):  Use new operand_types.
351         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
352         * tree-ssa-operands.c (struct freelist_d):  Remove.
353         (check_optype_freelist, add_optype_freelist):  Remove.
354         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
355         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
356         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
357         Call ggc_free instead of add_optype_freelist.
358         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
359         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
360         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
361         (struct use_optype_d):  Change underlying type.
362         (def_operand_p, use_operand_p):  New types for pointers to operands.
363         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
364         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
365         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
366         pointer types.
367         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
368         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
369         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
370         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
371         PHI result as an operand.
372         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
373         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
374         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
375         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
376         PHI_ARG_DEF_FROM_EDGE.
377         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
378         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
379
380 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
381
382         PR tree-optimization/15991
383         * tree-cfg.c (tree_block_label): Export.
384         * tree-flow-inline.h (bsi_after_labels): New function.
385         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
386         * tree-ssa.c (propagate_into_addr): New function.
387         (replace_immediate_uses): Handle propagation of pointer constants.
388         (raise_value): Do not restrict propagation of pointer constants.
389         * tree-ssanames.c (duplicate_ssa_name): New function.
390         * tree.h (duplicate_ssa_name): Declare.
391
392 2004-06-17  David Ayers  <d.ayers@inode.at>
393  
394         * c-parse.in: Unify Objective-C token names.
395
396 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
397
398         Bug 14610
399         * Makefile.in (min-insn-modes.o): Correct dependencies.
400         * real.c (encode_ieee_extended, decode_ieee_extended): Always
401         produce/consume 12-byte little-endian Intel format.
402         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
403         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
404         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
405         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
406         New functions which convert between 12-byte little-endian Intel
407         format and the desired format.
408         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
409         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
410         Update.
411
412 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
413
414         * expmed.c (expand_mult_const): In sanity check, compare only
415         the bits of val and val_so_far that are significant in the
416         result mode.
417
418 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
419
420         * tree-ssa-pre.c:  Update comments.
421         (val_expr_pair_eq): Factor code from here.
422         (expr_pred_trans_eq): and here.
423         (expressions_equal_p): To here.
424         (print_value_set): Print value for expression.
425         (phi_trans_lookup): Rename some variables.
426         (lookup): Ditto.
427         (value_exists_in_set_bitmap): Ditto.
428         (value_remove_from_set_bitmap): Ditto.
429         (value_insert_into_set_bitmap): Ditto.
430
431 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
432
433         * config/s390/s390-modes.def (CCL3mode): New machine mode.
434         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
435         (s390_alc_comparison, s390_slb_comparison): Likewise.
436         (s390_branch_condition_mask): Likewise.
437         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
438         ("*subsi3_cc2", "*subsi3_cconly2"): New.
439
440         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
441         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
442         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
443         Handle SIGN_EXTEND and ZERO_EXTEND.
444
445         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
446         * config/s390/s390.c (s390_expand_addcc): New function.
447         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
448         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
449         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
450
451 2004-06-17  Ben Elliston  <bje@au.ibm.com>
452
453         * tree-alias-common.c: Add whitespace.
454         * tree-inline.c: Correct comment about this file's purpose.
455         * tree-optimize.c: Likewise.
456         * tree-tailcall.c: Likewise.
457
458         * tree-alias-ander.h: Add standard top-of-file comment.
459         * tree-alias-common.h: Likewise.
460         * tree-alias-type.h: Likewise.
461
462 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
463
464         * tree-ssa-pre.c (compute_avail): Value number uses as well.
465         Strip useless type conversions.
466         Casts have to be treated slightly different than normal unaries.
467
468 2004-06-16  Richard Henderson  <rth@redhat.com>
469
470         * c-common.def (COMPOUND_STMT): Remove.
471         * c-common.c (finish_fname_decls): Don't look through it.
472         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
473         * c-common.h (COMPOUND_BODY): Remove.
474         (c_common_stmt_codes): Remove COMPOUND_STMT.
475         * c-dump.c (c_dump_tree): Likewise.
476         * c-gimplify.c (c_gimplify_stmt): Likewise.
477         * c-pretty-print.c (pp_c_statement): Likewise.
478         * tree.h (DECL_SAVED_TREE): Update commentary.
479         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
480         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
481         (GOTO_EXPR): Rename from GOTO_STMT.
482         (GOTO_FAKE_P): Remove.
483         (COMPOUND_STMT): Remove.
484         (HANDLER): Update wrt COMPOUND_STMT.
485         (STMT_EXPR): Likewise.
486         (LABEL_EXPR): Rename from LABEL_STMT.
487         (SCOPE_STMT): Remove.
488         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
489         through COMPOUND_STMT.
490
491 2004-06-16  Richard Henderson  <rth@redhat.com>
492
493         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
494         c_finish_while_stmt_cond): Remove decls.
495         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
496         * c-typeck.c (c_begin_if_stmt): Return void.
497         (c_begin_else): Tidy.  Save stmt_count.
498         * c-tree.h (c_begin_if_stmt): Update decl.
499
500         * objc/objc-act.c (objc_build_try_enter_fragment,
501         objc_build_extract_fragment, objc_build_try_epilogue,
502         objc_build_catch_stmt, objc_build_catch_epilogue,
503         objc_build_finally_prologue, objc_build_finally_epilogue): Update
504         for if builder function changes.
505
506 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
507
508         * config/s390/s390.c (struct machine_function):  New member
509         last_restore_gpr.
510         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
511         Do not modify machine->save_return_addr_p or regs_ever_live.
512         Fill in machine->last_restore_gpr.
513         (s390_optimize_prolog): Use s390_frame_info to compute registers
514         to save/restore, remove duplicated code.
515         (s390_arg_frame_offset): Use s390_frame_info to compute frame
516         size, remove duplicated code.
517         (s390_emit_prologue): Adapt s390_frame_info call.  Update
518         machine->save_return_addr_p and regs_ever_live.
519         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
520         machine->last_save_gpr.
521
522 2004-06-16  Richard Henderson  <rth@redhat.com>
523
524         * c-parse.in (if_stmt_locus): Remove.
525         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
526         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
527         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
528         empty_locus.  Add stmt_count, saw_else.
529         (c_begin_if_stmt): Push if_stack here.
530         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
531         (c_finish_then, c_finish_else): Record empty_locus.
532         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
533         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
534         if or else body.
535         * c-tree.h: Update prototypes.
536
537 2004-06-16  Steven Bosscher  <stevenb@suse.de>
538
539         * tree.h (PHI_CHAIN): New.
540         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
541         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
542         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
543         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
544         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
545         when traversing a list of PHI_NODEs.
546
547 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
548
549         PR target/13292
550         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
551         on -msoft-float.
552         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
553         68040 and soft-float.
554         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
555         in the TARGET_68040_ONLY case.
556
557 2004-06-16 Peter Barada  <peter@the-baradas.com>
558
559         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
560         (movsi_cf): Make named, don't match TARGET_CFV4.
561         (pushexthisi_const): Use mov3q if possible.
562         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
563         to special case mvz.w for ColdFire V4.
564         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
565         to special case mvz.b for ColdFire V4.
566         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
567         divide.
568         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
569         * config/m68k/m68k.c(valid_mov3q_const):  New function.
570         (const_method): SWAP is valid for ColdFire.
571         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
572         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
573
574 2004-06-16  Richard Henderson  <rth@redhat.com>
575
576         * c-common.def (CASE_LABEL): Remove.
577         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
578         (match_case_to_enum_1): Likewise.
579         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
580         * c-dump.c (c_dump_tree): Likewise.
581         * c-gimplify.c (c_gimplify_stmt): Likewise.
582         * c-pretty-print.c (pp_c_statement): Likewise.
583         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
584         * tree.h (CASE_LOW): Update commentary.
585
586 2004-06-16  Richard Henderson  <rth@redhat.com>
587
588         * c-common.def (ASM_STMT): Remove.
589         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
590         * c-dump.c (c_dump_tree): Likewise.
591         * c-gimplify.c (c_gimplify_stmt): Likewise.
592         * c-pretty-print.c (pp_c_statement): Likewise.
593         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
594         * tree.h: Fix commentary.
595
596 2004-06-16  Richard Henderson  <rth@redhat.com>
597
598         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
599         * c-common.c (c_add_case_label): Use LABEL_EXPR.
600         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
601         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
602         * c-dump.c (c_dump_tree): Likewise.
603         * c-gimplify.c (c_gimplify_stmt): Likewise.
604         * c-pretty-print.c (pp_c_statement): Likewise.
605         * c-parse.in (stmt): Use GOTO_EXPR.
606         (label): Use LABEL_EXPR.
607         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
608         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
609
610 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
611
612         * cfgcleanup.c (try_simplify_condjump): Update test to make
613         sure we have a conditional branch around am unconditional branch.
614
615 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
616
617         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
618
619 2004-06-16  Dale Johannesen  <dalej@apple.com>
620
621         * loop.c (loop_givs_reduce): Avoid miscompilation of
622         loops entered at bottom.
623
624 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
625
626         * cfglayout.c (fixup_reorder_chain): Handle case where the
627         destination of E_FALL is EXIT_BLOCK_PTR.
628
629 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
630
631         PR target/15653
632         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
633         after shifts before asm.
634
635 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
636
637         PR tree-optimization/15993
638         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
639         destination is unchanged.
640
641 2004-06-16  Andreas Jaeger  <aj@suse.de>
642
643         * doc/install.texi (Configuration): Update description for
644         --enable-version-specific-runtime-libs.
645
646 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
647
648         * doc/install.texi: boehm-gc now uses automake 1.8.5.
649
650 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
651
652         * toplev.h (rest_of_compilation): Adjust prototype.
653
654 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
655
656         * coverage.c: Remove argument to rest_of_compilation.
657         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
658         * passes.c (rest_of_compilation): Remove argument.
659         (pass_rest_of_compilation): New.
660         (rest_of_handle_final, rest_of_handle_delay_slots,
661         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
662         rest_of_handle_machine_reorg, rest_of_handle_regrename
663         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
664         rest_of_handle_regmove, rest_of_handle_tracer
665         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
666         rest_of_handle_web, rest_of_handle_branch_prob
667         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
668         rest_of_handle_addressof, rest_of_handle_jump_bypass
669         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
670         Check that the two arguments are actually superfluous.
671         * tree-optimize.c (register_dump_files): Add properties argument.
672         Track validity of passes.  Only initialize dump files for
673         tree-based passes.  Store the full set of provided passes in
674         the pass.
675         (init_tree_optimization_passes): Register pass_expand and
676         pass_rest_of_compilation.
677         (execute_one_pass): Do not track the presence of required properties
678         here.  Set in_gimple_form.  Do not update current_properties.
679         (current_properties): Remove.
680         (set_save_expr_context): Remove.
681         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
682         expand to RTL here, and do not call rest_of_compilation.  Push
683         GGC context even before gimplification.
684         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
685         (pass_expand, pass_rest_of_compilation): Declare.
686
687 2004-06-15  Jeff Law  <law@redhat.com>
688
689         * fold-const.c (swap_tree_comparison): No longer static.
690         (tree_swap_operands_p): Similarly.  Return true if both operands
691         are SSA_NAMEs and the first operand has a higher version number than
692         the second operand.
693         * tree.h (swap_tree_comparison): Prototype.
694         (tree_swap_operands_p): Prototype.
695         * tree-ssa-operands.c (get_expr_operands): For commutative
696         operators and relational comparisons, canonicalize the
697         order of the operands.
698
699 2004-06-15  Richard Henderson  <rth@redhat.com>
700
701         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
702         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
703         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
704         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
705         (finish_fname_decls, fname_decl): Use statement_lists.
706         (c_expand_expr_stmt): Don't set last_expr_type.
707         (c_type_hash): Fix indentation.
708         (c_safe_from_p): Don't follow TREE_CHAIN.
709         (c_tree_chain_matters_p): Remove.
710         * c-common.def (SCOPE_STMT): Remove.
711         (CLEANUP_STMT): Redefine to contain its own body.
712         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
713         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
714         Add x_cur_stmt_list.
715         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
716         (cur_stmt_list): New.
717         (STATEMENT_LIST_STMT_EXPR): New.
718         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
719         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
720         (CLEANUP_BODY): New.
721         (CLEANUP_DECL): Move to operand 2.
722         (c_common_stmt_codes): Remove SCOPE_STMT.
723         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
724         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
725         (c_push_function_context, c_pop_function_context): Don't save it.
726         (finish_decl): Set TREE_USED on the decl for a cleanup.
727         Use push_cleanup.
728         (store_parm_decls): Use statement lists.
729         (finish_function): Remove compstmt rule workaround.  Use statement
730         lists.  Call finish_fname_decls after finalizing the body.
731         (c_begin_compound_stmt): Move to c-typeck.c.
732         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
733         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
734         (c_genericize): Invoke them.
735         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
736         (c_build_bind_expr): Export.
737         (gimplify_block, gimplify_cleanup): Remove.
738         (gimplify_condition): Use gimplify_stmt.
739         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
740         (gimplify_if_stmt): Remove recursion hack.
741         (c_gimplify_expr): Remove STMT_EXPR handling.
742         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
743         (is_last_stmt_of_scope): Remove.
744         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
745         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
746         c_end_compound_stmt.
747         * c-objc-common.c (build_cdtor): Likewise.
748         * c-parse.in (primary): Use c_finish_stmt_expr.
749         (push_scope, pop_scope): Remove.
750         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
751         (c99_block_end, compstmt): Use c_end_compound_stmt.
752         (c99_block_lineno_labeled_stmt): Likewise.
753         (compstmt_primary_start): Use c_begin_stmt_expr.
754         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
755         (do_stmt_start): Fill in body directly.
756         (lineno_stmt): Avoid setting lineno on constants.
757         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
758         Remove SCOPE_STMT.
759         * c-semantics.c (begin_stmt_tree): Remove.
760         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
761         (add_stmt): Use statement lists.
762         (add_scope_stmt, finish_stmt_tree): Remove.
763         (push_cleanup): New.
764         * c-tree.h: Move some decls from c-common.h.
765         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
766         (do_case, c_finish_case): Likewise.
767         (c_finish_then): Take body for then as argument.
768         (c_finish_else): Similarly.
769         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
770         c_finish_for_stmt_incr, c_finish_for_stmt): New.
771         (c_begin_stmt_expr, c_finish_stmt_expr): New.
772         (c_begin_compound_stmt): Do scope management.
773         (c_end_compound_stmt): New.
774         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
775         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
776         Look through exception handling constructs.
777         (gimplify_bind_expr): Accept temporary argument.
778         (gimplify_target_expr): Special case BIND_EXPR bodies.
779         (gimplify_expr): Handle fallback == fb_none like a statement.
780         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
781         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
782         * langhooks.h (tree_chain_matters_p): Remove.
783         * stub-objc.c (objc_clear_super_receiver): New.
784         * tree-gimple.h (voidify_wrapper_expr): Update decl.
785         (append_to_statement_list, append_to_statement_list_force): Move
786         to tree-iterator.h.
787         * tree-inline.c (expand_call_inline): Update call.
788         (clone_body): Use statement lists.
789         (walk_tree): Don't check tree_chain_matters_p.
790         (copy_tree_r): Likewise.
791         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
792         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
793         * tree-iterator.h (append_to_statement_list,
794         append_to_statement_list_force): Moved from tree-gimple.h.
795         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
796         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
797         (objc_enter_block): Likewise.
798         (objc_exit_block): Use c_end_compound_stmt.
799         (objc_build_try_enter_fragment): Add #error and comment for
800         rewriting for OBJCPLUS.
801         (objc_build_extract_fragment, objc_build_try_epilogue,
802         objc_build_catch_stmt, objc_build_finally_prologue,
803         objc_build_finally_epilogue): Update for C statement builders.
804         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
805         Remove.
806
807 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
808
809         * df.c (df_reg_clobber_gen): Removed.
810         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
811         Make more effective for hard regs.
812         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
813
814 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
815
816         * c-pragma.h (c_lex_string_translate): Change type to int.
817         * c-parse.in: Change all assignments of c_lex_string_translate
818         to true and false to 1 and 0.
819         * c-lex.c (c_lex_string_translate): Likewise.
820         (lex_string): Convert string without translation in the -1
821         case.
822
823 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
824
825         * convert.h: Add include guards
826
827 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
828
829         * tree-flow-inline.h: Document all functions.
830
831 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
832
833         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
834         * tree-dfa.c (create_stmt_ann): Ditto.
835         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
836         * tree-inline.c (estimate_num_insns_1): Ditto.
837         * tree.c (tree_size): Ditto.
838         (make_node_stat): Ditto.
839         (tree_node_structure): Ditto.
840         (ephi_node_elt_check_failed): Remove.
841         (is_essa_node): Ditto.
842         * tree.def (EPHI_NODE): Ditto.
843         (EEXIT_NODE): Ditto.
844         (EUSE_NODE): Ditto.
845         (EKILL_NODE): Ditto.
846         * tree.h (EREF_NODE_CHECK): Remove.
847         (EPHI_NODE_ELT_CHECK): Ditto.
848         (struct tree_eref_common): Ditto.
849         (struct tree_euse_node): Ditto.
850         (struct ephi_arg_d): Ditto.
851         (struct tree_ephi_node): Ditto.
852         (ephi_node_elt_check_failed): Remove prototype.
853         (is_essa_node): Ditto.
854         (enum tree_node_structure_enum): Remove TS_E*_NODE.
855         (union tree_node): Remove E*_NODE uses.
856
857 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
858
859         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
860         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
861         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
862         Likewise.
863         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
864         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
865         expand_builtin_strcmp, expand_builtin_strncmp,
866         expand_builtin_frame_address): Likewise.
867         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
868         insert_one_insn): Likewise.
869         * calls.c (prepare_call_address, precompute_register_parameters,
870         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
871         * cfganal.c (flow_active_insn_p): Likewise.
872         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
873         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
874         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
875         make_extraction, recog_for_combine, gen_lowpart_for_combine,
876         simplify_comparison, record_dead_and_set_regs_1,
877         record_dead_and_set_regs, record_promoted_value,
878         check_promoted_subreg, get_last_value_validate, get_last_value,
879         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
880         unmentioned_reg_p_1): Likewise.
881         * conflict.c (mark_reg): Likewise.
882         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
883         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
884         merge_equiv_classes, flush_hash_table, invalidate,
885         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
886         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
887         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
888         record_jump_cond, cse_insn, addr_affects_sp_p,
889         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
890         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
891         cse_cc_succs, cse_condition_code_reg): Likewise.
892         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
893         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
894         cselib_record_set, cselib_record_sets): Likewise.
895         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
896         dbxout_block): Likewise.
897         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
898         * dojump.c (do_jump): Likewise.
899         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
900         is_based_loc, rtl_for_decl_location): Likewise.
901         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
902         set_decl_incoming_rtl, mark_user_reg): Likewise.
903         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
904         copy_to_suggested_reg, allocate_dynamic_stack_space,
905         probe_stack_range, hard_function_value): Likewise.
906         * expmed.c (store_bit_field, store_fixed_bit_field,
907         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
908         extract_split_bit_field, expand_divmod, emit_store_flag_force):
909         Likewise.
910         * expr.c (convert_move, convert_modes,
911         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
912         use_group_regs, emit_move_insn, emit_move_insn_1,
913         compress_float_constant, push_block, emit_single_push_insn,
914         emit_push_insn, get_subtarget, expand_assignment, store_expr,
915         store_constructor, store_field, force_operand, safe_from_p,
916         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
917         Likewise.
918         * final.c (profile_function, final_scan_insn, alter_subreg,
919         get_mem_expr_from_op, output_asm_operand_names, output_operand,
920         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
921         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
922         find_regno_partial, propagate_one_insn, init_propagate_block_info,
923         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
924         attempt_auto_inc, find_auto_inc, mark_used_regs,
925         count_or_remove_death_notes_bb): Likewise.
926         * function.c (find_temp_slot_from_address, update_temp_slot_address,
927         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
928         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
929         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
930         purge_single_hard_subreg_set, instantiate_decl,
931         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
932         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
933         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
934         expand_function_start, diddle_return_value, clobber_return_register,
935         expand_function_end, keep_stack_depressed, handle_epilogue_set,
936         update_epilogue_consts): Likewise.
937         * genemit.c (gen_exp, gen_insn): Likewise.
938         * genrecog.c (make_insn_sequence): Likewise.
939         * global.c (global_conflicts, expand_preferences, mark_reg_store,
940         mark_reg_conflicts, set_preference, reg_becomes_live,
941         build_insn_chain, mark_reg_change): Likewise.
942         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
943         Likewise.
944         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
945         Likewise.
946         * integrate.c (copy_rtx_and_substitute, try_constants,
947         subst_constants, mark_stores, allocate_initial_values): Likewise.
948         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
949         delete_computation, rtx_renumbered_equal_p, true_regnum,
950         reg_or_subregno): Likewise.
951         * lcm.c (reg_dies, reg_becomes_live): Likewise.
952         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
953         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
954         wipe_dead_reg, no_conflict_p): Likewise.
955         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
956         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
957         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
958         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
959         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
960         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
961         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
962         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
963         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
964         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
965         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
966         try_swap_copy_prop): Likewise.
967         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
968         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
969         Likewise.
970         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
971         reload_cse_simplify_operands, reload_combine,
972         reload_combine_note_store, reload_combine_note_use,
973         reload_cse_move2add, move2add_note_store): Likewise.
974         * print-rtl.c (print_rtx): Likewise.
975         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
976         contains_pseudo, handle_asm_insn): Likewise.
977         * ra-debug.c (ra_print_rtx_object, dump_constraints,
978         dump_static_insn_cost): Likewise.
979         * ra-rewrite.c (slots_overlap_p, emit_colors,
980         remove_suspicious_death_notes): Likewise.
981         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
982         register_operand, scratch_operand, nonmemory_operand,
983         constrain_operands): Likewise.
984         * reg-stack (check_asm_stack_operands, remove_regno_note,
985         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
986         subst_asm_stack_regs): Likewise.
987         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
988         record_address_regs, reg_scan_mark_refs): Likewise.
989         * regmove.c (discover_flags_reg, replacement_quality,
990         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
991         fixup_match_1): Likewise.
992         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
993         kill_set_value, copyprop_hardreg_forward_1): Likewise.
994         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
995         reload_inner_reg_of_subreg, can_reload_into, push_reload,
996         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
997         operands_match_p, decompose, find_reloads, find_reloads_toplev,
998         find_reloads_address, subst_indexed_address, find_reloads_address_1,
999         find_reloads_subreg_address, find_replacement,
1000         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1001         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1002         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1003         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1004         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1005         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1006         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1007         do_output_reload, emit_reload_insns, gen_reload,
1008         delete_address_reloads_1, inc_for_reload): Likewise.
1009         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1010         update_reg_unused_notes, fill_slots_from_thread): Likewise.
1011         * resource.c (update_live_status, mark_referenced_resources,
1012         mark_set_resources, mark_target_live_regs): Likewise.
1013         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1014         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1015         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1016         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1017         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1018         parms_set, find_first_parameter_load, keep_with_call_p,
1019         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1020         num_sign_bit_copies1): Likewise.
1021         * rtlhooks.c (gen_lowpart_general): Likewise.
1022         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1023         sched_analyze): Likewise.
1024         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1025         Likewise.
1026         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1027         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1028         simplify_binary_operation, simplify_const_relational_operation,
1029         simplify_subreg): Likewise.
1030         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1031         expand_end_stmt_expr, expand_return, expand_decl,
1032         expand_anon_union_decl): Likewise.
1033         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1034         find_splittable_regs, find_splittable_givs, find_common_reg_term,
1035         loop_iterations): Likewise.
1036         * var-tracking.c (variable_union, variable_part_different_p,
1037         variable_different_p, count_uses, add_uses, add_stores,
1038         compute_bb_dataflow, set_variable_part, delete_variable_part,
1039         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1040         Likewise.
1041         * varasm.c (assemble_variable): Likewise.
1042
1043 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
1044
1045         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1046         definition.
1047         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1048         #undef and #if 0'd definition.
1049
1050 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1051
1052         * combine.c (distribute_notes): Comment typo fix.
1053
1054 2004-06-15  Roger Sayle  <roger@eyesopen.com>
1055
1056         * expmed.c (synth_mult): Mask bits of the multiplier to the
1057         machine mode of the multiplication.  Don't consider shifts
1058         by more than (or equal to) the width of the operation's mode.
1059
1060 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1061
1062         * doc/install.texi: Yet another update for autoconf
1063         and automake versions.
1064
1065 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1066
1067         * function.h (struct function): Remove cannot_inline field.
1068         (current_function_cannot_inline): Remove.
1069         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1070         Simplify conditionals to ignore warn_return_type.
1071         * tree-optimize.c (tree_rest_of_compilation): Do not reset
1072         DECL_DEFER_OUTPUT.
1073         * objc/objc-act.c (build_module_descriptor, finish_method_def):
1074         Do not set current_function_cannot_inline.
1075
1076 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1077
1078         * cfglayout.c (fixup_reorder_chain): Handle case where the
1079         destination of E_TAKEN is EXIT_BLOCK_PTR.
1080
1081 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
1082
1083         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1084
1085 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1086
1087         * fold-const.c (operand_equal_p): Update comment.
1088
1089 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1090
1091         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1092         (INCOMING_RETURN_ADDR_RTX): Define.
1093         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1094         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1095         __builtin_return_address(0).
1096         (m32r_return_addr): Added for __builtin_return_address(0).
1097         (m32r_reload_lr): Ditto.
1098
1099         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1100
1101 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1102
1103         * doc/install.texi (Prerequisites): Update libbanshee,
1104         fastjar, libcpp, libjava/libltdl entries to
1105         automake 1.8.5.
1106
1107 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1108             Olivier Hainque  <hainque@act-europe.fr>
1109
1110         * function.c (fixup_var_refs): Also adjust the start of sequence
1111         after fixing up the insns.
1112
1113 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1114
1115         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1116
1117 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1118
1119         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1120         automake 1.8.5.
1121
1122 2004-06-14  Eric Christopher  <echristo@redhat.com>
1123
1124         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1125         to -mtpf-trace (-mno-tpf-trace).
1126         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1127         documentation.
1128
1129 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1130
1131         * real.c: Fix bit count in head comment.
1132
1133 2004-06-14  Jeff Law  <law@redhat.com>
1134
1135         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1136         PHIs where the destination or an argument is marked with
1137         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1138
1139 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1140
1141         PR middle-end/15945
1142         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1143         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1144
1145 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1146
1147         * opts.sh (var_args): Fix regexp.
1148
1149 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1150
1151         PR target/15178
1152         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1153
1154 2004-06-14  Paul Brook  <paul@codesourcery.com>
1155
1156         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1157
1158 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1159
1160         * Makefile.in (FLAGS_H): New.
1161         (flags.h): Replace by FLAGS_H.
1162         * c.opt: Document Var, VarExists, Init and Report attributes.
1163         * common.opt: Fill the values of the attributes.
1164         * diagnostic.c (flag_fatal_errors): Do not define.
1165         * except.c (flag_non_call_exceptions): Do not define.
1166         * flags.h: Include options.h.  Remove declarations conflicting with
1167         the automatically defined ones.
1168         * opts.c: Remove automatically defined variables.
1169         (handle_option): Perform default initialization.
1170         (common_handle_option): Do not handle options covered by the
1171         default initialization.
1172         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1173         fields.
1174         (CL_REPORT): New.
1175         * opts.sh: Generate variable declarations, handle CL_REPORT.
1176         * toplev.c: Remove automatically defined variables.
1177         (f_options): Removed.
1178         (print_switch_values): Use cl_options instead of f_options.
1179         * toplev.h (version_flag): Declaration removed.
1180
1181 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1182
1183         * config/sparc/sparc.h: Correct comment about availability of
1184         little endian option.
1185
1186         * config.gcc: Remove sparc64-*-aout*.
1187         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1188         * config/sparc/sp64-aout.h: Remove.
1189         * config/sparc/aout.h: Remove.
1190
1191 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1192
1193         * config/s390/s390.c: Include "tree-gimple.h".
1194         (s390_gimplify_va_arg): New function.
1195         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1196         (s390_va_arg): Remove.
1197         * config/s390/s390-protos.h (s390_va_arg): Remove.
1198         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1199
1200 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1201
1202         * basic-block.h (could_fall_through): Declare.
1203         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1204         Fail if the source already has a fallthrough edge to the exit
1205         block pointer.
1206         (could_fall_through): New function.
1207         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1208         edge to the exit block pointer.
1209         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1210         not called before reload has completed.
1211         Handle special case of first block having a fall-through exit edge.
1212         (cfg_layout_finalize): Don't call it before reload or if we have
1213         rtl epilogues.
1214         (fixup_reorder_chain): A fall through to the exit block does not
1215         require the block to come last.  Add sanity checks.
1216         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1217         edges to the exit block.
1218         * function.c (cfglayout.h): #include.
1219         (thread_prologue_and_epilogue_insns): If we have neither return nor
1220         epilogue, but a fall through to the exit block from mid-function,
1221         force a non-fall-through exit.
1222         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1223
1224 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1225
1226         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1227         for power5 and rs64a.  Correct condition for default.  Correct power3,
1228         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1229
1230 2004-06-13  Steven Bosscher <stevenb@suse.de>
1231
1232         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1233         Revert previous change, don't use CALL_P.
1234
1235 2004-06-13  Jason Merrill  <jason@redhat.com>
1236
1237         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1238         * tree-gimple.h: From here.
1239
1240 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1241
1242         Fix PR tree-optimization/15979
1243         Fix PR tree-optimization/15981
1244         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1245         try to insert values undefined along some path.
1246
1247 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1248
1249         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1250         are available everywhere too.
1251
1252 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1253
1254         * fold-const.c (fold_checksum_tree <case 't'>): Only
1255         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1256         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1257         EXPR is an INTEGERAL_TYPE or a scalar float type.
1258
1259 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1260
1261         * tree-sra.c (tree_sra): Update documentation.
1262
1263 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1264
1265         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1266         function_types_compatible_p, type_lists_compatible_p): Remove
1267         flags parameter.
1268         * c-tree.h (comptypes): Likewise.
1269         (COMPARE_STRICT): Remove.
1270         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1271         callers changed.
1272
1273 2004-06-13  Eric Christopher  <echristo@redhat.com>
1274
1275         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1276         Remove unused code.
1277         * c-typeck.c (comptypes): Add location in standard we're checking.
1278
1279 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1280
1281         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1282         version 3.3.4.
1283
1284 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1285
1286         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1287         index by machine mode.
1288         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1289         tables inside the loop over machine modes.
1290         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1291         expand_divmod): Index shift*_cost by the appropriate machine mode.
1292
1293 2004-06-12  Eric Christopher  <echristo@redhat.com>
1294
1295         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1296         * config/s390/s390.md: Ditto.
1297         * config/s390/s390.c: Ditto.
1298         (s390_frame_info): Conditionalize frame and setup info on
1299         TARGET_TPF_PROFILING.
1300         (s390_arg_frame_offset): Ditto.
1301
1302 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1303
1304         * fold-const.c (omit_two_operands): New function.
1305         * tree.h (omit_two_operands): Prototype here.
1306         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1307         C99 unordered comparison builtins to the appropriate tree nodes.
1308         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1309         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1310         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1311         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1312         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1313         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1314         omit_two_operands function to build the required COMPOUND_EXPRs.
1315
1316 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1317             Andreas Jaeger  <aj@suse.de>
1318
1319         * gcse.c (record_set_info): Use predicates like REG_P.
1320         (mems_conflict_for_gcse_p): Likewise.
1321         (load_killed_in_block_p): Likewise.
1322         (hash_expr_1): Likewise.
1323         (insert_set_in_table): Likewise.
1324         (gcse_constant_p): Likewise.
1325         (hash_scan_set): Likewise.
1326         (hash_scan_insn): Likewise.
1327         (canon_list_insert): Likewise.
1328         (record_last_mem_set_info): Likewise.
1329         (record_last_set_info): Likewise.
1330         (compute_hash_table_work): Likewise.
1331         (mark_set): Likewise.
1332         (mark_clobber): Likewise.
1333         (mark_oprs_set): Likewise.
1334         (compute_transp): Likewise.
1335         (find_avail_set): Likewise.
1336         (cprop_insn): Likewise.
1337         (do_local_cprop): Likewise.
1338         (cprop): Likewise.
1339         (find_implicit_sets): Likewise.
1340         (find_bypass_set): Likewise.
1341         (bypass_conditional_jumps): Likewise.
1342         (insert_insn_end_bb): Likewise.
1343         (pre_insert_copy_insn): Likewise.
1344         (compute_transpout): Likewise.
1345         (next_ls_expr): Likewise.
1346         (invalidate_any_buried_refs): Likewise.
1347         (compute_ld_motion_mems): Likewise.
1348         (reg_set_info): Likewise.
1349         (reg_clear_last_set): Likewise.
1350         (find_moveable_store): Likewise.
1351         (compute_store_table): Likewise.
1352         (find_loads): Likewise.
1353         (store_killed_in_insn): Likewise.
1354         (insert_insn_start_bb): Likewise.
1355         (reg_set_between_after_reload_p): Likewise.
1356         (reg_used_between_after_reload_p): Likewise.
1357         (is_jump_table_basic_block): Likewise.
1358         (gcse_after_reload): Likewise.
1359         (hash_scan_set_after_reload): Likewise.
1360         (compute_hash_table_after_reload): Likewise.
1361
1362 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1363
1364         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1365         (INSN_P): Don't look at the rtx code class, just explicitly
1366         check for one of the tree RTX_INSN codes.
1367
1368 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1369
1370         * c-typeck.c (default_function_array_conversion): Use
1371         build_pointer_type not TYPE_POINTER_TO.
1372
1373 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1374
1375         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1376         * configure, config.in: Regenerate.
1377         * system.h: Unconditionally define bool as unsigned char,
1378         BOOL_BITFIELD as unsigned int.
1379         * domwalk.h: Use BOOL_BITFIELD.
1380
1381 2004-06-12  Andreas Jaeger  <aj@suse.de>
1382
1383         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1384         * libgcc-darwin.ver: Likewise.
1385
1386 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1387
1388         * reload.c (find_reloads): Force reload for pseudo registers on big
1389         endian machines.
1390
1391 2004-06-11  Steven Bosscher <stevenb@suse.de>
1392
1393         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1394         Don't try to mark anything control dependent on the entry or
1395         exit blocks.
1396
1397 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1398
1399         Fix Bug 15899
1400         Fix Bug 15460
1401         * tree.h (SSA_NAME_VALUE): New macro.
1402         (struct tree_ssa_name): Add value_handle member.
1403         * tree-ssa-pre.c: Replaced.
1404         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1405         (struct cst_ann_d): New.
1406         (struct expr_ann_d): New.
1407         (union tree_ann_d): Add cst_ann, expr_ann.
1408         * tree-dfa.c (create_cst_ann): New function.
1409         (create_expr_ann): Ditto.
1410         * tree-flow-inline.h (cst_ann): New function.
1411         (expr_ann): Ditto.
1412         (get_cst_ann): Ditto.
1413         (get_expr_ann): Ditto..
1414
1415 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1416
1417         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1418         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1419         _U_Qfcmp library function.
1420         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1421         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1422
1423         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1424         unspec used for loading address from DLT.
1425         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1426         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1427         Don't use short code sequence when loading the address of a nonlocal
1428         label.
1429         (nonlocal_goto): New expander.
1430         (indirect_goto): New jump pattern for nonlocal gotos.
1431         (short_jump): Remove extra whitespace.
1432         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1433         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1434         pattern.
1435
1436 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1437
1438         * expmed.c (synth_mult): Add an additional MODE argument for the
1439         machine mode of the multiplication.  Update recursive calls.  Use
1440         mode instead of word_mode for determining operation costs.
1441         (choose_mult_variant): Update calls to synth_mult with "mode".
1442
1443 2004-06-11  Richard Henderson  <rth@redhat.com>
1444
1445         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1446         and makes_aliased_stores.
1447
1448 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1449
1450         * doc/install.text (--enable-shared): Fix typo.
1451
1452 2004-06-11  Richard Henderson  <rth@redhat.com>
1453
1454         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1455         argument.  Use internal post for call to gimplify_expr.  Tidy
1456         rounded type size computation.
1457         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1458         get_initialized_tmp_var.
1459
1460 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1461
1462         * doc/install.texi (--enable-shared): Update libobjc's shared library
1463         status.  Remove reference to libf2c.
1464
1465 2004-06-11  Jason Merrill  <jason@redhat.com>
1466
1467         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1468         * config/i386/i386.c (ix86_va_arg): Remove.
1469         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1470         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1471         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1472         * config/alpha/alpha.c (alpha_va_arg): Remove.
1473         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1474         * config/sparc/sparc.c (sparc_va_arg): Remove.
1475
1476         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1477         assignment might throw.
1478         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1479         expressions.
1480
1481 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1482
1483         PR 15886:
1484         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1485
1486 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1487
1488         * doc/install.texi (Prerequisites): Update documentation of
1489         required versions of autoconf and automake.  Remove mention of
1490         libf2c.
1491
1492 2004-06-11  Jason Merrill  <jason@redhat.com>
1493
1494         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1495         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1496
1497 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1498
1499         * typeclass.h: Add GPL plus exception license.  Add include
1500         guard.
1501
1502 2004-06-10  Jason Merrill  <jason@redhat.com>
1503
1504         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1505         of an aggregate_value_p type.
1506
1507 2004-06-10  Jeff Law  <law@redhat.com>
1508
1509         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1510         code when we are in gimple form.
1511
1512 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1513
1514         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1515         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1516         (highest_ssa_version): Remove.
1517         * tree-outof-ssa.c (new_temp_expr_table): Replace
1518         highest_ssa_version with num_ssa_names.
1519         (dump_replaceable_exprs): Likewise.
1520         (rewrite_vars_out_of_ssa): Likewise.
1521         * tree-ssa-ccp.c (initialize): Likewise
1522         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1523         * tree-ssa-dce.c (tree_dce_init): Likewise.
1524         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1525         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1526         (dump_var_map): Likewise.
1527         * tree-ssa.c (verify_ssa): Likewise.
1528         (kill_redundant_phi_nodes): Likewise.
1529         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1530         * tree-ssanames.c: Include tree-flow.h
1531         (ssa_names): New varray.
1532         (init_ssa_names): Initialize ssa_names.
1533         Reserve the first slot of the ssa_names table.
1534         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1535         Assign version numbers using num_ssa_names.
1536
1537 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1538
1539         * doc/sourcebuild.texi (Front End): Add details of more
1540         installation documentation required.
1541
1542 2004-06-10  Brian Booth  <bbooth@redhat.com>
1543
1544         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1545         of V_MAY_DEF and V_MUST_DEF.
1546         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1547         num_vdefs to num_v_may_defs.
1548         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1549         to v_may_def.
1550         (redirect_immediate_uses): Ditto.
1551         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1552         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1553         Also add code to sum up the number of v_must_defs.
1554         (vdefs_disappeared_p): Replace with...
1555         (v_may_defs_disappeared_p): This.
1556         (v_must_defs_disappeared_p): New function.
1557         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1558         Also add code to mark new variables found in V_MUST_DEFs for
1559         renameing.
1560         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1561         vdef_ops to v_may_def_ops.
1562         (get_vdef_ops): Replace with...
1563         (get_v_may_def_ops): This.
1564         * tree-flow-inline.h (get_vdef_ops): Replace with...
1565         (get_v_may_def_ops): This.
1566         (get_v_must_def_ops): New function.
1567         (get_vdef_result_ptr): Replace with...
1568         (get_v_may_def_result_ptr): This.
1569         (get_vdef_op_ptr): Ditto with...
1570         (get_v_may_def_op_ptr); This.
1571         (get_v_must_def_op_ptr): New function.
1572         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1573         to v_may_def. Also add code to mark statements with
1574         V_MUST_DEFs as definition sites.
1575         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1576         add code to register new V_MUST_DEFs made by the statement.
1577         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1578         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1579         add check for V_MUST_DEFs.
1580         (find_replaceable_in_bb): Ditto.
1581         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1582         to v_may_def. Also add code to dump V_MUST_DEFs.
1583         * tree-sra.c (mark_all_vdefs): Replace with...
1584         (mark_all_v_may_defs): This.
1585         (mark_all_v_must_defs): New function.
1586         (create_scalar_copies): Replace call to mark_all_vdefs with
1587         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1588         (scalarize_structures): Rename occurences of vdef to v_may_def.
1589         Also add a check for V_MUST_DEFs.
1590         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1591         * tree-ssa-alias.c (global_var): Update comment.
1592         (compute_may_aliases): Ditto.
1593         (compute_points_to_and_addr_escape): Rename occurences of vdef
1594         to v_may_def. Also add code to mark variables in V_MUST_DEF
1595         operands as being written to.
1596         (group_aliases): Update comment.
1597         (maybe_create_global_var): Ditto.
1598         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1599         Also add a check for V_MUST_DEFs on GIMPLE registers.
1600         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1601         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1602         to v_may_def. Also add code to mark all V_MUST_DEF operands
1603         VARYING.
1604         (initialize): Ditto.
1605         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1606         code to update SSA_NAMEs in V_MUST_DEFs.
1607         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1608         to v_may_def.
1609         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1610         occurences of vdef to v_may_def. Also add code to mark statements
1611         with V_MUST_DEFs as necessary.
1612         (propagate_necessity): Rename occurences of vdef to v_may_def.
1613         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1614         occurences of vdef to v_may_def. Also add code to mark operands
1615         in V_MUST_DEFs for renaming.
1616         (eliminate_redundant_computations): Rename occurences of vdef
1617         to v_may_def.
1618         (record_equivalences_from_stmt): Rename occurences of vdef
1619         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1620         (optimize_stmt): Remove unnesessary variable vdefs. Update
1621         comment.
1622         (register_definitions_for_stmt): Rename occurences of vdef
1623         to v_may_def. Also add code to register definitions made with
1624         V_MUST_DEFs.
1625         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1626         (fix_stmt_v_may_defs): This.
1627         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1628         (dse_optimize_stmt): Ditto.
1629         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1630         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1631         used in virtual operators.
1632         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1633         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1634         renaming.
1635         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1636         definitions.
1637         (build_vdefs): Renamed to...
1638         (build_v_may_defs): This.
1639         (build_v_must_defs): New variable.
1640         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1641         v_may_def_ops.
1642         (append_vdef): Replace with...
1643         (append_v_may_def): This.
1644         (append_v_must_def): New function.
1645         (NUM_FREE): Increment for V_MUST_DEF
1646         (optype_freelist): Increment its size for V_MUST_DEF
1647         (allocate_vdef_optype): Replace with...
1648         (allocate_v_may_def_optype): This.
1649         (allocate_v_must_def_optype): New function.
1650         (free_vdefs): Replace with...
1651         (free_v_may_defs): This.
1652         (free_v_must_defs): New function.
1653         (remove_vdefs): Replace with...
1654         (remove_v_may_defs): This.
1655         (remove_v_must_defs): New function.
1656         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1657         add code to initialize build_v_must_defs.
1658         (finalize_ssa_vdefs): Replace with...
1659         (finalize_ssa_v_may_defs): This.
1660         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1661         (finalize_ssa_v_must_defs): New function.
1662         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1663         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1664         (verify_start_operands): Rename occurences of vdef to v_may_def.
1665         Also add check for build_v_must_defs.
1666         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1667         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1668         killing definitions.
1669         (get_expr_operands): Update comment and use opf_kill_def for
1670         killing definitions.
1671         (add_stmt_operand): Replace code that appends VDEFs with code
1672         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1673         otherwise.
1674         (add_call_clobber_ops): Update comments.
1675         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1676         (v_may_def_optype_d): This.
1677         (v_must_def_optype_d): New structure.
1678         (VDEF_OPS): Replace with...
1679         (V_MAY_DEF_OPS): This.
1680         (STMT_VDEF_OPS): Same with...
1681         (STMT_V_MAY_DEF_OPS): This.
1682         (NUM_VDEFS): And...
1683         (NUM_V_MAY_DEFS): This.
1684         (VDEF_RESULT_PTR): As well as...
1685         (V_MAY_DEF_RESULT_PTR): This.
1686         (VDEF_RESULT): Same goes for...
1687         (V_MAY_DEF_RESULT): This.
1688         (VDEF_OP_PTR): And...
1689         (V_MAY_DEF_OP_PTR): This.
1690         (VDEF_OP): And...
1691         (V_MAY_DEF_OP): This.
1692         (V_MUST_DEF_OPS): New macro.
1693         (STMT_V_MUST_DEF_OPS): Ditto.
1694         (NUM_V_MUST_DEFS): Ditto.
1695         (V_MUST_DEF_OP_PTR): Ditto.
1696         (V_MUST_DEF_OP): Ditto.
1697         (remove_vdefs): Replace signature with...
1698         (remove_v_may_defs): This.
1699         (remove_v_must_defs): New function signature.
1700         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1701         with calls to remove_v_may_defs and remove_v_must_defs.
1702         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1703         Also add code that marks left occurences of operands in V_MUST_DEFs.
1704         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1705         to v_may_def. Also add check for V_MUST_DEFs.
1706         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1707
1708 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1709
1710         PR target/15653
1711         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1712         insn.
1713
1714 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1715
1716         PR web/15263
1717         * doc/install.texi: Remove superfluous linebreak.
1718
1719 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1720
1721         * builtins.c (expand_builtin): Fall back to library function call for
1722         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1723         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1724         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1725         IMAGPART_EXPR respectively.
1726
1727 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1728
1729         * sh.c (dump_table): New argument start.  Changed caller.
1730         (fixup_mova): New function.
1731         (find_barrier): Use it.
1732         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1733         If the label a mova refers to is above the mova itself, change
1734         the mova into a load.
1735         * sh.md (*casesi_worker): Rename to:
1736         (casesi_worker_1).
1737         (casesi_worker_2): New insn.
1738
1739 2004-06-10  Jason Merrill  <jason@redhat.com>
1740
1741         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1742         hook signature.
1743         * tree-gimple.h: Adjust.
1744         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1745         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1746         Use fold_convert.
1747         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1748         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1749         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1750         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1751         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1752         Gimplify valist rather than calling stabilize_va_list.
1753
1754 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1755
1756         * Makefile.in (df.o): Remove fibheap dependency.
1757         * df.h: Do not include sbitmap.h.
1758         (struct ref): New field "data".
1759         (DF_REF_DATA): New accessor macro.
1760         (struct df): Field "dom" removed.
1761         (df_analyze_subcfg): New function.
1762         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1763         (transfer_function): ... new type.
1764         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1765         (iterative_dataflow): ... new function.
1766         (enum set_representation, struct dataflow): New.
1767         * df.c: Do not include fibheap.h.
1768
1769         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1770         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1771         prune_to_subcfg, df_bb_modify): New functions.
1772         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1773         df_refs_update, df_reg_table_realloc, df_ref_create,
1774         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1775         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1776         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1777
1778         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1779         (df_rd_transfer_function, df_ru_transfer_function,
1780         df_lr_transfer_function): Type of bitmaps changed to void *.
1781         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1782         (hybrid_search): ... new function.
1783         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1784         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1785         a worklist.  Do not process basic blocks unnecessarily.
1786
1787 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1788
1789         * fold-const.c (fold_abs_const): Make extern.
1790         * tree.h (fold_abs_const): Prototype here.
1791         * builtins.c (fold_builtin_fabs): New function to transform
1792         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1793         (fold_builtin_abs): New function to transform abs, labs, llabs
1794         and imaxabs builtins into ABS_EXPR tree nodes.
1795         (expand_builtin): Fall back to a function call for abs, labs,
1796         llabs and imaxabs builtins that survive constant folding.
1797         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1798         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1799
1800 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1801
1802         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1803         leaf function without unwind info at RP 0.
1804
1805 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1806
1807         PR c++/14791
1808         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1809         (fileptr_type_node): Define.
1810         * tree.c (build_common_tree_nodes_2): Initialize
1811         fileptr_type_node to ptr_type_node.
1812         * c-common.c (c_common_nodes_and_builtins): For C++, make
1813         fileptr_type_node a distinct type copy.
1814         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1815         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1816         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1817         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1818         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1819         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1820         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1821         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1822         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1823         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1824         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1825         the above *FILEPTR* types instead of *PTR*.
1826
1827 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1828
1829         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1830         match.
1831
1832 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1833
1834         * fold-const.c (fold_not_const): New function.
1835         (fold) <ABS_EXPR>: Don't bother testing wins.
1836         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1837         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1838
1839 2004-06-09  Richard Henderson  <rth@redhat.com>
1840
1841         PR middle-end/15228
1842         * function.c (assign_parms): Always set_mem_align with the computed
1843         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1844
1845 2004-06-09  Richard Henderson  <rth@redhat.com>
1846
1847         PR opt/15108
1848         * tree-tailcall.c (find_tail_calls): Don't check early for
1849         tail_recursion failure.
1850
1851 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1852
1853         Move SSA_NAME annotations into tree_ssa_name.
1854
1855         * tree-dfa.c (create_ssa_name_ann): Remove.
1856         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1857         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1858         (struct ssa_name_ann_d): Remove.
1859         (union tree_ann_d): Update.
1860         (ssa_name_ann_t): Remove.
1861         * tree-ssa-alias.c: (get_ptr_info): New local function.
1862         Replace references to ssa_name_ann_t with struct ptr_info_def.
1863         * tree-ssa-operands.c (get_expr_operands): Likewise.
1864         * tree.h (SSA_NAME_PTR_INFO): Define.
1865         (struct ptr_info_def): Declare.
1866         (struct tree_ssa_name): Add field 'ptr_info'.
1867
1868 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1869
1870         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1871         misplaced ')'.
1872
1873 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1874
1875         * config/i386/k6.md: Rewrite using the DFA model.
1876         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1877         cost of load-operation insns for the K6.
1878         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1879         (ia32_multipass_dfa_lookahead): Likewise.
1880
1881 2004-06-09  Richard Henderson  <rth@redhat.com>
1882
1883         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1884         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1885
1886 2004-06-09  Richard Henderson  <rth@redhat.com>
1887
1888         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1889
1890 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1891
1892         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1893         (CPP_ID_DATA_H): New.
1894         (gtype-desc.o): Update dependencies.
1895         (GTFILES): Use CPP_ID_DATA_H.
1896
1897 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1898
1899         Revert:
1900         PR c++/15815
1901         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1902         * doc/extend.texi: Deprecate #pragma interface and #pragma
1903         implementation.
1904
1905 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1906
1907         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1908
1909 2004-06-09  Richard Henderson  <rth@redhat.com>
1910
1911         * basic-block.h (struct edge_def): Add goto_locus.
1912         * tree-cfg.c (make_goto_expr_edges): Set it.
1913         (disband_implicit_edges): Use it.
1914         * tree-pretty-print.c (dump_implicit_edges): Print it.
1915
1916 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1917
1918         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1919
1920 2004-06-08  Jason Merrill  <jason@redhat.com>
1921
1922         Gimplify VA_ARG_EXPR into simpler forms.
1923         * target.h: Add gimplify_va_arg_expr hook.
1924         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1925         * fold-const.c (build_fold_addr_expr)
1926         (build_fold_addr_expr_with_type): Move from gimplify.c.
1927         * tree.h: Declare them.
1928         * gimplify.c (gimplify_and_add): New fn.
1929         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1930         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1931         (gimplify_expr): Use build_fold_*.
1932         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1933         don't know how to gimplify it.
1934         * builtins.c (std_gimplify_va_arg_expr): New fn.
1935         (dummy_object): New static fn.
1936         (gimplify_va_arg_expr): New fn.
1937         (stabilize_va_list): Use build_fold_*.
1938         * tree-gimple.h: Declare new fns.
1939         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1940         (ix86_gimplify_va_arg): New fn.
1941         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1942         (ia64_gimplify_va_arg): New fn.
1943         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1944         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1945         * alias.c (get_varargs_alias_set): Just return 0 for now.
1946
1947         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1948
1949 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1950
1951         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1952         of convert.
1953         * tree-inline.c (setup_one_parameter): Likewise.
1954         * tree-sra.c (csc_build_component_ref): Likewise.
1955         * tree-ssa-ccp.c (ccp_fold): Likewise.
1956         * tree-ssa-copy.c (cprop_operand): Likewise.
1957         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1958         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1959
1960 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1961
1962         PR rtl-optimization/15521:
1963         * sched-int.h (in_post_call_group_p): Change type to enum.
1964         * sched-deps.c (sched_analyze_insn):
1965         (sched_analyze): When in_post_call_group_p is post_call_initial,
1966         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1967         and also reset in_post_call_group_p to post_call.
1968         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1969         initialize in_post_call_group_p as post_call_initial.
1970         (init_deps): initialize in_post_call_group_p to not_post_call.
1971
1972 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1973
1974         PR ada/6637
1975         * doc/install.texi: List ada, libada as options to --enable-shared
1976
1977 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1978
1979         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1980         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1981         config.in entries.
1982         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1983         if hard links are not available.
1984         * configure: Regenerate.
1985         * config.in: Regenerate.
1986
1987 2004-06-08  Per Bothner  <per@bothner.com>
1988
1989         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1990
1991 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1992
1993         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1994         Correct formatting.
1995
1996 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1997
1998         PR target/15790
1999         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2000
2001 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2002
2003         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2004         POINTER_TYPE and INTEGER_TYPE.
2005
2006 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
2007
2008         * modulo-sched.c: Compile only when INSN_SCHEDULING is
2009         defined.
2010
2011 2004-06-08  Jeff Law  <law@redhat.com>
2012
2013         * doc/contrib.texi: Add entries for Stefan Olsson and
2014         Ola Ronnerup.
2015
2016 2004-06-08  DJ Delorie  <dj@redhat.com>
2017
2018         * toplev.c (floor_log2_wide): Replace loop with faster bit
2019         operations.
2020         (exact_log2_wide): Define in terms of the above.
2021         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2022         available.
2023
2024 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2025
2026         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2027         Make sure that we are in INDIRECT mode when getting the
2028         stub name.
2029
2030 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2031
2032         * h8300.md (extendqisi2_h8300): Add constraints.
2033         (ldm_h8300s_4_normal): Fix typo.
2034
2035 2004-06-08  Richard Henderson  <rth@redhat.com>
2036
2037         * gimple-low.c (struct lower_data): Replace the_return_label and
2038         one_return_stmt with return_statements.
2039         (lower_function_body): Process the entire list of return_statements.
2040         (lower_return_expr): Check source value before unifying return_exprs.
2041         * gimplify.c (gimplify_return_expr): Force the use of a temporary
2042         for !aggregate_value_p.
2043         * tree-gimple.c: Update RETURN_EXPR grammer.
2044
2045 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
2046
2047         PR target/15598
2048         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2049
2050 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2051
2052         PR rtl-optimization/15717
2053         * config/i386/i386.c (legitimate_constant_p): Do not allow
2054         x - symbol_ref.
2055
2056 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
2057
2058         * gimplify.c (copy_if_shared_r): Revert:
2059         2004-05-21  Richard Henderson  <rth@redhat.com>
2060         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2061
2062 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2063
2064         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2065         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
2066         (init_expmed): Initialize these cost arrays as appropriate.
2067         (store_bit_field, extract_bit_field): Correct whitespace.
2068         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2069         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2070         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2071         word_mode or compute_mode as appropriate.
2072
2073 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2074
2075         PR target/15783
2076         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2077         parameter.  Enumerate the registers inside the PARALLEL.
2078         (function_arg): Adjust call to function_arg_union_value.
2079         (function_value): Likewise.
2080
2081         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2082
2083 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2084
2085         * real.c (real_copysign): New function to implement libm's copysign.
2086         * real.h (real_copysign): Prototype here.
2087         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2088         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
2089         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2090         fold_builtin_isdigit): Add function prototypes.
2091         (fold_builtin_copysign): New function to fold copysign, copysignf
2092         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
2093         constant arguments at compile-time using real_copysign.  Fold
2094         copysign(X,Y) as fabs(X) if Y is always non-negative.
2095         (fold_builtin_1): Correct minor whitespace/style issues.  Call
2096         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2097
2098 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2099
2100         * tree.c (iterative_hash_expr): Use real_hash.
2101
2102 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2103
2104         PR c/14765
2105         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2106         NULL_TREE.
2107
2108 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2109
2110         PR c++/15815
2111         * doc/extend.texi: Deprecate #pragma interface and #pragma
2112         implementation.
2113
2114 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2115
2116         PR middle-end/15666
2117         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2118         builtin decl as well.
2119
2120 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2121
2122         PR c/14649
2123         * c-typeck.c (require_constant_value, require_constant_elements):
2124         Move declarations to the top of the file.
2125         (build_function_call): If we require a constant value, fold with
2126         fold_initializer.  If the result is a constant, and the function
2127         wasn't called using __builtin_foo, issue a pedantic warning.
2128         (build_unary_op): If we require a constant value, fold tree with
2129         fold_initializer.
2130         (build_binary_op): Use require_constant_value to determine whether
2131         to call fold or fold_initializer.
2132
2133 2004-06-07  Richard Henderson  <rth@redhat.com>
2134
2135         * gimple-low.c (struct lower_data): Add the_return_label and
2136         one_return_stmt.
2137         (lower_function_body): Initialize and use them.
2138         (lower_return_expr): New.
2139         (lower_stmt): Call it.
2140         * gimplify.c (gimplify_return_expr): Force the argument to be either
2141         null or a result_decl.
2142         * tree-gimple.c: Update gimple grammer to match.
2143         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2144         coalescing of result_decls.
2145
2146 2004-06-07  Richard Henderson  <rth@redhat.com>
2147
2148         PR rtl-opt/15193
2149         * expmed.c (extract_bit_field): Fix vector_extract return.
2150
2151         * config/i386/i386.md (negv4sf2): New pattern.
2152
2153 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2154
2155         PR c++/15337
2156         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2157         message.
2158
2159 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2160
2161         * config.in: Regenerate.
2162
2163 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2164
2165         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2166         SWITCH_LABELS are always sorted.
2167
2168 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2169
2170         * hooks.c (hook_int_void_1): New generic hook.
2171         * hooks.h (hook_int_void_1): Add prototype.
2172         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2173         Define to hook_int_void_1.
2174         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2175         with dummies for the new one.
2176
2177 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2178
2179         * tree.h (lvalue_or_else): Delete function prototype.
2180         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2181
2182 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2183
2184         PR target/14542
2185         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2186         a live change of a register after peephole replacement.
2187
2188 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2189
2190         PR c/13519
2191         * c-typeck.c (composite_type, common_pointer_type): New functions.
2192         (common_type): Split parts into composite_type and
2193         common_pointer_type.  Ensure that arithmetic operations return
2194         unqualified types without attributes.  Don't make composite type
2195         of signed enum and compatible integer be unsigned.
2196         (build_conditional_expr, build_binary_op): Use
2197         common_pointer_type.
2198         * c-decl.c (merge_decls): Use composite_type.
2199         * c-tree.h (composite_type): Declare.
2200
2201 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2202
2203         PR target/14457
2204         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2205         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2206         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2207         (inhibit_libc): Must define.
2208         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2209         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2210         ("xorhi3"): Likewise.
2211
2212 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2213
2214         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2215         always_inline pass.
2216
2217 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2218
2219         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2220         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2221
2222 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2223
2224         * regclass.c (init_reg_sets): Check for missing registers in target
2225         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2226
2227 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2228
2229         * Makefile.in (MKDEPS_H): New shorthand.
2230         (c-opts.o): Update dependencies.
2231         * c-opts.c: Include mkdeps.h.
2232         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2233         not cpp_add_dependency_target.
2234
2235 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2236
2237         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2238         * config/v850/v850.md: Convert to DFA scheduler description.
2239
2240 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2241
2242         PR fortran/15478
2243         * doc/install.texi: Document GMP as prerequisite. Document
2244         --with-gmp and --with-gmp-dir configure options.
2245         * fortran/gfortran.texi: Remove section "Compiling and testing",
2246         remove TOC reference to it.
2247
2248 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2249
2250         * combine.c(simplify_shift_const): Check shift amount is a
2251         CONST_INT.
2252
2253 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2254
2255         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2256         opening asm_out_file.
2257         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2258         reading asm_out_file. Replace fflush after reading asm_out_file
2259         with fseek.
2260         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2261         default and add to HOST_HOOKS_INITIALIZER.
2262         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2263         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2264         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2265         to set mmi.offset padding.
2266          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2267         $(srcdir)/config/i386/winnt.c.
2268         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2269         (i[34567]86-*-uwin*): Likewise.
2270         *i[34567]86-*-interix3*): Likewise.
2271         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2272         * config/i386/host-mingw32.c: New file.
2273         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2274         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2275         (extern_head): Likewise.
2276         (struct export_list) Likewise.
2277         (export_head): Likewise.
2278         (i386_pe_record_external_function): Use ggc_alloc.
2279         (i386_pe_record_exported_symbol): Likewise.
2280         Include "gt-winnt.h" at end.
2281         * doc/hostconfig.texi: Document
2282         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2283
2284 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2285
2286         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2287         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2288         trailing whitespace before EOLs and before TABs.
2289         (MAX_CODE_ALIGN): Remove unused macro.
2290         (CALL_USED_REGISTERS): Reformat and add comments.
2291
2292 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2293
2294         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2295         to enumerate -lmudflap* and dependencies when linking.
2296
2297 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2298
2299         PR target/15822
2300         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2301
2302 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2303
2304         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2305         * genconditions.c (write_header): Back out removal of reload.h.
2306
2307 2004-06-04  Jan Hubicka  <jh@suse.cz>
2308
2309         Re-apply hopefully fixed patch:
2310         * i386.md (UNSPECV_EH_RETURN): Kill.
2311         (eh_return): Use jump_insn.
2312         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2313
2314 2004-06-04  Jeff Law  <law@redhat.com>
2315
2316         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2317
2318 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2319
2320         * except.c (for_each_eh_region): New function.
2321         * except.h (for_each_eh_region): Add a prototype for it.
2322         * tree-cfg.c (update_eh_labels): New function, callback for
2323         for_each_eh_region.
2324         (label_for_bb): Make global static, unfortunately.
2325         (cleanup_dead_labels): Also update label references for
2326         exception regions.
2327
2328 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2329
2330         * config/mips/mips.c (struct irix_section_align_entry): Fix
2331         GTY marker.
2332
2333 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2334
2335         * toplev.c (check_global_declarations): Don't ask for
2336         DECL_ASSEMBLER_NAME unless the function really is declared
2337         static and not defined.
2338
2339 2004-06-03  Matt Austern  <austern@apple.com>
2340
2341         PR c++/15428
2342         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2343         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2344         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2345         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2346         documentation to reflect the new macro name and to clarify its
2347         meaning.
2348
2349 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2350
2351         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2352
2353 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2354
2355         * config/darwin.c (machopic_indirect_data_reference): Copy
2356         the SYMBOL_REF_DECL from the original RTX for the new
2357         non-lazy pointer RTX.
2358
2359 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2360
2361         * tree.h: Remove include of version.h
2362         * c-cppbuiltin.c: Include version.h
2363         * diagnostic.c: Include version.h
2364         * dwarf2out.c: Include version.h
2365         * toplev.c: Include version.h
2366         * vmsdbgout.c: Include version.h
2367         * Makefile.in: Remove dependency on version.h from TREE_H, and
2368         add dependencies to required .o targets
2369
2370 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2371
2372         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2373         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2374         (TARGET_H): Add insn-modes.h.
2375         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2376         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2377         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2378         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2379         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2380         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2381         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2382         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2383         CFGLAYOUT_H.
2384         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2385         Replace ra.h with RA_H.
2386         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2387         insn-recog.o): Replace resource.h with RESOURCE_H.
2388         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2389         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2390         with SCHED_INT_H.
2391         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2392         ra-rewrite.o): Replace df.h with DF_H.
2393         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2394         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2395         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2396         (insn-conditions.o): Remove unused reload.h.
2397         * cfglayout.h: Add include guard.  Include basic-block.h.
2398         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2399         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2400         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2401         basic-block.h.
2402         * genconditions.c:  Remove reload.h.
2403         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2404         hard-reg-set.h, insn-modes.h.
2405         * resource.h: Add include guard.  Include hard-reg-set.h.
2406         * sched-int.h:  Add include guard.  Include insn-attr.h,
2407         basic-block.h, rtl.h.
2408         * target.h: Add include guard.  Include insn-modes.h.
2409         * tree-ssa-live.h: Include partition.h.
2410
2411 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2412                 Kenneth Zadeck <zadeck@naturalbridge.com>
2413
2414         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2415         (add_var_to_ssa_edges_worklist): Add value argument.
2416         Update callers.
2417         Use new worklist.
2418         (process_ssa_edge_worklist): New function.
2419         (tree_ssa_ccp): Move worklist processing core to
2420         process_ssa_edge_worklist, and just call that for the two worklists.
2421
2422 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2423
2424         * basic-block.c (tail_recursion_label_list): Don't declare.
2425         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2426         accordingly.
2427         * cfgbuild.c (find_label_refs): Remove.
2428         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2429         * cfgcleanup.c (tail_recursion_label_p): Remove.
2430         (merge_blocks_move): Do not check for tail recursion.
2431         (try_optimize_cfg): Likewise.
2432         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2433         * cfgrtl.c (tail_recursion_label_list): Remove.
2434         * except.c (remove_unreachable_regions): Don't handle
2435         CALL_PLACEHOLDER insns.
2436         (convert_from_eh_region_ranges_1, can_throw_internal,
2437         can_throw_external): Likewise.
2438         * function.c (free_after_compilation): Don't clear
2439         x_tail_recursion_label.
2440         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2441         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2442         (reorder_blocks_1): Likewise.
2443         * function.h (struct function): Remove x_tail_recursion_label
2444         member.  Don't define tail_recursion_label.
2445         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2446         * print-rtl.c (print_rtx): Likewise.
2447         * rtl.def (CALL_PLACEHOLDER): Remove.
2448         * rtl.h (sibcall_use_t): Remove enum.
2449         (optimize_sibling_and_tail_recursive_calls,
2450         replace_call_placeholder): Remove function prototypes.
2451         * stmt.c (tail_recursion_args): Remove.
2452         (optimize_tail_recursion): Remove.
2453         (expand_return): Don't check for possible tail recursion.
2454         * tree.h (optimize_tail_recursion): Remove prototype.
2455
2456 2004-06-02  Jan Hubicka  <jh@suse.cz>
2457
2458         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2459         return_stmt.
2460
2461 2004-06-02  Jason Merrill  <jason@redhat.com>
2462
2463         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2464         Do include c-parse.in.
2465
2466 2004-06-02  Eric Christopher  <echristo@redhat.com>
2467
2468         * c-typeck.c (common_type): Don't lose type qualifiers
2469         when creating new variants.
2470
2471 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2472
2473         PR tree-optimization/14042
2474         PR tree-optimization/14729
2475         PR tree-optimization/14736
2476         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2477         Check the type which the pointer points to
2478         instead of the pointer types.
2479
2480 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2481
2482         PR tree-optimization/15738.
2483         * builtins.c (fold_builtin_strchr): Transform
2484         strrchr (s, '\0') to strchr (s, '\0').
2485
2486 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2487
2488         * i386.c (ix86_adjust_cost): Don't increase the cost for
2489         load+operation for PROCESSOR_PENTIUMPRO, it is already
2490         modelled in the DFA description
2491
2492 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2493
2494         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2495         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2496         (ALIAS_H, EMIT_RTL_H): New.
2497         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2498         (cfgcleanup.o): Add EMIT_RTL_H.
2499         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2500         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2501         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2502         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2503         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2504         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2505         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2506         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2507         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2508         set_mem_size): Move to emit-rtl.h.
2509         * emit-rtl.h: New.
2510         * alias.h: New.
2511
2512 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2513
2514         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2515         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2516         Adjust recursive calls to self.
2517         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2518
2519 2004-06-01  Richard Henderson  <rth@redhat.com>
2520             Andrew Pinski  <pinskia@physics.uc.edu>
2521
2522         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2523         (primary): Handle offsetof.  Add error productions for faux functions.
2524         Move component_ref objc checking to build_component_ref.
2525         (reswords): Add offsetof.
2526         (rid_to_yy): Add offsetof.
2527         * c-tree.h (build_offsetof): Declare.
2528         * c-common.h (objc_is_public): Declare.
2529         * c-typeck.c (build_component_ref): Check objc_is_public.
2530         (build_offsetof): New.
2531         * stub-objc.c (objc_is_public): New.
2532         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2533         from is_public.
2534         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2535         * doc/extend.texi (Offsetof): Move from C++ section to C section
2536         and rewrite for __builtin_offsetof.
2537
2538 2004-06-01  Peter Barada  <peter@the-baradas.com>
2539             Peter Jakubek  <peter@laseranimation.com>
2540
2541         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2542         a scratch to perform an add to memory.
2543
2544 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2545
2546         PR target/14018
2547         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2548         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2549         m68k_align_funcs): Remove.
2550         (override_options): Remove code to handle -malign-* options.
2551         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2552         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2553         (m68k_align_loops_string, m68k_align_jumps_string,
2554         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2555         m68k_align_funcs): Remove definitions.
2556
2557 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2558
2559         PR target/15626
2560         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2561         by the Sun linker in conjunction with the Sun assembler.
2562         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2563
2564 2004-06-01  Jeff Law  <law@redhat.com>
2565
2566         * stmt.c (expand_decl): Be more selective about calling
2567         mark_reg_pointer.
2568
2569 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2570
2571         PR objc/7993
2572         * objc-act.c (is_private): Do not emit the 'instance variable %s
2573         is declared private' error.
2574         (is_public): Emit the error after calling is_private.
2575         (lookup_objc_ivar): If the instance variable is private, return 0
2576         - the instance variable is invisible here.
2577
2578 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2579
2580         * doc/invoke.texi (-static-libgcc): Explicitly mention
2581         non-GNU linkers.
2582
2583 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2584
2585         PR target/12968
2586         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2587
2588 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2589
2590         PR c/15749
2591         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2592         misuses of structures with flexible array members if
2593         in_system_header.
2594
2595 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2596
2597         PR target/15693
2598         * config/sparc/sparc.c (compare_operand): New predicate.
2599         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2600         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2601         operand is a ZERO_EXTRACT and the second operand is not zero,
2602         force the former to a register.
2603         (cmpdi expander): Likewise.
2604
2605 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2606
2607         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2608         looks at.
2609         * alias.c (alias_invariant_size): Make alias_invariant_size
2610         static, fix GTY marker.
2611
2612 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2613
2614         PR tree-optimization/15743.
2615         * builtins.c (fold_builtin_1): Fold index() and rindex().
2616
2617 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2618
2619         PR middle-end/15069
2620         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2621         into "X < 0" (where C is the signbit) if X's type is a full mode.
2622
2623 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2624
2625         * pa.md: Disable the peephole2 patterns that generate indexed
2626         floating-point stores when indexing is disabled.
2627
2628 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2629
2630         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2631         (pp_c_right_bracket): Likewise.
2632         (pp_c_star): Likewise.
2633         (pp_c_ampersand): Define.
2634         * c-pretty-print.h (pp_c_left_bracket): Declare.
2635         (pp_c_right_bracket): Likewise.
2636         (pp_c_star): Likewise.
2637         (pp_c_ampersand): Likewise.
2638
2639 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2640
2641         * config/sol2.h (__enable_execute_stack): ANSIfy function
2642         definition.
2643
2644 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2645
2646         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2647         HAVE_DOS_BASED_FILESYSTEM.
2648
2649 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2650
2651         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2652         Only look at case labels if the immediate dominator is also
2653         the only predecessor.  Don't look for more case labels if the
2654         first seen is a case range.
2655
2656 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2657
2658         * builtins.c: Add a prototype for fold_builtin_strchr().
2659
2660 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2661
2662         Revert this patch:
2663         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2664
2665         * combine.c (gen_binary): Remove.
2666         (known_cond, simplify_shift_const
2667         find_split_point, combine_simplify_rtx,
2668         simplify_if_then_else, simplify_set,
2669         simplify_logical, expand_field_assignment,
2670         extract_left_shift, force_to_mode,
2671         if_then_else_cond, apply_distributive_law,
2672         simplify_and_const_int, simplify_shift_const,
2673         gen_lowpart_for_combine, simplify_comparison,
2674         reversed_comparison): Replace with
2675         simplify_gen_binary, simplify_gen_relational or
2676         distribute_and_simplify_rtx.
2677         (distribute_and_simplify_rtx): New function.
2678
2679 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2680
2681         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2682         when generating PIC code.
2683
2684 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2685
2686         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2687         (c_expand_body): here.
2688         (c_expand_decl): Move to ...
2689         * c-common.c (c_expand_decl): Here and remove check for nested
2690         functions.
2691         * c-common.h (c_expand_decl): Add prototype.
2692         * c-tree.h (c_expand_decl): Remove.
2693
2694 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2695
2696         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2697         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2698         fold_mathfn_compare, fold_inf_compare, fold,
2699         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2700         Use constant_boolean_node where appropriate.  Don't bother using
2701         fold_convert on the second argument to omit_one_operand.
2702
2703 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2704
2705         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2706         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2707         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2708         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2709         Add missing (but documented) tree nodes to the index.
2710
2711 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2712
2713         PR tree-optimization/14819
2714         * builtins.c (fold_builtin_strchr): New.
2715         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2716         with fold_builtin_strchr().
2717
2718 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2719
2720         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2721         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2722         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2723         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2724         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2725         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2726         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2727         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2728         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2729         formatting.
2730
2731 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2732
2733         * gimplify.c (sort_case_labels): New.  Split out from...
2734         (gimplify_switch_expr): ...here.  Use it.
2735         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2736         the SWITCH_EXPR created here before leaving the function.
2737         * tree.c (sort_case_labels): Add prototype.
2738
2739 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2740
2741         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2742         of BOOLEAN_TYPE.
2743
2744 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2745
2746         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2747         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2748         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2749         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2750         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2751         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2752         comment typos.  Follow spelling conventions.
2753
2754 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2755
2756         * gengtype-yacc.y: Add NESTED_PTR token.
2757         (option): Record `nested_ptr' option.
2758         * gengtype-lex.l: Handle `nested_ptr' keyword.
2759         * gengtype.c (walk_type): Process `nested_ptr' option.
2760         * gengtype.h (struct nested_ptr_data): New.
2761         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2762         * stringpool.c (struct string_pool_data): Make 'entries' point to
2763         ht_identifier instead of tree.
2764         (gt_pch_save_stringpool): Don't adjust pointers.
2765         (gt_pch_restore_stringpool): Call ht_load.
2766
2767 2004-05-29  Jason Merrill  <jason@redhat.com>
2768
2769         * gimplify.c (gimplify_expr): Don't build a statement list
2770         if no gimplification was necessary.
2771
2772 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2773
2774         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2775         and %> as well as %'.
2776         * c-format.c: Use %< and %>.
2777         (gcc_diag_char_table, gcc_cdiag_char_table,
2778         gcc_cxxdiag_char_table): Update.
2779
2780 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2781
2782         * c-typeck.c (common_type): Correct comment.
2783
2784 2004-05-29  Peter Barada  <peter@the-baradas.com>
2785
2786         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2787         * config/m68k/m68k.c (const_method): Likewise.
2788         * config/m68k/m68k.c (const_int_cost): Likewise.
2789         * config/m68k/m68k.c (const_int_cost): Likewise.
2790         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2791
2792 2004-05-29  Peter Barada  <peter@the-baradas.com>
2793
2794         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2795         addressing.
2796         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2797         movsi,movhi,movqi insn patterns.
2798
2799 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2800
2801         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2802
2803         PR target/15720
2804         * config/darwin.c (machopic_indirect_call_target): Copy
2805         the SYMBOL_REF_DECL from the original RTX for the new
2806         stub RTX.
2807
2808 2004-05-28  DJ Delorie  <dj@redhat.com>
2809
2810         * stor-layout.c (place_field): Revert erroneous commit.
2811
2812 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2813
2814         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2815         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2816         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2817         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2818         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2819         vec_ste): Remove type checks for integral parameters and literals
2820         from '..._args_eq' macros.
2821
2822 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2823
2824         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2825
2826 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2827
2828         * testsuite/g++.dg/charset/function.cc: New.
2829
2830         * testsuite/gcc.dg/charset/function.c: New.
2831
2832         * c-decl.c (c_make_fname_decl): Free return value from
2833         fname_as_string.
2834
2835         * cp/decl.c (cp_make_fname_decl): Free return value from
2836         fname_as_string.
2837
2838         * c-common.c (fname_as_string): Translate if necessary.
2839
2840 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2841
2842         * stringpool.c: Add comments to PCH saving/restoring routines.
2843
2844 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2845
2846         * c-common.c (c_estimate_num_insns_1): Kill.
2847         (c_estimate_num_insns): Kill.
2848         * c-common.h (c_estimate_num_insns): Kill.
2849
2850         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2851         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2852         Remove comment about not checking for
2853         _POSIX_PRIORITY_SCHEDULING.
2854         * gthr-posix.c: Likewise.
2855
2856 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2857             Roger Sayle  <roger@eyesopen.com>
2858
2859         PR rtl-optimization/15649
2860         Add LTGT_EXPR and improve pretty-printing of unordered
2861         comparisons.
2862         * c-common.c (c_common_truthvalue_conversion):
2863         Handle LTGT_EXPR.
2864         * c-typeck.c (build_binary_op): Likewise.
2865         * dojump.c (do_jump): Likewise.
2866         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2867         * predict.c (tree_predict_by_opcode): Likewise.
2868         * real.c (real_compare): Likewise.
2869         * tree-cfg.c (verify_expr): Likewise.
2870         * tree-inline.c (estimate_num_insns_1): Likewise.
2871         * tree-pretty-print.c (dump_generic_node): Likewise.
2872         Handle ORDERED_EXPR, UNORDERED_EXPR.
2873         (op_symbol): Print unordered comparisons differently
2874         than ordered ones.
2875         * tree.def (LTGT_EXPR): New '<' tree code.
2876         * doc/c-tree.texi (Expressions): Document floating-point
2877         comparison nodes.
2878
2879         Fold comparisons between floating point values.
2880         * fold-const.c (enum comparison_code): New, from
2881         #define'd constants.  Define compcodes for unordered
2882         comparisons and for invalid transformations.
2883         (invert_tree_comparison): Add "honor_nans" parameter.
2884         (fold_truthop): Revamp to work on floating-point types too.
2885         (comparison_to_compcode): Support unordered comparisons.
2886         Use new enum comparison_code.
2887         (compcode_to_comparison): Likewise.
2888         (combine_compcodes): New function.
2889         (invert_truthvalue): Let invert_tree_comparison decide
2890         whether it is valid to fold the comparison.  Fold ORDERED
2891         and UNORDERED even if flag_unsafe_math_optimizations is off,
2892         and the remaining even if flag_unsafe_math_optimizations
2893         is off but we are under -fno-trapping-math.
2894         (fold_relational_const): Integer modes do not honor NaNs.
2895
2896 2004-05-28  Paul Brook  <paul@codesourcery.com>
2897
2898         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2899
2900 2004-05-28  Paul Brook  <paul@codesourcery.com>
2901
2902         * config/arm/arm.c (thumb_force_lr_save): New function.
2903         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2904         thumb_output_function_prologue): Use it.
2905         (thumb_expand_prologue): Set lr_save_eliminated.
2906
2907 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2908
2909         * config/mips/mips.md (extendsidi2): Tie the source and destination
2910         of the register alternative.  Split it into nothing.
2911
2912 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2913
2914         * rtl.h (skip_consecutive_labels): Declare.
2915         * emit-rtl.c (skip_consecutive_labels): New function.
2916         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2917         * jump.c (follow_jumps): Say what null return values mean.
2918
2919 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2920
2921         PR target/13250
2922         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2923
2924 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2925
2926         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2927         libgcc-std.ver.
2928         * config/sh/libgcc-std.ver: New file.
2929
2930 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2931
2932         * except.c: Revert change of 2004-05-26.
2933         * config/i386/i386.md: Revert change of 2004-05-27.
2934
2935 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2936
2937         * configure.ac: Remove --enable-tree-browser option.
2938         Define TREEBROWSER when ac_tree_checking is defined.
2939         * configure: Rebuilt.
2940
2941 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2942
2943         * expr.c (store_constructor): Restore sanity check on
2944         the size of the type before clearing.
2945
2946 2004-05-27  Jan Hubicka  <jh@suse.cz>
2947
2948         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2949
2950 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2951
2952         * combine.c (gen_binary): Remove.
2953         (known_cond, simplify_shift_const
2954         find_split_point, combine_simplify_rtx,
2955         simplify_if_then_else, simplify_set,
2956         simplify_logical, expand_field_assignment,
2957         extract_left_shift, force_to_mode,
2958         if_then_else_cond, apply_distributive_law,
2959         simplify_and_const_int, simplify_shift_const,
2960         gen_lowpart_for_combine, simplify_comparison,
2961         reversed_comparison): Replace with
2962         simplify_gen_binary, simplify_gen_relational or
2963         distribute_and_simplify_rtx.
2964         (distribute_and_simplify_rtx): New function.
2965         * simplify-rtx.c (simplify_binary_operation):
2966         Use nonzero_bits to simplify ANDs where we are
2967         turning off bits already known to be off in OP0.
2968
2969 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2970
2971         PR target/14478
2972         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2973
2974 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2975
2976         PR middle-end/14084
2977         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2978         to size of decl.
2979
2980 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2981
2982         PR/14924
2983         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2984
2985 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2986
2987         * tree.h: Fix comment typo.
2988
2989 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2990
2991         * gimplify.c (compare_case_labels): New function.
2992         (gimplify_switch_expr): Sort case labels, and make sure the
2993         last label in the label vector is the default case.
2994         * tree-cfg.c (group_case_labels): New function.
2995         (build_tree_cfg): Cleanup redundant labels and group case labels
2996         before creating edges.
2997         (cleanup_dead_labels): Handle GOTO_EXPRs.
2998         (find_case_label_for_value): Use a binary search to find the
2999         case label for the given value.
3000         * tree-gimple.c: Mention that labels are sorted, and that the
3001         last label must be the default.
3002
3003 2004-05-27  Jan Hubicka  <jh@suse.cz>
3004
3005         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3006
3007 2004-05-27  Jan Hubicka  <jh@suse.cz>
3008
3009         * i386.md (UNSPECV_EH_RETURN): Kill.
3010         (eh_return): Use jump_insn.
3011         (eh_return_si, eh_return_di): Change pattern to jump instruction.
3012
3013 2004-05-26  Jan Hubicka  <jh@suse.cz>
3014
3015         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
3016         not loop optimizing.
3017
3018 2004-05-26  Jan Hubicka  <jh@suse.cz>
3019
3020         * except.c (can_throw_internal):  Notice RESX instructions.
3021
3022 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
3023
3024         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3025         of the two sizes to assemble_integer.
3026
3027 2004-05-25  Paul Brook  <paul@codesourcery.com>
3028
3029         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3030         pointless #ifdef.
3031
3032 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3033
3034         * Makefile.in (top_builddir): Define to .
3035
3036 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
3037
3038         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3039         top-level detects, except when in-tree ld is being cross-built.
3040         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
3041         then AS only if target is host.
3042         * configure: Rebuilt.
3043
3044 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
3045
3046         * global.c (global_alloc): Call make_accurate_live_analysis.
3047         (record_one_conflict): Remove dead code.
3048         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3049         (bb_info): New structure.
3050         (BB_INFO, BB_INFO_BY_INDEX): New macros.
3051         (allocate_bb_info, free_bb_info, mark_reg_change,
3052         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3053         modify_bb_reg_pav, calculate_reg_pav,
3054         make_accurate_live_analysis): New functions.
3055
3056 2004-05-25  Devang Patel  <dpatel@apple.com>
3057
3058         * alias.c (init_alias_analysis): Use ggc_calloc instead of
3059         xrealloc.
3060         (end_alias_analysis): Use ggc_free instead fo free.
3061
3062 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
3063
3064         PR target/15546
3065         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3066         as needed to be outputted.
3067
3068 2004-05-25  Jan Hubicka  <jh@suse.cz>
3069
3070         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
3071
3072 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
3073         Mostafa Hagog  <mustafa@il.ibm.com>
3074
3075         * Makefile.in (modulo-sched.o, ddg.o): New.
3076         * ddg.h, ddg.c, modulo-sched.c: New files.
3077         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3078         internals to "dupicate_insn".
3079         (duplicate_insn): New function.
3080         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3081         declarations.
3082         * common.opt (fmodulo-sched): New flag.
3083         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3084         Remove static and forward declaration.
3085         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3086         functions.
3087         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3088         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3089         declarations.
3090         * flags.h (flag_modulo_sched): New flag.
3091         * opts.c (common_handle_option): Handle modulo-sched flag.
3092         * params.def (max-sms-loop-number, sms-max-ii-factor,
3093         sms-dfa-history, sms-loop-average-count-threshold): New
3094         parameters.
3095         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3096         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3097         parameters.
3098         * passes.c ("sms", "sms-vcg"): New dumps.
3099         (rest_of_handle_sched): Call sms_schedule.
3100         * rtl.h (sms_schedule): New declaration.
3101         * timevar.def (TV_SMS): New.
3102         * toplev.c (flag_modulo_sched): Initialize.
3103         (f_options): Handle -fmodulo-sched option.
3104         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3105         * docs/passes.texi: Document new SMS pass.
3106
3107 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3108
3109         * Makefile.in (OBJS): Add rtlhooks.o.
3110         (rtlanal.o): Depend on function.h.
3111         (cse.o): Depend on rtlhooks-def.h.
3112         (combine.o): Depend on rtlhooks-def.h.
3113         (rtlhooks.o): New rule.
3114         * combine.c: Include rtlhooks-def.h.
3115         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3116         num_sign_bit_copies, cached_num_sign_bit_copies,
3117         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3118         (reg_nonzero_bits_for_combine,
3119         reg_num_sign_bit_copies_for_combine): New functions holding
3120         the remnants of the above.
3121         (combine_rtl_hooks): New.
3122         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3123         * cse.c: Include rtlhooks-def.h.
3124         (cse_rtl_hooks): New.
3125         (cse_main): Set rtl_hooks instead of gen_lowpart.
3126         * emit-rtl.c (gen_lowpart): Remove.
3127         (gen_lowpart_general): Move to rtlhooks.c.
3128         * rtl.h (nonzero_bits, num_sign_bit_copies,
3129         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3130         (gen_lowpart_general): Remove.
3131         (gen_lowpart): Temporarily redefine as a macro.
3132         * rtlanal.c: Include function.h.
3133         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3134         num_sign_bit_copies, cached_num_sign_bit_copies,
3135         num_sign_bit_copies1): New, from combine.c.
3136         * rtlhooks.c: New file.
3137         * rtlhooks-def.h: New file.
3138
3139 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3140
3141         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3142         to support 32-bit -mint8 mode.
3143
3144         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3145         option in the AVR architecture.
3146
3147 2004-05-24  Mike Stump  <mrs@apple.com>
3148
3149         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3150
3151 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3152
3153         * intl.h (open_quote, close_quote): New.
3154         * intl.c (open_quote, close_quote): New.
3155         (gcc_init_libintl): Set them.
3156         * pretty-print.c: Include "intl.h".
3157         (pp_base_format_text): Support 'q' format flag and %` and %'
3158         formats.  Use ' instead of ` in comments.
3159         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3160         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3161         foramt_types_orig): Describe these new formats.
3162         (decode_format_attr, check_function_format,
3163         check_format_info_main): Use these new formats.
3164         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3165         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3166         check these formats to 3.5.
3167
3168 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3169
3170         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3171         (BACKEND): Reflect this.
3172         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3173         (LIBS): Likewise.
3174
3175 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3176
3177         PR tree-optimization/14197
3178         * builtins.c: Include "tree-gimple.h"
3179         (readonly_data_expr): Use get_base_address.  Make sure to call
3180         decl_readonly_section only on trees it can handle.
3181         * tree-gimple.c (get_base_address): Accept STRING_CST and
3182         CONSTRUCTOR expressions.
3183         * Makefile.in: Update dependencies.
3184
3185 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3186
3187         Move libcpp to the toplevel.
3188         * Makefile.in: Remove references to libcpp files,
3189         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3190         and change hashtable.h to that.
3191         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3192         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3193         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3194         * configure: Regenerate.
3195         * config.in: Regenerate.
3196         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3197         * cppcharset.c: Removed.
3198         * cpperror.c: Removed.
3199         * cppexp.c: Removed.
3200         * cppfiles.c: Removed.
3201         * cpphash.c: Removed.
3202         * cpphash.h: Removed.
3203         * cppinit.c: Removed.
3204         * cpplex.c: Removed.
3205         * cpplib.c: Removed.
3206         * cpplib.h: Removed.
3207         * cppmacro.c: Removed.
3208         * cpppch.c: Removed.
3209         * cpptrad.c: Removed.
3210         * cppucnid.h: Removed.
3211         * cppucnid.pl: Removed.
3212         * cppucnid.tab: Removed.
3213         * hashtable.c: Removed.
3214         * hashtable.h: Removed.
3215         * line-map.c: Removed.
3216         * line-map.h: Removed.
3217         * mkdeps.c: Removed.
3218         * mkdeps.h: Removed.
3219         * stringpool.h: Include symtab.h instead of hashtable.h.
3220         * tree.h: Include symtab.h instead of hashtable.h.
3221         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3222
3223 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3224
3225         * gcc.c (struct prefix_list): Add forward declaration.
3226         (do_spec_path): New function, extracted from...
3227         (do_spec_1) <'D'>: ... here.  Drop support for
3228         SPACE_AFTER_L_OPTION.
3229         (do_spec_1) <'I'>: Use do_spec_path.
3230         (process_command): Do not store the 'include' suffix
3231         in include_prefixes.
3232         * system.h: Poison SPACE_AFTER_L_OPTION.
3233
3234 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3235
3236         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3237         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3238
3239 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3240
3241         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3242         Update based on printed manual.  Enable setting of offsets for
3243         FSFPRINT and move it to gcc-common.texi.
3244         * doc/gcc.texi: Update FSF printing details.
3245         * doc/gccint.texi: Remove FSF printing details.
3246
3247 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3248
3249         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3250
3251 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3252
3253         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3254         expand_builtin_strrchr, expand_builtin_strpbrk,
3255         expand_builtin_mempcpy, expand_builtin_memcmp,
3256         expand_builtin_strcmp, expand_builtin_strncmp,
3257         expand_builtin_strcat, std_expand_builtin_va_start,
3258         std_expand_builtin_va_arg, expand_builtin_va_copy,
3259         expand_builtin_signbit, fold_builtin_cabs,
3260         fold_builtin_logarithm, fold_builtin_mempcpy,
3261         fold_builtin_signbit, fold_builtin_isascii,
3262         fold_builtin_toascii, fold_builtin_isdigit,
3263         fold_builtin_1, build_function_call_expr,
3264         simplify_builtin_strchr, simplify_builtin_strrchr,
3265         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3266         simplify_builtin_memcmp, simplify_builtin_strcmp,
3267         simplify_builtin_strncmp, simplify_builtin_strncat,
3268         simplify_builtin_strspn, simplify_builtin_strcspn,
3269         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3270         to build with calls to build2, build3 or omit_one_operand.
3271
3272 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3273
3274         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3275         section when generating EABI code.
3276
3277 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3278
3279         PR 15546
3280         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3281         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3282
3283 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3284
3285         * c-common.c (c_common_truthvalue_conversion): Handle
3286         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3287         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3288         i.e. set the type to truthvalue_type_node and return.
3289
3290 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3291
3292        * tree.h (struct tree_decl): Add possibly_inlined bit.
3293         (DECL_POSSIBLY_INLINED): New accessor macro.
3294         * cgraph.h: Remove declaration of cgraph_inline_hash.
3295         * cgraph.c: Remove definition of cgraph_inline_hash.
3296         (hash_node): Revert to hashing DECL_UID.
3297         (eq_node): Take two pointers to cgraph_node structures.
3298         Compare DECL_UIDs.
3299         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3300         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3301         hash on DECL_UID.
3302         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3303         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3304         (cgraph_node): Allocate a temporary node on the stack, fill in
3305         its DECL field, and pass that to htab_find_slot.
3306         (cgraph_varpool_node): Likewise.
3307         (cgraph_function_possibly_inlined_p): If global info is ready,
3308         return the DECL_POSSIBLY_INLINED bit.
3309         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3310         instead of mucking with cgraph_inline_hash.
3311
3312 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3313
3314         * doc/contrib.texi: Add g77 contributors.
3315
3316 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3317
3318         * calls.c (initialize_argument_information): Forbid sibcalls if a
3319         callee-copied argument is stored in the current function's frame.
3320
3321 2004-05-22  Eric Christopher  <echristo@redhat.com>
3322
3323         * fix-header.c (read_scan_file): Update for add_path change.
3324
3325 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3326
3327         * c.opt (Wmissing-include-dirs): New.
3328         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3329         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3330         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3331         * c-incpath.h (add_path): Add fourth (bool) argument.
3332         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3333         (add_standard_paths): Likewise.
3334         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3335         is used and the directory was user-supplied via -I.
3336         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3337         using add_cpp_dir_path ().
3338         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3339         (struct cpp_dir): Add user_supplied_p.
3340         * doc/invoke.texi (Warning Options): Document new option.
3341
3342 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3343
3344         * fold-const.c (fold_read_from_constant_string): Convert result to
3345         requested type.
3346
3347 2004-05-21  Richard Henderson  <rth@redhat.com>
3348
3349         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3350         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3351         Don't mark VA_ARG_EXPRs volatile here.
3352         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3353
3354 2004-05-21  Richard Henderson  <rth@redhat.com>
3355
3356         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3357         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3358
3359 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3360
3361         * fold-const.c (fold, fold_relational_hi_lo,
3362         nondestructive_fold_binary_to_constant,
3363         fold_read_from_constant_string): Use fold_convert instead of convert.
3364         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3365         simplify_builtin_strchr, simplify_builtin_strrchr,
3366         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3367
3368 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3369
3370         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3371         is NULL.
3372
3373 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3374
3375         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3376         override sparc.h definition.
3377
3378 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3379
3380         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3381         get_unwidened, get_narrower): Replace build with build2.
3382         * fold-const.c (negate_expr, associate_trees, size_binop,
3383         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3384         pedantic_omit_one_operand, distribute_bit_expr,
3385         make_bit_field_ref, optimize_bit_field_compare,
3386         decode_field_reference, range_binop, make_range,
3387         build_range_check, fold_range_test, fold_truthop,
3388         optimize_minmax_comparison, extract_muldiv_1,
3389         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3390         fold_inf_compare, fold_single_bit_test, fold,
3391         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3392         Likewise replace build with either build2 or build3.
3393
3394 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3395
3396         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3397         * calls.c (prepare_call_address): Don't test
3398         NO_RECURSIVE_FUNCTION_CSE.
3399         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3400         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3401         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3402         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3403         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3404         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3405         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3406         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3407         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3408         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3409         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3410         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3411         Likewise.
3412         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3413         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3414         * doc/tm.texi (Costs): Remove documentation for
3415         NO_RECURSIVE_FUNCTION_CSE.
3416
3417 2004-05-20  Paul Brook  <paul@codesourcery.com>
3418
3419         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3420         * unwind-dw2.c (extract_cie_info): Ditto.
3421         (_Unwind_FrameState): Change retaddr_column to word type.
3422
3423 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3424
3425         PR middle-end/3074
3426         * fold-const.c (strip_compound_expr): Delete function.
3427         (count_cond): Delete function.
3428         (fold_binary_op_with_conditional_arg): Only perform transformations
3429         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3430         when a is constant.  This greatly simplifies this routine.
3431
3432         * tree.c (saved_expr_p): Delete function.
3433         * tree.h (saved_expr_p): Delete function prototype.
3434
3435 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3436
3437         * common.opt (ftree-loop-optimize): Remove.
3438
3439 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3440
3441         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3442         (NM_FOR_TARGET): Use := and $(shell).
3443         (mainversion): Remove unused variable.
3444
3445 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3446
3447         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3448         sequence containing the insn to be deleted, always reemit it.
3449
3450 2004-05-20  Richard Henderson  <rth@redhat.com>
3451
3452         PR 15454
3453         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3454         * function.c (expand_function_start): Expand static_chain_decl by hand.
3455         * gimplify.c (create_tmp_var_name): Export.
3456         * tree-gimple.h (create_tmp_var_name): Declare.
3457
3458 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3459
3460         * rs6000.c (print_operand) <case 'z'>: Call
3461         mark_decl_referenced before assemble_name.
3462
3463 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3464
3465         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3466         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3467         (cgraph_varpool_node): Hash on the pointer to the decl, not
3468         the DECL_UID.  Fixes 64-bit bootstrap failure.
3469
3470 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3471
3472         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3473         we don't earlyclobber operands used in the second insn.
3474
3475 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3476
3477         * tree-mudflap.c: Formatting fixes.
3478
3479 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3480
3481         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3482         * gengtype.c (open_base_files): Include reload.h in ifiles.
3483         * reload.h (reg_equiv_memory_loc_varray): Declare.
3484         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3485         (init_reload): Initialize it.
3486         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3487         reg_equiv_memory_loc_varray to size 0.
3488         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3489         growing reg_equiv_memory_loc_varray to the desired size.
3490         * passes.c (rest_of_handle_old_regalloc): Likewise.
3491         * reload.c: Amend comment on calling init_reload.
3492
3493 2004-05-20  Nick Clifton  <nickc@redhat.com>
3494
3495         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3496         with 'TRAMP' in the body of the macro definition.
3497
3498 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3499
3500         PR target/15383
3501         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3502         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3503         cmptf_libfunc isn't set.
3504         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3505         conventions.
3506         (ia64_sysv4_init_libfuncs): New.
3507
3508         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3509         ia64_sysv4_init_libfuncs.
3510
3511 2004-05-20  Falk Hueffner  <falk@debian.org>
3512
3513         PR other/15526
3514         * libgcc2.c (__mulvsi3): Fix overflow test.
3515
3516 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3517
3518         PR c/14171
3519         * reg-stack.c (nan): Rename to ...
3520         (not_a_num): Here.
3521         (reg_to_stack): Rename nan to not_a_num.
3522         (subst_stack_regs_pat): Likewise.
3523         (convert_regs_entry): Likewise.
3524         (convert_regs_1): Likewise.
3525
3526         * tree-cfg.c (find_case_label_for_value): Replace call to
3527         simple_cst_equal with tree_int_cst_equal.
3528
3529 2004-05-19  Jeff Law <law@redhat.com>
3530
3531         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3532         If the operand is for a use, then strip away the SSA_NAME, do not
3533         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3534         (mark_def_sites): Appropriately pass additional argument to
3535         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3536         then set the VDEF_RESULT to the VDEF_OP.
3537         (set_def_block): Strip away any SSA_NAME to get to the real
3538         underlying variable.
3539
3540         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3541         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3542         BB directly.
3543
3544 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3545
3546         PR c++/15463
3547         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3548         result of inverse.
3549
3550         PR rtl-optimization/15274
3551         * loop-iv.c (determine_max_iter, shorten_into_mode,
3552         iv_number_of_iterations): Handle constants correctly.
3553         * rtl.h (get_mode_bounds): Declaration changed.
3554         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3555         the target mode.
3556
3557         PR rtl-optimization/14692
3558         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3559         (unswitch_single_loop): Work correctly when may_unswitch_on
3560         returns a folded constant.
3561
3562         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3563         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3564         comparisons with mode bounds.
3565
3566         * function.c (struct temp_slot): Add new field prev.
3567         (free_after_compilation, init_temp_slots): Free new fields.
3568         (cut_slot_from_list, insert_slot_to_list,
3569         temp_slots_at_level, max_slot_level, move_slot_to_level,
3570         make_slot_available): New functions.
3571         (assign_stack_temp_for_type, combine_temp_slots,
3572         find_temp_slot_from_address, preserve_temp_slots,
3573         preserve_rtl_expr_result, free_temp_slots,
3574         free_temps_for_rtl_expr, pop_temp_slots): Work with
3575         the new structure of lists.
3576         (mark_all_temps_used): Removed.
3577         * function.h (struct function): Field x_temp_slots
3578         replaced by x_used_temp_slots and x_avail_temp_slots.
3579         (temp_slots): Replaced by ...
3580         (used_temp_slots, avail_temp_slots): New.
3581         * tree.h (mark_all_temps_used): Declaration removed.
3582
3583         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3584         simplify_using_assignment): Take the expression out of
3585         the expr_list wrapper.
3586
3587         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3588         infinite loops.
3589
3590 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3591
3592         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3593         costs should be based on code size when optimizing for size.
3594
3595 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3596
3597         * fold-const.c: Remove non-printable character 160.
3598
3599 2004-05-19  Nick Clifton  <nickc@redhat.com>
3600
3601         * doc/invoke.texi (ARM Options): Fix typo.
3602         Remove descrption of -mshort-load-bytes and
3603         -mno-short-load-bytes.
3604
3605         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3606         missing parenthesis.
3607         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3608         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3609
3610 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3611
3612         * expr.c (store_constructor): Build loop start and end by hand
3613         instead of via loop functions from stmt.c.
3614         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3615         Remove the code to expand them.
3616
3617         * stmt.c (loop_stack): Remove this and everything related.
3618         (struct nesting, enum nesting_desc): Update.
3619         (expand_fixup): Likewise.
3620         (expand_loop_start, expand_start_loop_continue_elsewhere,
3621         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3622         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3623         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3624         expand_exit_something): Remove.
3625         * tree.h: Remove prototypes.
3626
3627 2004-05-18  Mike Stump  <mrs@apple.com>
3628             Devang Patel  <dpatel@apple.com>
3629
3630         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3631         if this label is for eh.
3632         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3633         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3634         * dwarf2out.c (output_call_frame_info): Likewise.
3635         * output.h (default_emit_unwind_label): Likewise.
3636         * target.h (unwind_label): Likewise.
3637         * varasm.c (default_emit_unwind_label): Likewise.
3638
3639         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3640         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3641         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3642         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3643         DEBUG_RANGES_SECTION): Define.
3644
3645 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3646
3647         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3648         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3649         (cgraph_varpool_node):
3650         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3651         (cgraph_function_possibly_inlined_p): Use the decl itself for
3652         the key, not DECL_ASSEMBLER_NAME.
3653         (change_decl_assembler_name): No need to muck with the hash tables.
3654         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3655         Delete.
3656         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3657         for the key, not DECL_ASSEMBLER_NAME.
3658         * cgraph.h: Remove prototypes of deleted functions.
3659         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3660         (mark_decl_referenced): New function.
3661         * tree.h: Prototype mark_decl_referenced.
3662         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3663         mark_decl_referenced before assemble_name.
3664         * c-decl.c (finish_decl): Use mark_decl_referenced.
3665
3666 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3667             Jeff Law <law@redhat.com>
3668
3669         * tree-ssa-phiopt.c (abs_replacement): New function.
3670         (empty_block_p): New function extracted from...
3671         (candidate_bb_for_phi_optimization): Break out empty block test.
3672         (conditional_replacement): Use empty_block_p.
3673         (value_replacement): Similarly.
3674
3675         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3676         * tree-ssa-phiopt.c: Include flags.h.
3677         (conditional_replacement): Remove argument names from prototype.
3678         Minor formatting and comment fixes.
3679         (tree_ssa_phiopt): If conditional_replacement returns false, then
3680         call value_replacement.
3681         (value_replacement): New function.
3682
3683 2004-05-18  Jeff Law  <law@redhat.com>
3684
3685         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3686         from conditional_replacement.
3687         (candidate_bb_for_phi_optimization): Similarly.
3688         (conditional_replacement): Use replace_phi_with_stmt and
3689         candidate_bb_for_phi_optimization.
3690
3691         * tree-ssa-phiopt.c: Fix various formatting issues.
3692
3693 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3694
3695         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3696         s390_expand_cmpmem): Do not use expand_start_loop and
3697         expand_end_loop, instead build the loop manually.
3698
3699 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3700
3701         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3702         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3703
3704 2004-05-17  Jeff Law  <law@redhat.com>
3705
3706         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3707         * flags.h (flag_delete_null_pointer_checks): Here.
3708         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3709         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3710         (add_phi_arg, remove_phi_arg_num): Similarly.
3711         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3712         property into PHI nodes.
3713         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3714         (record_equivalences_from_phis): If all PHI arguments are known to be
3715         nonzero, then the result must be nonzero as well.
3716         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3717         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3718         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3719         as appropriate.
3720         * tree.h (PHI_ARG_NONZERO): Define.
3721         (phi_arg_d): Add nonzero flag.
3722
3723 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3724
3725         * f: Entire directory removed
3726
3727         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3728         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3729         (g77_integer_type_node, g77_uinteger_type_node)
3730         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3731         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3732         the above set of variables.
3733
3734         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3735         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3736         to g77 manual.
3737
3738 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3739
3740         PR tree-optimization/15438
3741         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3742         attributed functions as pure or const.
3743
3744 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3745
3746         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3747         from source code with errors.
3748
3749 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3750
3751         Enable tree browser for all front ends.
3752         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3753         (BACKEND): ...to here.
3754
3755 2004-05-17  Jan Hubicka  <jh@suse.cz>
3756
3757         * i386.c (construct_container): Do not produce BLKmode registers.
3758         (classify_argument): Properly compute alignment of complex types.
3759
3760 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3761
3762         PR target/15084
3763         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3764         and renamed to movdi_insv_1_rex64.
3765         (insv): Support SImode for 32bit and DImode for 64bit.
3766
3767 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3768
3769         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3770         (TARGET_SWITCHES): Remove debugg.
3771         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3772         TARGET_64BIT.
3773         (subdi3): Replace the define_expand with a define_insn, the latter
3774         renamed from subdi3_internal_3.
3775         (negdi2): Likewise negdi2_internal_2.
3776         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3777         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3778         and associated define_splits.
3779         (adddi3_internal): Renamed from adddi3_internal_3.
3780         (ashldi3_internal): Likewise ashldi3_internal4.
3781         (ashrdi3_internal): Likewise ashrdi3_internal4.
3782         (lshrdi3_internal): Likewise lshrdi3_internal4.
3783
3784 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3785
3786         * optabs.c (expand_unop): Try implementing negation using subtraction
3787         from zero.
3788
3789 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3790
3791         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3792         SAR register.
3793
3794 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3795
3796         PR target/10982
3797         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3798         (ne_zeroextractsi_shifted): New pattern.
3799         (ite_ne_zeroextractsi): New pattern.
3800         (ite_ne_zeroextractsi_shifted): New pattern.
3801
3802 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3803
3804         * c-gimplify.c (c_genericize):
3805         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3806         * c-parse.in <expr_no_commas>: Likewise.
3807         <if_prefix>: Likewise.
3808         <select_or_iter_stmt>: Likewise.
3809         * expr.c (expand_var, expand_expr_real_1): Likewise.
3810         * expr.h (expand_expr): Make it a static inline function.
3811         Move prototype for expand_expr_real up before this.
3812         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3813         Likewise.
3814         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3815         gimplify_asm_expr, gimplify_expr): Likewise.
3816         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3817         dump_function_to_file): Likewise.
3818         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3819         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3820         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3821         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3822         Likewise.
3823         * tree-optimize.c (execute_one_pass): Likewise.
3824         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3825         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3826
3827         * objc/objc-act.c (objc_build_try_enter_fragment,
3828         objc_build_try_epilogue, objc_build_catch_stmt,
3829         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3830         with lang_hooks.foo ().
3831
3832 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3833
3834         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3835         that simplify_builtin doesn't destructively modify its argument.
3836
3837 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3838
3839         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3840         implementations for ARM and Thumb.
3841         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3842
3843 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3844
3845         * prefix.c (update_path): Replace PREFIX with KEY only
3846         when it matches a full directory name in PATH.
3847
3848 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3849
3850         * arm.h (TARGET_APCS_32): Delete.
3851         (TARGET_MMU_TRAPS): Delete.
3852         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3853         define __APCS_26__.
3854         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3855         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3856         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3857         (prog_mode_type): Delete.
3858         (PROMOTE_MODE): Always promote unsigned for HImode.
3859         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3860         (MASK_RETURN_ADDR): Simplify.
3861         * arm.c (arm_prgmode): Delete.
3862         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3863         (print_multi_reg, output_return_instruction): Simplify.
3864         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3865         (arm_return_addr): Simplify.
3866         * arm.md (prog_mode): Delete.
3867         (conds): Simplify.
3868         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3869         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3870         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3871         (loadhi_shiftpredec): Delete.
3872         (peephole for post-increment on HImode load): Delete.
3873         * arm/crtn.asm: (FUNC_END): Simplify.
3874         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3875         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3876         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3877         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3878         MULTILIB_DEFAULTS as required.
3879         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3880         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3881         variables as required.
3882         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3883
3884 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3885
3886         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3887         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3888         count to 8 to handle n_reg > 2.
3889
3890 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3891
3892         * doc/extend.texi: Update WG14 URL.
3893
3894 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3895
3896         * basic-block.h (life_analysis, delete_noop_moves):
3897         Update prototypes.
3898         * bt-load.c (branch_target_load_optimize): Don't take the
3899         insns stream as an argument.  Update the life_analysis calls.
3900         * combine.c (combine_instructions): Update delete_noop_moves
3901         calls.
3902         * flow.c (notice_stack_pointer_modification): Don't take the
3903         insns stream as an argument.  Work on the flow graph.
3904         (life_analysis): Likewise.
3905         (delete_noop_moves): Likewise.
3906         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3907         (rest_of_handle_life): Update life_analysis call.
3908         (rest_of_compilation): Likewise, and also update
3909         branch_target_load_optimize call.
3910         * ra.c (reg_alloc): Update life_analysis call.
3911         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3912         the insns stream as an argument.
3913         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3914         call.
3915         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3916         prototypes.
3917         * value-profile.c (branch_prob): Update life_analysis call.
3918         * web.c (web_main): Work on the CFG, not on the insns stream.
3919
3920         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3921         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3922         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3923
3924 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3925
3926         PR c/15444
3927         * c-format.c (avoid_dollar_number): New function.
3928         (check_format_info_main): Call avoid_dollar_number when operand
3929         numbers might occur but has_operand_number == 0.
3930
3931 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3932
3933         * arm.md (all peephole2 patterns): Use predicates that validate
3934         register classes as appropriate.
3935
3936 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3937
3938         PR opt/14472
3939         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3940         ignore type conversions that do not inhibit tail calling.
3941         (find_tail_calls): Likewise.
3942
3943 2004-05-14  Jeff Law  <law@redhat.com>
3944
3945         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3946         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3947         bypassed virtuals into vars_to_rename just before into-ssa pass.
3948
3949         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3950         so that it picks up more opportunities to eliminate ABS expressions
3951         or turn them into negations.
3952
3953 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3954
3955         * passes.c (rest_of_handle_null_pointer): Remove.
3956         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3957         (rest_of_compilation): Likewise.
3958         * rtl.h (delete_null_pointer_checks): Remove prototype.
3959         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3960         Remove declarations.
3961         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3962         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3963         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3964         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3965         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3966         one_classic_gcse_pass, invalidate_nonnull_info,
3967         delete_null_pointer_checks_1, delete_null_pointer_checks,
3968         expr_reached_here_p_work): Remove.
3969         (gcse_main): Do not perform classic GCSE when optimizing for size.
3970         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3971         are never used.
3972
3973 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3974
3975         PR optimization/14466
3976         * tree-complex.c (make_temp): Remove.
3977         (gimplify_val): Replace make_temp with make_rename_temp
3978         and add NULL as the second argument.
3979         (expand_complex_div_wide): Likewise.
3980         * tree-dfa.c (make_rename_temp): New function.
3981         * tree-flow.h (make_rename_temp): Declare.
3982         * tree-sra.c (make_temp): Remove.
3983         (lookup_scalar): Replace make_temp with make_rename_temp.
3984         (create_scalar_copies): Likewise.
3985         * tree-ssa-phiopt.c (conditional_replacement): When we
3986         get non gimple create a temporary variable to hold the
3987         casted expression.
3988
3989 2004-05-14  Paul Brook  <paul@codesourcery.com>
3990
3991         * stor-layout.c (update_alignment_for_field): Use
3992         targetm.align_anon_bitfield.
3993         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3994         (TARGET_INITIALIZER): Use it.
3995         * target.h (struct gcc_target): Add align_anon_bitfield.
3996         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3997         (TARGET_ALIGN_ANON_BITFIELD): Define.
3998         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3999
4000 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
4001
4002         * tree.def (documentation): Remove mention of class 'b'.
4003         (BLOCK): Now in class 'x'.
4004         * c-common.c (verify_tree): Remove case 'b'.
4005         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
4006         * calls.c (calls_function_1): Control cannot get past the switch
4007         when exp is a BLOCK.
4008         * print-tree.c (print_node): Move code for class 'b' to the class
4009         'c'/'x' switch, as case BLOCK.
4010         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
4011         (unsafe_for_reeval, substitute_placeholder_in_expr)
4012         (stabilize_reference_1): Remove case 'b'.
4013         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
4014         of something being 'b' to tests for TREE_CODE of something being
4015         BLOCK.
4016         * tree-ssa-operands.c (get_expr_operands): Likewise.
4017
4018 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4019
4020         * tree-gimple.c: Rename from tree-simple.c.
4021         * tree-gimple.h: Rename from tree-simple.h.
4022         * c-gimplify.c: Rename from c-simplify.c
4023         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
4024         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
4025         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
4026         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
4027         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
4028         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
4029         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
4030         Update.
4031
4032 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
4033
4034         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
4035
4036 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4037
4038         * tree-ssa.c (delete_tree_ssa): XFREE
4039         bitmaps allocated with BITMAP_XMALLOC.
4040
4041         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
4042         idfs_cache at the end of the function.
4043
4044         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
4045         at the end of the function.
4046
4047         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
4048         el at the end of the function.
4049
4050         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
4051         bitmaps allocated with BITMAP_XMALLOC.
4052
4053         * loop-unswitch.c (unswitch_single_loop): Free bbs at
4054         the end.
4055
4056         * final.c (shorten_branches): Free uid_shuid before
4057         reallocating it.
4058
4059         * bb-reoder.c (connect_traces): Free cold_traces at the end.
4060
4061 2004-05-13  Jeff Law  <law@redhat.com>
4062
4063         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
4064         variables.  Simplify slightly by using USE_OP/DEF_OP instead
4065         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
4066
4067         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
4068         rather than iterating through the blocks testing each bit in
4069         livein to initialize the worklist.
4070         (mark_def_sites): Remove useless checks of KILLS for virtual
4071         operands.
4072
4073         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
4074         new parameters for the statement and variable worklist as well
4075         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
4076         worklist recording interesting variables in the variable worklist
4077         and bitmap.  Handle casts between integral and boolean types.
4078         (substitute_single_use_vars): Accept new parameters for the statement
4079         and variable worklist.  When a substitution is made add a new
4080         entry to the statement worklist.  Handle casts between integral
4081         and boolean types.
4082         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
4083         worklists to children.  Iterate until the statement worklist
4084         is empty.
4085
4086 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4087
4088         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
4089         the end of the block.
4090
4091         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
4092         with BITMAP_XMALLOC.
4093
4094         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
4095         with BITMAP_XMALLOC.
4096
4097         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4098         Free nonzero_vars at the end of the function.
4099
4100         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4101         need to generate code instead of a NOP_EXPR.
4102
4103 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
4104
4105         * gcc.c (default_compilers): Fill out initializers for new Fortran
4106         entries.
4107
4108 2004-05-13  Paul Brook  <paul@codesourcery.com>
4109
4110         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4111
4112 2004-05-13  Paul Brook  <paul@codesourcery.com>
4113
4114         * config/arm/arm.c (arm_default_short_enums): New function.
4115         (TARGET_DEFAULT_SHORT_ENUMS): Define.
4116
4117 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4118
4119         Merge from tree-ssa-20020619-branch.
4120
4121         * Makefile.in (reload1.o-warn): Add.
4122         (tree-alias-ander.o-warn): Add.
4123         (GMPLIBS): Define.
4124         (GMPINC): Define.
4125         (BANSHEELIB): Define.
4126         (BANSHEEINC): Define.
4127         (TREE_DUMP_H): Define.
4128         (TREE_SIMPLE_H): Define.
4129         (TREE_FLOW_H): Define.
4130         (LIBDEPS): Add BANSHEELIB.
4131         (INCLUDES): Add BANSHEEINC and GMPINC.
4132         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4133         c-mudflap.o and c-pretty-print.o.
4134         (C_OBJS): Remove c-pretty-print.o.
4135         (OBJS-common): Remove sibcall.o.
4136         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4137         tree-ssa.o, tree-optimize.o, tree-simple.o,
4138         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4139         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4140         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4141         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4142         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4143         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4144         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4145         tree-tailcall.o, gimple-low.o, tree-iterator.o,
4146         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4147         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4148         tree-profile.o.
4149         (OBJC-archive): Add tree-nomudflap.o.
4150         (cc1): Add dependency on @TREEBROWSER@.
4151         (c-decl.o): Add dependency on TREE_DUMP_H.
4152         (c-dump.o): Likewise.
4153         (c-common.o): Add dependency on tree-iterator.h
4154         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4155         (gtype-desc.o): Add dependency on TREE_FLOW_H.
4156         (tree.o): Add dependency on tree-iterator.h,
4157         BASIC_BLOCK_H and TREE_FLOW_H.
4158         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4159         (langhooks.o): Add dependency on TREE_SIMPLE_H.
4160         (tree-alias-type.o, tree-alias-ander.o,
4161         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4162         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4163         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4164         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4165         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4166         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4167         tree-nested.o, tree-iterator.o, tree-dfa.o,
4168         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4169         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4170         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4171         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4172         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4173         tree-sra.o, tree-complex.o, tree-profile.o,
4174         rtl-profile.o): New rules.
4175         (function.o): Add dependency on basic-block.h
4176         (expr.o): Add dependency on tree-iterator.h.
4177         (sibcall.o): Remove.
4178         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4179         (cfg.o): Add dependency on TIMEVAR_H.
4180         (cfghooks.o): Add dependency on TREE_FLOW_H.
4181         (reg-stack.o): Add dependency on basic-block.h.
4182         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4183         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4184         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4185         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4186         tree-alias-type.h, tree-alias-common.h,
4187         tree-alias-type.c, tree-alias-common.c,
4188         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4189         rtl-profile.c and tree-nested.c.
4190         (gt-tree-alias-common.h, gt-tree-mudflap.h,
4191         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4192         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4193         gt-tree-cfg.h, gt-tree-nested.h): New rules.
4194         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4195         * basic-block.h: Include predict.h
4196         (struct edge_def): Add GTY marker.
4197         Change field 'insns' to be a union of tree and rtx.
4198         (EDGE_TRUE_VALUE): Define.
4199         (EDGE_FALSE_VALUE): Define.
4200         (EDGE_EXECUTABLE): Define.
4201         (struct bb_ann_d): Forward declare.
4202         (struct basic_block_def): Add GTY marker.
4203         Remove fields head_tree and end_tree.
4204         Add fields stmt_list, rbi and tree_annotations.
4205         (struct reorder_block_def): Define.
4206         (basic_block_info): Add GTY marker.
4207         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4208         variables instead of macros.
4209         (flow_call_edges_add): Remove declaration.
4210         (make_eh_edge): Remove declaration.
4211         (brief_dump_cfg, find_edge, tree_predicted_by_p,
4212         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4213         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4214         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4215         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4216         (try_redirect_by_replacing_jump): Modfiy return type to
4217         edge instead of bool.
4218         * bb-reorder.c (copy_bb): Call duplicate_block
4219         instead of cfg_layout_duplicate_bb.
4220         (copy_bb_p): Call can_duplicate_block_p instead of
4221         cfg_layout_can_duplicate_bb_p.
4222         * bitmap.c (bitmap_first_set_bit): Abort if word
4223         wasn't found.
4224         (bitmap_last_set_bit): Likewise.
4225         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4226         (DEF_FUNCTION_TYPE_3): Add.
4227         * builtins.c (c_strlen): Make extern.
4228         (builtin_save_expr): New.
4229         (expand_builtin_nonlocal_goto): New.
4230         (expand_builtin_constant_p): Remove.
4231         (expand_builtin_mathfn): Call builtin_save_expr instead
4232         of save_expr.
4233         (expand_builtin_mathfn_2): Likewise.
4234         (expand_builtin_strcmp): Likewise.
4235         (expand_builtin_strncmp): Likewise.
4236         (expand_builtin_strcat): Likewise.
4237         (fold_builtin_cabs): Likewise.
4238         (expand_builtin_alloca): Don't trigger if -fmudflap is
4239         given.
4240         (build_string_literal): Set TREE_INVARIANT on new node.
4241         (expand_builtin_profile_fun): New.
4242         (round_trampoline_addr): New.
4243         (expand_builtin_init_trampoline): New.
4244         (expand_builtin_adjust_trampoline): New.
4245         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4246         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4247         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4248         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4249         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4250         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4251         Handle.
4252         (fold_builtin_expect): New.
4253         (fold_builtin_isascii): Don't return non-constant results
4254         in GIMPLE form.
4255         (fold_builtin_isdigit): Likewise.
4256         (fold_builtin_1): New.
4257         (fold_builtin): Call it.
4258         (build_function_call_expr): Update call to build a new
4259         CALL_EXPR.
4260         (purge_builtin_constant_p): Remove.
4261         (simplify_builtin, simplify_builtin_memcmp,
4262         simplify_builtin_strcmp, simplify_builtin_strncmp,
4263         simplify_builtin_strpbrk, simplify_builtin_strstr,
4264         simplify_builtin_strchr, simplify_builtin_strrchr,
4265         simplify_builtin_strcat, simplify_builtin_strncat,
4266         simplify_builtin_strspn, simplify_builtin_strcspn,
4267         simplify_builtin_next_arg, simplify_builtin_va_start,
4268         simplify_builtin_sprintf): New.
4269         * builtins.def (BUILT_IN_STACK_ALLOC,
4270         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4271         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4272         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4273         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4274         * c-common.c: Include tree-iterator.h and hashtab.h.
4275         (lang_statement_code_p): Declare.
4276         (lang_gimplify_stmt): Declare.
4277         (fix_string_type): Set TREE_INVARIANT for value.
4278         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4279         (c_type_hash): New.
4280         (c_common_get_alias_set): Handle multiple type nodes
4281         referring to "the same" type, currently for C90 only.
4282         (c_add_case_label): Use create_artificial_label.
4283         (finish_label_address_expr): Don't set TREE_CONSTANT on
4284         result.
4285         (c_expand_expr): Don't handle STMT_EXPR.
4286         (handle_alias_attribute): Marke aliased variables to be
4287         TREE_STATIC.
4288         (handle_nonnull_attribute): Initialize arg_num.
4289         (check_function_nonnull): Likewise.
4290         (c_walk_subtrees): New.
4291         (c_estimate_num_insns_1): Don't handle
4292         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4293         (c_decl_uninit_1): Remove.
4294         (c_decl_uninit): Remove.
4295         (c_warn_unused_result): New.
4296         * c-common.def (ASM_STMT): Change number of operands
4297         to 4.
4298         (FILE_STMT): Remove.
4299         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4300         Remove.
4301         (lang_gimplify_stmt): Add.
4302         (expand_stmt): Remove.
4303         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4304         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4305         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4306         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4307         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4308         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4309         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4310         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4311         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4312         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4313         genrtl_compound_stmt, genrtl_asm_stmt,
4314         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4315         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4316         c_tree_chain_matters_p, c_warn_unused_result,
4317         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4318         Declare.
4319         * c-convert.c (convert): Make convert work when
4320         converting to compatible types across translation unit.
4321         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4322         tree-simple.h, diagnostic.h and tree-dump.h
4323         (merge_decls): Initialize oldtype to NULL.
4324         (finish_decl): Use DECL_HARD_REGISTER instead of
4325         DECL_C_HARD_REGISTER.
4326         (check_bitfield_type_and_width): Check for null
4327         lang_type_specific when check the precision of an enum.
4328         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4329         in a pointer-to-array declarator.
4330         (finish_struct): Clear allocated struct lang_type.
4331         (finish_enum): Set enum_min and enum_max.  Set
4332         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4333         not to the enumerators.
4334         (set_decl_nonlocal): New.
4335         (store_parm_decls): Use it via walk_tree.
4336         (c_finalize): New.
4337         (finish_function): When !targetm.have_ctors_dtors,
4338         record static constructors and destructors here...
4339         (c_expand_body_1): ... not here.
4340         (c_expand_decl): Rename from c_expand_decl_stmt.
4341         Handle all C-specific expansion semantics.
4342         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4343         STMT_LINENO.
4344         * c-format.c (handle_format_arg_attribute): Initialize
4345         format_num.
4346         * c-lang.c: Include tree-inline.h
4347         (LANG_HOOKS_EXPAND_DECL,
4348         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4349         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4350         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4351         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4352         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4353         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4354         (c_types_compatible_p): New.
4355         * c-mudflap.c: New file.
4356         * c-objc-common.c: Include tree-mudflap.h
4357         (start_cdtor, finish_cdtor): Collapse
4358         together into
4359         (build_cdtor): ...here.  Update to construct a complete tree
4360         for the function.  No need to call push_scope, pop_scope, or
4361         clear_last_expr, or set current_function_cannot_inline.
4362         (c_missing_noreturn_ok_p): Change prototype to return
4363         bool.
4364         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4365         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4366         opts.c.
4367         (c_common_post_options): Don't ever use rtl inlining.
4368         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4369         * c-pragma.c (handle_pragma_redefine_extname): Define
4370         always.
4371         (init_pragma): Activate #pragma redefine_extname for mudflap.
4372         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4373         (pp_c_initializer): Accept any type CONSTRUCTOR.
4374         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4375         COMPLEX_TYPE.
4376         (decl_name_str): New local function.
4377         (pp_c_direct_declarator): Call it.
4378         (pp_c_primary_expression): Call it.
4379         (pp_c_id_expression): Call it.
4380         (pp_c_statement): Call it.
4381         (print_c_tree): Create new pp object.
4382         * c-pretty-print.h (pp_c_tree_decl_identifier,
4383         print_c_tree): Declare.
4384         * c-semantics.c: Include langhooks.h
4385         (lang_expand_stmt, lang_expand_decl_stmt,
4386         find_reachable_label_1, find_reachable_label,
4387         expand_unreachable_if_stmt, expand_unreachable_stmt,
4388         genrtl_do_stmt_1): Remove.
4389         (begin_stmt_tree): Don't check for changed filename.
4390         Call annotate_with_locus.
4391         (finish_stmt_tree): Don't set line for end of function.
4392         (build_stmt): Don't check type nodes for
4393         side effects.
4394         (build_stmt): Set TREE_SIDE_EFFECTS.
4395         Set EXPR_LOCUS instead of STMT_LINENO.
4396         (lang_expand_stmt, lang_expand_decl_stmt,
4397         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4398         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4399         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4400         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4401         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4402         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4403         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4404         find_reachable_label_1, expand_unreachable_if_stmt,
4405         expand_unreachable_stmt): Remove.
4406         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4407         * c-simplify.c: New file.
4408         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4409         (struct lang_type): Add fields enum_min and enum_max.
4410         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4411         (c_expand_decl, c_missing_noreturn_ok_p,
4412         c_types_compatible_p): Declare.
4413         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4414         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4415         (default_function_array_conversion): Rely on build to
4416         set TREE_CONSTANT.
4417         (parser_build_binary_op, pointer_diff): Likewise.
4418         (build_unary_op, build_binary_op): Likewise.
4419         (build_array_ref):
4420         (build_external_ref): Set TREE_INVARIANT.
4421         (build_c_cast, pop_init_level): Likewise.
4422         (process_init_element): Use ASM_VOLATILE_P.
4423         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4424         (c_finish_case): Call c_do_switch_warnings.
4425         * c.opt (fdump-): Remove.
4426         * calls.c (try_to_integrate): Remove.
4427         (prepare_call_address): Replace fndecl arg with a
4428         precomputed static chain value.
4429         (emit_call_1): New argument for full call expr.
4430         (flags_from_decl_or_type): Call special_function_p.
4431         (initialize_argument_information): Add argument
4432         may_tailcall.
4433         (purge_reg_equiv_notes): New.
4434         (expand_call): Do not try to expand calls inline.
4435         (fixup_tail_calls): New.
4436         * cfg.c: Include timevar.h and ggc.h.
4437         (bb_pool, edge_pool): Remove.
4438         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4439         (entry_exit_blocks): Remove.
4440         (rbi_pool): Declare.
4441         (init_flow): Do not create pools.
4442         Allocate entry/exit block.
4443         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4444         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4445         (unlink_block): Clear b->prev_bb and b->next_bb.
4446         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4447         (dump_flow_info): Work on trees too.
4448         (dump_cfg_bb_info): New.
4449         (brief_dump_cfg): New.
4450         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4451         (find_edge): New.
4452         * cfgbuild.c (rtl_make_eh_edge): Rename from
4453         make_eh_edge.  Update all users.
4454         (find_basic_blocks): Don't call VARRAY_FREE on
4455         basic_block_info.
4456         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4457         and newpos2.
4458         (delete_unreachable_blocks): Return changed status.
4459         (merge_seq_blocks): New.
4460         * cfghooks.c: Include tree-flow.h
4461         (tree_register_cfg_hooks, ir_type): New.
4462         (redirect_edge_and_branch): Change return type to edge.
4463         (predict_edge, predicted_by_p, can_duplicate_block_p,
4464         duplicate_block, block_ends_with_call_p,
4465         block_ends_with_condjump_p, flow_call_edges_add): New.
4466         * cfghooks.h (redirect_edge_and_branch): Change return
4467         type to edge.
4468         (predict_edge, predicted_by_p, can_duplicate_block_p,
4469         duplicate_block, block_ends_with_call_p,
4470         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4471         (redirect_edge_and_branch): Change return type to edge.
4472         (struct cfg_hooks): Add fields block_ends_with_call_p,
4473         block_ends_with_condjump_p, flow_call_edges_add,
4474         predict_edge, predicted_by_p, can_duplicate_block_p and
4475         duplicate_block.
4476         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4477         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4478         (fixup_reorder_chain): Use initialize_bb_rbi.
4479         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4480         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4481         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4482         (insn_locators_initialize): Use new info about blocks.
4483         * cfglayout.h (typedef struct reorder_block_def): Moved to
4484         basic_block.h.
4485         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4486         removed.
4487         * cfgloop.c: Include tree.h and tree-flow.h.
4488         * cfgloop.h (create_loop_notes): Declare.
4489         * cfgloopmanip.c (create_loop_notes): New.
4490         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4491         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4492         and duplicate_block fields.
4493         (create_basic_block_structure): Don't look at
4494         RTX_INTEGRATED_P.
4495         (rtl_block_ends_with_call_p): New.
4496         (rtl_block_ends_with_condjump_p): New.
4497         (need_fake_edge_p): Moved from cfganal.c.
4498         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4499         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4500         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4501         (cfg_layout_rtl_cfg_hooks): Ditto.
4502         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4503         functions to be reachable.
4504         * cgraphunit.c (decide_is_function_needed):
4505         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4506         inline functions don't need to be output.
4507         (cgraph_assemble_pending_functions): Don't do anything
4508         special for nested functions.
4509         (cgraph_mark_functions_to_output): Likewise.
4510         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4511         (cgraph_analyze_function): Use estimate_num_insns.
4512         (cgraph_mark_functions_to_output): Likewise.
4513         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4514         (cgraph_expand_function): Allow functions to not be
4515         emitted.
4516         (cgraph_remove_unreachable_nodes):
4517         (cgraph_recursive_inlining_p): Simplify.
4518         (lookup_recursive_calls,
4519         cgraph_decide_recursive_inlining): New.
4520         (cgraph_decide_inlining_*): Update calls of
4521         cgraph_mark_inline.
4522         * combine.c (get_pos_from_mask): Always set *plen.
4523         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4524         ftree-based-profiling, ftree-ccp, ftree-ch,
4525         ftree-combine-temps, ftree-copyrename, ftree-dce,
4526         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4527         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4528         ftree-lrs): Add.
4529         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4530         Undefine.
4531         * configure.ac: Add --enable-tree-browser option.
4532         Add --with-libbanshee option.
4533         Add GMPLIBS and GMPINC.
4534         * configure: Regenerate.
4535         * coverage.c (tree_ctr_tables): New.
4536         (coverage_counter_alloc): Use it.
4537         (build_ctr_info_value): Ditto.
4538         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4539         (tree_coverage_counter_ref): New.
4540         * coverage.h (coverage_counter_ref): Remove declaration.
4541         (rtl_coverage_counter_ref): Declare.
4542         (tree_coverage_counter_ref): Declare.
4543         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4544         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4545         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4546         (struct cse_basic_block_data): Rename enum values to not
4547         conflict with profile.h; update all uses.
4548         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4549         in comments.
4550         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4551         * diagnostic.h (debug_output_buffer, dump_generic_node,
4552         print_generic_stmt, print_generic_stmt_indented,
4553         print_generic_expr, print_generic_decl,
4554         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4555         Declare.
4556         * dominance.c: Cache immediate dominators.
4557         * domwalk.c: New file.
4558         * domwalk.h: New file.
4559         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4560         (gen_subprogram_die): Generate a DIE for a named
4561         return value.
4562         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4563         (add_location_or_const_value_attribute): Likewise.
4564         (add_bound_info): Likewise.
4565         (gen_decl_die): Likewise.
4566         * emit-rtl.c (maybe_set_first_label_num): New.
4567         (copy_most_rtx): Don't copy the integrated flag.
4568         Copy the new return_val flag.
4569         * et-forest.c (MAX_NODES): Define.
4570         (record_path_before_1): Abort if len is greater than
4571         MAX_NODES.
4572         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4573         gen_eh_region_catch, gen_eh_region_allowed,
4574         gen_eh_region_must_not_throw, get_eh_region_number,
4575         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4576         set_eh_region_tree_label, expand_resx_expr): New.
4577         (expand_eh_region_start, expand_start_catch): Use them.
4578         (expand_end_catch): Tidy.
4579         (note_eh_region_may_contain_throw): Take region argument.
4580         (note_current_region_may_contain_throw): New.
4581         (get_exception_filter): Export.
4582         (collect_eh_region_array): Export.
4583         (remove_unreachable_regions): Check ERT_TRY based on reachability
4584         of catches, not reachability of continue_label.  Never remove
4585         ERT_MUST_NOT_THROW regions.
4586         (collect_rtl_labels_from_trees): New.
4587         (convert_from_eh_region_ranges): Use it.
4588         (connect_post_landing_pads): Handle dying cleanups.
4589         (struct reachable_info): Add callback data.
4590         (add_reachable_handler): Invoke the callback.
4591         (foreach_reachable_handler): New.
4592         (reachable_handlers): Use it.
4593         (arh_to_landing_pad, arh_to_label): New.
4594         (can_throw_internal_1): Split out from can_throw_internal.
4595         (can_throw_external_1): Similarly.
4596         * except.h: Update.
4597         * explow.c (emit_stack_save): Remove savearea mode check.
4598         (update_nonlocal_goto_save_area): New.
4599         (allocate_dynamic_stack_space): Use it.
4600         (probe_stack_range): Never emit loop notes.
4601         * expmed.c (extract_fixed_bit_field): Always propagate the
4602         target for the shift if it is a REG.
4603         * expr.c: Include tree-iterator.h
4604         (is_zeros_p): Remove.
4605         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4606         (count_type_elements): New.
4607         (mostly_zeros_p): Use them.
4608         (expr_wfl_stack): Remove.
4609         (convert_move): Do nothing if to and from are the same.
4610         (emit_block_move_via_loop): Don't emit LOOP notes.
4611         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4612         (emit_move_insn_1): Don't generate inline warnings.
4613         (expand_vars, expand_var): Split from ...
4614         (expand_expr_1): ... here.
4615         (expand_expr_real, expand_expr_real_1):  Use new macros
4616         EXPR_LOCATION and EXPR_HAS_LOCATION.
4617         * expr.h (simplify_builtin_fputs,
4618         simplify_builtin_strcpy, simplify_builtin_strncpy,
4619         expand_var, fixup_tail_calls,
4620         update_nonlocal_goto_save_area): Declare.
4621         (lookup_static_chain, expand_inline_function,
4622         mark_seen_cases): Remove.
4623         (prepare_call_address): Change type of 2nd argument to
4624         rtx.
4625         * final.c (profile_function): Update static chain test.
4626         (final): Don't look at RTX_INTEGRATED_P.
4627         * flags.h (flag_mudflap, flag_mudflap_threads,
4628         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4629         flag_tree_dce, flag_tree_combine_temps,
4630         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4631         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4632         flag_tree_points_to): Declare.
4633         (enum pta_type): Declare.
4634         * flow.c (lang_missing_noreturn_ok_p): Remove.
4635         (check_function_return_warnings): Remove.
4636         (update_life_info): Update comments.
4637         (free_basic_block_vars): Don't call VARRAY_FREE for
4638         basic_block_info.
4639         (regno_uninitialized): Remove.
4640         * fold-const.c (int_const_binop): Make extern.
4641         (non_lvalue): Rely on build to set TREE_CONSTANT.
4642         (operand_equal_p): Replace only_const argument with
4643         flags.  Allow pure functions if OEP_PURE_SAME.
4644         (fold): Use OEP_ONLY_CONST.
4645         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4646         boolean type.
4647         (fold_relational_hi_lo,
4648         nondestructive_fold_binary_to_constant,
4649         nondestructive_fold_unary_to_constant,
4650         fold_read_from_constant_string): New.
4651         * function.c (struct function): Remove calls_constant_p.
4652         (current_function_calls_constant_p): Remove.
4653         (inline_function_decl): Remove.
4654         (put_var_into_stack): Don't use it.
4655         (fix_lexical_addr): Likewise.
4656         (inline_function_decl): Remove extern declaration.
4657         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4658         (trampolines_created): Move to varasm.c.
4659         (free_after_compilation): Update for removed fields.
4660         (allocate_struct_function): Likewise.
4661         (delete_handlers, lookup_static_chain): Remove.
4662         (fix_lexical_addr): Don't consider non-local variable refs.
4663         (trampoline_address): Remove.
4664         (round_trampoline_addr): Move to builtins.c.
4665         (adjust_trampoline_addr): Remove.
4666         (expand_function_start): Update for changes to static chain
4667         and nonlocal goto handling.
4668         (initial_trampoline): Move to varasm.c.
4669         (expand_function_end): Don't build trampolines or kill
4670         unreferenced nonlocal goto labels.
4671         (free_after_compilation): Don't set it.
4672         (expand_function_end): Likewise.
4673         (setjmp_vars_warning): Rename from
4674         uninitialized_vars_warning, remove uninitialized vars warning.
4675         (uninitialized_vars_warning): Remove old comment
4676         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4677         and do not call the langhook.
4678         (expand_function_start, expand_function_end): Don't do
4679         function instrumentation here.
4680         (clear_block_marks): Rename from reorder_blocks_0, export.
4681         (blocks_nreverse): Export.
4682         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4683         of rtl.
4684         (reset_block_changes, record_block_change, finalize_block_changes,
4685         check_block_change, free_block_changes): New functions.
4686         (assign_parms): Setting of current_function_stdarg
4687         moved ...
4688         (allocate_struct_function): ... here.
4689         * function.h (struct function): Remove x_nonlocal_labels,
4690         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4691         x_context_display, x_trampoline_list, needs_context.
4692         Add static_chain_decl, nonlocal_goto_save_area.
4693         (struct function): Remove x_clobber_return_insn.
4694         Add tail_call_emit field, last_label_uid,
4695         unexpanded_var_list, dont_emit_block_notes,
4696         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4697         (clear_block_marks): Declare.
4698         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4699         (mfwrap_spec, mflib_spec): Declare.
4700         (cpp_unique_options, cc1_options): Ditto.
4701         (default_compilers): Add .F and .f90.
4702         (static_specs): Add mfwrap and mflib.
4703         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4704         CONSTANT_RTX_P.
4705         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4706         Update to match insns field in struct edge_def.
4707         * gdbinit.in (pgs, pge): Define.
4708         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4709         instead of the integrated flag.
4710         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4711         * gengtype-yacc.y (bitfieldlen): Add empty action.
4712         (struct_fields): Accept unnamed bitfields.
4713         (bitfieldlen): Split from ...
4714         (bitfieldopt): ... here.
4715         * gengtype.c (ifiles): Add tree-alias-type.h and
4716         tree-flow.h.
4717         * genrecog.c (validate_pattern): Do not handle
4718         CONSTANT_P_RTX.
4719         * gimple-low.c: New file.
4720         * gimplify.c: New file.
4721         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4722         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4723         * ifcvt.c (dead_or_predicable): Initialize local variable
4724         'earliest'.
4725         * input.h (expr_wfl_stack): Remove.
4726         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4727         (setup_initial_hard_reg_value_integration): Likewise.
4728         (initialize_for_inline): Likewise.
4729         (note_modified_parmregs): Likewise.
4730         (integrate_parm_decls): Likewise.
4731         (process_reg_param): Likewise.
4732         (save_parm_insns): Likewise.
4733         (copy_insn_list): Likewise.
4734         (copy_insn_notes): Likewise.
4735         (compare_blocks): Likewise.
4736         (find_block): Likewise.
4737         (inlining): Likewise.
4738         (function_cannot_inline_p): Likewise.
4739         (parmdecl_map): Likewise.
4740         (in_nonparam_insns): Likewise.
4741         (save_for_inline): Likewise.
4742         (FIXED_BASE_PLUS): Likewise.
4743         (expand_inline_function): Likewise.
4744         (copy_rtx_and_substitute): Don't look at map->integrating,
4745         map->inline_target, and inlining, since we are never copying
4746         for integrating.
4747         Don't abort on RTX_INTEGRATED_P.
4748         (old_fun): Remove.
4749         (output_inline_function): Remove.
4750         * integrate.h (struct inline_map): Remove fields integrating,
4751         block_map, leaf_reg_map, inline_target, and local_return_label.
4752         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4753         copy_loop_headers, never_reached_warning): Removed.
4754         (any_uncondjump_p): Reject nonlocal goto.
4755         * langhooks-def.h (lhd_types_compatible_p,
4756         lhd_expand_decl, lhd_gimplify_expr): Declare.
4757         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4758         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4759         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4760         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4761         LANG_HOOKS_GIMPLIFY_EXPR,
4762         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4763         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4764         LANG_HOOKS_GIMPLIFY_EXPR,
4765         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4766         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4767         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4768         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4769         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4770         LANG_HOOKS_DECL_UNINIT,
4771         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4772         * langhooks.c: Include tree-simple.h.
4773         (lhd_expand_decl): New.
4774         (lhd_types_compatible_p): New.
4775         (lhd_decl_uninit): Remove.
4776         (lhd_gimplify_expr): New.
4777         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4778         Remove.
4779         (struct lang_hooks_for_functions): Add field
4780         missing_noreturn_ok_p.
4781         (struct lang_hooks): Add field expand_decl,
4782         types_compatible_p, gimplify_expr and
4783         gimple_before_inlining.
4784         Remove fields decl_uninit and rtl_expand
4785         * opts.c (decode_options): Set flag_tree_ccp,
4786         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4787         flag_tree_pre, flag_tree_ter,
4788         flag_tree_live_range_split, flag_tree_sra,
4789         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4790         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4791         OPT_fmudflapth, OPT_fmudflapir,
4792         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4793         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4794         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4795         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4796         OPT_ftree_points_to_ and OPT_ftree_pre.
4797         * output.h (regno_uninitialized, find_basic_blocks,
4798         cleanup_cfg, delete_unreachable_blocks,
4799         check_function_return_warnings): Remove.
4800         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4801         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4802         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4803         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4804         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4805         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4806         Define.
4807         * passes.c (rest_of_decl_compilation):
4808         (rest_of_handle_sibling_calls): Remove.
4809         (rest_of_handle_inlining): Remove.
4810         (rest_of_handle_gcse): Do not run
4811         purge_builtin_constant_p.
4812         (rest_of_compilation): Update.
4813         Do not call copy_loop_headers.
4814         Do rtl-based profiling only when
4815         !flag_tree_based_profiling.  Register rtl-based profiling
4816         hooks.
4817         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4818         (predicted_by_p): Rename to ...
4819         (rtl_predicted_by_p): .. this one; make global
4820         (tree_predicted_by_p): New.
4821         (dump_prediction): Add FILE argument.
4822         (predict_edge): Rename to ...
4823         (rtl_predict_edge): .. this one.
4824         (tree_predict_edge): New.
4825         (combine_predictions_for_insn): Update calls of predict_edge.
4826         (predict_loops): Break out from ...
4827         (estimate_probability): ... here; update comments; move updating
4828         of unknown probabilities from ...
4829         (estimate_bb_frequencies): ... here.
4830         (combine_predictions_for_bb): New.
4831         (tree_predict_by_opcode): New.
4832         (tree_estimate_probability): New.
4833         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4834         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4835         * predict.h: Add include guard.
4836         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4837         * pretty-print.c (pp_write_text_to_stream): Make extern.
4838         * pretty-print.h (pp_write_text_to_stream): Declare.
4839         * print-rtl.c (print_rtx): Don't print the integrated flag.
4840         Print the return_val flag.
4841         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4842         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4843         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4844         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4845         * profile.c: Include cfghooks.h, tree-flow.h.
4846         (profile_hooks): New.
4847         (profile_dump_file): New.
4848         (instrument_edges): Use hooks instead of RTL-specific code.
4849         (instrument_values): Ditto.
4850         (get_exec_counts): Ditto.
4851         (compute_branch_probabilities): Ditto.
4852         (compute_value_histograms): Ditto.
4853         (branch_prob): Ditto.
4854         (find_spanning_tree): Ditto.
4855         (end_branch_prob): Ditto.
4856         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4857         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4858         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4859         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4860         (tree_register_profile_hooks): New.
4861         (rtl_register_profile_hooks): New.
4862         * ra-rewrite.c (rewrite_program): Clear variable info.
4863         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4864         * regs.h: Add include guards.
4865         * reload.c (decompose): Clear val using memset.
4866         * rtl.def (CONSTANT_P_RTX): Remove.
4867         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4868         (copy_loop_headers): Remove.
4869         (struct rtx_def): Replace the integrated flag with the
4870         return_val flag.
4871         (maybe_set_first_label_num): Declare.
4872         (init_branch_prob): Move declaration to value-prof.h.
4873         (end_branch_prob): Ditto.
4874         (branch_prob): Ditto.
4875         (never_reached_warning): Don't declare it.
4876         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4877         (hoist_insn_to_edge): Update to match field insns in
4878         struct edge_def.
4879         * sbitmap.c (sbitmap_realloc): New.
4880         * sbitmap.h (sbitmap_realloc): Declare.
4881         * sibcall.c: Remove file.
4882         * simplify-rtx.c (simplify_rtx): Do not handle
4883         CONSTANT_P_RTX.
4884         * stmt.c (parse_output_constraint): Don't warn for read-write
4885         memory operand.
4886         (tail_recursion_args): Use types_compatible_p langhook.
4887         (force_label_rtx): Don't look at inline_function_decl.
4888         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4889         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4890         (declare_nonlocal_label): Remove.
4891         (expand_goto): Don't handle nonlocal gotos.
4892         (expand_nl_handler_label): Remove.
4893         (expand_nl_goto_receivers): Remove.
4894         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4895         update_nonlocal_goto_save_area.
4896         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4897         (warn_if_unused_value): Likewise.
4898         (expand_start_loop, expand_loop_continue_here,
4899         expand_end_loop): Don't create loop notes.
4900         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4901         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4902         (expand_end_case_type): Don't do warn_switch handling.
4903         (pushcase, pushcase_range) Update add_case_node calls.
4904         (add_case_node): Add dont_expand_label argument.
4905         (same_case_target_p): Don't search rtl.
4906         (expand_start_bindings_and_block, expand_end_bindings):
4907         Don't emit block notes when dont_emit_block_notes.
4908         (using_eh_for_cleanups_p): Export.
4909         (expand_return): Allow any typed rhs.
4910         (expand_stack_alloc): New.
4911         (expand_stack_save, expand_stack_restore): New.
4912         (containing_blocks_have_cleanups_or_stack_level): New
4913         function.
4914         (asm_op_is_mem_input): New fn.
4915         (expand_asm_expr): New fn.
4916         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4917         nodes.
4918         * stor-layout.c (layout_type): Just return if type is
4919         error_mark_node.
4920         (update_alignment_for_field): Export.
4921         (variable_size): We don't care about global_bindings_p if
4922         the frontend doesn't want a list of the expressions.
4923         * system.h: Poison INTEGRATE_THRESHOLD.
4924         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4925         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4926         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4927         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4928         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4929         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4930         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4931         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4932         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4933         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4934         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4935         TV_CONTROL_DEPENDENCES): Define.
4936         * toplev.c: Include tree-alias-common.h
4937         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4938         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4939         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4940         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4941         flag_tree_combine_temps, flag_tree_ter,
4942         flag_tree_live_range_split, flag_tree_dom,
4943         flag_tree_copyrename, flag_tree_dse): Declare.
4944         (f_options): Add tree-based-profiling, tree-gvn,
4945         tree-pre, tree-ccp, tree-dce,
4946         tree-dominator-opts, tree-copyrename, tree-dse,
4947         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4948         (wrapup_global_declarations): Don't output nested inlined functions.
4949         (general_init): Call init_tree_optimization_passes.
4950         (process_options): Sorry for -ftree-based-profiling plus
4951         -ftest-coverage or -fprofile-values.
4952         * toplev.h (init_tree_optimization_passes,
4953         flag_tree_based_profiling): Declare.
4954         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4955         * tree-alias-ander.c: New file.
4956         * tree-alias-ander.h: New file.
4957         * tree-alias-common.c: New file.
4958         * tree-alias-common.h: New file.
4959         * tree-alias-type.c: New file.
4960         * tree-alias-type.h: New file.
4961         * tree-browser.c: New file.
4962         * tree-browser.def: New file.
4963         * tree-cfg.c: New file.
4964         * tree-complex.c: New file.
4965         * tree-dfa.c: New file.
4966         * tree-dump.c (dump_enable_all): New.
4967         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4968         (dump_node): Remove const from field suffix and swtch.
4969         (dump_files): Add null entry, .generic, .nested, .vcg,
4970         .xml and a match-all entry.
4971         (extra_dump_files, extra_dump_files_in_use,
4972         extra_dump_files_alloced): Declare
4973         (dump_option_value_info): Add raw, details, stats,
4974         blocks, vops, lineno, uid and all.
4975         (dump_register): New.
4976         (get_dump_file_info): New.
4977         (dump_begin): Call it.
4978         Do nothing for TDI_none.
4979         (dump_begin): Include phase number in dump filename.
4980         (dump_enable_all): New.
4981         (dump_switch_p_1): Split out from dump_switch_p.
4982         (dump_switch_p): Handle extra_dump_files.
4983         Start our scan at TDI_none + 1.
4984         If -fdump-tree-all was given, call dump_enable_all.
4985         * tree-dump.h: Include splay-tree.h.
4986         (dump_function, dump_function_to_file, dump_register):
4987         Declare.
4988         * tree-eh.c: New file.
4989         * tree-flow-inline.h: New file.
4990         * tree-flow.h: New file.
4991         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4992         * tree-inline.h (walk_tree,
4993         walk_tree_without_duplicates): Move to tree.h.
4994         (estimate_num_insns): Declare.
4995         * tree-into-ssa.c: New file.
4996         * tree-iterator.c: New file.
4997         * tree-iterator.h: New file.
4998         * tree-mudflap.c: New file.
4999         * tree-mudflap.h: New file.
5000         * tree-nested.c: New file.
5001         * tree-nomudflap.c: New file.
5002         * tree-nrv.c: New file.
5003         * tree-optimize.c (dump_flags, vars_to_rename,
5004         in_gimple_form, all_passes, pass_gimple,
5005         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
5006         (execute_gimple, execute_rebuild_bind,
5007         gate_all_optimizations, execute_del_cfg,
5008         register_one_dump_file, register_dump_files, dup_pass_1,
5009         init_tree_optimization_passes, execute_todo,
5010         execute_one_pass, execute_pass_list): New.
5011         (clear_decl_rtl): Remove.
5012         (tree_rest_of_compilation): Update to use tree
5013         optimizers.
5014         * tree-outof-ssa.c: New file.
5015         * tree-pass.h: New file.
5016         * tree-phinodes.c: New file.
5017         * tree-pretty-print.c: New file.
5018         * tree-profile.c: New file.
5019         * tree-simple.c: New file.
5020         * tree-simple.h: New file.
5021         * tree-sra.c: New file.
5022         * tree-ssa-alias.c: New file.
5023         * tree-ssa-ccp.c: New file.
5024         * tree-ssa-copy.c: New file.
5025         * tree-ssa-copyrename.c: New file.
5026         * tree-ssa-dce.c: New file.
5027         * tree-ssa-dom.c: New file.
5028         * tree-ssa-dse.c: New file.
5029         * tree-ssa-forwprop.c: New file.
5030         * tree-ssa-live.c: New file.
5031         * tree-ssa-live.h: New file.
5032         * tree-ssa-loop.c: New file.
5033         * tree-ssa-operands.c: New file.
5034         * tree-ssa-operands.h: New file.
5035         * tree-ssa-phiopt.c: New file.
5036         * tree-ssa-pre.c: New file.
5037         * tree-ssa.c: New file.
5038         * tree-ssanames.c: New file.
5039         * tree-tailcall.c: New file.
5040         * tree.c: Include tree-iterator.h, basic-block.h and
5041         tree-flow.h.
5042         (tree_node_kind): Add phi_nodes and ssa names.
5043         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
5044         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
5045         (make_node_stat): Handle PHI_NODE and SSA_NAME.
5046         <'c'> Set TREE_INVARIANT.
5047         (copy_node_stat): Abort if trying to copy a
5048         STATEMENT_LIST.
5049         Clear TREE_VISITED.
5050         Clear annotation field.
5051         (build_constructor): Copy TREE_INVARIANT from vals.
5052         Don't clear TREE_CONSTANT.
5053         (expr_first, expr_last, expr_length): Remove.
5054         (staticp): Pass unknown component references to the language.
5055         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
5056         (skip_simple_arithmetic): Likewise.
5057         (stabilize_reference_1): Likewise.
5058         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
5059         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
5060         STATEMENT_LIST.
5061         (lhd_unsave_expr_now): Remove.
5062         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
5063         (recompute_tree_invarant_for_addr_expr): New.
5064         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
5065         Call recompute_tree_invarant_for_addr_expr.
5066         Set TREE_INVARIANT accordingly.
5067         (build2_stat): Don't handle CALL_EXPR.
5068         (build3_stat): Don't call build2_stat for CALL_EXPRs.
5069         (build_expr_wfl): Remove.
5070         (annotate_with_file_line, annotate_with_locus): New.
5071         (simple_cst_equal): Call simple_cst_list_equal to compare
5072         CONSTRUCTOR_ELTS pointers.
5073         (iterative_hash_expr): Don't hash types associated
5074         with conversions.  Instead hash on the signedness of the
5075         toplevel object and the operand of the conversion.
5076         (dump_tree_statistics): Call ssanames_print_statistics
5077         and phinodes_print_statistics.
5078         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
5079         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
5080         needs_to_live_in_memory): New.
5081         (initializer_zerop): Handle VECTOR_CST.  Don't check
5082         AGGREGATE_TYPE_P for CONSTRUCTOR.
5083         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
5084         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
5085         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
5086         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
5087         (CALL_EXPR): Add another operand.
5088         (EXPR_WITH_FILE_LOCATION): Remove.
5089         (SWITCH_EXPR): Add another operand.
5090         * tree.h: Update various comments.
5091         (union tree_ann_d): Forward declare.
5092         (struct tree_common): Add fields nowarning_flag,
5093         invariant_flag and visited.
5094         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
5095         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
5096         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5097         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5098         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5099         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5100         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5101         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5102         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5103         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5104         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5105         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5106         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5107         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5108         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5109         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5110         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5111         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5112         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5113         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5114         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5115         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5116         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5117         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5118         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5119         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5120         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5121         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5122         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5123         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5124         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5125         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5126         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5127         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5128         TDF_UID,): Define.
5129         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5130         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5131         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5132         EXPR_WFL_SET_LINECOL): Remove.
5133         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5134         make_phi_node, init_phinodes, fini_phinodes,
5135         release_phi_node, phinodes_print_statistics,
5136         init_ssanames, fini_ssanames, make_ssa_name,
5137         release_ssa_name, ssanames_print_statistics,
5138         annotate_with_file_line, build_empty_stmt,
5139         annotate_with_locus, expr_only, categorize_ctor_elements,
5140         count_type_elements, add_var_to_bind_expr, is_essa_node,
5141         expand_stack_alloc, expand_stack_save,
5142         expand_stack_restore, add_case_node, operand_equal_p,
5143         nondestructive_fold_unary_to_constant,
5144         nondestructive_fold_binary_to_constant,
5145         fold_read_from_constant_string, int_const_binop,
5146         strip_float_extensions, simplify_builtin, c_strlen,
5147         recompute_tree_invarant_for_addr_expr,
5148         needs_to_live_in_memory, make_vector,
5149         setjmp_vars_warning, update_alignment_for_field,
5150         expand_asm_expr, asm_op_is_mem_input,
5151         containing_blocks_have_cleanups_or_stack_level,
5152         create_artificial_label, gimplify_function_tree,
5153         get_name, unshare_expr, walk_tree,
5154         walk_tree_without_duplicates, in_gimple_form): Declare.
5155         (struct tree_exp): Add fields locus and block.
5156         (struct tree_ssa_name, struct edge_def, struct
5157         tree_phi_node, struct tree_eref_common, struct
5158         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5159         union alias_var_def, struct tree_statement_list_node,
5160         struct tree_statement_list, enum operand_equal_flag): Declare.
5161         (enum tree_node_structure_enum): Add TS_SSA_NAME,
5162         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5163         TS_STATEMENT_LIST.
5164         (union tree_node): Add fields ssa_name, phi, eref, ephi,
5165         euse and stmt_list.
5166         (function_cannot_inline_p, uninitialized_vars_warning,
5167         save_for_inline, output_inline_function, all_cases_count,
5168         check_for_full_enumeration_handling,
5169         declare_nonlocal_label): Remove.
5170         (enum tree_dump_index): Add TDI_none, TDI_tu,
5171         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5172         * unroll.c (unroll_loop): Don't clear map->inline_target.
5173         * unwind-sjlj.c (uw_install_context): Make a proper static inline
5174         function.
5175         * value-prof.c (value_prof_hooks): New.
5176         (find_values_to_profile): Rename to rtl_find_values_to_profile.
5177         Move rtl-specific bits in from branch_prob.
5178         (value_profile_transformations): Rename to
5179         rtl_value_profile_transformations.
5180         (struct value_prof_hooks): New.
5181         (rtl_value_prof_hooks): New.
5182         (rtl_register_value_prof_hooks): New.
5183         (tree_find_values_to_profile): New stub.
5184         (tree_value_profile_transformations): New stub.
5185         (tree_value_prof_hooks): New stub.
5186         (tree_register_value_prof_hooks): New stub.
5187         (find_values_to_profile): New.
5188         (value_profile_transformations): New.
5189         * value-prof.h: Add multiple inclusion guard.
5190         (struct histogram_value): Change rtx fields to void *.
5191         (rtl_register_value_prof_hooks): New declaration.
5192         (tree_register_value_prof_hooks): New declaration.
5193         (find_values_to_profile): New declaration.
5194         (free_profiled_values): New declaration.
5195         (value_profile_transformations): New declaration.
5196         (struct profile_hooks): New declaration.
5197         (init_branch_prob): Declaration moved from rtl.h.
5198         (branch_prob): Declaration moved from rtl.h.
5199         (end_branch_prob): Declaration mooved from rtl.h.
5200         (tree_register_profile_hooks): New declaration.
5201         (rtl_register_profile_hooks): New declaration.
5202         (tree_profile_hooks): New declaration.
5203         (rtl_profile_hooks): New declaration.
5204         * varasm.c: Include tree-mudflap.h.
5205         (TRAMPOLINE_ALIGNMENT): Remove.
5206         (make_decl_rtl): Call mudflap_enqueue_decl.
5207         (assemble_static_space):
5208         (assemble_trampoline_template): Set and return
5209         TRAMPOLINE_ALIGNMENT.
5210         * varray.c (element): Add GENERIC_PTR_NOGC entry.
5211         Add entry for 'tree *'.
5212         Add entry for struct edge_def *.
5213         (varray_copy): New.
5214         * varray.h (enum varray_data_enum): Add
5215         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5216         VARRAY_DATA_TREE_PTR.
5217         (union varray_data_tag): Corresponding changes.
5218         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5219         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5220         VARRAY_EDGE, VARRAY_TREE_PTR,
5221         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5222         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5223         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5224
5225         * config/*/*: Various updates for changed macros, tree
5226         codes, etc.  Check ChangeLog.tree-ssa.
5227
5228         * doc/cfg.texi: New file.
5229         * doc/tree-ssa.texi: New file.
5230         * doc/c-tree.texi: Document new codes.
5231         * doc/gccint.texi: Include new files.
5232         * doc/install.texi: Document new features.
5233         * doc/invoke.texi: Document new switches.
5234         * doc/passes.texi: Document new passes.
5235         * doc/rtl.texi: Update changed RTL codes.
5236         * doc/sourcebuild.texi: Update build instructions.
5237         * doc/standards.texi: Document Fortran changes.
5238         * doc/tm.texi: Update.
5239
5240 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5241
5242         Replace several arrays with a struct of arrays.
5243         * combine.c (struct reg_stat): New.
5244         (init_reg_last_arrays): Renamed to...
5245         (init_reg_last): ...this.  Callers adjusted.
5246         (reg_stat): New.
5247         (combine_instructions): Allocate it and use it.
5248         (reg_last_death, reg_last_set, reg_last_set_value,
5249         reg_last_set_label, reg_last_set_table_tick,
5250         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5251         reg_last_set_mode, reg_last_set_nonzero_bits,
5252         reg_last_set_sign_bit_copies): Replace throughout
5253         with items of reg_stat.
5254
5255 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5256
5257         PR optimization/15100
5258         * combine.c (distribute_notes): Don't create a dangling
5259         REG_LIBCALL/REG_RETVAL note.
5260
5261 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5262
5263         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5264
5265         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5266         negv2si2.
5267
5268 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5269
5270         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5271
5272 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5273
5274         * doc/gty.texi (GTY Options): Clarify example.
5275
5276 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5277
5278         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5279         Add const qualifier to altivec vector type if one is needed.
5280
5281 2004-05-11  Paul Brook  <paul@codesourcery.com>
5282
5283         * flags.h (flag_short_enums): Update comment.
5284         * opts.c (decode_options): Set flag_short_enums to 2.
5285         * toplev.c (flag_short_enums): Update comment.
5286         (process_options): Call default_short_enums target hook.
5287
5288 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5289
5290         PR target/14063
5291         * config/rs6000/altivec.md (altivec_dssall):
5292         Change to unspec_volatile.
5293         (altivec_dss): Likewise.
5294
5295 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5296
5297         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5298         vnor.
5299         ("one_cmplv8hi2"): Same.
5300         ("one_cmplv4si2"): Same.
5301
5302 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5303
5304         PR target/15130
5305         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5306         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5307         into account.  Compute the correct number of general registers
5308         for the return value.  Generate a special push/pop sequence when
5309         failing to get a temporary register for non SHmedia epilogue.
5310         (sh_expand_epilogue): Add an argument to show whether it's for
5311         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5312         -1 if needed.
5313         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5314         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5315         with 1.
5316         (epilogue): Call sh_expand_epilogue with 0.
5317
5318 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5319
5320         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5321         goto a cleanup label.  After the cleanup, free the allocated memory.
5322
5323 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5324
5325         * config/rs6000/altivec.h (vec_sld): Add overloads for
5326         argument/return types of 'vector bool int', 'vector bool short'
5327         and 'vector bool char'.
5328
5329 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5330
5331         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5332         nested function.
5333
5334 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5335
5336         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5337         treating missing ones as "".
5338         * config/mips/mips.md: Remove constraints from match_operands and
5339         match_scratches if they appear in define_expands (except reload*),
5340         define_peephole2s, define_splits or attribute specifications.
5341         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5342         constraint strings.
5343
5344 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5345
5346         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5347         AltiVec vectors.
5348         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5349         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5350         byte boundary.  Remove useless code.  Add function comment.
5351         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5352         call to where it belongs.
5353         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5354         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5355         (rs6000_va_arg): Adjust for AltiVec change.
5356
5357 2004-05-10  Paul Brook  <paul@codesourcery.com>
5358
5359         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5360         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5361         (TARGET_DOUBLEWORD_ALIGN): Use it.
5362         (WCHAR_TYPE): Define.
5363         (WCHAR_SIZE_TYPE): Define.
5364         (SIZE_TYPE): Define.
5365
5366 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5367
5368         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5369         when size is 8 bytes.
5370         (function_arg_advance): Account for stack space used by AltiVec
5371         args when -mabi=altivec.  Simplify alignment calculations.  For
5372         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5373         (function_arg): Similarly.
5374         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5375         not AltiVec ABI.
5376         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5377         Correct alignment, and align before testing reg count.  Remove
5378         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5379         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5380         TARGET_FPRS here..
5381         (rs6000_function_value): .. not here before call.
5382
5383 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5384
5385         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5386
5387 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5388
5389         PR 15007
5390         * c-decl.c (current_file_decl): Rename to all_translation_units,
5391         adjust comment.
5392         (pop_scope): If popping file_scope, construct a
5393         TRANSLATION_UNIT_DECL and make it the context of all the
5394         symbols in the scope.
5395         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5396         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5397         anything to current_file_decl.
5398         (pushdecl_top_level): Likewise.
5399         (store_parm_decls_newstyle): Adjust check for nested function.
5400         (c_write_global_declarations): Update for renamed variable.
5401
5402 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5403
5404         * config/rs6000/rs6000-protos.h
5405         (rs6000_conditional_register_usage): Protoize.
5406
5407         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5408
5409         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5410         function.
5411
5412 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5413
5414         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5415         where op is a comparison operator and C1 and C2 are integer constants
5416         into a range check.
5417         (fold): Call fold_div_compare.
5418
5419 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5420
5421         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5422         problems with earlier versions of the GNU compiler.
5423
5424 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5425
5426         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5427         Declare.
5428
5429         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5430         (rs6000_hard_regno_mode_ok): New.
5431         (rs6000_init_hard_regno_mode_ok): New.
5432         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5433
5434         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5435         result.
5436
5437 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5438
5439         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5440         define as macros #ifdef __APPLE_ALTIVEC__.
5441
5442 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5443
5444         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5445         Generate appropriate parallels for vector arguments
5446         passed to vararg functions. (function_arg): make the call
5447         to rs6000_mixed_function_arg for vector args as needed.
5448
5449 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5450
5451         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5452         EABI_FLOAT_VARARGS_P.
5453
5454 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5455
5456         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5457         * config/mips/mips.c (override_options): Disable branch likely
5458         instructions if TUNE_MIPS5500.
5459
5460 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5461
5462         * config/mips/mips.c (override_options): Allow the hi and lo registers
5463         to store any integral mode, not just MODE_INTs.
5464
5465 2004-05-07  Paul Brook  <paul@codesourcery.com>
5466
5467         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5468         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5469         (TARGET_DOUBLEWORD_ALIGN): Use it.
5470         (WCHAR_TYPE): Define.
5471         (WCHAR_SIZE_TYPE): Define.
5472         (SIZE_TYPE): Define.
5473
5474 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5475
5476         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5477         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5478
5479 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5480
5481         * loop-doloop.c (doloop_valid_p): Make sure that body
5482         gets freed.
5483
5484 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5485
5486         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5487         declaration.
5488         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5489         (sparc_skip_caller_unimp): New global variable.
5490         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5491         Use it instead of SKIP_CALLERS_UNIMP_P.
5492         * config/sparc/sparc.md (call expander): Add sanity check.
5493         (call_address_struct_value_sp32): Re-sync with expander.
5494         (call_symbolic_struct_value_sp32): Likewise.
5495         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5496         of custom predicate.
5497
5498 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5499
5500         PR c++/14962
5501         * c-pragma.c (handle_pragma_redefine_extname): Only change
5502         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5503
5504 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5505
5506         * optabs.h (enum optab_index): Add new OTI_log1p.
5507         (log1p_optab): Define corresponding macro.
5508         * optabs.c (init_optabs): Initialize log1p_optab.
5509         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5510         patterns.
5511         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5512         using log1p_optab.
5513         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5514         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5515
5516         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5517
5518         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5519         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5520         Prototype here.
5521         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5522         x87's fyl2xp1 instruction.
5523         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5524         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5525         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5526         log1p  and log1pl built-ins as inline x87 intrinsics.
5527
5528 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5529
5530         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5531         * config/arm/freebsd.h: Likewise.
5532         * config/ia64/freebsd.h: Likewise.
5533         * config/sparc/freebsd.h: Likewise.
5534
5535 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5536
5537         PR optimization/15296
5538         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5539         getting last consecutive label at a branch.
5540         (relax_delay_slots): Similar, near top of loop.
5541
5542 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5543
5544         PR target/15202
5545         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5546         register to general register.
5547
5548 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5549
5550         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5551         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5552         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5553         (STACK_BOUNDARY): Delete.
5554
5555 2004-05-06  Stuart Hastings  <stuart@apple.com>
5556
5557         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5558         mistakenly clobbered by 1.423.
5559
5560 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5561
5562         * doc/invoke.texi: Document -mvr4130-align.
5563         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5564         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5565         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5566         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5567         * config/mips/mips.md: Include sched-int.h.
5568         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5569         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5570         (override_options): Enable -mvr4130-align at -O3 and above.
5571         (mips_sim_insn): New variable.
5572         (mips_sim): New structure.
5573         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5574         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5575         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5576         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5577         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5578         (mips_reorg): Call vr4130_align_insns.
5579         (vr4130_last_insn): New variable.
5580         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5581         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5582         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5583         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5584         (mips_use_dfa_pipeline_interface): Return true for the same.
5585         * config/mips/4130.md: New file.
5586         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5587         "mult;mflo" into "mtlo;macc".
5588         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5589         target of maccs.
5590         (*msac_using_macc): New pattern.
5591
5592 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5593
5594         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5595         (ir_vr55_hilo): Split into...
5596         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5597         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5598         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5599         Add various multiplication bypasses.
5600         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5601         multiplication.
5602
5603 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5604
5605         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5606         attribute to "XF".
5607
5608 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5609
5610         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5611         (fmod_optab, drem_optab): Define corresponding macros.
5612         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5613         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5614         using fmod?f3 and drem?f3 patterns.
5615         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5616         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5617         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5618         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5619         flag_unsafe_math_optimizations is set.
5620
5621         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5622         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5623
5624         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5625         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5626         Prototype here.
5627         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5628         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5629         fprem and fprem1 instructions.
5630         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5631         Rename insn definition to x86_fnstsw_1.
5632         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5633         x87 instructions.
5634         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5635         and fmodl built-ins as inline x87 intrinsics.
5636         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5637         and dreml built-ins as inline x87 intrinsics.
5638
5639 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5640
5641         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5642
5643 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5644
5645         PR driver/9822
5646         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5647
5648 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5649
5650         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5651         representation.
5652
5653 2004-05-06  Paul Brook  <paul@codesourcery.com>
5654
5655         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5656         (arm_coproc_mem_operand): ... To this.
5657         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5658         (arm_legitimate_index_p): Ditto.
5659         (vfp_mem_operand): Rename ...
5660         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5661         (vfp_secondary_reload_class): Use it.
5662         (output_move_double): Use doubleword load/store instructions.
5663         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5664         * config/arm/arm.h (TARGET_LDRD): Define.
5665         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5666         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5667         New splitter for invalid doubleword loads.
5668         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5669         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5670         * doc/md.texi: Document Uy constraint.
5671
5672 2004-05-05  Jan Hubicka  <jh@suse.cz>
5673
5674         PR opt/14980
5675         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5676         inline clones.
5677
5678 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5679
5680         PR target/15290
5681         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5682         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5683
5684 2004-05-05  Mike Stump  <mrs@apple.com>
5685
5686         * config/darwin-c.c (add_framework): Copy the directory name as it
5687         can be freed later.  Also, ensure we always allocate enough room
5688         for the cached framework information.
5689         (find_subframework_header): Keep track of the directory where the
5690         subframework header was found.
5691         (framework_construct_pathname): Speed up by not trying to re-add a
5692         framework.
5693         * cppfiles.c (search_path_exhausted): Arrange for the missing
5694         header callback to be able to set the directory where the header
5695         was found.
5696         (cpp_get_dir): Add.
5697         * cpplib.h (missing_header_cb): Add a parameter.
5698         (cpp_get_dir): Add.
5699
5700 2004-05-03  Mike Stump  <mrs@apple.com>
5701
5702         * doc/invoke.texi (Directory Options): Document -iquote.
5703         * doc/cpp.texi: Likewise.
5704         * doc/cppopts.texi: Likewise.
5705         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5706         (c_common_handle_option): Likewise.
5707         * c.opt (iquote): Add.
5708         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5709         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5710
5711         * c-opts.c (case OPT_I): Deprecate -I- support.
5712         * doc/invoke.texi: Likewise.
5713         * doc/cpp.texi: Likewise.
5714         * doc/cppopts.texi: Likewise.
5715
5716 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5717
5718         * basic-block.h (free_basic_block_vars): Update prototype.
5719         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5720         argument.
5721         (life_analysis): Update call.
5722         * ifcvt.c (if_convert): Likewise.
5723         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5724         * passes.c (rest_of_handle_final): Likewise.
5725         (rest_of_compilation): Likewise.
5726         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5727
5728         * emit-rtl.c (next_real_insn): Use INSN_P.
5729         (prev_real_insn): Likewise.
5730
5731 2004-05-05  Eric Christopher  <echristo@redhat.com>
5732
5733         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5734         representation.
5735
5736 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5737
5738         * config/rs6000/rs6000.c (build_opaque_vector_type):
5739         New function.
5740         (rs6000_init_builtins): Use it.
5741
5742 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5743
5744         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5745         (func_table): Change type from char ** to vms_func_ref.
5746         (write_rtnbeg):  Update to reflect func_table change.  Use
5747         fde->funcdef_number instead of rtnnum in output.
5748         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5749
5750 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5751             Richard Henderson  <rth@redhat.com>
5752
5753         PR target/14899
5754
5755         * c-common.c (vector_types_convertible_p): New function.
5756         * c-typeck.c (comptypes): Recurse on vector types.
5757         (convert_for_assignment): Use vector_types_convertible_p.
5758         (digest_init): Use vector_types_convertible_p to check
5759         validness of constant vector initializers; otherwise treat
5760         them as scalars.
5761         * tree.c (make_or_reuse_type): New.
5762         (build_common_tree_nodes): Use it.
5763         * cp/call.c (standard_conversion): Likewise.
5764         * cp/typeck.c (comptypes): Recurse on vector types.
5765         (convert_for_assignment): Use vector_types_convertible_p.
5766
5767 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5768
5769         * config/mips/mips.c (override_options): Default to no
5770         generation of branch-likely operations when tuning for
5771         CPUs where they tend to have a negative performance impact
5772         (e.g., SB-1).
5773
5774 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5775
5776         * expr.c (store_constructor_field): Don't call store_constructor
5777         if bitsize is not a multiple of a byte.
5778
5779 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5780
5781         * reload1.c (inherit_piecemeal_p): New function.
5782         (emit_reload_insns): When reloading a group of hard registers, use
5783         inherit_piecemeal_p to decide whether the values of individual hard
5784         registers can be inherited.
5785
5786 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5787
5788         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5789         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5790         * config/t-linux (LIB2ADDEHDEP): Likewise.
5791
5792 2004-05-04  Paul Brook  <paul@codesourcery.com>
5793
5794         * config/arm/crti.asm: Push an even number of registers.
5795         * config/arm/crtn.asm: And restore them.  Load via sp.
5796
5797 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5798
5799         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5800         Collect overhead information.
5801         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5802         parameter and pass it through.
5803         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5804         MEM_STAT_DECL parameter and pass it through.
5805         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5806         MEM_STAT_DECL parameter and pass it through.
5807
5808 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5809
5810         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5811
5812         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5813
5814         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5815         rs6000_hard_regno_nregs.
5816
5817 2004-05-03  Eric Christopher  <echristo@redhat.com>
5818
5819         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5820         prologue insn instead of setting up call.
5821         (s390_emit_epilogue): Ditto.
5822         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5823         (define_constants): Add numbers for above patterns.
5824
5825 2004-05-03  Eric Christopher  <echristo@redhat.com>
5826
5827         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5828         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5829         * config/s390/s390-protos.h: Prototype.
5830
5831 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5832
5833         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5834         assignment.
5835
5836 2004-05-03  Eric Christopher  <echristo@redhat.com>
5837
5838         * config/mips/mips.md: Fix branch length attribute definition.
5839
5840 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5841
5842         * config.gcc: Remove --enable-altivec support.
5843
5844         * config/rs6000/altivec-defs.h: Remove.
5845
5846 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5847
5848         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5849         * fixinc/fixincl.x: Regenerate.
5850
5851 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5852
5853         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5854         definition.
5855         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5856         float_truncate insn.
5857         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5858         (logb?f2): Reimplement expanders with float_truncate insn.
5859
5860 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5861
5862         PR 14718
5863         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5864         force_type_die for CONST_DECL.
5865
5866 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5867             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5868
5869         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5870         tm-dwarf2.h to tm_file.
5871         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5872         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5873         (ASM_DEBUG_SPEC): Delete.
5874
5875 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5876
5877         * optabs.h (enum optab_index): Add new OTI_expm1.
5878         (expm1_optab): Define corresponding macro.
5879         * optabs.c (init_optabs): Initialize expm1_optab.
5880         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5881         patterns.
5882         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5883         using expm1_optab.
5884         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5885         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5886
5887         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5888         to implement expm1, expm1f and expm1l built-ins as inline x87
5889         intrinsics.
5890
5891 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5892
5893         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5894         * config/frv/frv.md (*return_true, *return_false): New patterns.
5895
5896 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5897
5898         * rtl.h (PHI_NODE_P): Remove.
5899
5900 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5901
5902         PR middle-end/14988
5903         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5904         when passed -2 as 'align'.
5905         (put_var_into_stack): Use 'bool' as the type for the three local
5906         predicates.  Adjust calls to put_reg_into_stack.
5907         When passed a CONCAT, instruct put_reg_into_stack to use
5908         a consecutive stack slot for the second part.
5909         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5910         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5911         parameters.  Retrieve the register mode from 'reg'.
5912         When consecutive_p is true, instruct assign_stack_local_1 to use
5913         BITS_PER_UNIT alignment.
5914         (put_addressof_into_stack): Use 'bool' as the type for the two
5915         local predicates. Adjust call to put_reg_into_stack.
5916
5917 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5918
5919         * fold-const.c (fold_convert_const, fold): Add missing
5920         FIX_ROUND_EXPR case.
5921
5922 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5923
5924         * configure.ac (FLEX, BISON): Only use tools from the build tree
5925         if build equals host.
5926         * configure: Rebuilt.
5927
5928         * config/frv/frv-protos.h (frv_expand_epilogue,
5929         frv_expand_fdpic_call): Add bool argument.
5930         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5931         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5932         (frv_expand_epilogue): Use new argument to decide whether to emit
5933         return instruction or copy the return address to LR.
5934         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5935         sibcalls.
5936         (sibcall_operand): New.
5937         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5938         PLUS nor LABEL_REF.  Add sibcall_operand.
5939         * config/frv/frv.md (call, call_value): Pass false to
5940         frv_expand_fdpic_call.
5941         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5942         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5943         sibcall_value_internal, sibcall_value_fdpicdi): New.
5944         (return_unsigned_true, return_unsigned_false): New.
5945         (epilogue): Adjust call to frv_expand_epilogue.
5946         (sibcall_epilogue): New.
5947
5948         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5949         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5950         before redefining them.
5951
5952 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5953
5954         * builtins.c (fold_fixed_mathfn): New function.
5955         (fold_builtin_lround, fold_builtin): Use it.
5956
5957 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5958
5959         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5960         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5961
5962 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5963
5964         * config/cris/cris.h: Revert my "fix comment typos" patch.
5965
5966 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5967
5968         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5969
5970 2004-05-01  Falk Hueffner  <falk@debian.org>
5971
5972         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5973         builtin_insll): Disallow 0 as first input operand.
5974
5975 2004-05-01  Falk Hueffner  <falk@debian.org>
5976
5977         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5978
5979 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5980
5981         PR middle-end/15054
5982         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5983         on a TARGET_EXPR temp.
5984         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5985         TARGET_EXPR temp slots.
5986
5987 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5988
5989         * simplify-rtx.c (simplify_ternary_operation): When
5990         converting an IF_THEN_ELSE to a relational op, return
5991         correct mode.
5992
5993 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5994
5995         * builtins.c (fold_builtin_round): Fix comment typo.
5996         (fold_builtin_lround): New function.
5997         (fold_builtin): Use it.
5998
5999 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
6000
6001         PR target/11608
6002         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
6003         more like the one in config/dbxelf.h.
6004
6005 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
6006
6007         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
6008         and adjust definition accordingly.
6009         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
6010         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
6011         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
6012         VECTOR_TYPE.
6013
6014 2004-04-30  Jason Merrill  <jason@redhat.com>
6015
6016         PR c++/14587
6017         * config/i386/winnt.c (associated_type): Look for attributes on
6018         the TYPE_MAIN_VARIANT of *this.
6019         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
6020         apply the attributes to the variants.
6021
6022 2004-04-30  Paul Brook  <paul@codesourcery.com>
6023
6024         * config.gcc: Simplify arm --with-{cpu,tune} test.
6025         * config/arm/arm-cores.def: Document whitespace restrictions.
6026
6027 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6028
6029         PR other/1963
6030         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
6031
6032 2004-04-30  Brian Ford  <ford@vss.fsi.com>
6033             DJ Delorie  <dj@redhat.com>
6034
6035         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6036         (DWARF2_DEBUGGING_INFO): Define to enable.
6037         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
6038         DWARF2.
6039         * configure.ac (Target-specific assembler checks)
6040         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
6041         relocs.
6042         * configure: Regenerate.
6043         * config.in: Likewise.
6044
6045         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6046         (ASM_OUPUT_DWARF_OFFSET): Define.
6047
6048 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6049
6050         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
6051         (s390_emit_call): New function prototype added.
6052         (s390_tls_get_offset): Function removed.
6053         * config/s390/s390.c (s390_function_ok_for_sibcall,
6054         s390_call_saved_register_used_p): New functions.
6055         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
6056         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
6057         (s390_emit_tls_call_insn): New function.
6058         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
6059         emit_call_insn.
6060         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
6061         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
6062         added.
6063         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
6064         register number used to hold the target address for sibcalls.
6065         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
6066         New expanders.
6067         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
6068         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
6069         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
6070         Expanders removed.
6071         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
6072         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
6073         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
6074         ("epilogue"): Changed the call to s390_emit_epilogue to use the
6075         new parameter.
6076
6077 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
6078
6079         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
6080         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
6081         reg-stack.c, varasm.c, config/alpha/ev4.md,
6082         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
6083         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
6084         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
6085         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
6086         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
6087         config/ia64/itanium2.md, config/ip2k/ip2k.c,
6088         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
6089         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
6090         comment typos.
6091
6092 2004-04-30  Paul Brook  <paul@codesourcery.com>
6093
6094         * config.gcc: Default ep9312 to hard-float.
6095         * config/arm/arm-cores.def: Add ARCH field.
6096         * config/arm/arm.c (FL_FOR_ARCH*): Define.
6097         (arm_arch_cirrus): New variable.
6098         (all_cores): Set and use arch.
6099         (all_architectures): Ditto.
6100         (arm_arch_name): New variable.
6101         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6102         Set and use arm_arch_cirrus.
6103         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6104         (enum processor_type): Update ARM_CORE define.
6105         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
6106         (CPP_SPEC): Remove %(cpp_cpu_arch).
6107         (CPP_ARCH_DEFAULT_SPEC): Remove.
6108         (CPP_CPU_ARCH_SPEC): Remove.
6109         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6110         (FPUTYPE_DEFAULT): Don't define here.
6111
6112 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
6113
6114         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6115         updates too.
6116
6117 2004-04-30  Paul Brook  <paul@codesourcery.com>
6118
6119         * arm.c (arm_needs_doubleword_align): Use mode alignment.
6120
6121 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
6122
6123         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6124         vec_sububs.
6125         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6126         duplicates.
6127
6128 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6129
6130         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6131         atan2?f3 expanders.
6132
6133 2004-04-29  Nick Clifton  <nickc@redhat.com>
6134
6135         Bug 14093
6136         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6137         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6138         Delete static from definition.
6139         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6140
6141 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6142
6143         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6144         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6145         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6146         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6147
6148 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
6149
6150         * commom.opt (Wfatal-errors): Add it.
6151         * diagnostic.c (flag_fatal_errors): Define it.
6152         (diagnostic_action_after_output): Check for flag_fatal_errors.
6153         * flags.h (flag_fatal_errors): Declare it.
6154         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6155         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6156
6157 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
6158
6159         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6160         blocks which have kill flag set.
6161
6162 2004-04-29  Ben Elliston  <bje@au.ibm.com>
6163
6164         * configure.ac (--with-as): Abort if user-supplied assembler
6165         cannot be executed.
6166         (--with-ld): Likewise for the linker.
6167         * configure: Regenerate.
6168
6169 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6170
6171         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6172         isn't NULL before using it.
6173
6174 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
6175
6176         PR target/15189
6177         * config/mips/mips.md (load_df_low): Use default length.
6178         (load_df_high, store_df_high): Likewise.
6179
6180 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6181
6182         * config/mips/mips.md, config/mips/sb1.md,
6183         config/rs6000/rs6000.c: Fix comment typos.
6184
6185 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6186
6187         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6188         Fix comment typos.
6189
6190 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
6191
6192         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6193         (delete_if_ordinary): Use above macro.
6194         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6195         Update copyright.
6196         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6197
6198 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
6199
6200         * c-decl.c (get_parm_info): Use the correct tag keywords when
6201         warning about type declarations in prototypes.
6202
6203 2004-04-29  Paul Brook  <paul@codesourcery.com>
6204
6205         * config.gcc: Pull list of cores from arm-cores.def.
6206
6207 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6208
6209         * combine.c (combine_simplify_rtx): Adjust call to use
6210         simplify_relational_operation.  Do not use SELECT_CC_MODE
6211         when a comparison already has a MODE_CC mode.
6212
6213 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6214
6215         (simplify_set): simplify_relational_operation may now
6216         return another relational expression.
6217         * cse.c (fold_rtx): simplify_relational_operation now
6218         takes of computing the comparison mode.
6219         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6220         remove dead code.
6221         (do_compare_rtx_and_jump): Likewise.
6222         * integrate.c (subst_constants): simplify_relational_operation
6223         may now return another relational expression.
6224         * simplify-rtx.c (simplify_gen_relational): Move most code to
6225         the new simplify_relational_operation and
6226         simplify_relational_operation_1 functions.
6227         (simplify_relational_operation): Rewritten.
6228         (simplify_relational_operation_1): New function.
6229         (simplify_ternary_operation): simplify_relational_operation
6230         may now return another relational expression.
6231         (simplify_rtx): Remove unnecessary temp variable.
6232
6233 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6234
6235         * reg-stack.c (swap_to_top): New function.
6236         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6237         swap_to_top().
6238         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6239         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6240         UNSPEC_FSCALE_EXP.
6241
6242         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6243         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6244         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6245         x87's fscale insn.
6246         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6247         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6248         patterns.
6249
6250 2004-04-28  Serge Belyshev  <1319@bot.ru>
6251
6252         PR 14944
6253         * coverage.c (read_counts_file): Fix usage of warning () call.
6254         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6255
6256 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6257
6258         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6259         options with "-" in the option index.
6260         (SPARC Options): Likewise.
6261         (M32R/D Options): Likewise.
6262
6263 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6264
6265         * convert.c (convert_to_integer): Convert (long)round -> lround,
6266         etc.
6267
6268 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6269
6270         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6271         Return false if we do not have fp register.
6272         (addrs_ok_for_quad_peep): Rename to ...
6273         (mems_ok_for_quad_peep): this.
6274         Add check for volatile memory.
6275         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6276         Rename to ...
6277         (mems_ok_for_quad_peep): this.
6278         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6279         to peephole2's.
6280         (lfq_power2): New instruction.
6281         (stfq_power2): Likewise.
6282
6283 2004-04-28  Jan Hubicka  <jh@suse.cz>
6284
6285         PR c/15004
6286         * function.c (do_warn_unused_parameter): Break out form ...
6287         (expand_function_end): ... here; warn only when not using cgraphunit.
6288         * function.h (do_warn_unused_parameter): Declare.
6289         * cgraphunit.c: Include function.h.
6290         (cgraph_finalize_function): Do unused parameter warning.
6291         * Makefile.in (cgraphunit.o): Depend on function.h
6292
6293 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6294
6295         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6296         calling install-info on $(DESTDIR)$(infodir)/dir already being
6297         present.
6298
6299 2004-04-28  Paul Brook  <paul@codesourcery.com>
6300
6301         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6302
6303 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6304
6305         * gcse.c (find_moveable_store): Do not accept store insns with
6306         REG_EH_REGION note.
6307
6308 2004-04-28  Paul Brook  <paul@codesourcery.com>
6309
6310         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6311         * function.c (assign_temp): Ditto.
6312         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6313
6314 2004-04-28  Paul Brook  <paul@codesourcery.com>
6315
6316         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6317
6318 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6319
6320         * var-tracking.c (variable_different_p): Add a parameter
6321         compare_current_location, compare current location of variable parts
6322         if it is true.
6323         (dataflow_set_different_1): Pass compare_current_location == false.
6324         (dataflow_set_different_2): Pass compare_current_location == false.
6325         (emit_notes_for_differences_1): Pass compare_current_location == true.
6326
6327 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6328
6329         * config/s390/s390.md ("casesi"): Mark jump table access as
6330         non-trapping and unchanging.
6331
6332 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6333
6334         PR debug/14829
6335         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6336         callers.
6337         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6338         number for indexing hard_regno_nregs array.
6339
6340 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6341
6342         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6343         * config/darwin-crt2.c: Only have contents on __ppc__.
6344
6345 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6346
6347         * config/xtensa/xtensa.c (call_insn_operand): Check
6348         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6349         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6350         * config/xtensa/xtensa.md (call, call_value): Likewise.
6351
6352 2004-04-27  Wu Yongwei  <adah@sh163.net>
6353
6354         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6355         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6356         (__gthread_mutex_init_function): Replace CreateMutex with
6357         initialization of custom mutex using CreateSemaphore.
6358         (__gthread_mutex_lock): Use InterlockedIncrement.
6359         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6360         (__gthread_mutex_unlock): Use InterlockedDecrement and
6361         ReleaseSemaphore to unlock
6362         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6363         __gthread_mutex_lock, __gthread_mutex_trylock,
6364         __gthread_mutex_unlock): Adjust to match inline versions in
6365         gthr-win32.h.
6366
6367 2004-04-27  Paul Brook  <paul@codesourcery.com>
6368
6369         * config/arm/arm.c (arm_promote_prototypes): New function.
6370         (TARGET_PROMOTE_PROTOTYPES): Use it.
6371
6372 2004-04-27  Paul Brook  <paul@codesourcery.com>
6373
6374         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6375
6376 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6377
6378         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6379         correctly output .pdesc directive before .end.
6380
6381 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6382
6383         Bug 14927
6384         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6385         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6386
6387 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6388
6389         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6390         * config/pa/pa-hpux10.h: Likewise.
6391         * config/pa/pa-hpux11.h: Likewise.
6392
6393 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6394
6395         * doc/invoke.texi (Overall Options): Document default for -o
6396         for PCH files.
6397
6398 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6399
6400         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6401         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6402         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6403
6404 2004-04-26  Paul Brook  <paul@codesourcery.com>
6405
6406         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6407
6408 2004-04-26  Paul Brook  <paul@codesourcery.com>
6409
6410         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6411
6412 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6413
6414         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6415         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6416         X % -1 as 0.
6417
6418 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6419
6420         PR bootstrap/15141
6421         * except.c (connect_post_landing_pads): Delete insns after the
6422         barrier when generating a unwind_resume_libfunc call.
6423
6424 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6425
6426         PR/c++ 15119
6427         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6428         for TARGET_EXPR.
6429
6430 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6431
6432         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6433         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6434         inhibit_libc is defined.
6435
6436 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6437
6438         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6439         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6440         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6441         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6442         (mips_adjust_cost): Move later in file, next to other sched hooks.
6443         (mips_macc_chains_last_hilo): New variable.
6444         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6445         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6446         * config/mips/mips.md (may_clobber_hilo): New attribute.
6447
6448 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6449             Bruce Korb  <bkorb@gnu.org>
6450
6451         * fixinc/inclhack.def (aix_syswait_2): New fix.
6452         * fixinc/fixincl.x: Regenerate.
6453         * fixinc/tests/base/sys/wait.h: Update for new test.
6454
6455 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6456
6457         PR target/14960
6458         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6459         to non_fixed_size, and leave out fixed_size from the sum.
6460         (generate_set_vrsave): Correct clobbers.
6461         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6462         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6463         (rs6000_libcall_value): Likewise.
6464         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6465         (FUNCTION_ARG_REGNO_P): Likewise.
6466
6467 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6468
6469         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6470         is a CONST_INT.
6471         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6472         with NARROW_OP1 instead of OP1.
6473
6474 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6475
6476         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6477         and __s390x__ hosts.
6478
6479 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6480
6481         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6482         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6483         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6484         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6485         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6486         * builtins.c (expand_builtin_fork_or_exec): New.
6487         (expand_builtin): Call it.
6488         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6489         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6490         * c-common.c (PID_TYPE): New macro.
6491         (c_common_nodes_and_builtins): Initialize pid_type_node.
6492         * calls.c (special_function_p): Do not handle fork and exec.
6493         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6494         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6495         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6496         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6497         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6498         * tree.h (enum tree_index): Add TI_PID_TYPE.
6499         (pid_type_node): New macro.
6500         (ECF_FORK_OR_EXEC): Removed.
6501
6502 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6503
6504         PR optimization/13985
6505         * cfgloopmanip.c (fix_loop_placements): New prototype.
6506         Call fix_bb_placements on the preheader of loops that have
6507         been reparented.
6508         (remove_path): Adjust call to fix_loop_placements.
6509
6510 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6511
6512         * config/darwin7.h: New file.
6513         * config.gcc (*-*-darwin*): Add darwin7.h if the
6514         version is greater than 6.
6515         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6516         (MATH_LIBRARY): Wrap in ifdefs.
6517
6518 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6519
6520         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6521         loading iWMMXt registers with a frame pointer.  Use post-increment
6522         without a frame pointer.
6523         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6524
6525 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6526
6527         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6528         mode" rather than "-funit-at-a-time" since -O2 enables it
6529         without requiring -f* options.  Refer to -fprofile-generate and
6530         -fprofile-use correctly.  Move -funit-at-a-time among options
6531         enabled by -O.  Add information about unit-at-a-time caveats.
6532
6533 2004-04-22  Per Bothner  <per@bothner.com>
6534
6535         * line-map.h (struct line_maps):  New field highest_line.
6536         (linemap_position_for_column):  Make non-inline function.
6537         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6538         * line-map.c (linemap_init):  Clear highest_line field.
6539         (linemap_add):  Set highest_line field.
6540         (linemap_line_start):  Minor optimization - use highest_line field.
6541         Reduce maximum column hint to 10000.  Update highest_line field.
6542         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6543         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6544         line_table->highest_line.
6545         (saved_line):  Remove unused field.
6546         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6547         Use  line_table's highest_line field instead of cpp_reader's line.
6548         * cpplib.c (start_directive):  Likewise use highest_line field.
6549         (do_line, do_linemarker):  Likewise just use newest map.
6550         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6551         * cpperror.c (cpp_error):  Likewise use highest_line field.
6552         * cppfiles.c (open_file_failed:  Likewise.
6553         (cpp_make_system_header):  Likewise use newest map and highest_line.
6554         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6555         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6556         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6557         _cpp_lex_direct):  Likewise use highest_line.
6558         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6559         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6560         and use newest map.
6561         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6562         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6563         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6564
6565 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6566
6567         PR bootstrap/14992
6568         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6569         * config/linux.h (USE_LD_AS_NEEDED): Define.
6570         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6571         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6572         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6573         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6574         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6575         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6576         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6577
6578 2004-04-22  Per Bothner  <per@bothner.com>
6579
6580         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6581         Fixes PR preprocessor/15067.
6582
6583 2004-04-23  Andreas Schwab  <schwab@suse.de>
6584
6585         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6586         avoid aliasing warning.
6587
6588 2004-04-22  Jan Hubicka  <jh@suse.cz>
6589             Mostafa Hagog <mustafa@il.ibm.com>
6590
6591       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6592       * cfgloopanal.c (expected_loop_iterations): Change the return value
6593
6594 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6595
6596         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6597         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6598         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6599         traces.
6600
6601 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6602
6603         Revert
6604         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6605
6606                 * var-tracking.c (variable_part_different_p): Variable parts
6607                 differ when the most recent locations differ.
6608
6609 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6610
6611         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6612         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6613         (embedded_pic_offset): Delete.
6614         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6615         MASK_* constants.
6616         (TARGET_EMBEDDED_PIC): Delete.
6617         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6618         (ASM_SPEC): Remove -membedded-pic.
6619         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6620         (ASM_OUTPUT_CASE_LABEL): Likewise.
6621         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6622         * config/mips/windiss.h (ASM_SPEC): Likewise.
6623         * config/mips/mips.c (struct machine_function): Remove
6624         embedded_pic_fnaddr_rtx.
6625         (TARGET_ENCODE_SECTION_INFO): Remove override.
6626         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6627         (override_options): Remove -membedded-pic handling.
6628         (print_operand): Remove handling of '%S'.
6629         (mips_select_section: Remove -membedded-pic handling.
6630         (mips_encode_section_info): Delete.
6631         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6632         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6633         -membedded-pic handling.
6634         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6635
6636 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6637
6638         * var-tracking.c (frame_base_decl): Remove useless GTY.
6639
6640 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6641
6642         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6643         user wants altivec and e500 instructions.
6644
6645 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6646
6647         PR target/14813
6648         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6649         in .init_array section to ...
6650         * config/ia64/crtbegin.asm: Here.
6651
6652         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6653         and hidden if HAVE_INITFINI_ARRAY is defined.
6654
6655 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6656
6657         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6658         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6659         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6660         (fp_register_operand, lo_operand): New.
6661         (mips_rtx_costs): Add TUNE_SB1 support.
6662         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6663         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6664         (mips_multipass_dfa_lookahead): New.
6665         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6666         TUNE_SB1): New.
6667         (TARGET_SWITCHES): Add -mfp-exceptions support.
6668         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6669         (BRANCH_COST): Fix whitespace.
6670         * config/mips/mips.md: Include sb1.md.
6671         * config/mips/sb1.md: New file.
6672         * doc/invoke.texi: Document -mfp-exceptions.
6673
6674         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6675         comment.
6676         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6677         (fixincl.o-warn): Delete.
6678
6679 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6680
6681         * config/rs6000/rs6000 (print_operand) ['z']:
6682         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6683
6684 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6685
6686         * config.gcc: Support --with-arch=iwmmxt for ARM.
6687
6688 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6689
6690         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6691         in two more places; remove unneeded force_reg
6692
6693 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6694
6695         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6696         for TARGET_MACHO.
6697         (print_operand): For TARGET_MACHO check to see if we need a stub
6698         and output one if we need it.
6699
6700         PR debug/15033
6701         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6702         rtl.
6703
6704 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6705
6706         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6707         (vall_value_gp): Likewise.
6708
6709 2004-04-20  DJ Delorie  <dj@redhat.com>
6710
6711         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6712         variables stored in word registers, then in memory.
6713
6714 2004-04-20  Eric Christopher  <echristo@redhat.com>
6715
6716         * cp/parser.c (cp_parser_declaration): Move translate
6717         up before tokens are lexed.
6718
6719 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6720
6721         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6722         (asin_optab, acos_optab): Define corresponding macros.
6723         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6724         * genopinit.c (optabs): Implement asin_optab and acos_optab
6725         using asin?f2 and acos?f2 patterns.
6726         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6727         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6728         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6729         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6730
6731         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6732         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6733         acos, acosf and acosl built-ins as inline x87 intrinsics.
6734
6735 2004-04-20  Paul Brook  <paul@codesourcery.com>
6736
6737         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6738
6739 2004-04-20  Paul Brook  <paul@codesourcery.com>
6740
6741         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6742
6743 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6744
6745         Revert part of 2004-04-17 change that moved -frename-registers
6746         to -O1.  -frename-registers is buggy.
6747
6748         * toplev.c (flag_rename_registers): Initialize to 0.
6749         * doc/invoke.texi (Optimize options): Move -frename-registers
6750         to "Not triggered by any -O level" section.  Adjust commentary
6751         accordingly.
6752
6753 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6754
6755         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6756
6757 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6758
6759         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6760         for mflo and mfhi instructions.
6761         (mips_output_move): Remove mflo and mfhi handling.
6762         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6763         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6764         Likewise various define_peephole2s.
6765         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6766         alternatives.
6767         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6768         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6769         (mfhilo_di, mfhilo_si): New patterns.
6770
6771 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6772
6773         * function.c (assign_parms): Force
6774         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6775
6776 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6777
6778         * var-tracking.c (variable_part_different_p): Variable parts differ
6779         when the most recent locations differ.
6780
6781 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6782
6783         * rtl.h (reg_set_last): Delete declaration.
6784         * rtlanal.c (reg_set_last): Delete.
6785
6786 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6787
6788         * fold-const.c (fold_convert): Make function extern/public.
6789         * tree.h (fold_convert): Prototype here.
6790         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6791         expand_builtin_strrchr, expand_builtin_strpbrk,
6792         expand_builtin_mempcpy, expand_builtin_bcopy,
6793         expand_builtin_bzero, expand_builtin_memcmp,
6794         expand_builtin_strcmp, expand_builtin_strncmp,
6795         stabilize_va_list, expand_builtin_sprintf,
6796         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6797         fold_builtin_exponent, fold_builtin_mempcpy,
6798         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6799         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6800         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6801
6802 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6803
6804         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6805         (move_from_CR_gt_bit): New.
6806         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6807         E500.
6808         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6809         E500.
6810
6811         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6812         (tstsfeq_gpr): Same.
6813         (cmpsfgt_gpr): Same.
6814         (tstsfgt_gpr): Same.
6815         (cmpsflt_gpr): Same.
6816         (tstsflt_gpr): Same.
6817         (e500_cceq_ior_compare): New.
6818         (e500_flip_gt_bit): New.
6819
6820         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6821         (print_operand): Add 'c' and 'D'.
6822         (rs6000_generate_compare): Rewrite to generate correct rtl.
6823         (rs6000_emit_sCOND): Handle E500.
6824         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6825         (output_e500_flip_gt_bit): New.
6826
6827         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6828         Protoize.
6829
6830 2004-04-19  Eric Christopher  <echristo@redhat.com>
6831
6832         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6833
6834 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6835
6836         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6837         fix information.
6838
6839 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6840
6841         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6842         download URL.
6843
6844 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6845
6846         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6847         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6848
6849 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6850
6851         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6852         (fold_builtin): Update caller to match.
6853
6854         PR bootstrap/15009
6855         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6856
6857         PR bootstrap/14999
6858         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6859
6860 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6861
6862         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6863
6864         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6865         (expand_mult_highpart_optab): Likewise.
6866         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6867
6868 2004-04-19  Paul Brook  <paul@codesourcery.com>
6869
6870         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6871         floatunssisf2, floatunssidf2): New patterns.
6872
6873 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6874
6875         PR other/14918
6876         * doc/invoke.texi (-fprofile-generate): Document requirement to
6877         use -fprofile-generate when linking.
6878
6879         * doc/extend.texi (Strong Using): Warn users against using this
6880         feature.
6881
6882 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6883
6884         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6885         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6886         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6887         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6888         constant.  Propogate change throughout file.
6889         (struct machine_function): Remove insns_len.
6890         (mips_string_length, mips16_strings, string_constants): Delete.
6891         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6892         when generating mips16 code.  Remove special mips16 treatment of
6893         string constants.
6894         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6895         to have the form LABEL+CONSTANT.
6896         (mips_symbolic_address_p): Fix comment.
6897         (m16_usym8_4, m16_usym5_4): Delete.
6898         (mips_output_function_epilogue): Remove mips16 string handling.
6899         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6900         (mips_select_section, mips_encode_section_info): Remove mips16
6901         string handling.
6902         (struct mips16_constant_pool): New.
6903         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6904         sorted into order of ascending mode size.  Keep track of the highest
6905         possible start address, taking padding and the masking of the base PC
6906         value into account.
6907         (dump_constants_1): New function, split out from dump_constants.
6908         Handle vector constants.  Use gen_consttable_{int,float} rather than
6909         separate functions for each mode.
6910         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6911         rather than separate functions for each alignment.
6912         (mips_find_symbol): Delete.
6913         (mips16_insn_length): New function, split out from
6914         mips16_lay_out_constants.
6915         (mips16_rewrite_pool_refs): New function.
6916         (mips16_lay_out_constants): Rework. Remove string handling.
6917         Always create an inline constant pool.
6918         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6919         (UNSPEC_ALIGN): New constants.
6920         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6921         (UNSPEC_ALIGN_[248]): Delete.
6922         (consttable_int, consttable_float, align): New patterns.
6923         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6924
6925 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6926
6927         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6928         __unn_args_eq.
6929
6930 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6931
6932         PR target/14715
6933         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6934         with STARTING_FRAME_OFFSET.
6935
6936 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6937
6938         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6939         * config/mips/mips.c (macc_msac_operand): New function.
6940         * config/mips/mips.md (*msac): Move after *macc.
6941         (*msac2): New.  Generalize macc-related peepholes so that they apply
6942         to msac too.
6943
6944 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6945
6946         * opts.c (decode_options): Do not enable flag_rename_registers
6947         and flag_web at -O3.
6948         * toplev.c (flag_rename_registers): Initialize
6949         flag_rename_registers and flag_web to
6950         AUTODETECT_FLAG_VAR_TRACKING.
6951         (default_debug_hooks): New global.
6952         (process_options): Initialize default_debug_hooks.  Warn if
6953         -fvar-tracking specified but not supported by the current
6954         debug format.  Do not run var tracking at -O0 or if not
6955         supported by the current debug format, even if
6956         -fvar-tracking was given.  If -fno-rename-registers
6957         is not specified, always run register renaming if var
6958         tracking is supported by the default debugging information
6959         format for the target, and we are at -O1 or higher; similarly
6960         for -fweb, but only at -O2 or higher.
6961         * doc/invoke.texi (Optimize Options): Document this.
6962
6963 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6964
6965         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6966         * configure: Regenerate.
6967
6968 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6969
6970         * gcc.c (used_arg): Check whether an option has been removed.
6971
6972 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6973
6974         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6975         debugging on Solaris 7 and up.
6976
6977 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6978
6979         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6980         IRIX 5 port.
6981         Remove -save-temps workaround, handled automatically.
6982         Require GNU binutils 2.15 for debugging.
6983         Remove SGI make warnings since GNU make is now required.
6984         (Specific, mips-sgi-irix6): Some markup fixes.
6985         Describe MIPSpro C problems and workarounds.
6986         Mention working O32 ABI support.
6987         Recommend GNU as 2.15 for O32 with debugging.
6988         Remove description of fixed structure pass/return bug.
6989
6990 2004-04-16  DJ Delorie  <dj@redhat.com>
6991
6992         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6993         TYPE_FIELDS.
6994         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6995
6996 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6997
6998         * pa.md: Remove unnecessary declarations for asm_out_file.
6999
7000         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
7001         SAR register.  Fix comment.
7002         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
7003         (%cr11).
7004
7005         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
7006
7007 2004-04-16  Nick Clifton  <nickc@redhat.com>
7008
7009         * config/arm/arm.c (arm_override_options): Revert previous patch.
7010         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
7011         be safely built.
7012
7013 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7014
7015         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
7016         bug.
7017         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
7018         TARGET_DEFAULT): Changed. Ditto.
7019         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
7020         TARGET_ENDIAN_DEFAULT): Added. Ditto.
7021         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
7022         (TARGET_ENDIAN_DEFAULT): Added.
7023
7024 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7025
7026         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
7027         ATTR_CONST_NOTHROW_LIST.
7028
7029 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7030
7031         PR/middle-end 14915
7032         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
7033         BITS_BIG_ENDIAN.
7034
7035 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
7036
7037         * ra-debug.c (ra_print_rtx): Add break's to case legs.
7038
7039 2004-04-14  James E Wilson  <wilson@specifixinc.com>
7040
7041         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
7042
7043 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
7044
7045         * libada-mk.in: New file.
7046         * configure.ac: Create libada-mk from libada-mk.in.
7047         * configure: Regenerate.
7048
7049 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
7050
7051         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
7052         (logb_optab, ilogb_optab): Define corresponding macros.
7053         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
7054         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
7055         using logb?f2 and ilogb?i2 patterns.
7056         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
7057         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
7058         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
7059         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7060
7061         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
7062         and UNSPEC_XTRACT_EXP.
7063
7064         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
7065         patterns to implement fxtract x87 instruction.
7066         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
7067         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
7068         intrinsics.
7069         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
7070         x87's fxtract insn.
7071
7072 2004-04-14  Eric Christopher  <echristo@redhat.com>
7073
7074         * config/mips/t-elf: Enable multilibs by default.
7075
7076 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
7077
7078         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
7079         previous fix to check HAVE_return at runtime too.
7080
7081 2004-04-14  Nick Clifton  <nickc@redhat.com>
7082
7083         * config/arm/arm.c (arm_override_options): If the user has not
7084         specified an ABI, then default to AAPCS for the iWMMXt processor.
7085         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
7086         * config/arm/t-xscale-coff: Likewise.
7087
7088 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7089
7090         * builtins.c (fold_builtin_isdigit): New.
7091         (fold_builtin): Handle BUILT_IN_ISDIGIT.
7092         * defaults.h: Add TARGET_DIGIT0 and sort.
7093         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
7094
7095 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7096
7097         * builtins.c (fold_builtin_cabs, fold_builtin): Use
7098         `mathfn_built_in' to determine the new builtin.
7099         * fold-const.c (fold): Likewise.
7100
7101 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
7102
7103         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7104         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7105         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7106         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7107         (ASM_SPEC): Update accordingly.
7108         * config/mips/mips.c: Update after above renaming.
7109         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7110         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7111
7112 2004-04-13  James E Wilson  <wilson@specifixinc.com>
7113
7114         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7115         increment errorcount and return false instead of true.
7116
7117 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
7118
7119         * optabs.c (expand_twoval_unop): Reorder function arguments.
7120         * builtins.c (expand_builtin_mathfn_3): Update calls to
7121         expand_twoval_unop.
7122
7123         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7124         and UNSPEC_TAN_TAN. Add missing comment.
7125
7126         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7127         patterns to implement fptan x87 instruction.
7128         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7129         and tanl built-ins as inline x87 intrinsics. Define corresponding
7130         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7131         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7132         x87's fptan insn.
7133
7134 2004-03-13  Richard Henderson  <rth@redhat.com>
7135
7136         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7137         for LABEL_REFs.
7138
7139         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7140         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7141         * doc/invoke.texi: Update to match.
7142
7143         * varasm.c (unlikely_text_section): Use assemble_align instead of
7144         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
7145         correct alignment argument.
7146
7147 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7148
7149         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7150         after setting reg_last_reload_reg for optional output reloads.
7151
7152 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7153
7154         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7155         Definition of these two macros are corrected by adding
7156         matchine right paren.
7157
7158 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
7159
7160         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7161
7162 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7163
7164         * config/i386/i386.c (output_387_reg_move): New function.
7165         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7166         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7167         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7168         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7169         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7170
7171 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7172
7173         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7174         TYPE_DECL.
7175         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7176         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7177         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7178         Use skip_simple_arithmetic to find SAVE_EXPR.
7179         (force_type_save_exprs, force_type_save_exprs_1): New functions.
7180         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7181         Properly chain multiple pointers.
7182         (copy_tree_r): Copy a TYPE_DECL.
7183         * tree.c (variably_modified_type_p): Add some missing tests and
7184         make some other minor changes.
7185         * tree.h (force_type_save_exprs): New declaration.
7186
7187 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7188
7189         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7190         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
7191         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
7192         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
7193         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
7194         x%-1 into 0 (or x&0 if x has side-effects).
7195
7196 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7197
7198         * config/rs6000/rs6000.md: Document why a pattern is not
7199         available.
7200
7201         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7202         of floats on the E500.
7203         (branch_positive_comparison_operator): Do not allow NE even on the
7204         E500.
7205
7206 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7207
7208         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7209         in_text_unlikely_section to in_unlikely_text_section.
7210
7211 2004-04-11  Roger Sayle  <roger@eyesopen.com>
7212
7213         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
7214         calling convention to allow a NULL_TREE to be returned.  Factor
7215         sanity checks from callers, return NULL_TREE when appropriate.
7216         (fold): Handle COMPOUND_EXPR operands of binary expressions
7217         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
7218         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
7219         calls to fold_binary_op_with_conditional_arg.
7220
7221 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7222
7223         * config/mips/iris5.h (current_section_flags):  Add
7224         in_unlikely_executed_text and default case.
7225
7226 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7227
7228         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7229         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7230         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7231         HAVE_return and place it around the place where it is needed.
7232
7233 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7234
7235         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7236         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7237         and NORMAL_TEXT_SECTION_NAME.
7238         (unlikely_text_section): Check targetm.have_named_sections
7239         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7240         instead of SECTION_FORMAT_STRING.
7241         * config/mips/iris5.h (current_section_name): Add
7242         in_unlikely_executed_text case and move the abort into the switch.
7243         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7244         (NORMAL_TEXT_SECTION_NAME): Remove.
7245         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7246         (SECTION_FORMAT_STRING): Remove.
7247         * defaults.h (SECTION_FORMAT_STRING): Remove.
7248         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7249         (SECTION_FORMAT_STRING): Remove.
7250
7251 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7252
7253         * c-typeck.c (common_type): Prefer long long to long when same
7254         precision.
7255
7256 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7257
7258         PR 14887
7259         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7260         mode argument.
7261         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7262         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7263
7264 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7265
7266         * simplify-rtx.c (mode_signbit_p): New function to check whether
7267         an RTX is an immediate constant that represents the most significant
7268         bit of a given machine mode.
7269         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7270         C is the sign bit.
7271         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7272         when C2 is the sign bit.
7273         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7274         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7275         sign bit.
7276
7277 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7278
7279         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7280         TYPE_MODE.
7281
7282 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7283
7284         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7285         of TREE_READONLY for types.
7286
7287 2004-04-09  Caroline Tice  <ctice@apple.com>
7288
7289         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7290         (struct basic_block_def):  Add new field, partition.
7291         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7292         definitions.
7293         (partition_hot_cold_basic_blocks): Add extern function
7294         declaration.
7295         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7296         include statements.
7297         (N_ROUNDS): Increase the maximum number of rounds by 1.
7298         (branch_threshold): Add array value for new round.
7299         (exec_threshold): Add array value for new round.
7300         (push_to_next_round_p): New function.
7301         (add_unlikely_executed_notes): New function.
7302         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7303         (mark_bb_for_unlikely_executed_section): New function.
7304         (add_labels_and_missing_jumps): New function.
7305         (add_reg_crossing_jump_notes): New function.
7306         (fix_up_fall_thru_edges): New function.
7307         (find_jump_block): New function.
7308         (fix_crossing_conditional_branches): New function.
7309         (fix_crossing_unconditional_branches): New function.
7310         (fix_edges_for_rarely_executed_code): New function.
7311         (partition_hot_cold_basic_blocks): New function.
7312         (find_traces):  Add an extra round for partitioning hot/cold
7313         basic blocks.
7314         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7315         and only cold blocks, into the last (extra) round of collecting traces.
7316         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7317         over crossing edges.
7318         (bb_to_key):  Add code to correctly identify cold blocks when
7319         doing partitioning.
7320         (connect_traces): Modify to connect all the non-cold traces first, then
7321         go back and connect up all the cold traces.
7322         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7323         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7324         entry and exit blocks.
7325         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7326         if we are doing hot/cold partitioning.
7327         * cfgcleanup.c (cfglayout.h): Add new include statement.
7328         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7329         that cross section boundaries.
7330         (try_forward_edges): Likewise.
7331         (merge_blocks_move_predecessor_nojumps): Likewise.
7332         (merge_blocks_move_successor_nojumps): Likewise.
7333         (merge_blocks_move): Likewise.
7334         (try_crossjump_to_edge): Modify to not attempt after we have done
7335         the block partitioning.
7336         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7337         cross section boundaries.
7338         (try_optimize_cfg): Likewise.
7339         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7340         jumps that cross section boundaries.
7341         * cfglayout.c (flags.h): Add new include statement.
7342         (update_unlikely_executed_notes):  New function.
7343         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7344         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7345         updated appropriately.
7346         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7347         introduced by this optimization.
7348         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7349         extern function declaration.
7350         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7351         list of notes that can be deleted.
7352         (create_basic_block_structure):  Add initialization for partition field.
7353         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7354         section boundaries.
7355         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7356         cross section boundaries.
7357         (commit_one_edge_insertion): Add code so newly created basic block
7358         ends up in correct (hot or cold) section.  Modify to disallow
7359         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7360         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7361         crosses section boundaries.
7362         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7363         cross section boundaries.
7364         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7365         ends up in correct section, with correct notes attached.
7366         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7367         optimization.
7368         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7369         the end of functions are written into the correct (hot or cold)
7370         section.
7371         (dbx_source_file): Add code so writing debug file information
7372         doesn't incorrectly change sections.
7373         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7374         in partitioning hot/cold basic blocks into separate sections.
7375         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7376         section partitioning.
7377         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7378         conditional branches can span all of memory.
7379         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7380         unconditional branches can span all of memory.
7381         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7382         (final_scan_insn):  Add code to check for NOTE instruction indicating
7383         whether basic block belongs in hot or cold section, and to make sure
7384         the current basic block is being written to the appropriate section.
7385         Also added code to ensure that jump table basic blocks end up in the
7386         correct section.
7387         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7388         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7389         one of the branches has a jump that crosses between sections.
7390         (find_if_case_2): Likewise.
7391         (ifcvt): Modify to not attempt to mark loop exit edges after
7392         hot/cold partitioning has occurred.
7393         * opts.c (decode_options): Code to handle new flag,
7394         flag_reorder_blocks_and_partition; also to turn it off if
7395         flag_exceptions is on.
7396         (common_handle_option): Code to handle new flag,
7397         flag_reorder_blocks_and_partition.
7398         * output.h (unlikely_text_section): New extern function declaration.
7399         (in_unlikely_text_section): New extern function declaration.
7400         * passes.c (rest_of_handle_stack_regs):  Add
7401         flag_reorder_blocks_and_partition as an 'or' condition for calling
7402         reorder_basic_blocks.
7403         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7404         as an 'or' condition for calling reorder_basic_blocks.
7405         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7406         * print-rtl.c (print_rtx): Add code for handling new note,
7407         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7408         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7409         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7410         cross between section boundaries.
7411         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7412         indicating the basic block containing it belongs in the cold section.
7413         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7414         between hot and cold sections.
7415         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7416         initialize this flag, and to tie it to the command-line option
7417         freorder-blocks-and-partition.
7418         * varasm.c (cfglayout.h):  Add new include statement.
7419         (unlikely_section_label_printed):  New global variable, used for
7420         determining when to output section name labels for cold sections.
7421         (in_section):  Add in_unlikely_executed_text to enum data structure.
7422         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7423         NORMAL_TEXT_SECTION_NAME macros.
7424         (unlikely_text_section):  New function.
7425         (in_unlikely_text_section):  New function.
7426         (function_section):  Add code to make sure beginning of function is
7427         written into correct section (hot or cold).
7428         (assemble_start_function):  Add code to make sure stuff is written to
7429         the correct section.
7430         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7431         to an if statement that was checking 'in_text_section'.
7432         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7433         condition to an if statement that was checking 'in_text_section'.
7434         (default_section_type_flags_1):  Add check: if in cold section
7435         flags = SECTION_CODE.
7436         * config/darwin.c (darwin_asm_named_section):  Modify to use
7437         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7438         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7439         specifically for the i386.
7440         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7441         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7442         text string to something more informative.
7443         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7444         (SECTION_FORMAT_STRING):  Add new definition.
7445         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7446         '!in_unlikely_text_section' as an 'and' condition to an if statement
7447         that was already checking '!in_text_section'.
7448         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7449         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7450         sure these are properly defined for linux on ppc.
7451         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7452         for this new flag.
7453         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7454         reg_note.
7455         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7456         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7457         these new macros.
7458
7459 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7460
7461         * function.c (gen_mem_addressof): When changing the RTX from a REG
7462         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7463
7464 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7465
7466         PR target/14888
7467         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7468         truncxfdf2_noop): Provide dummy "fmov" implementations.
7469
7470 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7471
7472         * gcc.c (default_compilers): Add missing initializers.
7473
7474         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7475         Return 1 if file was successfully mapped.
7476
7477 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7478
7479         PR pch/13419
7480         PR pch/14137
7481         Radar #: 3315288
7482         * doc/invoke.texi (Precompiled Headers): Suggest -o
7483         to put an output file in a particular place.  Be more detailed
7484         about which options affect PCH validity and which options
7485         might not work.
7486         * c-pch.c (pch_matching): New.
7487         (MATCH_SIZE): New.
7488         (struct c_pch_validity): New field 'match'.
7489         (pch_init): Handle pch_matching.
7490         (c_common_valid_pch): Check pch_matching.
7491
7492         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7493
7494 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7495
7496         * doc/invoke.texi (Precompiled Headers): Warn about known
7497         problems.
7498
7499 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7500
7501         PR c++/14808
7502         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7503         to 1 if ASM_OUTPUT_DEF is defined.
7504         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7505         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7506         Set to non-zero iff not a one_only decl.
7507
7508 2004-04-08  Paul Brook  <paul@codesourcery.com>
7509
7510         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7511
7512 2004-04-08  Paul Brook  <paul@codesourcery.com>
7513
7514         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7515         PROMOTE_FOR_CALL_ONLY.
7516         * config/arm/arm-protos.h (arm_function_value): Declare.
7517         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7518         (TARGET_PROMOTE_PROTOTYPES): Return false.
7519         (arm_function_value): New function.
7520         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7521         (FUNCTION_VALUE): Call arm_function_value.
7522         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7523         (PROMOTE_FUNCTION_MODE): ... to this.
7524         (PROMOTE_FOR_CALL_ONLY): Remove.
7525         * config/mmix/mmix.h: Likewise.
7526         * config/s390/s390.h: Likewise.
7527         * config/sparc/sparc.h: Likewise.
7528         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7529         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7530         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7531         (PROMOTE_FOR_CALL_ONLY): Remove.
7532
7533 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7534
7535         PR ada/14538
7536         * ada/5rosinte.adb: Remove fake mprotect() body.
7537         * ada/5rosinte.ads: Add SA_SIGINFO.
7538         * ada/5rtpopsp.adb: Rewrite to use new interface.
7539         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7540         is tested before more complex ones which mix UNIX and embedded
7541         systems in the conditional.
7542
7543 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7544
7545         PR ada/14665
7546         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7547         filenames which end in .exe or have versioning suffixes like VMS.
7548
7549 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7550
7551         PR target/10129
7552         * config/darwin.c (darwin_encode_section_info): When the decl has
7553         a DECL_INITIAL, it is only defined also when it is not a common.
7554
7555 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7556
7557         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7558         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7559
7560 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7561
7562         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7563         global register variables.
7564
7565 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7566
7567         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7568         rpc_xdr_lvalue_cast_b): New fixes.
7569         * fixinc/fixincl.x: Regenerate.
7570         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7571
7572 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7573
7574         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7575         to power4 and power5 entries.
7576
7577 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7578
7579         * c-common.h (pending_lang_change): Mark for PCH.
7580
7581 2004-04-07  Caroline Tice  <ctice@apple.com>
7582
7583         * gcc.c (main): Move 'break' in main loops (on an error)
7584         to wait until error processing has occurred.
7585
7586 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7587
7588         * config.gcc: Stop changing enable_threads midstream.
7589         Replace uses of enable_threads_flag with enable_threads.
7590         * configure.ac: Replace uses of enable_threads_flag with
7591         enable_threads.  Improve autoconf quotation in one place.
7592         * configure: Regenerate.
7593
7594 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7595
7596         * builtins.c: Implement support for sincos function.
7597         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7598         BUILT_IN_COS{,F,L}.
7599         (expand_builtin_mathfn_3): New function.
7600         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7601         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7602         flag_unsafe_math_optimization is set.
7603
7604         * optabs.h (enum optab_index): Add new OTI_sincos.
7605         (sincos_optab): Define corresponding macro.
7606
7607         * optabs.c (init_optabs): Initialize sincos_optab.
7608         (expand_twoval_unop): New function.
7609
7610         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7611         patterns.
7612
7613         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7614         and UNSPEC_SINCOS_SIN.
7615
7616         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7617         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7618         built-ins as inline x87 intrinsics. Define splits for
7619         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7620         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7621         sincos patterns.
7622         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7623         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7624
7625         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7626         x87's fsincos insn.
7627
7628 2004-04-06  Devang Patel  <dpatel@apple.com>
7629
7630         PR 14467
7631         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7632
7633 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7634
7635         * doc/install.texi: Update HP-UX 11 installation procedure.
7636
7637 2004-04-06  Paul Brook  <paul@codesourcery.com>
7638
7639         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7640
7641 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7642
7643         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7644         when the TLS address is generated by a function call.
7645         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7646         (tls_local_dynamic): Likewise.
7647
7648 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7649
7650         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7651         and TYPE_VOLATILE.
7652
7653 2004-04-05  Caroline Tice  <ctice@apple.com>
7654
7655         * gcc.c (combine_flag): New global variable, for new driver option.
7656         (struct compiler): Add two new fields, to be used when
7657         combining multiple input files in a single pass (IMA).
7658         (default_compilers):  Add values for the new fields to all
7659         compiler entries. Modify the "@c" compiler entry for doing IMA
7660         properly with "-save-temps" and the "combine" flag.
7661         (option_map):  Add new driver option, "--combine", to tell driver
7662         to pass multiple input files to compiler at one time.
7663         (have_o_argbuf_index): New global variable.
7664         (store_arg): Modify to assign value to have_o_argbuf_index.
7665         (struct infile):  Add three new fields, to help with IMA.
7666         (display_help): Add help for new "combine" option.
7667         (process_command): Remove local variable have_o; add code to check
7668         for new "combine" option; remove assignment to combine_inputs.
7669         (do_spec_1):  Modify to deal with IMA better.
7670         (main): Make variable 'lang_n_infiles' local to entire function
7671         rather than to a single block.  Use flag combine_flag to
7672         determine whether to do IMA or not; Modify loop initializing
7673         infiles to deal properly with linker files.
7674         Add code for doing preprocessing in presence of
7675         IMA with "-save-temps" flag.  Modify "main" loop to handle
7676         multiple input files, in multiple languages, with or without
7677         preprocessing,  gracefully.
7678         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7679         re-set it to same directory it's previously been set to (avoid
7680         irritating, meaningless warning messages when doing IMA with
7681         save-temps).
7682         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7683         remove documentation about IMA that is no longer accurate; Add
7684         documentation explaining what "-combine" does.
7685         * ada/lang-specs.h: Add initialization values for new fields in
7686         "struct compiler".
7687         * cp/lang-specs.h: Likewise.
7688         * f/lang-specs.h: Likewise.
7689         * java/lang-specs.h: Likewise.
7690         * objc/lang-specs.h: Likewise.
7691         * treelang/lang-specs.h: Likewise.
7692
7693 2004-04-05  David Edelsohn
7694
7695         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7696         symbol handling.
7697
7698 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7699             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7700
7701         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7702         * pa.md: Use replace_equiv_address to retain the attributes of the
7703         memory operands used in the split and peephole2 patterns for optimizing
7704         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7705
7706 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7707
7708         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7709         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7710         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7711         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7712         PARM_DECL.
7713         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7714         for a type.
7715         * print-tree.c (print_node): Properly handle side-effects, readonly,
7716         and constant flags.
7717         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7718         and TREE_CONSTANT if not a type.
7719         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7720         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7721         (NON_TYPE_CHECK): New macro.
7722         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7723
7724 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7725
7726         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7727         to DWARF2_DEBUG unconditionally.
7728         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7729
7730 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7731             Nathanael Nerode  <neroden@gcc.gnu.org>
7732
7733         PR target/14548
7734         * config.host: Set the shell variable host_can_use_collect2.
7735         Set it to yes by default, and to no for alpha*-dec-*vms*,
7736         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7737         * configure.ac: Set and substitute the shell variable collect2.
7738         Give an error if use_collect2 is yes and host_can_use_collect2 is
7739         no.
7740         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7741         uses.  Initialize to @collect2@.
7742         (STAGESTUFF): Remove $(USE_COLLECT2).
7743         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7744         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7745         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7746         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7747         * configure: Regenerate.
7748
7749 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7750
7751         * simplify-rtx.c (simplify_binary_operation): Constant fold
7752         DIV, MOD, UDIV and UMOD using div_and_round_double.
7753
7754 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7755
7756         PR c++/14804
7757         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7758         RECORD_TYPEs.
7759
7760 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7761
7762         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7763         documentation.
7764
7765 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7766
7767         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7768         updating the REG_EQUAL note on an insn's libcall_insn.
7769
7770 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7771
7772         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7773
7774 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7775
7776         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7777         with reorder_operands_p.
7778
7779 2004-04-03  Jan Hubicka  <jh@suse.cz>
7780
7781         * md.texi (vec_set, vec_extract, vec_init): Document.
7782
7783 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7784
7785        * opts.c (decode_options): Do function inlining with very small
7786        max-inline-insns-* parameters when optimizing for size.
7787
7788 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7789
7790         * config/i386/i386.h (TARGET_NOCONA): New macro.
7791         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7792         (processor_type): Add PROCESSOR_NOCONA.
7793
7794         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7795
7796         * config/i386/i386.c (nocona_cost): New variable.
7797         (m_NOCONA): New macro.
7798         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7799         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7800         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7801         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7802         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7803         x86_decompose_lea, x86_arch_always_fancy_math_387,
7804         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7805         x86_ext_80387_constants, x86_four_jump_limit):
7806         (override_options): Add nocona_cost to processor_target_table.
7807         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7808         (incdec_operand): Prevent inc/dec generation for Nocona too.
7809         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7810
7811 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7812
7813         * rtlanal.c (find_reg_note): Manually
7814         unswitch the loop.
7815
7816 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7817
7818         * genemit.c (gen_split): Change prototype of generated code.
7819         * genrecog.c (write_action): Adjust prototype for and calls to
7820         gen_split_*.
7821         * gensupport.c (struct queue_elem): Add split field.
7822         (queue_pattern): Return a value.  Clear the split field.
7823         (process_rtx): Maintain an association between an insn and the
7824         split generated from it for a define_insn_and_split.
7825         (process_one_cond_exec): Generate a new split for a
7826         define_insn_and_split.
7827         * config/arm/arm-protos.h (arm_split_constant): Add insn
7828         parameter.
7829         (emit_constant_insn): New function.
7830         (arm_gen_constant): Use it.
7831         * config/arm/arm.md: Adjust calls to arm_split_constant.
7832
7833 2004-04-02  Jan Hubicka  <jh@suse.cz>
7834
7835         * cgraph.c: Add overall comment.
7836         (cgraph_inline_hash): New global variable.
7837         (cgraph_create_node): Break out from ...
7838         (cgraph_node): ... here.
7839         (cgraph_edge): New function.
7840         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7841         (cgraph_remove_edge): Accept edge, intead of source and destination.
7842         (cgraph_redirect_edge_callee): New.
7843         (cgraph_remove_node): Update all new datastructures.
7844         (cgraph_record_call, cgraph_remove_call): Kill.
7845         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7846         (dump_cgraph): ... here.
7847         (cgraph_function_possibly_inlined_p): Use new hashtable.
7848         (cgraph_clone_edge, cgraph_clone_node): New.
7849         * cgraph.h: Include hashtab.h
7850         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7851         fields, add inlined_to pointer.
7852         (cgraph_node): Add pointer to next_clone.
7853         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7854         (cgraph_remove_call, cgraph_record_call): Kill.
7855         (cgraph_inline_hash): Declare.
7856         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7857         cgraph_redirect_edge_callee): Declare.
7858         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7859         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7860         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7861         * cgraphunit.c: Add overall comment.
7862         (cgraph_optimize_function): Kill.
7863         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7864         (cgraph_finalize_function): Update call of cgraph_remove_node
7865         (record_call_1): Record call sites.
7866         (cgraph_create_edges): Accept node instead of decl argument.
7867         (error_found): New static variable.
7868         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7869         (cgraph_analyze_function): Update for new datastructures.
7870         (cgraph_finalize_compilation_unit): Plug memory leak.
7871         (cgraph_optimize_function): Kill.
7872         (cgraph_expand_function): Do not use cgraph_optimize_function.
7873         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7874         cgraph_inlined_callees): Kill.
7875         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7876         clones.
7877         (estimate_growth): Simplify.
7878         (cgraph_clone_inlined_nodes): New function.
7879         (cgraph_mark_inline_edge): Re-implement.
7880         (cgraph_mark_inline): Likewise.
7881         (cgraph_check_inline_limits): Simplify.
7882         (cgraph_recursive_inlining_p): New.
7883         (update_callee_keys): Break out from ...
7884         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7885         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7886         Likewise.
7887         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7888         list.
7889         (cgraph_preserve_function_body_p): New predicate.
7890         (cgraph_optimize): Verify cgraph.
7891         * function.h (struct function): Add fields saved_tree/saved_args.
7892         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7893         * toplev.c (rest_of_compilation): Do not free cfun.
7894         * tree-inline.c: Include function.h
7895         (struct inline_data): Add saving_p field; replace decl/current_decl by
7896         node/current_node.
7897         (insert_decl_map): New function.
7898         (copy_body_r): Handle saving; update cgraph datastructure.
7899         (copy_body): Handle recursive inlining.
7900         (initialize_inlined_parameters): Likewise.
7901         (expand_call_inline): Propagate node attributes; update cgraph.
7902         (optimize_inline_calls): Verify that datastructure still match.
7903         (save_body): New function.
7904         * tree-inline.h (save_body): New.
7905         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7906         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7907         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7908
7909 2004-04-01  Serge Belyshev  <1319@bot.ru>
7910
7911         PR target/14702
7912         * config/i386/i386.md: fix source operand constraints in
7913         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7914
7915 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7916
7917         * fold-const.c (folda): Preserve types of comparisons.
7918
7919 2004-04-01  Richard Henderson  <rth@redhat.com>
7920
7921         * toplev.c (backend_init): Move init_optimization_passes call ...
7922         (lang_dependent_init): ... here.
7923
7924 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7925             Jakub Jelinek  <jakub@redhat.com>
7926
7927         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7928         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7929         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7930         * configure: Rebuilt.
7931         * config.in: Rebuilt.
7932         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7933         (stage2-start, stage3-start, stage4-start): Likewise.
7934         (stageprofile-start, stagefeedback-start): Likewise.
7935
7936 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7937
7938         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7939         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7940         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7941         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7942         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7943         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7944         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7945         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7946         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7947         * config/sparc/t-linux: Removed.
7948
7949 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7950
7951         PR c++/14755
7952         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7953         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7954
7955 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7956
7957         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7958         * stor-layout.c (layout_decl): Likewise.
7959         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7960         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7961         * print-tree.c (print_node): Handle various used of unsigned_flag.
7962         * tree.def (BIT_FIELD_REF): Update comment.
7963         * tree.h (TREE_UNSIGNED): Deleted.
7964         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7965
7966 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7967
7968         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7969         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7970         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7971         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7972         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7973         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7974         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7975         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7976         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7977         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7978         REAL_TYPE, not INTEGER_TYPE.
7979         (layout_type, case VECTOR_TYPE): Simplify code.
7980         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7981         * tree.h: Update comments.
7982         (STRIP_NOPS): Use TYPE_UNSIGNED.
7983         (TYPE_UNSIGNED): New macro.
7984         (TYPE_TRAP_SIGNED): Remove now redundant check.
7985         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7986
7987 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7988
7989         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7990
7991 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7992
7993         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7994         Add darwin-fpsave.asm, darwin-vecsave.asm,
7995         and darwin-world.asm.
7996         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7997         as the asm files contain altivec instructions.
7998         * config/rs6000/darwin-fpsave.asm: New file.
7999         * config/rs6000/darwin-vecsave.asm: New file.
8000         * config/rs6000/darwin-world.asm: New file.
8001
8002 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
8003
8004         * gengtype-yacc.y (option, stringseq): Add missing
8005         terminating semicolon.
8006
8007 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
8008
8009         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
8010         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
8011         tls_dtprel_ha_32, tls_dtprel_ha_64,
8012         tls_dtprel_lo_32, tls_dtprel_lo_64,
8013         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
8014         tls_tprel_ha_32, tls_tprel_ha_64,
8015         tls_tprel_lo_32, tls_tprel_lo_64,
8016         tls_got_tprel_32, tls_got_tprel_64,
8017         tls_tls_32, tls_tls_64): Replace register_operand with
8018         gpc_reg_operand.
8019
8020 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
8021
8022         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
8023         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
8024         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
8025         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
8026         *ctrdi_internal6): Replace register_operand with
8027         nonimmediate_operand.
8028
8029 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
8030
8031         * fold-const.c (fold): Reassociate multiply expression
8032         with an adjacent non-multiply expression to use
8033         architecture's multiply-add instruction.
8034
8035 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
8036
8037         * gengtype.c (create_option): New function.
8038         * gengtype.h: Prototype it.
8039         * gengtype-yacc.y (stringseq): New rule.
8040         (option): Use create_option.  Add new bare ID production.  Use
8041         stringseq, not STRING directly.
8042
8043         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
8044         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
8045         * varray.h, config/alpha/alpha.c:
8046         Use new shorter form of GTY markers.
8047
8048         * doc/gty.texi: Rewrite.
8049
8050 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
8051
8052         * config/darwin.c (machopic_function_base_name):
8053         Remove current_name and getting the name of the
8054         current function.
8055
8056 2004-03-30  Nick Clifton  <nickc@redhat.com>
8057
8058         * config/arm/arm.md (thumb_jump): Reduce the backward branch
8059         range, and increase the forward branch range, to allow for
8060         the fact that the PC will be off by 4.
8061
8062 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
8063
8064         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
8065
8066 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8067
8068         * config/rs6000/rs6000.c (output_vec_const_move):
8069         Find all cases of EASY_VECTOR_15_ADD_SELF.
8070         (easy_vector_constant_add_self): Accept
8071         all vector constant loadable by vsplt* and vadd*.
8072         (easy_vector_same): Use easy_vector_splat_const.
8073         (easy_vector_const): Use easy_vector_splat_const.
8074         (easy_vector_splat_const): New function.
8075         (gen_easy_vector_constant_add_self): New function.
8076
8077         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
8078         New prototype.
8079
8080         * config/rs6000/altivec.md (movv4si splitter): Change to
8081         emit move insn with halfed vector constant.
8082         (*movv8hi splitter): Likewise.
8083         (*movv16qi splitter): Likewise.
8084
8085 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8086
8087         PR 11591
8088         * config/rs6000/rs6000.c (rs6000_legitimate_address):
8089         Allow any offset to argument pointer in no-strict case.
8090
8091 2004-03-30  Jan Hubicka  <jh@suse.cz>
8092
8093         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
8094         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
8095         dump file in non-unit-at-a-time mode.
8096
8097 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
8098
8099         * config/cris/cris.h: Correct #ifdef to test for
8100         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8101         HAVE_AS_MUL_BUG_ABORT_OPTION.
8102
8103 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8104
8105         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8106         the address inside the old RTL.
8107
8108 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
8109
8110         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8111         (struct c_binding, struct c_scope): Add chain_next
8112         attributes to GTY markers.
8113         (struct lang_identifier, struct lang_tree_node): Define
8114         here...
8115         * c-tree.h: ... not here.  No longer need to declare struct
8116         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8117         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8118         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8119
8120         PR 14734, 11944
8121         * c-decl.c (get_parm_info): If error_mark_node is encountered
8122         in the bindings chain, unbind and discard it; don't abort.
8123
8124 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
8125             Dorit Naishlos <dorit@il.ibm.com>
8126
8127         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8128         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8129
8130 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
8131
8132         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8133
8134         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8135         (m68hc11_attribute_table): New attribute "page0" to mark a global
8136         variable as being allocated from within page0 section.
8137         (m68hc11_encode_label): New function.
8138         (m68hc11_strip_name_encoding): New function.
8139         (m68hc11_page0_symbol_p): New function.
8140         (m68hc11_indirect_p): Accept global variables marked in page0.
8141         (m68hc11_encode_section_info): Lookup "page0" attribute.
8142
8143         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8144         represents access to page0 variables.
8145
8146         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8147         ("*logicalsi3_silshl16_zext"): Likewise.
8148         ("*ashldi3_const32"): Likewise.
8149         (peephole2 ashift): Likewise.
8150
8151 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8152
8153         * c-tree.h (C_DECL_REGISTER): New.
8154         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8155         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8156         (build_array_ref, c_mark_addressable): Set and use it.
8157         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8158         Allow structures with volatile fields to be declared register.
8159         Don't check TREE_ADDRESSABLE before warning about taking address
8160         of register.
8161         * c-decl.c (finish_decl): Don't allow structures with volatile
8162         fields to be placed in named register.
8163         * doc/trouble.texi: Remove reference to structures with volatile
8164         fields in registers.
8165
8166 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8167
8168         * function.c (thread_prologue_and_epilogue): Move
8169         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8170         before the epilogue.
8171
8172 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8173
8174         * expr.c (store_constructor): Use gen_int_mode to correctly
8175         sign-extend CONST_INT value.
8176
8177 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8178
8179         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8180         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
8181         * doc/extend.texi: Likewise.
8182
8183 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
8184
8185         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8186           with TYPE_ORIG_SIZE_TYPE.
8187
8188 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
8189
8190         PR 14219
8191         * c-typeck.c (build_binary_op): Do not allow comparisons of
8192         vectors.
8193
8194 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
8195
8196         * config.gcc: Remove sparc-tti-*.
8197         * config/sparc/pbd.h: Delete.
8198
8199         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8200         * config/sparc/aout.h: Likewise.
8201
8202         * config/sparc/sparc.h: Remove if 0'd code.
8203         * config/sparc/sparc.md (call): Remove if 0'd code.
8204         (call_value): Likewise.
8205         (nonlocal_goto): Likewise.
8206         (unimp_insn): Delete.
8207
8208 2004-03-25  Roger Sayle  <roger@eyesopen.com>
8209
8210         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8211         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8212
8213 2004-03-25  Richard Henderson  <rth@redhat.com>
8214
8215         PR 11527
8216         * c-typeck.c (pop_init_level): Emit pending init elements earlier
8217         rather than later.
8218
8219 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8220
8221         * builtins.c (fold_builtin): Fix error in last change.
8222
8223 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8224
8225         * config/mips/mips.h: Formatting fix.
8226
8227 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8228
8229         * builtins.def: Add ctype builtins.
8230         * doc/extend.texi: Likewise.
8231
8232 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8233
8234         * builtins.c (fold_builtin): Add new builtin optimizations for
8235         sqrt and/or cbrt.
8236         * fold-const.c (fold): Likewise.
8237
8238 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8239
8240         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8241         (rs6000_sched_groups): New variable.
8242         (processor_target_table): Add power5.
8243         (rs6000_override_options): Set rs6000_sched_insert_nops,
8244         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8245         from rs6000_sched_groups.
8246         (output_cbranch): Use rs6000_always_hint.
8247         (rs6000_variable_issue): Use rs6000_sched_groups.
8248         (rs6000_adjust_cost): Add CPU_POWER5.
8249         (is_microcoded_insn): Use rs6000_sched_groups.
8250         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8251         Return 2 for POWER5 cracked instructions.
8252         (is_cracked_insn): Use rs6000_sched_groups.
8253         (is_branch_slot_insn): Use rs6000_sched_groups.
8254         (rs6000_issue_rate): Add CPU_POWER5.
8255         (rs6000_sched_finish): Use rs6000_sched_groups.
8256         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8257         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8258         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8259         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8260         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8261         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8262         * config/rs6000/power5.md: New file.
8263         * doc/invoke.texi: Add power5 option.
8264
8265 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8266
8267         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8268         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8269         * doc/invoke.texi: Fix a typo.
8270
8271 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8272
8273         PR optimization/9707.
8274         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8275         of recursing if both children are single-valued cases with no
8276         children.
8277
8278 2004-03-25  Paul Brook  <paul@codesourcery.com>
8279
8280         * config/arm/arm.c (vfp_print_multi): Remove.
8281         (arm_output_fldmx): New function.
8282         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8283         (arm_expand_prologue): Update to match.
8284         (arm_get_vfp_saved_size): New Function.
8285         (arm_get_frame_offsets): Use it.
8286         (arm_output_epilogue): Use new functions.
8287
8288 2004-03-24  Richard Henderson  <rth@redhat.com>
8289
8290         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8291         (reg_known_value, reg_known_value_size): Likewise; make static.
8292         (reg_known_equiv_p): Make static.
8293         (clear_reg_alias_info): Update for new indexing.
8294         (get_reg_known_value, set_reg_known_value): New.
8295         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8296         (canon_rtx): Use them.
8297         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8298         Don't play queer offsetting games with reg_known_value and
8299         reg_known_equiv_p.
8300         (end_alias_analysis): Free reg_known_value with gc.
8301         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8302         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8303         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8304         functions instead.
8305
8306 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8307
8308         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8309         config/i386/mmintrin.h: Update copyright.
8310
8311 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8312
8313         * configure.ac: Add --enable-werror-always (for top level bootstrap
8314         support).
8315         * configure: Regenerate.
8316
8317 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8318
8319         * objc/objc-act.c (objc_comptypes): Treat comparisons
8320         between 'Class' and '<class> *' as explicitly invalid.
8321
8322 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8323
8324         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8325         (-fprofile-values): Add enabled with profile-{generate,use}.
8326         (-fvpt): Same.
8327         (-ftracer): Add enabled with profile-use.
8328         (-funit-at-a-time): Add enabled at -O2,-O3.
8329         (-funroll-loops): Add enabled with profile-use.
8330         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8331         (max-gcse-passes): Mention default.
8332         (max-cse-path-length): Mention default.
8333
8334 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8335
8336         * Makefile.in (STRICT2_WARN): Reorder.
8337         * configure.ac: Check for -Wold-style-definition, and use it
8338         in strict1_warn if it's available.
8339         * configure: Regnerate.
8340
8341 2004-03-24  Paul Brook  <paul@nowt.org>
8342
8343         * config.gcc <arm>: Add --with-abi=
8344         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8345         thumb_far_jump_used): Remove prototypes.
8346         (arm_needs_doubleword_align): Add prototype.
8347         (thumb_compute_initial_elimination_offset): Ditto.
8348         * config/arm/arm.c (arm_get_frame_offsets): New function.
8349         (use_return_insn, output_return_instruction, arm_output_epilogue,
8350         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8351         arm_expand_prologue, thumb_expand_epilogue): Use it.
8352         (arm_abi, target_abi_name, all_arm_abis): New variables.
8353         (arm_override_options): Set them.  Set structure padding for AAPCS.
8354         (arm_return_in_memory): Update ABI check.
8355         (arm_init_cumulative_args): Initialize can_split.
8356         (arm_needs_doubleword_align): New function.
8357         (arm_function_arg): Don't split args after pushing to stack. Handle
8358         doubleword/even reg alignment.
8359         (arm_va_arg): Handle all doubleword aligned args.
8360         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8361         on ABI, not CPU.
8362         (arm_compute_save_reg0_reg12_mask): Fix comment.
8363         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8364         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8365         value for alignment.
8366         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8367         to match.
8368         (thumb_compute_initial_elimination_offset): New function.
8369         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8370         unneccessary rounding.
8371         * config/arm/arm.h (target_abi_name): Declare.
8372         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8373         arm_abi_type, ARM_DEFAULT_ABI): Define.
8374         (ARM_FLAG_ATPCS): Remove.
8375         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8376         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8377         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8378         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8379         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8380         Contitionalize on ABI, not CPU.
8381         (struct arm_stack_offsets): Define.
8382         (struct machine_function): Add stack_offsets.  Remove frame_size.
8383         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8384         pushed.
8385         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8386         doubleword alignment.
8387         (THUMB_INITIAL_ELIMINATION_OFFSET,
8388         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8389         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8390         * config/arm/arm.md (align_8): Enable for all targets.
8391         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8392         (ARM_DEFAULT_ABI): Define.
8393         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8394         -mstructure-size-boundary.
8395
8396 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8397
8398         * configure.ac: Check for -Wno-variadic-macros; don't use
8399         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8400         and if it's available, use it.  Also, clean up check for
8401         -Wno-long-long.
8402         * configure: Regenerate.
8403
8404 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8405
8406         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8407         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8408         (MULTILIB_DEFAULTS): Use it.
8409         (MIPS_CPU_STRING_DEFAULT): Remove.
8410         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8411         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8412         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8413         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8414         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8415         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8416         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8417         accordingly.
8418
8419 2004-03-24  DJ Delorie  <dj@redhat.com>
8420             Richard Sandiford  <rsandifo@redhat.com>
8421
8422         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8423         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8424         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8425         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8426         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8427         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8428         if TARGET_FIX_VR4122.
8429         * config/mips/mips.md (define_attr length): Account for nops inserted
8430         after macc and dmult when using -mfix-vr4122-bugs.
8431         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8432         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8433         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8434         * config/mips/vr4122-div.S: New file.
8435         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8436
8437 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8438
8439         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8440         (TARGET_MIPS4130): New macro.
8441         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8442         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8443         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8444         with PROCESSOR_R4130.
8445         * config/mips/mips.md (define_attr cpu): Add r4130.
8446         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8447
8448 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8449             Richard Sandiford  <rsandifo@redhat.com>
8450
8451         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8452
8453 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8454
8455         PR preprocessor/14438
8456         * cpplib.c (do_pragma): Remove line_change call after pragma
8457         handler.
8458
8459 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8460
8461         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8462         declarations.
8463
8464 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8465
8466         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8467         if flag_unsafe_math_optimizations.
8468         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8469         and TARGET_80387 expand using truncdfsf2_noop pattern.
8470         (truncxfsf2): Likewise using truncxfsf2_noop.
8471         (truncxfdf2): Likewise using truncxfdf2_noop.
8472         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8473
8474 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8475
8476         * hooks.c (hook_constcharptr_tree_null): New hook.
8477         * hooks.h (hook_constcharptr_tree_null): New prototype.
8478         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8479         * target.h (mangle_fundamental_type): New target hook.
8480         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8481         target hook at rs6000_mangle_fundamental_type.
8482         (rs6000_mangle_fundamental_type): New function.
8483         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8484
8485 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8486
8487         PR 12267, 12391, 12560, 13129, 14114, 14133
8488         * c-tree.h: Forward declare struct c_binding.  Declare
8489         c_override_bindings_to_false.  Update prototypes.
8490         (struct lang_identifier): Update comments.  Change fields to be
8491         struct c_binding *.
8492         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8493         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8494         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8495         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8496         * c-common.h: Update prototypes.
8497         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8498         names_last, parms, parms_last, tags, and shadowed fields.  Add
8499         bindings and depth fields.
8500         (scope_freelist): Move to more appropriate location.
8501         (c_print_identifier): Update for changes to struct lang_identifier.
8502         (objc_mark_locals_volatile): Update for new bindings structures.
8503         (global_bindings_p): Honor c_override_global_bindings_to_false.
8504         (pushlevel): Rename to push_scope; take no arguments; use the
8505         scope_freelist; initialize scope->depth and check for overflow.
8506         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8507         structures.
8508         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8509         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8510         Improve some commentary.  Adjust handling of forward parm decls.
8511         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8512         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8513         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8514         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8515         decls.  Rewrite for new bindings structures.  Improve commentary.
8516         Eliminate the copy_node call.
8517         (implicit_decl_warning): Use the "diag" idiom (as seen in
8518         locate_old_decl) to reduce code duplication; call locate_old_decl
8519         if appropriate.  Relocate to remove need for forward declaration.
8520         (implicitly_declare): Adjust for new bindings structures.  Kludge
8521         around Objective-C not-really-builtin functions.
8522         (undeclared_variable): Improve diagnostics.  If current_function_decl
8523         is nonnull but current_function_scope is null, use current_scope.
8524         Use bind.
8525         (lookup_tag): Adjust for new bindings structures.  Kludge around
8526         Objective-C's tag declarations that wind up in the external scope.
8527         (lookup_name): Adjust for new bindings structures.  Kludge around
8528         c-common.c's pseudo-typedefs that wind up in the external scope.
8529         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8530         second argument indicating the scope to examine; rewrite for
8531         new bindings structures.
8532         (c_init_decl_processing): Adjust for renamed functions.  Do not
8533         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8534         First scope pushed is the external scope, not the global scope.
8535         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8536         for new data structures.  Keep track of builtins that should be
8537         made visible automatically.
8538         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8539         expand_decl.
8540         (grokparms): Return 0 if arg_types is error_mark_node.
8541         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8542         reversed sense.  Rewrite for new bindings structures.  Do not
8543         leave any decls in the scope, to prevent pop_scope from doing
8544         contradictory things with them.
8545         (finish_struct, finish_enum): Remove redundant diagnostics.
8546         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8547         Mark location where -pedantic changes the meaning of the program.
8548         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8549         parameter decls into the function's scope structure using bind.
8550         Warn here about function definitions in the wrong style.
8551         Adjust diagnostics.
8552         (store_parm_decls): Correct the determination of whether a
8553         function was defined with a prototype.
8554         (c_write_global_declarations): Operate on all file decls and on
8555         the external scope.  Split body of the loop to...
8556         (c_write_global_declarations_1): ... this new function, to avoid
8557         code duplication.
8558         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8559         (make_scope, pop_scope, in_parm_level_p, set_block)
8560         (any_external_decl, record_external_decl, bind_label, getdecls)
8561         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8562         (c_reset_state): Delete.
8563         (visible_builtins, c_override_global_bindings_to_false)
8564         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8565         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8566         (external_scope, binding_freelist, bind, free_binding_and_advance)
8567         (push_file_scope, pop_file_scope): New.
8568         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8569         (define_label, c_make_fname_decl, finish_decl)
8570         (mark_forward_parm_decls, build_compound_literal)
8571         (grokdeclarator, start_function, check_for_loop_decls)
8572         (identifier_global_value, record_builtin_type): Minor adjustments
8573         for new bindings structures.  Improve diagnostics and commentary.
8574         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8575         pushlevel/poplevel respectively.
8576         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8577         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8578         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8579         correct loop over multiple translation units; call fatal_error if
8580         requested to compile more than one file at once.  (This disables
8581         IMA temporarily - an up-front error being preferable to a crash.)
8582         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8583         (all actions): Adjust calls to pushlevel/poplevel.
8584         (parsing_iso_function_signature): Delete.
8585         (extdef_1): Fold into extdef.
8586         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8587         warn here about function definitions in the wrong style.
8588         (after_tyle_declarator, parm_declarator_starttypename)
8589         (parm_declarator_nostarttypename, notype_declarator): Remove
8590         commented-out productions.
8591         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8592         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8593         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8594         to suppress -Wold-style-definition after this error.
8595         (c_parse_file): Don't clear the binding stack or call
8596         finish_fname_decls here.  Correct comment.
8597         * c-typeck.c (same_translation_unit_p): Export.
8598         (common_type): Use c_override_global_bindings_to_false, not
8599         pushlevel/poplevel/declare_parm_level.
8600         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8601         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8602         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8603         * objc/objc-lang.c: Likewise.
8604         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8605         get_parm_info.
8606         (OBJC_VOID_AT_END): Delete; replace all uses
8607         with void_list_node.
8608         (generate_forward_declaration_to_string_table): Delete.
8609         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8610
8611         * coverage.c (create_coverage): Don't pushdecl anything.
8612         * langhooks.c (lhd_clear_binding_stack): Call
8613         lang_hooks.decls.poplevel, not poplevel.
8614         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8615         circular list rather than going into an infinite loop.
8616
8617 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8618
8619         * optabs.c (expand_binop): When synthesizing double word rotates
8620         from single word shifts, use a new register target if the provided
8621         target is not a REG already.
8622
8623 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8624
8625         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8626         * c-common.c (handle_mode_attribute): Add extra arg to
8627         build_pointer_type_for_mode and build_reference_type_for_mode.
8628         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8629         for INTEGER_CST.
8630         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8631         Chain pointers via TYPE_NEXT_PTR_TO.
8632         (build_reference_type_for_mode): Similarly.
8633         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8634         and build_reference_type_for_mode.
8635         (tree_check4_failed): New function.
8636         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8637         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8638         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8639         Add check.
8640
8641 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8642
8643         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8644         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8645         when both A and B are nonnegative.
8646         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8647         nonzero.
8648
8649 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8650
8651         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8652         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8653
8654 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8655
8656         PR optimization/14669
8657         * fold-const.c (fold): Only unwiden integer comparisons for equality
8658         and inequality operators, or when the signedness doesn't change.
8659
8660 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8661
8662         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8663         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8664         * config/sparc/t-linux: New file.
8665
8666 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8667
8668         * gcse.c (can_assign_to_reg_p): New function, split out from...
8669         (want_to_gcse_p): ...here.
8670         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8671         the rhs of a store.
8672
8673 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8674
8675         * c-typeck.c (same_translation_unit_p): Fix pasto.
8676
8677 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8678
8679         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8680         (PARAM_MAX_SCHED_REGION_INSNS): New.
8681         * sched-rgn.c: Include params.h
8682         (MAX_RGN_BLOCKS): Delete.
8683         (MAX_RGN_INSNS): Delete.
8684         (too_large): Return bool.  Convert to PARAM_VALUE.
8685         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8686         * doc/invoke.texi (param): Document max-sched-region-blocks and
8687         max-sched-region-insns.
8688
8689 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8690
8691         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8692         for base types.
8693
8694 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8695
8696         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8697         change.
8698
8699 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8700
8701         PR c/14069
8702         * c-decl.c (finish_struct): Change type of incorrect flexible array
8703         field into error_mark_node.
8704
8705 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8706
8707         PR target/14580
8708         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8709         who are not local for Darwin PIC.
8710
8711 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8712
8713         * regrename.c (regrename_optimize): Set regs_ever_live for all
8714         registers introduced as replacement.
8715
8716 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8717
8718         PR middle-end/14470
8719         * expr.c (mark_queue): New function.
8720         (emit_insns_enqueued_after_mark): New function replacing
8721         emit_queue.  Clear the body of emitted queued insns.
8722         (emit_queue): Call emit_insns_enqueued_after_mark.
8723         (store_expr): Mark the increment queue on entry.  Emit
8724         only the incrementations queued when expanding the source.
8725
8726 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8727
8728         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8729         of top level bootstrap, and consistency).  Reindent.
8730         * configure: Regenerate.
8731
8732 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8733
8734         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8735         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8736         unnecessary casts.
8737
8738 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8739
8740         PR target/14291
8741         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8742         __MINGW32__.
8743
8744 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8745
8746         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8747         to nonimmediate_operand.
8748         ("*doloop_di"): Likewise.
8749
8750 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8751
8752         * real.h (struct real_value): Use the same type for all
8753         bitfields.  Rename exp to uexp.
8754         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8755         Adjust all uses of exp...
8756         * builtins.c: ... here, ...
8757         * emit-rtl.c: ... here, and ...
8758         * real.c: ... and here.
8759
8760 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8761
8762         * pretty-print.c (pp_base_maybe_space): New function.
8763         * pretty-print.h (pp_base_maybe_space): Declare.
8764         (pp_maybe_space): New macro.
8765
8766 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8767
8768         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8769
8770 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8771
8772         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8773         of using register multiplication cost.
8774         (expand_mult): Adapt choose_mult_variant call.
8775         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8776         of MODE; pass appropriate cost bound.  Adjust result when
8777         performing signed multiplication by a negative constant.
8778         Don't use intermediate modes larger than word_mode.
8779
8780 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8781
8782         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8783         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8784         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8785         * explow.c (expr_size): Likewise.
8786         * expr.h (placeholder_list, find_placeholder): Deleted.
8787         * expr.c (store_constructor): Likewise.
8788         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8789         (placeholder_list, find_placeholder): Deleted.
8790         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8791         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8792         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8793         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8794         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8795         Likewise.
8796         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8797         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8798         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8799         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8800         Clean up by using first_rtl_op.
8801         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8802         (substitute_placeholder_in_expr): New function.
8803         * tree.def (WITH_RECORD_EXPR): Deleted.
8804         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8805         (substitute_placeholder_in_expr): New.
8806
8807 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8808
8809         * dojump.c (prefer_and_bit_test): Fix which part of
8810         the and_test is replaced.
8811
8812 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8813
8814         * frontends.texi: Add missing line.
8815
8816 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8817             Chris Devers  <cdevers@pobox.com>
8818             Joseph S. Myers  <jsm@polyomino.org.uk>
8819
8820         * doc/frontends.texi: Rewrite.
8821         * doc/gcc.texi: Update last modification date.
8822
8823 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8824
8825         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8826         message before redirecting the edge.
8827
8828 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8829
8830         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8831         flag.
8832         * explow.c (force_not_mem): Set REG_POINTER flag according to
8833         MEM_POINTER one.
8834         * rtl.h (MEM_POINTER): New macro.
8835         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8836         for MEM_POINTER.
8837
8838 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8839
8840         PR target/13889
8841         * cse.c (fold_rtx): Avoid substituting constants into unary
8842         conversion operations.
8843
8844 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8845
8846         * fold-const.c (fold): Replace "expr" with "t".
8847
8848 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8849
8850         PR c/12373
8851         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8852         DECL_ORIGINAL_TYPE if there isn't one.
8853
8854 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8855
8856         * fold-const.c (fold): Replace "final_type" with "type".
8857         Remove variable "final_type".
8858
8859 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8860
8861         * fold-const.c (fold): Constify "type".
8862         Replace "TREE_TYPE (t)" with "type".
8863
8864 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8865
8866         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8867         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8868         via (*targetm.foo) () with targetm.foo ().
8869
8870 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8871
8872         PR other/14630
8873         * doc/install.texi: Add info directory category and entry.
8874
8875 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8876
8877         * fold-const.c (fold): Replace "t" with "tem" where it is used
8878         as a temporary variable.  Remove "orig_t" and all of its uses.
8879
8880 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8881
8882         * fold-const.c (fold): Remove variable "invert".
8883         Move the handling of relational expressions that can be folded
8884         to a constant ...
8885         (fold_relational_const): ... here.
8886         (tree_expr_nonzero_p): New.
8887
8888 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8889
8890         PR c/14635
8891         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8892         DEF_GCC_BUILTIN.
8893
8894 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8895
8896         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8897         (GTFILES): Add $(srcdir)/dojump.h.
8898         (gt-dojump.h): New dependency.
8899         * dojump.c (and_reg, and_test, shift_test): New static variables.
8900         (prefer_and_bit_test): New function.
8901         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8902
8903 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8904
8905         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8906         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8907         reorg.c, tree.h: Fix comment typos.
8908
8909 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8910
8911         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8912         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8913         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8914         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8915         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8916         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8917         targetm.foo ().
8918
8919 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8920
8921         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8922         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8923         always_inline attribute.
8924         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8925         Treat expansion as completed even if literal argument is
8926         invalid (so that other expansions are not tried in vain).
8927
8928 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8929
8930         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8931         const0_rtx.
8932
8933 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8934
8935         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8936         ...
8937         (fold_abs_const): ... here.
8938
8939 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8940
8941         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8942
8943 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8944
8945         PR target/11520
8946         * config/avr/avr.md ("call_insn"): Handle explicit integer
8947         specially.
8948         (call_value_insn): Likewise.
8949
8950 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8951
8952         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8953
8954 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8955
8956         * fold-const.c (negate_expr): Move the handling of constants
8957         ...
8958         (fold_negate_const): ... here.
8959
8960 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8961
8962         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8963         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8964         * tree.c (debug_no_type_hash): Deleted.
8965         (type_hash_canon): Abort if passed a variant.
8966         Check lang_hooks.types.hash_types.
8967         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8968         (build_array_type): Remove unnecessary allocation of pointer type.
8969         (build_complex_type): Properly qualify resulting type.
8970
8971 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8972
8973         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8974
8975 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8976
8977         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8978         (expand_mult): ...here.
8979         (extract_high_half): New, split out from expand_mult_highpart.
8980         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8981         (expand_highpart): Evaluate the cost of a shift/add sequence,
8982         then see if any of the specialized optabs are cheaper.
8983
8984 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8985
8986         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8987
8988 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8989
8990         * convert.c (convert_to_real): Add more math builtins.
8991
8992 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8993
8994         * convert.c (convert_to_real): Reformat using switch stmt.
8995
8996 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8997
8998         * c-common.c (pointer_int_sum): Do not complain about using
8999         pointers to pointers-to-members.
9000
9001 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9002
9003         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
9004         have moved to the target hooks structure".
9005
9006 2004-03-18  James E Wilson  <wilson@specifixinc.com>
9007
9008         * config/mips/mips.md (type): Split move into arith and fmove.  Split
9009         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
9010         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
9011         Likewise.
9012         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
9013         Likewise.
9014         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
9015         rm7_fp_quick): Likewise.
9016         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
9017         rm9k_fquick): Likewise.
9018         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
9019         Likewise.
9020         (ir_sr70_icmp): Delete.
9021
9022 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9023
9024         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
9025         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
9026         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
9027         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
9028         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
9029         Protect with proper check.
9030         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
9031         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
9032         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
9033         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
9034         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
9035         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
9036         not TYPE_FIELDS.
9037         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
9038
9039 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
9040
9041         * gcse.c (eliminate_partially_redundant_loads): Reject change if
9042         dest is set between beginning and current insn.
9043
9044 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
9045
9046         * c-decl.c (grokdeclarator): Do not complain about redeclaring
9047         visible "static" identifiers "extern" in a local scope.
9048         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
9049         post-increments/decrements.
9050
9051 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
9052
9053         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
9054         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
9055         (xtensa_va_start): Remove assignment to current_function_arg_words.
9056
9057 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
9058
9059         * alias.c (record_set): Detect the case where a register is assigned
9060         a new value that has the same base term as the old one.
9061
9062 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9063
9064         * doloop.c: Removed.
9065         * loop-doloop.c: New file.
9066         * Makefile.in (doloop.o): Remove.
9067         (loop-doloop.o): New.
9068         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
9069         * cfgloopanal.c (get_loop_level): New function.
9070         * loop-iv.c (iv_number_of_iterations): Handle case when loop
9071         is leaved immediatelly.
9072         * loop.c (strength_reduce): Do not call doloop optimization.
9073         * loop.h (LOOP_BCT): Removed.
9074         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
9075         (rest_of_handle_loop2): Call doloop_optimize_loops.
9076         (rest_of_compilation): Test for optimizations moved to
9077         rest_of_handle_loop2.
9078
9079 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
9080
9081         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
9082         for mixed mode.
9083         (rs6000_emit_prologue): Ditto.
9084         (rs6000_emit_epilogue): Ditto.
9085         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
9086         macro for mixed mode.
9087
9088 2004-03-18  Jan Hubicka  <jh@suse.cz>
9089
9090         * predict.c (propagate_freq): Compute correctly frequency of
9091         EXIT_BLOCK.
9092
9093 2004-03-17  Eric Christopher  <echristo@redhat.com>
9094
9095         * builtins.c (apply_args_size): Use reg_raw_mode.
9096         (apply_result_size): Ditto.
9097
9098 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9099
9100         PR target/14620
9101         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9102
9103 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
9104
9105         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9106         32-bit builds when defaulting to 32-bit.
9107
9108 2004-03-17  Jan Hubicka  <jh@suse.cz>
9109
9110         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9111         array.
9112
9113 2004-03-17  James E Wilson  <wilson@specifixinc.com>
9114
9115         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9116         (hazard_nop): Change type to nop.
9117         (type): Split arith into arith, shift, slt, clz.  Delete darith.
9118         Fix all uses.  Change arith to multi if more than one insn emitted.
9119         * config/mips/5400.md (ir_vr54_arith): Likewise.
9120         * config/mips/5500.md (ir_vr55_arith): Likewise.
9121         * config/mips/7000.md (rm7_int_other): Likewise.
9122         * config/mips/9000.md (rm9k_int): Likewise.
9123         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9124
9125 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
9126
9127         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9128         to hold the subtype tree instead of recomputing it several times.
9129
9130 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9131
9132         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9133         CC_INVERT.
9134         * config/mn10300/mn10300.md (cc): Remove "invert".
9135
9136 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9137
9138         * builtins.c (integer_valued_real_p): Add builtin rint.
9139         (fold_builtin): Likewise.
9140         * convert.c (convert_to_real): Likewise.
9141
9142         * convert.c (convert_to_real): Fix typos in `long double'
9143         builtins.
9144
9145 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
9146
9147         PR c++/14481
9148         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9149         generated COMPOUND_EXPRs.
9150
9151 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9152
9153         * config/h8300/t-rtems (h8300-*-rtems*): New.
9154
9155 2004-03-16  Eric Christopher  <echristo@redhat.com>
9156
9157         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9158
9159 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9160
9161         * config/i386/i386-protos.h: Add a prototype for
9162         ix86_reverse_condition.
9163         * config/i386/i386.c (ix86_reverse_condition): New.
9164         * config/i386/i386.h (REVERSE_CONDITION): Use
9165         ix86_reverse_condition.
9166         * config/i386/i386.md: Use ix86_reverse_condition instead of
9167         REVERSE_CONDITION.
9168
9169 2004-03-16  J. Brobecker  <brobecker@gnat.com>
9170
9171         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9172
9173 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9174
9175         PR bootstrap/12974
9176         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9177
9178 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9179
9180         * c-common.c (c_common_type_for_mode): Build vector types on
9181         demand.
9182         (handle_mode_attribute): Deprecate using the mode attribute
9183         to create vector types.  Fix indentation.
9184         (vector_type_node_list): Remove.
9185         (handle_vector_size_attribute): Create vector types on demand.
9186         Strip a NON_LVALUE_EXPR from the attribute if there is one.
9187         * c-typeck.c (comptypes): Make vector types compatible if they
9188         have the same underlying mode.
9189         (convert_for_assignment): Use comptypes to convert between
9190         vector types.
9191         * tree.c (build_common_tree_nodes_2): Do not create vector types.
9192         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9193         vector types.
9194         * tree.h: Remove vector types.
9195         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9196         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9197         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9198         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9199         * doc/extend.texi (Vector Types): Document how to use the
9200         vector_size attribute to create vectors, rather than mode.
9201
9202         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9203         * config/i386/emmintrin.h: Likewise.
9204         * config/i386/mmintrin.h: Likewise.
9205         * config/i386/xmmintrin.h: Likewise.
9206         * config/sh/ushmedia.h: Likewise.
9207
9208 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9209
9210         * config/freebsd-spec.h, config/arc/arc-protos.h,
9211         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9212         config/arm/linux-gas.h, config/arm/semi.h,
9213         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9214         config/ia64/freebsd.h, config/mips/7000.md,
9215         config/mips/9000.md, config/ns32k/ns32k-protos.h,
9216         config/sparc/pbd.h: Update copyright.
9217
9218 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9219
9220         PR target/14577
9221         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9222
9223 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9224
9225         * combine.c (combine_simplify_rtx): Remove the "last"
9226         parameter and its documentation.  Adjust recursive calls.
9227         (simplify_logical): Always perform the only simplification
9228         controlled by "last", if the simplified expression is
9229         actually different.
9230         (try_combine): Do not pass the "last" parameter to
9231         combine_simplify_rtx.
9232
9233 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9234
9235         PR target/14599
9236         * config/mips/mips.md (UNSPEC_GP): New constant.
9237         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9238         an UNSPEC instead of (reg $gp).
9239         (mips16_gp_pseudo_reg): Change accordingly.
9240         (print_operand): Print $gp directly when handling CONST_GP_P.
9241
9242 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9243
9244         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9245         * longlong.h: Make code 68060 clean when compiling for m68060.
9246
9247 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9248
9249         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9250         * doc/md.texi: Clarify description of "i" constraint.
9251
9252 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9253
9254         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9255         Split store into store, fpstore, fpidxstore.  Fix all uses.
9256         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9257         Likewise.
9258         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9259         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9260         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9261         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9262         ir_sr70_fstore): Likewise.
9263
9264 2004-03-15  Richard Henderson  <rth@redhat.com>
9265
9266         PR middle-end/14535
9267         * except.c (collect_one_action_chain): Record action for cleanup
9268         outer of exception spec.
9269
9270 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9271
9272         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9273         Fix the check for abort and only do the mmap if we can.
9274
9275 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9276
9277         * config/sparc/sparc.h: Rework comments about the code model
9278         in 64-bit environment and the mode 'Pmode'.
9279         * doc/invoke.texi (SPARC options): Rework description of the
9280         different code models supported in 64-bit environment.
9281
9282 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9283
9284         * defaults.h (REVERSIBLE_CC_MODE): Define.
9285         * jump.c (reversed_comparison_code_parts): Don't check if
9286         REVERSIBLE_CC_MODE is defined.
9287
9288 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9289
9290         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9291         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9292         hosthooks.h, params.h, ra-colorize.c, web.c,
9293         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9294         config/avr/avr-protos.h, config/avr/avr.md,
9295         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9296         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9297         config/i386/freebsd.h, config/i386/freebsd64.h,
9298         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9299         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9300         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9301         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9302         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9303         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9304         config/sparc/aout.h, config/sparc/freebsd.h,
9305         config/sparc/litecoff.h, config/vax/vax-protos.h,
9306         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9307         copyright.
9308
9309 2004-03-15  Paul Brook  <paul@codesourcery.com>
9310
9311         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9312
9313 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9314
9315         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9316         (pp_c_cv_qualifier): Document.
9317         (pp_c_space_for_pointer_operator): Likewise.
9318         (pp_c_integer_constant): Likewise.
9319         (pp_c_identifier): Likewise.
9320         (pp_c_init_declarator): Don't print function body.
9321
9322 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9323
9324         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9325         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9326         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9327         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9328         wording and grammar.
9329
9330 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9331
9332         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9333         with lang_hooks.foo ().
9334         * builtins.c (expand_builtin_va_arg): Likewise.
9335         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9336         c_common_type_for_mode, c_common_nodes_and_builtins,
9337         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9338         * c-convert.c (convert): Likewise.
9339         * c-format.c (check_format_types): Likewise.
9340         * c-objc-common.c (c_tree_printer): Likewise.
9341         * c-typeck.c (build_unary_op, build_conditional_expr,
9342         build_binary_op): Likewise.
9343         * calls.c (try_to_integrate, expand_call,
9344         emit_library_call_value_1): Likewise.
9345         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9346         Likewise.
9347         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9348         cgraph_expand_function): Likewise.
9349         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9350         * coverage.c (build_fn_info_type, build_ctr_info_type,
9351         build_gcov_info, create_coverage): Likewise.
9352         * dbxout.c (dbxout_init): Likewise.
9353         * diagnostic.c (diagnostic_report_current_function): Likewise.
9354         * dojump.c (do_jump): Likewise.
9355         * dwarf2out.c (dwarf2_name): Likewise.
9356         * except.c (init_eh): Likewise.
9357         * explow.c (expr_size, int_expr_size): Likewise.
9358         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9359         Likewise.
9360         * expr.c (store_expr, store_constructor, safe_from_p,
9361         expand_expr_real, do_store_flag, try_casesi): Likewise.
9362         * function.c (push_function_context_to, pop_function_context_from,
9363         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9364         put_var_into_stack, allocate_struct_function, current_function_name):
9365         Likewise.
9366         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9367         Likewise.
9368         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9369         lhd_print_error_function): Likewise.
9370         * opts.c (handle_option, decode_options): Likewise.
9371         * passes.c (open_dump_file): Likewise.
9372         * print-tree.c (print_node): Likewise.
9373         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9374         expand_decl_cleanup, emit_case_nodes): Likewise.
9375         * stor-layout.c (variable_size): Likewise.
9376         * toplev.c (announce_function, wrapup_global_declarations,
9377         check_global_declarations, compile_file, default_tree_printer,
9378         process_options, lang_dependent_init, finalize): Likewise.
9379         * tree-dump.c (dequeue_and_dump): Likewise.
9380         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9381         initialize_inlined_parameters, declare_return_variable,
9382         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9383         walk_tree, copy_tree_r): Likewise.
9384         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9385         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9386         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9387         variably_modified_type_p, dump_tree_statistics): Likewise.
9388         * varasm.c (assemble_variable, compare_constant, copy_constant,
9389         force_const_mem, compute_reloc_for_constant, output_constant,
9390         output_addressed_constants, initializer_constant_valid_p): Likewise.
9391
9392 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9393
9394         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9395
9396 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9397
9398         * doc/install.texi: Reflect autoconf and automake version for
9399         libffi. Update autoconf version to 2.59.
9400
9401 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9402
9403         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9404         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9405         make_range, build_range_check, fold_range_test, unextend,
9406         constant_boolean_node, fold_binary_op_with_conditional_arg,
9407         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9408         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9409         with lang_hooks.foo ().
9410
9411 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9412
9413         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9414
9415 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9416
9417         * doc/install.texi: Note status of -fnew-ra.
9418
9419 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9420
9421         PR middle-end/14470
9422         * expr.c (store_expr): Call emit_queue before generating the move
9423         from the temporary to the original target.  Protect the temporary
9424         from emit_queue.
9425
9426 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9427
9428         PR target/14533
9429         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9430         other than UNSPEC_GOTOFF.
9431
9432 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9433
9434         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9435         to arm_legitimate_index_p.  Update all callers with SET as default
9436         value.
9437         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9438         range if OUTER is a sign-extend operation on QImode.  Correctly
9439         reject shift operations on sign-extended QImode addresses.
9440         (bad_signed_byte_operand): Delete.
9441         (arm_extendqisi_mem_op): New function.
9442         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9443         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9444         constraints.
9445         (CONSTRAINT_LEN): New.
9446         (EXTRA_CONSTRAINT): Delete.  Replace with...
9447         (EXTRA_CONSTRAINT_STR): ... this.
9448         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9449         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9450         is now always default.
9451         (define_splits for bad sign-extend loads): Delete.
9452         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9453         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9454         Rework 'U' constraint to 'Uv'.
9455         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9456         arm_extendqisi_mem_op.
9457         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9458         Add Uq constraint.
9459
9460 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9461
9462         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9463         with targetm version.
9464
9465         PR target/14567
9466         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9467         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9468         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9469         Update all users of RS6000_ARG_SIZE.
9470         (function_arg_advance): Count fregno using mode size.
9471         (function_arg): Handle long double split over regs and memory.
9472         (function_arg_partial_nregs): Likewise.
9473         (rs6000_va_arg): Repackage complex args.
9474
9475 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9476
9477         PR target/14047
9478         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9479         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9480         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9481
9482 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9483
9484         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9485         prototype.
9486         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9487         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9488
9489 2004-03-12  Andrew Pinski  <apinski@apple.com>
9490
9491         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9492         Use ret instead of result. Use addr instead of base.
9493
9494 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9495
9496         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9497         fixes required by libstdc++ and update installation instructions
9498         for libstdc++.a.
9499
9500 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9501
9502         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9503         leading '@' on fastcall symbols before stripping suffix.
9504
9505 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9506
9507         * combine.c (unmentioned_reg_p): New function to check whether an
9508         expression is a "specialization" of another, i.e. that there are
9509         no registers or memory references mentioned in the first that don't
9510         appear in the second.
9511         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9512         (combine_instructions): Also try combining instructions using the
9513         REG_EQUAL note from a preceding log-linked instruction.
9514
9515 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9516
9517         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9518
9519 2004-03-12  Matt Austern  <austern@apple.com>
9520
9521         * target.h (struct gcc_target): New target hook, unwind_label.
9522         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9523         * output.h (default_emit_unwind_label): New function.
9524         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9525         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9526         (TARGET_SUPPORTS_HIDDEN): New target macro.
9527         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9528         that corresponds to this FDE.
9529         (FRAME_BEGIN_LABEL): Allow target to override default label.
9530         (output_call_frame_info): If FDEs are linknonce, then use extra
9531         indirection for FDE encoding, output a label for each FDE, and
9532         output an empty label for each function without an FDE.
9533         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9534         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9535         decls with DECL_ONE_ONLY set, if that macro is defined.
9536         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9537         for a SUPPORTS_ONE_ONLY target.
9538         * config/darwin-protos.h (darwin_unique_section): Declare.
9539         (darwin_asm_named_section): Likewise.
9540         (darwin_section_type_flags): Likewise.
9541         (darwin_non_lazy_pcrel): Likewise.
9542         (darwin_emit_unwind_label): Likewise.
9543         (darwin_make_decl_one_only): Likewise.
9544         * config/darwin.c (machopic_finish): Get rid of tweak that
9545         eliminate stubs for symbols that are defined.
9546         (darwin_encode_section_info): Don't treat weak functions as defined.
9547         (darwin_make_decl_one_only): Define.
9548         (darwin_asm_named_section): Likewise.
9549         (darwin_section_type_flags): Likewise.
9550         (darwin_unique_section): Likewise.
9551         (darwin_emit_unwind_label): Likewise.
9552         (darwin_non_lazy_pcrel): Likewise.
9553         (darwin_asm_output_dwarf_delta): Difference between two labels is
9554         local only if both labels are local.
9555         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9556         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9557         (TARGET_SUPPORTS_HIDDEN): Likewise.
9558         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9559         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9560         (FRAME_BEGIN_LABEL): Likewise.
9561         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9562         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9563         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9564         (TARGET_ASM_UNIQUE_SECTION): Define.
9565         (EH_FRAME_SECTION_NAME): Define.
9566         (EH_FRAME_SECTION_ATTR): Likewise.
9567         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9568         (TARGET_ASM_NAMED_SECTION): Likewise.
9569         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9570         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9571         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9572         TARGET_ASM_EMIT_UNWIND_LABEL.
9573
9574 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9575
9576         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9577         existing exp10* case.
9578         (expand_builtin): Likewise.
9579
9580 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9581
9582         * doc/tm.texi (registers) <Values in Registers>: Add
9583         entry for REGMODE_NATURAL_SIZE.
9584
9585 2004-03-12  Richard Henderson  <rth@redhat.com>
9586
9587         PR target/14547
9588         * target.h (struct gcc_target): Move calls substructure before
9589         booleans.  Add split_complex_arg.
9590         * function.c (assign_parms, split_complex_args): Use it.
9591         * calls.c (expand_call): Likewise.
9592         (split_complex_values): Likewise.  Check for splittable types
9593         before allocating memory.
9594         (split_complex_types): Likewise.
9595         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9596         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9597         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9598         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9599         (TARGET_SPLIT_COMPLEX_ARG): New.
9600         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9601         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9602         (rs6000_override_options): Zap it for non-AIX.
9603         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9604         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9605         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9606         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9607         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9608         SPLIT_COMPLEX_ARGS entry.
9609
9610 2004-03-11  Richard Henderson  <rth@redhat.com>
9611
9612         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9613         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9614         (alpha_emit_xfloating_arith): Update to match.
9615         (alpha_emit_xfloating_compare): Likewise.
9616         (alpha_emit_xfloating_cvt): Likewise.
9617         (alpha_emit_xfloating_libcall): Take already built symbol,
9618         mark call const.
9619         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9620         op1 in a register.
9621
9622 2004-03-11  Richard Henderson  <rth@redhat.com>
9623
9624         PR target/14539
9625         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9626
9627         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9628
9629 2004-03-11  Richard Henderson  <rth@redhat.com>
9630
9631         PR middle-end/14477
9632         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9633
9634 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9635
9636         PR target/14262
9637         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9638         defined, pass small BLKmode values in registers in the low-order part.
9639
9640 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9641
9642         * combine.c (if_then_else_cond): Check for NULL return value of
9643         simplify_gen_subreg.
9644
9645 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9646
9647         PR target/14496
9648         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9649         TARGET_SINGLE_FLOAT.
9650
9651 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9652
9653         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9654         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9655         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9656         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9657
9658 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9659
9660         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9661         -((int)X>>C) where C is an integer constant one bit less than the
9662         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9663         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9664
9665         * simplify-rtx.c (simplify_unary_operation): Also implement the
9666         above transformations at the RTL level.
9667
9668 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9669
9670         * real.c (encode_ibm_extended): Do round low word.
9671
9672 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9673
9674         * config/arm/arm.md (is_xscale): Comment this attribute and move
9675         it a bit further up in the file, closer to related attributes.
9676
9677 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9678
9679         * config/host-solaris.c (sol_gt_pch_use_address): Add
9680         missing terminating marker to comment.
9681
9682 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9683
9684         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9685         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9686         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9687         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9688         move_operand as source predicate in all cases.
9689         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9690         Test reg_or_0_operand.  Use move_operand as source predicate.
9691         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9692         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9693         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9694         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9695         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9696         Use move_operand as source predicate.  Remove 'K' constraint.
9697         (*movqi_internal): Likewise movqi_internal.
9698         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9699         reg_or_0_operand.  Use move_operand as source predicate.
9700         (*movsf_softfloat): Likewise movsf_internal2.
9701         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9702         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9703         (*movdf_softfloat): Likewise movdf_internal2.
9704         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9705         for DImode if !TARGET_64BIT.
9706         (mips_legitimize_move): Simplify accordingly.
9707
9708 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9709
9710         PR/14362
9711         * var-tracking.c (struct variable_def): Added field refcount.
9712         (variable_htab_free): Decrease the refcount and delete variable
9713         only if there are no more references.
9714         (unshare_variable): New function.
9715         (vars_copy_1): Increase refcount instead of copying the variable.
9716         (variable_union): Share the variables where possible, unshare
9717         the variables if needed.
9718         (variable_different_p): Return false if var1 and var2 are
9719         the same structure.
9720         (variable_was_changed): Init the refcount of new variable.
9721         (set_frame_base_location): Unshare variable if needed.
9722         (set_variable_part): Init the refcount of new variable.
9723         Unshare the variables if needed.
9724         (delete_variable_part): Unshare the variables if needed.
9725         (emit_notes_for_differences_1): Init the refcount of new variable.
9726         (vt_add_function_parameters): Do not add function parameters to
9727         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9728         (vt_initialize): Do not add frame_base_decl to IN set of
9729         ENTRY_BLOCK_PTR because it is unused anyway.
9730
9731 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9732
9733         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9734         (vars_copy): Likewise.
9735         (variable_union): Likewise.
9736         (set_variable_part): Likewise.
9737         (delete_variable_part): Likewise.
9738
9739 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9740
9741         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9742         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9743         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9744         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9745         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9746         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9747         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9748         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9749         config/stormy16/stormy16.c: Fix comment typos and formatting.
9750
9751 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9752
9753         * configure: Regenerate, since I forgot to while committing Paolo's
9754         changes.
9755
9756 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9757
9758         PR ada/14131
9759         Move language detection to the top level.
9760         * configure.ac: Remove code to detect languages,
9761         it now lives exclusively in the top level.
9762         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9763         top level, renamed to ACX_PROG_GNAT.
9764
9765 2004-03-10  Richard Henderson  <rth@redhat.com>
9766
9767         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9768         extra arguments.
9769         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9770         and host_xmake_file fragments.
9771         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9772         (gt_pch_restore): Similarly for gt_pch_use_address.
9773         (default_gt_pch_get_address): New.
9774         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9775         (default_gt_pch_use_address): Split out of gt_pch_restore.
9776         (mmap_gt_pch_use_address): Likewise.
9777         * hooks.c (hook_voidp_size_t_null): Remove.
9778         (hook_bool_voidp_size_t_false): Remove.
9779         * hooks.h: Likewise.
9780         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9781         default_ or mmap_ definitions.
9782         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9783         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9784         and gt_pch_use_address.
9785         * config/host-linux.c, config/host-solaris.c: New files.
9786         * config/x-linux, config/x-solaris: New files.
9787         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9788         Update for changed definition.
9789         (darwin_rs6000_gt_pch_use_address): Likewise.
9790         * doc/hostconfig.texi: Update docs.
9791
9792 2004-03-10  Richard Henderson  <rth@redhat.com>
9793
9794         PR c/14517
9795         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9796         except for pedantic c90 mode.
9797
9798 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9799
9800         * configure.ac: Bump AC_PREREQ to 2.59.
9801         * configure: Regenerate.
9802
9803 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9804
9805         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9806         (exp10_optab, exp2_optab): Define corresponding macros.
9807         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9808         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9809         using exp10?f2 and exp2?f2 patterns.
9810         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9811         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9812         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9813         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9814
9815         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9816         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9817         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9818
9819 2004-03-10  Anthony Green  <green@redhat.com>
9820
9821         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9822
9823 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9824
9825         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9826         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9827         __LONGDOUBLE128.
9828         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9829         TARGET_OS_AIX_CPP_BUILTINS.
9830         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9831         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9832         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9833         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9834         previous change.
9835
9836 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9837
9838         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9839
9840 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9841
9842         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9843         __LONGDOUBLE128 on AIX.
9844
9845 2004-03-10  Andrew Haley  <aph@redhat.com>
9846
9847         PR optimization/14381
9848         * function.c (expand_function_end): Emit a blockage insn before
9849         the epilogue when -fnon-call-exceptions is used.
9850
9851         * except.c (expand_start_all_catch): Make comment more accurate.
9852
9853 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9854
9855         PR target/14480
9856         * config/rs6000/t-rtems: Add missing file on branch.
9857
9858 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9859
9860         * dbxout.c (dbxout_symbol_location): Do not output references
9861         to optimized-out constant pool symbols.
9862
9863 2004-03-10  Andreas Schwab  <schwab@suse.de>
9864
9865         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9866         twon34_r.
9867
9868 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9869
9870         * alias.c (alias_sets_might_conflict_p): New.
9871         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9872         * common.opt (Wstrict-aliasing=): New.
9873         * flags.h (warn_strict_aliasing): Change type to int.
9874         * opts.c (warn_strict_aliasing): Change type to int.
9875         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9876         * tree.h (alias_sets_might_conflict_p): Declare it.
9877         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9878
9879 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9880
9881         PR bootstrap/12371
9882         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9883         (CALL_USED_REGISTERS): Likewise.
9884         (REG_CLASS_CONTENTS): Likewise.
9885         (REG_ALLOC_ORDER): New.
9886         (REGNO_REG_CLASS): Use regno_reg_class.
9887         * config/m68k/m68k.c: Add regno_reg_class array.
9888
9889 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9890
9891         * config/ia64/ia64.md (divsi3): Fix algorithm.
9892           (udivsi3): Ditto.
9893           (setf_exp_xf): Remove '*' from name.
9894         * testsuite/gcc.dg/20040309-1.c: New test.
9895
9896 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9897
9898         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9899         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9900         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9901         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9902         (sparc_aout_select_rtx_section): Don't check
9903         SUNOS4_SHARED_LIBRARIES.
9904         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9905
9906 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9907
9908         PR other/14474
9909         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9910         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9911         INTERNALS".
9912
9913 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9914
9915         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9916         (LIBGCC_SPEC): Update to match.
9917
9918 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9919
9920         * c-decl.c (last_function_parms, last_function_parm_tags)
9921         (last_function_parm_others, current_function_parms)
9922         (current_function_parm_tags, current_function_parm_others):
9923         Delete.
9924         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9925         New macros.
9926         (grokdeclarator): For function definitions, save the arg-info
9927         block from the declarator in DECL_ARGUMENTS.
9928         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9929         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9930         contains only PARM_DECLs.  Improve diagnostics.
9931         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9932         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9933         (store_parm_decls_newstyle): Take the function to operate on,
9934         and an arg-info block, as arguments; don't get anything from
9935         current_function_* globals.
9936         (store_parm_decls_oldstyle): Likewise.
9937         (store_parm_decls): Pass fndecl and its arg-info block down to
9938         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9939         argument lists through store_parm_decls_newstyle to reduce
9940         overhead.
9941         (pushdecl): Comment on the problems with the call to copy_node.
9942         Clear DECL_ARGUMENTS of the old node after copying it, if it
9943         is an arg-info block instead of a chain of decls.
9944         (start_function): Do not manipulate current_function_parm* or
9945         last_function_parm*.
9946
9947 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9948             Andrew Pinski  <pinskia@physics.uc.edu>
9949
9950         * ifcvt.c (noce_try_sign_mask): New function to transform
9951         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9952         (noce_process_if_block): Call noce_try_sign_mask.
9953
9954 2004-03-09  Andrew Pinski  <apinski@apple.com>
9955
9956         * c-typeck.c (tagged_types_tu_compatible_p):
9957         Fix typo.
9958
9959 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9960
9961         * simplify-rtx.c (simplify_const_relational_operation): New function
9962         renamed from simplify_relational_operation.
9963         (simplify_relational_operation): Change prototype to accept an
9964         additional mode argument.  Call simplify_const_relational_operation.
9965         (simplify_gen_relational): Update simplify_relational_operation call.
9966         (simplify_ternary_operation): Update simplify_relational_operation
9967         subroutine call to use simplify_const_relational_operation instead.
9968
9969         * rtl.h (simplify_const_relational_operation): Prototype here.
9970         (simplify_relational_operation): Add addtional mode argument.
9971
9972         * combine.c (combine_simplify_rtx): Update calls to
9973         simplify_relational_operation.
9974         (simplify_set): Likewise.
9975         (gen_binary): Likewise.
9976         * cse.c (fold_rtx): Likewise.
9977         * dojump.c (compare_from_rtx): Likewise.
9978         (do_compare_rtx_and_jump): Likewise.
9979         * integrate.c (subst_constants): Likewise.
9980         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9981
9982 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9983
9984         * config/m32r/m32r.md: Remove all define_peephole's.
9985
9986 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9987
9988         * config/rs6000/rs6000.md: Remove trailing whitespace.
9989
9990 2004-03-08  Eric Christopher  <echristo@redhat.com>
9991
9992         * Makefile.in (site.exp): Add libiconv variable definition.
9993
9994 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9995
9996         * configure: Regenerate for config/accross.m4 correction.
9997
9998 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9999
10000         PR target/14480
10001         * config/rs6000/t-rtems: Add missing file on branch.
10002
10003 2004-03-08  Roger Sayle  <roger@eyesopen.com>
10004
10005         PR middle-end/14289
10006         * c-typeck.c (c_mark_addressable): A register variable should
10007         be considered global if its not automatic, i.e. TREE_PUBLIC,
10008         TREE_STATIC or DECL_EXTERNAL.
10009         * function.c (put_var_into_stack): Call abort when placing a
10010         hard register into the stack, if x_parm_reg_stack_loc is NULL.
10011
10012 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
10013
10014         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
10015         ("*extendqisi2_short_displ"): Likewise.
10016
10017 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10018
10019         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
10020         (comp_operator): Likewise.
10021         * config/pdp11/pdp11-protos.h: Remove corresponding
10022         prototypes.
10023
10024 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
10025
10026         * expr.c (highest_pow2_factor_for_type): Rename into
10027         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
10028         TYPE_ALIGN when the target is a COMPONENT_REF.
10029         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
10030
10031 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10032
10033         * config/rs6000/rs6000.c: Formatting fix.
10034         (legitimate_offset_address_p): Correct offset range check.
10035
10036         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
10037         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
10038         and MASK_STRING.
10039
10040 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10041
10042         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
10043         for little endian.
10044         ("ashrdi3_no_power"): Disable for little endian.
10045         (ashrdi3): Same.
10046
10047 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10048
10049         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
10050         builtins.
10051
10052 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
10053
10054         PR target/14471
10055         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
10056         case, checking for -no-mul-bug-abort option.
10057         * configure, config.in: Regenerate.
10058         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
10059         and -mno-mul-bug-workaround.
10060         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
10061         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
10062         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
10063         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
10064         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
10065         sure mulu.d is not last on cache-line.
10066         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
10067         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
10068         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
10069         (TARGET_SWITCHES): New options -mmul-bug-workaround and
10070         -mno-mul-bug-workaround.
10071         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
10072         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
10073         * config/cris/cris.c (cris_operand_extend_operator): Clarify
10074         relation to MULT in head comment.
10075         (cris_op_str): Abort for MULT.
10076         (cris_print_operand) <case '!'>: New case.
10077
10078 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10079
10080         PR debug/11983
10081         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
10082         dw_val_class_vec.  Replace use throughout file.
10083         (dw_float_const): Delete.
10084         (dw_vec_const): New.
10085         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
10086         throughout file.
10087         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
10088         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
10089         (size_of_die): Adjust dw_val_class_vec sizing.
10090         (output_die): Output dw_val_class_vec.
10091         (insert_int, extract_int, insert_float): New functions.
10092         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
10093         Handle CONST_VECTOR.
10094         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
10095
10096 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10097
10098         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10099         AltiVec abi cannot co-exist.
10100
10101         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10102
10103 2004-03-07  Jan Hubicka  <jh@suse.cz>
10104
10105         * except.c (emit_to_new_bb_before):  Break fallthru edges.
10106
10107 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
10108
10109         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10110         ("*lshrsi3"): Also accept an immediate for 68HC12.
10111         ("*ashrsi3_const"): Likewise.
10112         ("*ashrsi3"): Likewise.
10113         ("*ashlsi3_const"): Likewise.
10114         ("*ashlsi3"): Likewise.
10115         ("cmphi_1_hc12"): Compare two hard register by pushing them and
10116         comparing with a pop; don't use a split for that.
10117         ("cmphi split"): Disable compare split for 68HC12.
10118
10119         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10120         the status operands if they have side effects.
10121
10122 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10123
10124         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10125         definition.
10126         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10127         config/h8300/h8300.h, config/ia64/ia64.h,
10128         config/mcore/mcore.h, config/mmix/mmix.h,
10129         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10130         config/stormy16/stormy16.h, config/v850/v850.h,
10131         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10132         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10133         definition.
10134
10135 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10136
10137         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10138         <XOR_EXPR>: Fold x ^ x as zero.
10139         <AND_EXPR>: Fold x & x as x.
10140
10141 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10142
10143         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10144         "foo++ == const" into "++foo == const+incr".
10145
10146 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
10147
10148         * config/mips/mips.c (mips_in_small_data_p): Return false if
10149         TARGET_ABICALLS.
10150
10151 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
10152
10153         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10154         the stack register.
10155         (expand_prologue): Don't make an interrupt or a trap handler a far
10156         symbol.
10157         (m68hc11_initial_elimination_offset): Likewise.
10158
10159 2004-03-06  Richard Henderson  <rth@redhat.com>
10160
10161         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10162
10163 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10164
10165         * config/ns32k/ns32k-protos.h: Add a prototype for
10166         ns32k_notice_update_cc.
10167         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10168         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10169         ns32k_notice_update_cc.
10170
10171 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10172
10173         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10174         "*load_multiple_si"): Allow only if reload_completed.
10175         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10176         Likewise.
10177
10178 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10179
10180         * config/vax/vax-protos.h: Add a prototype for
10181         vax_notice_update_cc.
10182         * config/vax/vax.c (vax_notice_update_cc): New.
10183         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10184         vax_notice_update_cc.
10185
10186 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
10187
10188         * collect2.c (main): Only export initfunc and finifunc if
10189         LD_INIT_SWITCH not defined.
10190         (scan_prog_file): Only export constructors and destructors if
10191         LD_INIT_SWITCH not defined.  Only export symbols not found in
10192         shared objects.
10193
10194 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10195
10196         * pa.md (icacheflush): Reorder operands to make match_scratch operand
10197         last.
10198         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10199         from calls to gen_icacheflush.
10200
10201 2004-03-06  Richard Henderson  <rth@redhat.com>
10202
10203         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10204         (TARGET_LONG_DOUBLE_128): New.
10205         (TARGET_SWITCHES): Add long-double-{128,64}.
10206         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10207         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10208         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10209         (WIDEST_HARDWARE_FP_SIZE): New.
10210         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10211         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10212         if TARGET_VAX_FLOAT.
10213         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10214         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10215
10216 2004-03-06  Richard Henderson  <rth@redhat.com>
10217
10218         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10219         botched rtx class conversion.
10220
10221 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10222
10223         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10224         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10225
10226         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10227         macros.
10228         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10229
10230 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10231
10232         PR target/14343
10233         * config/i386/i386.md (movv2di_internal): Conditionalize on
10234         TARGET_SSE, not TARGET_SSE2.
10235
10236 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10237
10238         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10239         duplicated line.
10240
10241 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10242
10243         * builtins.c: Consistently use logN not log* in comments.
10244
10245 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10246
10247         * rtl.h (mem_expr_equal_p): Function prototype added.
10248         * cfgcleanup.c (merge_memattrs): New function.
10249         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10250         * emit-rtl.c (mem_expr_equal_p): New function.
10251
10252 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10253
10254         * objc/objc-act.c (synth_module_prologue): Const-qualify
10255         objc_selector type if using the GNU runtime; fix generated
10256         signatures for objc_msg_lookup and objc_msg_lookup_super
10257         to match what GNU ObjC headers provide; reformat and clean up.
10258         (synth_self_and_ucmd_args): Use previously constructed (and
10259         hence possibly const-qualified) objc_selector type.
10260
10261 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10262
10263         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10264
10265 2004-03-05  Jason Merrill  <jason@redhat.com>
10266
10267         * tree.h (TYPE_HASH): Use TYPE_UID.
10268         (TREE_HASH): New macro with old definition of TYPE_HASH.
10269         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10270         (build_array_type, build_function_type): Likewise.
10271         (build_method_type_directly): Likewise.
10272         (build_offset_type, build_complex_type): Likewise.
10273         (type_hash_list, attribute_hash_list): Likewise. Now static.
10274         * except.c: s/TYPE_HASH/TREE_HASH/.
10275
10276 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10277
10278         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10279         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10280         __va_ndx by 2 words when referencing an argument on the stack.
10281         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10282         words when an arg on the stack is first seen.
10283
10284 2004-03-05  Paul Brook  <paul@codesourcery.com>
10285
10286         * arm.h (ARM_FLAG_VFP): Remove.
10287         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10288         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10289
10290 2004-03-05  Paul Brook  <paul@codesourcery.com>
10291
10292         * function.c (assign_parms): Include pretend alignment offset.
10293
10294 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10295
10296         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10297         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10298
10299 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10300
10301         * configure.ac: When passing --enable-languages to subdir
10302         configure when host != build, make sure we don't pass an empty
10303         value.
10304         * configure: Regenerate.
10305
10306 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10307
10308         PR 13577
10309         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10310         options.
10311
10312 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10313
10314         * simplify-rtx.c (simplify_relational_operation): If
10315         flag_wrapv is set, do not move terms between the two
10316         side of a relational operator.
10317
10318 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10319
10320         * rtlanal.c: Include target.h and output.h
10321         (rtx_cost, address_cost, default_address_cost): Move from...
10322         * cse.c (rtx_cost, address_cost, default_address_cost):
10323         ... this file.
10324         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10325         * Makefile.in: Adjust dependencies.
10326
10327 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10328
10329         * cse.c (cse_end_of_basic_block): Make static.
10330         * local-alloc.c (function_invariant_p): Move to
10331         reload1.c.
10332         * loop.c (libcall_other_reg, record_excess_regs):
10333         Make static.
10334         * reload1.c (function_invariant_p): Moved here
10335         from local-alloc.c, made static.
10336         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10337         libcall_other_reg, record_excess_regs): Remove
10338         declarations.
10339
10340 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10341
10342         * config/m32r/m32r.c (signed_comparison_operator): Add a
10343         missing parenthesis.
10344
10345 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10346
10347         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10348         going to call mmap again.  Read the file into the right place.
10349         Give a fatal error if we have to relocate.
10350
10351 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10352
10353         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10354         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10355
10356 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10357
10358         PR other/14354
10359         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10360         round the same.  When rounding, clear bits that would cause a
10361         second rounding in pack_d.
10362         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10363
10364 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10365
10366         PR c++/14425, c++/14426
10367         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10368         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10369         Change C++ definitions to accept a 'const int' argument;
10370         the prototypes already do.
10371         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10372         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10373         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10374         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10375         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10376         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10377         end in ..._int; change them to accept an int instead of a char
10378         as the last parameter.
10379
10380 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10381
10382         * genmultilib:  Change '=' to '-' when translating option names
10383         to directory names.
10384
10385 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10386
10387         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10388         stack slot for temp used for result of BLKmode but in integral mode.
10389
10390 2004-03-04  Jan Hubicka  <jh@suse.cz>
10391
10392         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10393
10394         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10395         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10396
10397 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10398
10399         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10400         * testsuite/gcc.dg/20040303-1.c: New test.
10401
10402 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10403
10404         * ppro.md: Rewrite as a DFA pipeline description.
10405         * i386.md: Remove all uses of the ppro_uops attribute.
10406         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10407         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10408         ix86_sched_reorder, ix86_variable_issue,
10409         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10410         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10411         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10412         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10413         * athlon.md (athlon_ssecmp_load): Fix comment
10414
10415 2004-03-04  Stuart Hastings  <stuart@apple.com>
10416
10417         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10418
10419 2004-03-04  Stuart Hastings  <stuart@apple.com>
10420
10421         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10422         686, tell Darwin assembler to allow prefetch insns, non-empty def
10423         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10424
10425 2004-03-04  DJ Delorie  <dj@redhat.com>
10426
10427         PR optimization/14282
10428         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10429         between a call and the assignment of its return value.
10430
10431 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10432
10433         * config/h8300/h8300.c: Put a comment for every function.
10434
10435 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10436
10437         * config/h8300/h8300.md: Add comments about peephole2's.
10438
10439 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10440
10441         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10442
10443 2004-03-04  Jan Hubicka  <jh@suse.cz>
10444
10445         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10446         * cselib.c (cselib_record_memory): New static variable.
10447         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10448         Give up on memories when asked for.
10449         (cselib_init): Accept new argument.
10450         * cselib.h (cselib_init): Update prototype.
10451         * gcse.c (local_cprop_pass): Update call of cselib_init.
10452         * loop.c (load_mems): Update call of cselib_init.
10453         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10454         * sched-deps.c (sched_analyze): Update call of cselib_init.
10455
10456 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10457             GP <gp@qnx.com>
10458
10459         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10460         when compiling PIC.
10461
10462 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10463
10464         PR/14362
10465         * var-tracking.c (track_expr_p): Do not track variables which
10466         should be ignored for debugging purposes.
10467
10468 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10469
10470         * real.c (encode_ibm_extended): Don't bother rounding low double.
10471         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10472         when fmt->pnan < fmt->p.
10473
10474 2004-03-04  Eric Christopher  <echristo@redhat.com>
10475
10476         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10477         only range of valid arg registers and fixed_regs.
10478
10479 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10480
10481         PR target/14406
10482         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10483         (abstf2, abstf2_internal): New define_expand.
10484
10485 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10486
10487         PR optimization/14235
10488         * expr.c (convert_move): Copy the source to a new pseudo
10489         when converting from a sub-word source to a larger-than-word
10490         register which conflicts with the source.
10491
10492 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10493
10494         PR 13728
10495         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10496         parameters with the same name, unless one is a forward decl.
10497         Do not issue a redundant-redeclaration warning for forward
10498         decls of parameters.
10499
10500 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10501
10502         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10503         configuration.
10504
10505 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10506
10507         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10508
10509 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10510
10511         * target-def.h (TARGET_OPTF): Delete.
10512         * c-opts.c (TARGET_OPTF): Define.
10513
10514 2004-03-04  Jan Hubicka  <jh@suse.cz>
10515
10516         * cselib.c (cselib_finish): Fix another miss-application of my previous
10517         patch.
10518
10519 2004-03-03  Mike Stump  <mrs@apple.com>
10520
10521         Add framework support for darwin.
10522
10523         * c-incpath.c: Include target.h and machmode.h.
10524         (add_path): Use a consistent style for cpp_dir.  Initialize
10525         p->construct to 0.
10526         (add_cpp_dir_path): New.
10527         (register_include_chains): Add use of extra_includes callback.
10528         (hook_void_int): Add.
10529         (target_c_incpath): Add.
10530         * c-incpath.h (add_cpp_dir_path): New.
10531         (target_c_incpath_s): Add.
10532         (target_c_incpath): Add.
10533         (C_INCPATH_INIT): Add.
10534         * c-opts.c (c_common_missing_argument,
10535         c_common_handle_option): Add -F argument processing.
10536         * c.opt: Add -F argument processing.
10537         * gcc.c (trad_capable_cpp): Add -F argument processing.
10538         * cppfiles.c (find_file_in_dir): Update to use construct
10539         callback.
10540         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10541         cpp_get_prev): New.
10542         (_cpp_find_file): Use search_path_exhausted.
10543         (make_cpp_dir): Initialize construct to 0.
10544         * cpplib.h (missing_header_cb
10545         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10546         (cpp_callbacks): Add missing_header
10547         (cpp_dir): Add construct.
10548         * target-def.h: (TARGET_OPTF): New.
10549         * hooks.c (hook_void_int, hook_void_charptr): Add.
10550         * hooks.h (hook_void_int, hook_void_charptr): Add.
10551         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10552         $(MACHMODE_H) dependencies.
10553         * doc/invoke.texi (Darwin Options): Document -F.
10554         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10555         (TARGET_OPTF): Add.
10556         * fix-header.c (target_c_incpath): Add.
10557
10558         * config/darwin-c.c: Add c-incpath.h include.
10559         (using_frameworks, find_subframework_file,
10560         find_subframework_header, add_system_framework_path,
10561         frameworks_in_use, num_frameworks, max_frameworks,
10562         add_framework, find_framework, struct framework_header,
10563         framework_header_dirs, framework_construct_pathname,
10564         find_subframework_file, add_system_framework_path,
10565         add_framework_path, framework_defaults,
10566         darwin_register_frameworks, find_subframework_header): Add.
10567         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10568         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10569         (CPP_SPEC): Add __APPLE_CC__ support.
10570         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10571
10572 2004-03-04  Jan Hubicka  <jh@suse.cz>
10573
10574         * cselib.c (cselib_finish): Fix miss-application of my previous
10575         patch.
10576
10577 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10578
10579         * hooks.c (hook_tree_tree_identity): New.
10580         * hooks.h: Add a prototype for hook_tree_tree_identity.
10581         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10582         instead of MD_ASM_CLOBBERS.
10583         * system.h (MD_ASM_CLOBBERS): Poison.
10584         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10585         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10586         * target.h (gcc_target): Add md_asm_clobbers.
10587         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10588         (ix86_md_asm_clobbers): New.
10589         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10590         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10591         TARGET_MD_ASM_CLOBBERS.
10592
10593 2004-03-03  Stuart Hastings  <stuart@apple.com>
10594
10595         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10596
10597 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10598
10599         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10600
10601         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10602         (ASM_DOUBLE): Likewise.
10603         (ASM_LONGDOUBLE): Likewise.
10604         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10605
10606 2004-03-03  Richard Henderson  <rth@redhat.com>
10607
10608         PR opt/13862
10609         * cselib.c (cselib_record_sets): Don't record multiple sets in
10610         asm insns.
10611
10612 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10613
10614         * common.opt: Add description of the new -fgcse-after-reload flag.
10615
10616         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10617
10618         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10619         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10620         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10621         get_bb_avail_insn, hash_scan_set_after_reload,
10622         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10623         gcse_after_reload, get_bb_avail_insn): New functions to implement
10624         gcse-after-reload.
10625         (gcse_after_reload_main): New function, the main entry point to
10626         gcse-after-reload.
10627
10628         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10629
10630         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10631
10632         * toplev.c (flag_gcse_after_reload): Initialization.
10633
10634         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10635
10636         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10637         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10638         the gcse after reload optimization.
10639
10640         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10641         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10642         parameters.
10643
10644         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10645
10646 2004-03-03  Nicolas Pitre <nico@cam.org>
10647
10648         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10649         small negative values.
10650
10651 2004-03-03  Jan Hubicka  <jh@suse.cz>
10652
10653         * cselib.c (hash_table):  Remove GTY marker.
10654         (reg_values): Turn into array.
10655         (used_regs): Likewise.
10656         (n_used_regs): New static variable.
10657         (reg_values_old): Kill.
10658         (clear_table): Update uses of arrays.
10659         (cselib_lookup): Likewise.
10660         (cselib_record_set): Likewise.
10661         (cselib_init): Likewise.
10662         (cselib_finish): Likewise.
10663         (cselib_udpate_varray_sizes): Kill.
10664         * cselib.h (cselib_update_varray_sizes): Kill.
10665
10666 2004-03-03  Paul Brook  <paul@codesourcery.com>
10667
10668         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10669
10670 2004-03-03  Jan Hubicka  <jh@suse.cz>
10671
10672         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10673         Rename from ...; make statistics transparent.
10674         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10675         (loc_descriptor): New structure.
10676         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10677         add_statistics):
10678         New static function.
10679         (ggc_record_overhead, dump_statistics): New global function.
10680         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10681         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10682         from ...; accept locations
10683         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10684         ggc_realloc, ggc_alloc_typed):  ... this one.
10685         from ...; accept locations
10686         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10687         ggc_alloc_stat): Rename from ... ; pass locations
10688         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10689         ... this one.
10690         (ggc_alloc_stat): Record overehead.
10691         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10692         ggc_realloc, ggc_alloc_typed):  Turn to macros
10693         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10694         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10695         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10696         * langhooks.h (lhd_make_node): Declare.
10697         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10698         * langhooks.c (lhd_make_node): New.
10699         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10700         locations.
10701         (rtx_alloc, swallow_copy_rtx): ... this one.
10702         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10703         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10704         * toplpev.c (finalize): Dump stats.
10705         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10706         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10707         Rename from ... ; pass locators.
10708         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10709         build?,  build_decl): Declare.
10710         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10711         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10712         Declare.
10713         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10714         build?,  build_decl): New macros.
10715         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10716         * statistics.h: New file.
10717
10718 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10719             Richard Sandiford  <rsandifo@redhat.com>
10720
10721         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10722         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10723         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10724         * config/mips/mips.c (mips_output_division): Fill the branch delay
10725         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10726         TARGET_FIX_R4400.
10727         (mips_output_division): Adjust accordingly.
10728         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10729         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10730
10731 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10732
10733         * alias.c (rtx_equal_for_memref_p): Use predicates
10734         to test rtx classes and new rtx class codes, possibly
10735         splitting conditionals that tested against '<' and 'o'.
10736         * caller-save.c (save_call_clobbered_regs): Likewise.
10737         * combine.c (contains_muldiv, find_split_point, subst,
10738         combine_simplify_rtx, simplify_if_then_else,
10739         simplify_set, simplify_logical, expand_compound_operation,
10740         make_compound_operation, if_then_else_cond, known_cond,
10741         apply_distributive_law, cached_nonzero_bits,
10742         cached_num_sign_bit_copies, simplify_shift_const,
10743         gen_binary, simplify_comparison, update_table_tick,
10744         record_value_for_reg, get_lsat_value_validate): Likewise.
10745         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10746         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10747         Likewise.
10748         * emit-rtl.c (copy_insn_1): Likewise.
10749         * expr.c (force_operand): Likewise.
10750         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10751         * flow.c (notice_stack_pointer_modification_1,
10752         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10753         and_reg_cond, elim_reg_cond): Likewise.
10754         * function.c (update_epilogue_consts): Likewise.
10755         * genattrtab.c (attr_rtx_1): Likewise.
10756         * genopinit.c (gen_insn): Likewise.
10757         * integrate.c (subst_constants): Likewise.
10758         * jump.c (reversed_comparison_code_parts,
10759         reversed_comparison_code, delete_related_insns,
10760         rtx_renumbered_equal_p): Likewise.
10761         * local-alloc.c (block_alloc): Likewise.
10762         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10763         canonicalize_condition): Likewise.
10764         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10765         Likewise.
10766         * optabs.c (add_equal_node, expand_binop): Likewise.
10767         * predict.c (estimate_probability): Likewise.
10768         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10769         * recog.c (validate_replace_rtx_1, comparison_operator,
10770         offsettable_address_p, constrain_operands): Likewise.
10771         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10772         Likewise.
10773         * regclass.c (scan_one_insn): Likewise.
10774         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10775         * regrename.c (kill_autoinc_value): Likewise.
10776         * reload.c (find_reusable_reload, find_reloads,
10777         reg_overlap_mentioned_for_reload_p): Likewise.
10778         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10779         * rtl.c (copy_rtx): Likewise.
10780         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10781         * rtlanal.c (commutative_operand_precedence): Likewise.
10782         * sched-deps.c (conditions_mutex_p): Likewise.
10783         * sched-rgn.c (is_cfg_nonregular): Likewise.
10784         * simplify-rtx.c (simplify_gen_binary,
10785         simplify_gen_relational, simplify_replace_rtx,
10786         simplify_unary_operation, simplify_binary_operation,
10787         simplify_ternary_operation, simplify_rtx): Likewise.
10788         * unroll.c (reg_dead_after_loop): Likewise.
10789         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10790         print_operand): Likewise.
10791         * config/arc/arc.c (proper_comparison_operator): Likewise.
10792         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10793         Likewise.
10794         * config/avr/avr.c (_reg_unused_after): Likewise.
10795         * config/frv/frv.c (frv_ifcvt_modify_tests,
10796         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10797         * config/i386/i386.c (ix86_comparison_operator,
10798         ix86_carry_flag_operator, fcmov_comparison_operator,
10799         arith_or_logical_operator, print_operand,
10800         ix86_expand_binary_operator, ix86_binary_operator_ok):
10801         Likewise.
10802         * config/i386/i386.md: Likewise.
10803         * config/ia64/ia64.c (not_postinc_memory_operand,
10804         ia64_print_operand, update_set_flags, errata_emit_nops):
10805         Likewise.
10806         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10807         CONSTRAINT_OK_FOR_S): Likewise.
10808         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10809         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10810         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10811         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10812         Likewise.
10813         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10814         eqne_comparison_operator, signed_comparison_operator):
10815         Likewise.
10816         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10817         Likewise.
10818         * config/mmix/mmix (mmix_foldable_comparison_operator,
10819         mmix_comparison_operator): Likewise.
10820         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10821         * config/rs6000/rs6000.c (stmw_operation,
10822         branch_comparison_operator, trap_comparison_operator,
10823         ccr_bit): Likewise.
10824         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10825         * config/s390/s390.c (s390_alc_comparison,
10826         s390_slb_comparison):L Likewise.
10827         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10828         Likewise.
10829         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10830         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10831         emit_hard_tfmode_operation, reg_unused_after)
10832         * doc/md.texi, doc/rtl.texi: Likewise.
10833
10834         * ra-debug.c: Add 2004 to list of copyright years.
10835         * unroll.c: Likewise.
10836
10837         * combine.c (simplify_logical): Remove dummy test,
10838         (apply_distributive_law): Fix typo in comment.
10839         GET_CODE (x) == AND so x is a commutative binary op.
10840         * jump.c (delete_related_insns): simplify loop
10841         condition, move testing of RTX codes inside the loop.
10842         (rtx_renumbered_equal_p): do not use RTX_CODE.
10843         * rtl.c (rtx_class): Declare as enum rtx_class.
10844         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10845         Move to RTX_COMM_COMPARE class.
10846         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10847         Move to RTX_CONST_OBJ class.
10848         * rtl.h (enum rtx_class): New declaration,
10849         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10850         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10851         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10852         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10853         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10854         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10855         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10856         OBJECT_P): New macros.
10857         * config/sparc/sparc.c (noov_compare_op): Remove register
10858         from parameter.
10859
10860 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10861
10862         * target.h: Remove texi jargons in comments.
10863
10864 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10865
10866         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10867         threshold to 0x4f.
10868
10869         Revert:
10870         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10871         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10872         as well.
10873         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10874         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10875
10876 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10877
10878         * doc/md.texi (cbranchmode4): New.
10879
10880 2004-03-02  Eric Christopher  <echristo@redhat.com>
10881
10882         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10883         fix_trunc.
10884         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10885         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10886         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10887         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10888
10889 2004-03-02  Richard Henderson  <rth@redhat.com>
10890
10891         PR middle-end/11767
10892         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10893         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10894         before the compare, if flag_non_call_exceptions.
10895
10896 2004-03-02  Richard Henderson  <rth@redhat.com>
10897
10898         PR middle-end/14327
10899         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10900         emitting the label, not after.
10901
10902 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10903
10904         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10905         (m68hc11_mov_addr_mode): Likewise.
10906         (m68hc11_override_options): Initialize them based on target.
10907         (register_indirect_p): Allow a MEM for indirect addressing modes and
10908         use flags to control what is allowed.
10909         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10910         supported addressing modes.
10911         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10912         (go_if_legitimate_address_internal): Likewise.
10913         (m68hc11_indirect_p): Likewise and check the mode.
10914         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10915
10916 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10917
10918         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10919         (expand_builtin_setjmp_setup): Use
10920         targetm.builtin_setjmp_frame_value instead of
10921         BUILTIN_SETJMP_FRAME_VALUE.
10922         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10923         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10924         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10925         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10926         * targhooks.c (default_builtin_setjmp_frame_value): New.
10927         * targhooks.h: Add a prototype for
10928         default_builtin_setjmp_frame_value.
10929         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10930         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10931
10932 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10933
10934         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10935         sequences of moves.
10936         (add peepholes): New peepholes to optimize sequences adding small
10937         constants.
10938         (bset peepholes): New peepholes to transform an OR in a bset form
10939         (bclr peepholes): Likewise for bclr form.
10940         (cmp peepholes): New peepholes to avoid register copies when comparing.
10941
10942 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10943
10944         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10945         to separate push from moves.
10946         ("*pushdf_internal"): Likewise.
10947         ("*pushsf_internal"): Likewise.
10948         ("*pushsi_internal"): Likewise.
10949         ("movdi_internal"): Use define_insn_and_split; non push operand.
10950         ("movdf_internal"): Likewise.
10951         ("movsf_internal"): Likewise.
10952         ("movsi_internal"): Likewise.
10953         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10954         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10955         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10956
10957 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10958
10959         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10960         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10961         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10962         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10963         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10964         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10965         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10966         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10967         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10968         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10969         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10970
10971 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10972
10973         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10974         (SOFT_XY_REGNUM): Define.
10975         (cmp split): Use the above instead of hard coded numbers.
10976         (8-bit op split): No need to check the mode; allow Q_REG.
10977         (ashift split): Adjust the first operand if it uses the SP and we
10978         are pushing the shifted value.
10979         (plus shift split): Fix when a source is in register D+X.
10980         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10981
10982 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10983
10984         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10985         comparing with Z register.
10986
10987 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10988
10989         * cfgloop.h (struct loop_desc): Removed.
10990         (struct loop): Fields simple, desc and has_desc removed.
10991         (simple_loop_p, count_loop_iterations): Declaration removed.
10992         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10993         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10994         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10995         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10996         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10997         simple_condition_p, simple_increment, count_strange_loop_iterations,
10998         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10999         Removed.
11000         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
11001
11002 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11003
11004         * genattrtab.c: Don't handle MATCH_INSN.
11005         * genrecog.c: Likewise.
11006         * gensupport.c: Likewise.
11007         * rtl.def (match_insn): Remove.
11008         * doc/md.texi (match_insn, match_insn2): Remove.
11009
11010 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
11011
11012         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
11013         macro results in memory allocation.
11014
11015 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
11016
11017         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
11018         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
11019         %(fbsd_dynamic_linker),
11020         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
11021         config/i386/freebsd.h
11022         * config/arm/freebsd.h: Ditto.
11023         * config/i386/freebsd.h: Ditto.
11024         * config/i386/freebsd64.h: Ditto.
11025         * config/ia64/freebsd.h: Ditto.
11026         * config/rs6000/sysv4.h: Ditto.
11027         * config/sparc/freebsd.h: Ditto.
11028
11029 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
11030
11031         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
11032
11033 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11034
11035         * rtl.def (define_combine): Remove.
11036
11037 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11038
11039         * config/h8300/h8300.md: Tweak formatting.
11040
11041 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11042
11043         * config/h8300/h8300.md (*cmphi_h8300): Rename to
11044         *cmphi_h8300_znvc.
11045         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
11046
11047 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
11048
11049         PR bootstrap/14356
11050         * gcc.c (process_command): Remove const-qualification from argv.
11051         (main): Likewise.
11052
11053 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11054
11055         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
11056         pushqi1_h8300hs_advanced.  Adjust its caller.
11057         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
11058         Adjust its caller.
11059
11060 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
11061
11062         * Makefile.in (install-libgcc, install-multilib): Pass
11063         mkinstalldirs var to libgcc.mk.
11064
11065 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11066
11067         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
11068         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
11069
11070 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11071
11072         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
11073         * config/h8300/h8300.md: Split several peephole2's, each into
11074         two.
11075
11076 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11077
11078         * dominance.c (recount_dominator): Handle postdominators.
11079
11080 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11081
11082         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
11083         (NUM_SYMBOL_TYPES): Likewise.
11084         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
11085         (mips_unspec_address): Declare.
11086         (mips_gotoff_page, mips_gotoff_global): Delete.
11087         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
11088         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
11089         (mips_symbolic_constant_p, mips_symbolic_address_p)
11090         (mips_symbol_insns): Handle new symbol types.
11091         (general_symbolic_operand): New predicate.
11092         (mips_unspec_address): Make extern.
11093         (mips_gotoff_page, mips_gotoff_global): Delete.
11094         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
11095         Handle new symbol types.
11096         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11097         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11098         mips_unspec_address directly.
11099         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11100         the documentation of -mexplicit-relocs.
11101
11102 2004-03-01  Jeff Law  <law@redhat.com>
11103
11104         * fold-const.c (fold): An equality comparison of a non-weak object
11105         against zero has a known result.  Similarly an equality comparison
11106         of the address of two non-weak, unaliased symbols has a known result.
11107
11108         * ggc-page.c (struct page_entry): New field PREV.
11109         (ggc_alloc): Update PREV field appropriately.
11110         (sweep_pages): Likewise.
11111         (ggc_free): Likewise.  Use PREV field rather than loop to
11112         improve ggc_free performance.
11113
11114 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11115
11116         * config/mips/mips.c (mips_output_division): Use the division
11117         instruction to fill the delay slot of a zero check.
11118         (mips_idiv_insns): Adjust accordingly.
11119
11120 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
11121
11122         * config.gcc: Create a default tmake_file for linux, and use
11123         it in all but two linux clauses.  Comment those two.
11124
11125 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
11126
11127         * combine.c (try_combine):  Do not refer to is_replaced.
11128         (gen_lowpart_for_combine):  Perverse subregs now have a
11129         more politically correct name.
11130         * cse.c (cse_insn): Likewise.
11131         * jump.c: Fix bogus reference to delete_insn.
11132
11133 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
11134
11135         PR debug/14328
11136         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11137         constants as signed values.
11138
11139         PR middle-end/13448
11140         * c-tree.h (readonly_warning): Rename to ...
11141         (readonly_error): ... this.
11142         * c-typeck.c (build_unary_op): Adjust accordingly.
11143         (readonly_warning): Rename to ...
11144         (readonly_error): ... this and issue errors, not warnings.
11145         (build_modify_expr): Call readonly_error, not readonly_warning.
11146         (c_expand_asm_operands): Likewise.
11147         * tree-inline.c (optimize_inline_calls): Do not inline functions
11148         after errors have occurred.
11149
11150 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11151
11152         * configure.ac: Rearrange some threading code for clarity;
11153         add section comment.
11154         * configure: Regenerate.
11155
11156 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11157
11158         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11159         typos.
11160         * doc/cppopts.texi: Fix a typo.
11161
11162 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11163
11164         * config/i386/i386.md: Fix formatting.
11165
11166 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11167
11168         * configure.ac: Add some comments delineating sections of code.
11169
11170         * doc/install.texi: Note that libada uses autoconf 2.57 also.
11171
11172         * doc/install.texi: Fix idiot typo in previous commit.
11173
11174         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11175
11176 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11177
11178         * config/h8300/h8300.md: Add comments about peephole2's.
11179
11180 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11181
11182         * config/h8300/h8300.md: Tweak operand numbers of some
11183         peephole2's.
11184
11185 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11186
11187         * config/h8300/h8300.md: Tweak comments about peephole2's.
11188
11189 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
11190
11191         PR middle-end/14203
11192         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11193         instead of testing whether DECL_RTL is not NULL.
11194
11195 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11196
11197         * config/sh/sh.c: Fix formatting.
11198
11199 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11200
11201         * config/sh/sh.c: Convert to ISO-C.
11202
11203 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
11204
11205         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11206         my previous patch.
11207
11208         * config/darwin.h (machopic_finish): Output stub even if the
11209         symbol is already defined.
11210
11211 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11212
11213         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11214
11215 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11216
11217         * genattr.c (main): Don't define
11218         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11219         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11220         (DFA_PIPELINE_INTERFACE): Likewise.
11221         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11222         (DFA_PIPELINE_INTERFACE): Likewise.
11223
11224 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11225
11226         * config/mips/mips.md (tstsi, tstdi): Delete.
11227
11228 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11229
11230         * config/mips/mips.c (override_options): Remove an obsolete
11231         duplicate definition of the "e" constraint.
11232         * config/mips/mips.h: Update a comment accordingly.
11233
11234 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11235
11236         * config/mips/mips.md: Complete the unfinished R4000
11237         multiply/shift errata workaround.  Improve documentation.
11238         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11239         has a hilo hazard.
11240         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11241         (muldi3, muldi3_internal): Likewise.
11242         (muldi3_internal2): Remove, replacing with...
11243         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11244         (mulsidi3): Take the errata into account.
11245         (mulsidi3_32bit): Remove, replacing with...
11246         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11247         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11248         (umulsidi3): Take the errata into account.
11249         (umulsidi3_32bit): Remove, replacing with..
11250         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11251         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11252         TARGET_FIX_R4000.
11253         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11254         (smuldi3_highpart, umuldi3_highpart): Likewise.
11255         * doc/invoke.texi: Document the errata workaround.
11256
11257 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11258
11259         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11260         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11261         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11262         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11263         * config/mips/mips.c (mips_idiv_insns): New function.
11264         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11265         (mips_output_division): Add a workaround for the R4000 divide/shift
11266         errata.
11267         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11268         the length of an "idiv" instruction.
11269         * doc/invoke.texi: Document the new switches.
11270
11271 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11272
11273         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11274         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11275
11276 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11277
11278         PR optimization/14229
11279         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11280
11281 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11282
11283         * fold-const.c (fold): Strip NOPs that change the signedness
11284         for RSHIFT too.  Expand comment.
11285
11286 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11287
11288         PR optimization/7871
11289         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11290         from or to call insns.
11291
11292 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11293
11294         PR optimization/7871
11295         * flow.c (propagate_one_insn): Interpret calls as setting global
11296         registers, not merely clobbering them.
11297
11298 2004-02-27  Dale Johannesen  <dalej@apple.com>
11299
11300         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11301         config/darwin-protos.h:  Ditto.
11302         config/darwin.h:  Remove call to it.
11303         * combine.c (distribute_notes): Do not place a REG_DEAD note
11304         when value is both set and used.
11305
11306 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11307
11308         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11309         as well.
11310         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11311         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11312
11313 2004-02-27  Andrew Pinski  <apinski@apple.com>
11314
11315         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11316         Speedup common case of the type values being in the same order.
11317
11318 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11319
11320         * config/ia64/ia64.h (no-inline-float-divide): New option.
11321         * config/ia64/ia64.h (no-inline-int-divide): New option.
11322         * config/ia64/ia64.h (no-inline-sqrt): New option.
11323         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11324         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11325         * config/ia64/ia64.c (ia64_override_options): Modify error
11326         checking for inlined division/sqrt.
11327
11328 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11329
11330         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11331         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11332         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11333         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11334         copyright.
11335
11336 2004-02-27  Paul Brook  <paul@codesourcery.com>
11337
11338         * function.c (assign_parms): Don't count pretend args for alignment.
11339
11340 2004-02-27  Richard Henderson  <rth@redhat.com>
11341
11342         * passes.c: New file.
11343         * Makefile.in (OBJS-common): Add it.
11344         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11345         * flags.h (rtl_dump_and_exit): ... here.
11346         * output.h (size_directive_output, last_assemble_variable_decl):
11347         Move from toplev.c.
11348         * rtl.h (reg_alloc): Move from toplev.c.
11349         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11350         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11351         open_dump_file, close_dump_file, rest_of_decl_compilation,
11352         rest_of_type_compilation, rest_of_handle_final,
11353         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11354         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11355         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11356         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11357         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11358         rest_of_handle_tracer, rest_of_handle_if_conversion,
11359         rest_of_handle_if_after_combine, rest_of_handle_web,
11360         rest_of_handle_branch_prob,
11361         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11362         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11363         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11364         rest_of_handle_null_pointer, rest_of_handle_combine,
11365         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11366         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11367         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11368         (decode_d_option): Use enable_rtl_dump_file.
11369         (compile_file, finalize, do_compile): Move profile+combine+graph
11370         cleanup to finish_optimization_passes.
11371         * toplev.h (init_optimization_passes, finish_optimization_passes,
11372         enable_rtl_dump_file): Declare.
11373
11374 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11375             Roger Sayle  <roger@eyesopen.com>
11376
11377         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11378         operands to build a tree with swapped operands.
11379         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11380         'unsignedp' predicate to specify the signedness.
11381
11382 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11383
11384         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11385         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11386         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11387         comment typos and formatting.  Follow spelling conventions.
11388
11389 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11390
11391         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11392         fix_truncsfsi2.
11393
11394         * config/rs6000/spe.md: Delete spe_efsctuiz.
11395         Add spe_fixuns_truncsfsi2.
11396         Add spe_fix_truncsfsi2.
11397
11398 2004-02-26  Eric Christopher  <echristo@redhat.com>
11399
11400         * c-lex.c (c_lex_string_translate): New variable.
11401         (lex_string): Use to determine string translation.
11402         * c-pragma.h: Prototype.
11403         * c-parse.in (start_string_translation): New. Set above.
11404         (stop_string_translation): Ditto.
11405         (attribute, attribute_list, asm_def, asm_stmt,
11406         asm_operand): Use above functions.
11407         * cp/parser.c (cp_parser_declaration): Translate strings
11408         unless token is RID_EXTERN. Set c_lex_string_translate
11409         for recursive use.
11410         (cp_parser_asm_definition): Only translate argument strings
11411         to asms.
11412         (cp_parser_asm_operand_list): Ditto.
11413         (cp_parser_attribute_list): Do not translate attribute strings.
11414
11415 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11416
11417         * stmt.c (expand_start_case_dummy): Remove.
11418         * tree.h: Remove the corresponding prototype.
11419
11420 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11421
11422         * builtins.c (apply_args_register_offset): Remove.
11423         * tree.h: Remove the corresponding prototype.
11424
11425 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11426
11427         * stor-layout.c (is_pending_size): Remove.
11428         * tree.h: Remove the corresponding prototype.
11429
11430 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11431
11432         * recog.c (validate_replace_src): Remove.
11433         * recog.h: Remove the corresponding prototype.
11434
11435 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11436
11437         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11438         MAYBE_REG_PARM_STACK_SPACE.
11439         * function.c: Likewise.
11440         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11441         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11442         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11443         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11444
11445 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11446
11447         * c-decl.c (c_expand_deferred_function): Remove.
11448         * c-tree.h: Remove the corresponding prototype.
11449
11450 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11451
11452         * postreload.c (reload_cse_move2add): Generate just a PLUS
11453         instead of an entire SET.
11454
11455 2004-02-26  Jan Hubicka  <jh@suse.cz>
11456
11457         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11458         /pentium4m.
11459         * i386.c (override_options): Add support for new CPUs.
11460         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11461         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11462         constants.
11463         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11464
11465 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11466
11467         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11468
11469 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11470
11471         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11472         (sparc_emit_fixunsdi): New prototype.
11473         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11474         (sparc_emit_fixunsdi): New function.
11475         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11476         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11477         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11478         to sparc_emit_floatunsdi.
11479         (fixuns_truncsfdi2): New expander.
11480         (fixuns_truncdfdi2): Likewise.
11481
11482 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11483
11484         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11485         unless HAVE_cc0.
11486
11487 2004-02-25  Richard Henderson  <rth@redhat.com>
11488
11489         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11490         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11491         use (op0-op1) == 0 if op0 is a pointer.
11492         * config/alpha/alpha.md (cmpdi): Use some_operand.
11493         (three comparison combine splits): Remove.
11494
11495 2004-02-25  Richard Henderson  <rth@redhat.com>
11496
11497         PR c/12794
11498         * c-common.c (handle_alias_attribute): Reject the attribute if
11499         current_function_decl is set.
11500
11501 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11502
11503         * config.gcc: Add comment describing extra_gcc_objs.
11504         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11505         * configure.ac (extra_gcc_objs): New substitution variable.
11506         (host_extra_gcc_objs): Don't substitute.
11507         * configure: Regenerate.
11508         * Makefile.in: Use extra_gcc_objs.
11509
11510 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11511
11512         * doc/contrib.texi: Add an entry for myself.
11513
11514 2004-02-25  Jan Hubicka  <jh@suse.cz>
11515
11516         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11517         * cfgbuild.c (make_eh_edge):  Make global.
11518         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11519         * except.c (build_post_landing_pads, connect_post_landing_pads,
11520         dw2_build_landing_pads, sjlj_emit_function_enter,
11521         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11522         sjlj_build_landing_pads): Update CFG.
11523         (emit_to_new_bb_before): New function.
11524         (finish_eh_generation): Do not rebuild the CFG.
11525
11526 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11527
11528         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11529         target_cpu_default defines.
11530         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11531         * pa.h (TARGET_DEFAULT): Likewise.
11532
11533 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11534
11535         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11536         comparisons with regard to signedness.
11537
11538 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11539
11540         * arm.c (thumb_legitimize_address): New function.
11541         * arm-protos.h: Prototype it.
11542         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11543         (LEGITIMIZE_ADDRESS): Use it.
11544
11545 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11546
11547         * reload1.c (reload): Only spill eliminable register with multiple
11548         adjacent elimination alternatives if all alternatives fail.
11549
11550 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11551
11552         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11553         is -4095...+4095 inclusive.
11554
11555 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11556
11557         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11558         the bootstrap failure with Sun CC 5.4 and 5.5.
11559
11560 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11561
11562         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11563         which modifies NEWREG.
11564         (cse_condition_code_reg): Update the mode of CC_REG in
11565         CC_SRC_INSN on our own.
11566
11567 2004-02-24  Michael Matz  <matz@suse.de>
11568
11569         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11570         regparm attributes.
11571
11572 2004-02-24  Richard Henderson  <rth@redhat.com>
11573
11574         * toplev.c (dump_file_tbl): Rename from dump_file.
11575         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11576         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11577         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11578         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11579         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11580         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11581         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11582         s/rtl_dump_file/dump_file/g.
11583
11584 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11585
11586         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11587         (spe_fixuns_truncsfsi2): Delete.
11588
11589         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11590         (fixuns_truncsfsi2): Delete.
11591
11592 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11593
11594         PR/14240
11595         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11596
11597 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11598
11599         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11600
11601 2004-02-24  Jason Merrill  <jason@redhat.com>
11602
11603         * tree.c (check_qualified_type): New fn.
11604         (get_qualified_type): Use it.  If type already has the desired
11605         quals, just return it.
11606         * tree.h: Declare it.
11607
11608 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11609
11610         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11611         TARGET_SCHED_FINISH_GLOBAL): New macros.
11612
11613         * target.h (md_init_global, md_finish_global): Function
11614         declarations corresponding to new target macros.
11615
11616         * haifa-sched.c (sched_init, sched_finish): Allow target to
11617         call the new schedular hooks.
11618
11619         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11620         call to update_life_info.
11621
11622         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11623         flag_schedule_insns for SH4.
11624
11625         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11626         find_set_regmode_weight, find_insn_regmode_weight,
11627         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11628         sh_variable_issue, high_pressure, ready_reorder,
11629         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11630         functions used to throttle the insn movement in first
11631         scheduling pass for SH.
11632
11633         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11634         TARGET_SCHED_FINISH_GLOBAL.
11635
11636 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11637
11638         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11639         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11640         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11641         symbols in sections named by the user.
11642         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11643         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11644         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11645         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11646         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11647         the above.
11648         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11649         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11650         one more pseudo to further improve code generation.
11651         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11652         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11653         inside UNSPEC.
11654         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11655         * config/frv/frv.c (frv_legitimate_address_p): Added
11656         allow_double_reg_p argument.  Adjust all callers.  Use it to
11657         decide whether to enable double-register indirect addressing.
11658         (frv_funcdesc_alias_set): Remove.
11659         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11660         register.  Emit movdi_ldd.
11661         (ldd_address_operand): New.
11662         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11663         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11664         (PREDICATE_CODES): Add ldd_address_operand.
11665         * config/frv/frv.md (movdi_ldd): New.
11666         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11667         intermediate computations if possible.
11668         (symGOTOFF2reg_i): Fix harmless typo.
11669         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11670         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11671         relocated p_vaddr to vaddr type.
11672         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11673         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11674         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11675         MEM, or use a funcdesc alias set.  Use regular move instead of
11676         ldd.
11677         (dbl_memory_one_insn_operand): Recognize function descriptors by
11678         type or by alias set, and don't split them.
11679         * config/frv/frv.md (call, call_value): Never use call_internal
11680         for fdpic.
11681         (call_internal, call_value_internal): Never match for FDPIC.
11682         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11683         call_value_fdpicsi): Require FDPIC.
11684         (ldd): Removed.
11685         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11686         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11687         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11688         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11689         FDPIC.  Compute data base address.
11690         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11691         before the other self-specs are processed.
11692         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11693         Build with -fPIC.
11694         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11695         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11696         inhibit_libc is defined.
11697         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11698         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11699         __FRV_FDPIC__.
11700         (__RELOC_POINTER): Define.
11701         (_Unwind_IteratePhdrCallback): Use it.
11702         * config/frv/frv.h (Twrite): Define.
11703         (TRANSFER_FROM_TRAMPOLINE): Use it.
11704         * config/frv/linux.h (INVOKE__main): Undefine.
11705         (Twrite): Override.
11706         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11707         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11708         (-mlibrary-pic): Emphasize that this option generates EABI code.
11709         (-mcpu): Add fr550.
11710         (-mpack): Remove.
11711         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11712         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11713         and CONSTs in FDPIC mode.
11714         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11715         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11716         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11717         constants.
11718         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11719         rather than 'i' constraint for the 2-instruction alternative.
11720         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11721         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11722         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11723         EXTRA_CONSTRAINT_FOR_Y.
11724         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11725         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11726         (addsi3): Change 'Y' constraint to 'Q'.
11727         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11728         * reload.c (CONST_POOL_OK_P): New macro.
11729         (find_reloads): Use it to decide whether a constant can be forced
11730         into memory.
11731         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11732         constant satisfies got12_operand.
11733         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11734         (frv_legitimate_address_p): Check for valid unspec offsets using
11735         got12_operand rather than frv_legitimate_fdpic_operand_p.
11736         (frv_legitimate_fdpic_operand_p): Delete.
11737         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11738         or after reload.
11739         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11740         TARGET_FDPIC.
11741         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11742         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11743         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11744         (frv_fdpic_fptr_operand): Don't declare here.
11745         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11746         rather than fdpic_got12_operand.
11747         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11748         got12_operand and const_unspec_operand.
11749         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11750         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11751         (symbolic_operand): Remove.
11752         (const_unspec_operand): New predicate.
11753         * config/frv/frv.md (*movsi_got): Use got12_operand.
11754         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11755         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11756         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11757         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11758         * config/frv/frv.c (frv_unspec): New structure.
11759         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11760         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11761         validate CONST indices.  Use frv_output_const_unspec to print them.
11762         (frv_print_operand): Update call to unspec_got_name.  Use
11763         frv_output_const_unspec to print constant unspecs.
11764         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11765         Reject UNSPECs otherwise.
11766         (unspec_got_name): Take the relocation number as argument, not an
11767         rtx containing it.
11768         (frv_output_addr_const_extra): Remove, replacing with...
11769         (frv_output_const_unspec): ...this new function.
11770         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11771         (gpr_or_int12_operand): Use fdpic_got12_operand.
11772         (dbl_memory_one_insn_operand): Likewise.
11773         (fdpic_got12_operand): Use frv_const_unspec_p.
11774         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11775         are already legitimate.  Use frv_small_data_reloc_p when deciding
11776         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11777         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11778         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11779         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11780         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11781         label, for real this time.
11782         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11783         representation of visibility.
11784         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11785         such.
11786         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11787         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11788         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11789         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11790         it was explicitly disabled.
11791         (frv_stack_info): There is no need to save the link register in every
11792         frame unless TARGET_LINKED_FP is true.
11793         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11794         frame pointer if the stack pointer might change value.
11795         (frv_return_addr_rtx): Check and process "count" argument.
11796         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11797         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11798         (frv_find_base_term): Declare.
11799         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11800         (FIND_BASE_TERM): Define.
11801         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11802         small_data_register_operand, small_data_symbolic_operand.  Add
11803         symbolic_operand.
11804         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11805         (frv_print_operand_memory_reference, output_move_single): Remove
11806         special handling for unlegitimized sdata addresses.
11807         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11808         and symbolic addresses.
11809         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11810         (frv_find_base_term): New function.
11811         (int_2word_operand): Check specifically for symbolic address constants.
11812         (pic_register_operand, pic_symbolic_operand): Delete.
11813         (small_data_register_operand, small_data_symbolic_operand): Delete.
11814         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11815         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11816         (move_source_operand): Only accept CONSTs if they're a two-insn
11817         symbolic constant.
11818         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11819         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11820         using gen_symGOTOFF2reg*.
11821         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11822         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11823         themselves a cost of 3 insns.
11824         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11825         Change predicate to symbolic_operand.
11826         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11827         (*movsi_lda_sdata): Delete.
11828         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11829         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11830         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11831         frv-*-*linux*.
11832         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11833         label.
11834         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11835         -multilib-library-pic.
11836         (LINK_SPEC): Add -z text for -mfdpic.
11837         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11838         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11839         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11840         Override.
11841         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11842         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11843         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11844         crtstuff-generated files.
11845         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11846         * config.gcc: Add frv-*-*linux*.
11847         * config/frv/linux.h, config/frv/t-linux: New.
11848         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11849         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11850         when -mfdpic even if a linker script is explicitly listed.
11851         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11852         * config/frv/frv.c (frv_override_options): Clear asm_out
11853         unaligned_op for SImode on FDPIC.
11854         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11855         argument passed to decl_readonly_section.
11856         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11857         whole block run with FDPIC even with -fno-PIC.
11858         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11859         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11860         symbol or label plus offset to memory.
11861         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11862         GOTOFF and GPREL for LABEL_REF.
11863         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11864         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11865         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11866         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11867         * doc/invoke.texi: Document them.
11868         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11869         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11870         (frv_splittable_got_operand): Removed.
11871         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11872         LO_SUM.  Add comments.
11873         (frv_override_options): Moved enabling of FDPIC to
11874         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11875         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11876         (frv_legitimize_fdpic_address): Don't duplicate logic in
11877         frv_emit_movsi.
11878         (frv_gen_GPsym2reg): New.
11879         (unspec_got_name): Added gprel.
11880         (frv_expand_fdpic_call): Add support for inlining PLTs.
11881         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11882         (gpr_or_int12_operand): Added GPREL12.
11883         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11884         (small_data_symbolic_operand): Fail if FDPIC.
11885         (fdpic_splittable_got_operand): Removed.
11886         (fdpic_got12_operand): Added GPREL12.
11887         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11888         when appropriate.  Fix sdata GOTOFF.
11889         (frv_legitimate_constant_p): Require legitimate PIC operand for
11890         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11891         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11892         flag_pic case.
11893         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11894         frv_assemble_integer fails.
11895         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11896         (SUBTARGET_DRIVER_SELF_SPECS): New.
11897         (ASM_SPEC): Don't pass -mno-fdpic.
11898         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11899         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11900         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11901         -multilib-library-pic.
11902         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11903         condexec_si_media_operator, condexec_sf_add_operator and
11904         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11905         and condexec_sf_unary_operator.
11906         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11907         New.
11908         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11909         movsi_internal.  Give them internal names.  movsi_got has type
11910         int.
11911         (fdpic got splitters): Remove.
11912         (symGPREL2reg, symGPREL2reg_hilo): New.
11913         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11914         to -mlibrary-pic.  Map -multilib-library-pic to it.
11915         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11916         Document.
11917         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11918         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11919         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11920         (frv_cannot_force_const_mem): New function.
11921         (const_small_data_p, plus_small_data_p): Update comments on sdata
11922         on FDPIC.
11923         (frv_override_options): Set flag_pie for FDPIC too.
11924         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11925         call-saved registers on FDPIC.
11926         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11927         don't force LR to be preserved.
11928         (frv_expand_prologue): Likewise.
11929         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11930         (frv_frame_pointer_required): Don't force it just because the
11931         FDPIC register is used.
11932         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11933         operand only if !condexec_p.
11934         (frv_legitimize_address): Return the FDPIC-legitimized address.
11935         Don't match small data here on FDPIC.
11936         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11937         symbols.  Use TRUE/FALSE instead of 1/0.
11938         (frv_local_funcdesc_p): New.
11939         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11940         immediates when possible.
11941         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11942         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11943         an UNSPEC_GOT.
11944         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11945         12-bit immediates when possible.
11946         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11947         are not legitimate pic operands.
11948         (frv_in_small_data_p): Re-enable for FDPIC.
11949         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11950         (FRV_GLOBAL_P): Removed.
11951         * config/frv/frv.md: Add modes to CONSTs.
11952         (movsi_got): New.
11953         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11954         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11955         (fdpic splittable operations): Match on flag_pic != 1.
11956         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11957         * config/frv/frv.c (frv_asm_out_constructor,
11958         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11959         bytes, not bits.
11960         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11961         * config/frv/frv.c (frv_assemble_integer): Reject complex
11962         expressions referencing function SYMBOL_REFs.
11963         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11964         (move_source_operand): Reject CONSTs that reference function
11965         SYMBOL_REFs on FDPIC.
11966         (frv_emit_movsi): If we get such a CONST, break it up.
11967         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11968         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11969         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11970         MEM.
11971         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11972         (frv_trampoline_size): Increase for FDPIC.
11973         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11974         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11975         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11976         Disable use of GOTOFF for now.
11977         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11978         Disable use of small data in FDPIC for now.
11979         (frv_asm_output_mi_thunk): Implement for FDPIC.
11980         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11981         * config/frv/frv.c (frv_asm_out_constructor): Use
11982         frv_assemble_integer for FDPIC pointers.
11983         (frv_asm_out_destructor): Likewise.
11984         * config/frv/frv.md (ldd): Fix order of operands.  Use
11985         address_operand for input.
11986         2003-09-18  DJ Delorie  <dj@redhat.com>
11987         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11988         (unspec_got_name): Correct typo.
11989         (frv_emit_movsi): Pre-expand splittable GOTs.
11990         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11991         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11992         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11993         * config/frv/t-frv: Add -mfdpic multilibs.
11994         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11995         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11996         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11997         flag_pic, default to 32-bit pics, require DWORD ops.
11998         (frv_override_options): Add W and Z constraints.
11999         (frv_expand_prologue): No pic prologue for -mfdpic.
12000         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
12001         (frv_print_operand_memory_reference): Handle GOT constants.
12002         (frv_legitimate_address_p): Allow GOT constants.
12003         (frv_legitimize_address): Handle GOT addresses too.
12004         (frv_legitimate_fdpic_operand_p): New.
12005         (frv_legitimize_fdpic_address): New.
12006         (unspec_got_name): New.
12007         (frv_output_addr_const_extra): New.
12008         (frv_expand_fdpic_call): New.
12009         (frv_fdpic_fptr_operand): New.
12010         (gpr_or_int12_operand): Handle GOT operands.
12011         (int_2word_operand): Handle GOT operands.
12012         (fdpic_operand): New.
12013         (fdpic_splittable_got_operand): New.
12014         (fdpic_got12_operand): New.
12015         (frv_emit_movsi): Handle GOT operands.
12016         (frv_assemble_integer): -mfdpic doesn't use rofixups.
12017         (frv_print_operand): Support 'g' code for GOT operands.
12018         * config/frv/frv-protos.h: Add prototypes as needed.
12019         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
12020         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
12021         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
12022         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
12023         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
12024         R_FRV_GOTOFFLO): New.
12025         (movsi_high_got, movsi_lo_sum_got): New.
12026         (*movsi_pic): Don't use this splitter for -mfdpic.
12027         (addsi3): Allow GOT references also.
12028         (call, call_value): Handle -mfdpic separately.
12029         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
12030         call_value_fdpicsi): New.
12031         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
12032         symGOTOFF2reg_i): New.
12033         * config/frv/frv.h (MASK_FDPIC): New.
12034         (TARGET_FDPIC): New.
12035         (TARGET_SWITCHES): Add -mfdpic.
12036         (FDPIC_FPTR_REGNO): New.
12037         (FDPIC_REGNO): New.
12038         (OUR_FDPIC_REG): New.
12039         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
12040         FDPIC_CALL_REGS.
12041         (REG_CLASS_NAMES): Likewise.
12042         (REG_CLASS_CONTENTS): Likewise.
12043         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
12044         (EXTRA_CONSTRAINT): Add it here.
12045         (FRV_GLOBAL_P): New.
12046         (OUTPUT_ADDR_CONST_EXTRA): New.
12047
12048 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12049
12050         * config/sparc/sparc.h: Remove commented-out definitions of
12051         TARGET_EDOM and GEN_ERRNO_RTX.
12052
12053 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12054
12055         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
12056         df_analyse with df_analyze.
12057
12058 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
12059
12060         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
12061         beginning of block.
12062
12063 2004-02-23  James E Wilson  <wilson@specifixinc.com>
12064
12065         * calls.c (precompute_arguments): Update comment.
12066
12067 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12068
12069         * et-forest.c: Replace et_occurences with et_occurrences.
12070
12071 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12072
12073         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
12074         with iv_analyze.
12075
12076 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
12077
12078         * config/i386/i386.c: Rename pni to sse3.
12079         * config/i386/i386.h: Likewise.
12080         * config/i386/i386.md: Likewise.
12081         * config/i386/pmmintrin.h: Likewise.
12082         * doc/extend.texi: Likewise.
12083         * doc/invoke.texi: Likewise.
12084
12085 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
12086             Kazu Hirata  <kazu@cs.umass.edu>
12087
12088         Remove -fwritable-strings.
12089         * c-common.c (fix_string_type): Don't check
12090         flag_writable_strings.
12091         (fix_string_type): Likewise.
12092         * c-opts.c (set_std_c89): Don't initialize
12093         flag_writable_strings.
12094         (set_std_c99): Likewise.
12095         * common.opt (fwritable-strings): Remove.
12096         * flags.h: Remove the external declaration of
12097         flag_writable_strings.
12098         * opts.c (common_handle_option) <OPT_fwritable_strings>:
12099         Remove.
12100         * toplev.c (flag_writable_strings): Remove.
12101         (f_options): Remove an entry for writable-strings.
12102         * varasm.c (const_hash_1) <STRING_CST>: Don't check
12103         flag_writable_strings.
12104         (compare_constant) <STRING_CST>: Likewise.
12105         (build_constant_desc): Likewise.
12106         * config/darwin.c (machopic_select_section): Likewise.
12107         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12108         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12109         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12110         * config/mips/mips.c (mips_select_section): Likewise.
12111         (mips_encode_section_info): Likewise.
12112         * config/pa/pa.c (pa_select_section): Likewise.
12113         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12114         * config/v850/v850.c (v850_select_section): Likewise.
12115         * doc/invoke.texi (-fwritable-strings): Remove.
12116         (-fno-const-strings): Don't mention -fwritable-strings.
12117         * doc/trouble.texi: Don't mention -fwritable-strings.
12118
12119 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
12120
12121         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12122
12123 2004-02-23  Dale Johannesen  <dalej@apple.com>
12124
12125         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12126         (movdf_hardfloat64):  Ditto.
12127         (movdf_softfloat64):  Ditto.
12128
12129 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
12130         * config/rs6000/rs6000.c (function_arg): call to
12131         rs6000_mixed_function_arg for DFmode moved to allow
12132         normal DFmode incoming register assignment.
12133
12134 2004-02-23  Dale Johannesen  <dalej@apple.com>
12135
12136         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12137         (movdf_hardfloat64):  Ditto.
12138
12139 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12140
12141         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12142         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12143         copyright.
12144
12145 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
12146
12147         PR c/14156
12148         * c-typeck.c (c_expand_return): Change check for VAR_DECL
12149         to use DECL_P instead.
12150
12151         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12152         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12153
12154 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12155
12156         * Makefile.in (opts.o): Depend on target.h.
12157         * opts.c (decode_options): Use targetm.default_short_enums
12158         instead of DEFAULT_SHORT_ENUMS.
12159         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12160         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12161         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12162         * target.h (gcc_target): Add default_short_enums.
12163         * config/cris/cris.h: Remove a comment about
12164         DEFAULT_SHORT_ENUMS.
12165         * config/ip2k/ip2k.h: Likewise.
12166         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12167         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
12168
12169 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12170             Falk Hueffner  <falk@debian.org>
12171
12172         PR c/14188
12173         * builtins.c (expand_builtin_va_arg): Emit an informative message
12174         if a trap is generated.
12175         * c-typeck.c (build_function_call): Likewise.
12176
12177 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12178
12179         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12180         fopen.
12181         * libgcov.c: Include sys/stat.h.
12182         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12183         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12184         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12185         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12186
12187 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12188
12189         * reorg.c: Remove comments about dead ports.
12190
12191 2004-02-22  Christopher Faylor  <cgf@redhat.com>
12192
12193         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12194         extra host object file when targetting cygwin rather than generic
12195         object files.
12196
12197 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
12198
12199         Merge from tree-ssa:
12200         2003-11-20  Richard Henderson  <rth@redhat.com>
12201
12202                 * tree-inline.c (insert_decl_map): New.
12203                 (remap_decl, remap_type, remap_block, copy_body_r,
12204                 initialize_inlined_parameters, declare_return_variable,
12205                 remap_save_expr): Use it.
12206
12207         * function.c (copy_body_r): Add mapping from id->ret_label to
12208         id->ret_label.  Revert test for ret_label.
12209
12210 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12211
12212         * genoutput.c (process_template): Strip trailing whitespace in @
12213         templates and issue a warning if there was any.
12214
12215 2004-02-21  Christopher Faylor  <cgf@redhat.com>
12216
12217         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12218         object file when targetting cygwin.
12219         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12220         overridden by top-level Makefile.
12221
12222 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12223
12224         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12225         the x87's load constant instructions when optimizing for size.
12226
12227 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12228
12229         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12230         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12231         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12232         * fold-const.c: Likewise.
12233         * simplify-rtx.c: Likewise.
12234
12235 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12236
12237         * combine.c (can_combine_p): Don't ignore SETs marked with
12238         REG_EH_REGION notes.
12239         (try_combine): When attemting to fix unrecognized insns, don't
12240         split a PARALLEL that contains the original i2.
12241
12242 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12243
12244         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12245         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12246         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12247         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12248         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12249         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12250         portion of header.
12251         (__altivec_link_error_invalid_argument): Remove prototype; will use
12252         __builtin_altivec_compiletime_error("vec_*") instead.
12253         (vec_*): Fix/complete set of available operation overloads given the
12254         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12255         cv-correctness of pointer arguments; in C, always check for correct
12256         argument types before macro expansion.
12257         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12258         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12259         '-W[no-]altivec-long-deprecated' switches.
12260         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12261         '__vector', '__pixel' and '__bool' macros using
12262         '__attribute__((altivec(...)))' types.
12263         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12264         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12265         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12266         New type nodes.
12267         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12268         handling '-W[no-]altivec-long-deprecated'.
12269         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12270         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12271         altivec_expand_dst_builtin): Remove casts from integer literals.
12272         (altivec_expand_builtin): Likewise; handle expansion of new
12273         '__builtin_altivec_compiletime_error' function.
12274         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12275         types, and make them distinct from other vector types; register
12276         '__builtin_altivec_compiletime_error' function.
12277         (print_operand): For 'P', print a full target register name instead of
12278         merely its number.
12279         (rs6000_attribute_table): Add "altivec" attribute.
12280         (rs6000_handle_altivec_attribute): New function.
12281         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12282         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12283         maps to).
12284         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12285         declare.
12286         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12287
12288 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12289
12290         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12291         check.
12292         (shift_mix4left+2): Delete redundant pattern.
12293
12294 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12295
12296         * alias.c (OUTGOING_REGNO): Don't define the default.
12297         * builtins.c (OUTGOING_REGNO): Likewise.
12298         (INCOMING_REGNO): Likewise.
12299         (apply_args_register_offset): Always use OUTGOING_REGNO.
12300         * combine.c (OUTGOING_REGNO): Likewise.
12301         * sibcall.c (OUTGOING_REGNO): Likewise.
12302         * defaults.h (INCOMING_REGNO): Provide the default.
12303         (OUTGOING_REGNO): Likewise.
12304
12305 2004-02-21  Jan Hubicka  <jh@suse.cz>
12306
12307         * params.def (max-peeled-insns, max-completely-peeled-insns,
12308         max-once-peeled-insns): Set to 400.
12309
12310 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12311
12312         PR c++/12007
12313         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12314         are set for parameters before outputing debugging information.
12315
12316 2004-02-20  Falk Hueffner  <falk@debian.org>
12317
12318         PR target/14201
12319         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12320         numbers.
12321
12322 2004-02-20  Per Bothner  <per@bothner.com>
12323
12324         * input.h:  Don't #include line-map.h.  It may cause link problems
12325         with undefined linemap_line_start when line-map.h is included but
12326         line-map.o is not linked, as currently happens with gengtype on
12327         compilers that don't support inline.
12328         * toplev.c:  So we do have to explicitly #include line-map.h here.
12329
12330 2004-02-20  Richard Henderson  <rth@redhat.com>
12331
12332         * doc/invoke.texi: Add -Wvariadic-macros.
12333
12334 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12335
12336         * haifa-sched.c (sched_emit_insn): Remove.
12337         * sched-int.h: Remove the corresponding prototype.
12338
12339 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12340
12341         Revert:
12342         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12343         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12344         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12345         * config/cris/cris.h: Remove a comment about
12346         DEFAULT_SHORT_ENUMS.
12347         * config/ip2k/ip2k.h: Likewise.
12348         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12349
12350 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12351             Tom Tromey  <tromey@redhat.com>
12352
12353         * doc/install.texi: Moved --disable-libgcj and
12354         --with-system-zlib documentation to new section for
12355         Java-specific options.
12356         Added explicit Cross-Compiler-Specific Options subheading.
12357         Added section for Java-specific options.
12358
12359 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12360
12361         * doc/install.texi (Building the Ada compiler): Remove
12362         example.
12363
12364 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12365
12366         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12367
12368 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12369
12370         * gcc.c (process_command): Allow translation of the copyright
12371         symbol but not the rest of the copyright message.
12372         * gcov.c (print_version): Likewise.  Allow translation of the
12373         message about warranty.
12374
12375 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12376
12377         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12378         predicate.
12379         ("*andsi_clear"): Tweak constraints to not match postincrement.
12380         Adjust the predicate to exclude a volatile memory reference.
12381         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12382         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12383
12384 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12385
12386         * move-if-change: Remove.
12387         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12388         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12389         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12390         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12391         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12392         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12393
12394 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12395
12396         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12397         for operand2.  Add condition that requires register_operand operand2
12398         before reload.
12399
12400 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12401             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12402
12403         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12404         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12405
12406 2004-02-19  Richard Henderson  <rth@redhat.com>
12407
12408         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12409         * tree.c (build0, build1, build2, build3, build4): Split out from...
12410         (build): ... here.  Call them.
12411         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12412
12413         * convert.c (convert_to_integer): Remove extra build argument.
12414         * tree-inline.c (expand_call_inline): Likewise.
12415
12416 2004-02-19  Richard Henderson  <rth@redhat.com>
12417
12418         * c-opts.c (warn_variadic_macros): New.
12419         (c_common_handle_option): Set it.
12420         (sanitize_cpp_opts): Copy it to cpp_opts.
12421         * c.opt (Wvariadic-macros): New.
12422         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12423         * cppinit.c (cpp_create_reader): Initialize it.
12424         * cppmacro.c (parse_params): Check it.
12425
12426 2004-02-19  David Daney <ddaney@avtrex.com>
12427
12428         PR preprocessor/14198
12429         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12430         builtin_assert ("machine=mips")
12431
12432 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12433
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-19  Zack Weinberg  <zack@codesourcery.com>
12442
12443         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12444         when passing single SFmode quantities in general registers,
12445         put them in the high half.
12446
12447 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12448
12449         * doc/md.texi (Standard Names): Document additional dependency on
12450         fix pattern.
12451
12452         * optabs.c (ftruncify): Remove.
12453         (expand_fix): Manually inline ftruncify above.
12454         (can_fix_p): Add FIXME note.
12455
12456 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12457
12458         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12459         spe_fixuns_truncsfsi2.
12460
12461         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12462         fixuns_truncsfsi2.
12463
12464 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12465
12466         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12467         * testsuite/gcc.dg/20040219-1.c: New test.
12468
12469 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12470
12471         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12472         "*subsf3_cconly"): Subtraction is not commutative.
12473
12474 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12475
12476         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12477         (sdbout_symbol): If called before sdbout_init, queue DECL for
12478         later and return.
12479         (sdbout_init): Set sdbout_initialized true, process decls
12480         queued earlier by sdbout_symbol.
12481         (sdbout_finish): Use size_t for index variable.
12482
12483 2004-02-19  Jeff Law  <law@redhat.com>
12484
12485         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12486         for unordered comparison codes.
12487
12488 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12489
12490         * reload1.c (reload): Correct comment.
12491         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12492         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12493         register variables are not used by reload.
12494
12495 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12496
12497         PR target/14209
12498         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12499         constraints to not match postincrement.  Adjust the predicate to
12500         exclude a volatile memory reference.
12501
12502 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12503
12504         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12505
12506 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12507
12508         * hooks.c (hook_void_tree_int): Remove.
12509         (hook_void_constcharptr): Likewise.
12510         (hook_int_void_0): Likewise.
12511         * hooks.h: Remove the prototypes for the above three
12512         functions.
12513         * targhooks.c (hook_bool_machine_mode_true): Remove.
12514         * targhooks.h: Remove the prototype for
12515         hook_bool_machine_mode_true.
12516
12517 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12518
12519         * emit-rtl.c (subreg_realpart_p): Remove.
12520         (reorder_insns_with_line_notes): Likewise.
12521         (end_full_sequence): Likewise.
12522         * rtl.h: Remove the prototype for the above functions.
12523
12524 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12525
12526         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12527         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12528         config/iq2000/iq2000.h, config/m32r/m32r.h,
12529         config/pdp11/pdp11.h, config/sparc/sparc.h,
12530         config/xtensa/xtensa.h: Remove commented-out or useless
12531         definitions of CASE_VECTOR_PC_RELATIVE.
12532
12533 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12534
12535         * loop.c (all_sets_invariant_p): Remove.
12536
12537 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12538
12539         PR target/12916
12540         * config/sparc/sparc.h (NPARM_REGS): Delete.
12541         (BASE_RETURN_VALUE_REG): Likewise.
12542         (BASE_OUTGOING_VALUE_REG): Likewise.
12543         (BASE_PASSING_ARG_REG): Likewise.
12544         (BASE_INCOMING_ARG_REG): Likewise.
12545         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12546         TARGET_ARCH64, not TARGET_V9.
12547         (function_arg_slotno): Dispatch based on the mode class.
12548         Handle vector modes like floating-point modes.
12549         (function_arg_record_value_1): Handle vector types like
12550         floating-point types.
12551         (function_arg_record_value_2): Likewise.
12552         Calculate regno after mode transformation.
12553         (function_arg): Handle vector modes like floating-point modes.
12554         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12555         If ARCH64, do not recheck alignment.
12556         (function_arg_pass_by_reference): Reorder the conditions.
12557         (sparc_return_in_memory): Move after function_arg_padding.
12558         Implement calling conventions for vector modes.
12559         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12560         (function_value): Move scope of 'regbase'.
12561         Implement calling conventions for vector modes.
12562         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12563         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12564         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12565         the argument is passed by reference.
12566         (sparc_type_code): Handle vector types.
12567
12568 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12569
12570         * function.c (assign_parms): When building decl_rtl for
12571         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12572
12573 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12574
12575         * expr.c (is_aligning_offset): Check if we are aligning the
12576         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12577         in bits.
12578
12579 2004-02-18  Matt Austern  <austern@apple.com>
12580
12581         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12582         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12583         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12584         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12585         spec string.
12586         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12587
12588 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12589
12590         * dwarf2out.c (loclabel_num): Move outside #ifdef
12591         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12592         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12593         Mark with GTY(()).
12594         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12595         Allocate memory with ggc_alloc.  No need to copy anything.
12596         (ia64_hpux_file_end): Update to match.
12597
12598 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12599
12600         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12601         by default.
12602
12603 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12604
12605         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12606         ("divmodtisi3"): Likewise.
12607         ("udivmoddi4", "udivmodtidi3"): Likewise.
12608         ("divmodsi4", "divmoddisi3"): Likewise.
12609         ("udivmodsi4", "udivmoddisi3"): Likewise.
12610         ("udivsi3", "umodsi3"): Likewise.
12611
12612 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12613
12614         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12615         placeholder insn when chunkifying the pool.
12616
12617 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12618
12619         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12620         generating PIC code.
12621
12622 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12623
12624         * config/h8300/h8300-protos.h: Add a prototype for
12625         h8300_expand_branch.
12626         * config/h8300/h8300.c (h8300_expand_branch): New.
12627         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12628         bgtu, beq, bne): Call h8300_expand_branch().
12629
12630 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12631
12632         * config/h8300/h8300-protos.h: Add prototypes for
12633         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12634         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12635         (h8300_hard_regno_mode_ok): Likewise.
12636         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12637         h8300_hard_regno_nregs().
12638         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12639
12640 2004-02-18  Per Bothner  <per@bothner.com>
12641
12642         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12643         partly reverts my 2003-10-01 change, because we're back to logically
12644         including <command line> inside the main line.
12645         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12646         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12647         Fixes PR preprocessor/14103.
12648
12649         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12650         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12651         (cpp_push_include):  Don't need to increment pfile's line field.
12652         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12653
12654         * c-ppoutput.c (print struct):  New first_time field.
12655         (init_pp_output):  Set print.first_time.
12656         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12657         which is set also for (say) <command line>.  Clear print.first_time.
12658
12659         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12660         does not match the code, so fix both.
12661         (should_stack_file):  Inline include_pch_p function.
12662         (include_pch_p):  Remove pointless function.
12663
12664         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12665
12666 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12667
12668         * config/h8300/h8300.md (four define_peephole2's): Use
12669         h8300_regs_ok_for_stm().
12670
12671 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12672
12673         * config/h8300/h8300-protos.h: Update the prototype for
12674         expand_a_rotate().
12675         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12676         argument.
12677         * config/h8300/h8300.md: Update all callers.
12678
12679 2004-02-18  Jan Hubicka  <jh@suse.cz>
12680
12681         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12682         floats.
12683         (simplify_binary_operation): Deal with logicals on floats.
12684
12685         * i386.md (SSE fabs splitters): Emit new patterns.
12686         (SSE cmov splitters): Likewise.
12687         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12688         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12689         subregs.
12690         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12691         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12692
12693 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12694
12695         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12696         by hand.
12697         (output_a_rotate): Tweak a comment.
12698         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12699         (*rotlhi3_1): Change to rotlhi3_1.
12700         (*rotlsi3_1): Change to rotlsi3_1.
12701
12702 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12703
12704         PR target/13866
12705         * arm.c (load_multiple_operation): Don't insist that the source reg
12706         of a post-increment component is the same as the destination.
12707         (store_multiple_operation): Likewise.
12708
12709 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12710
12711         * config/h8300/h8300.md: Move movsf patterns into one section
12712         of the file.
12713
12714 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12715
12716         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12717         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12718         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12719         config/mips/linux64.h, config/pa/pa-64.h,
12720         config/rs6000/aix51.h, config/rs6000/aix52.h,
12721         config/rs6000/spe.md, config/sparc/linux.h,
12722         config/sparc/linux64.h: Update copyright.
12723
12724 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12725
12726         * config/h8300/h8300.md: Move push patterns into one
12727         section of the file.
12728
12729 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12730
12731         PR c++/11326
12732         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12733         fntype.
12734
12735 2004-02-18  Paul Brook  <paul@codesourcery.com>
12736
12737         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12738
12739 2004-02-18  Paul Brook  <paul@codesourcery.com>
12740
12741         PR debug/12934
12742         * dwarf2out.c (loc_descriptor_from_tree): Handle
12743         EXPR_WITH_FILE_LOCATION.
12744
12745 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12746
12747         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12748         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12749         trailing whitespace from instructions.
12750
12751 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12752
12753         * configure.ac: When generating auto-build.h, pass
12754         --enable-languages to the sub-configure.
12755         Put quotes around ${program_transform_name} when generating
12756         name of as, ld, nm, objdump.
12757         * configure: Regenerate.
12758
12759 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12760
12761         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12762         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12763         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12764         (s-preds, s-iov): Do not depend on move-if-change.
12765
12766 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12767
12768         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12769         (insert_save): Likewise.
12770
12771 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12772
12773         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12774         warning.
12775
12776 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12777
12778         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12779         *one_cmplsi2_h8300.
12780         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12781
12782 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12783
12784         * config/h8300/h8300-protos.h: Update the prototype of
12785         fix_bit_operand().
12786         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12787         argument "what".
12788         * config/h8300/h8300.md: Update all callers.
12789
12790 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12791
12792         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12793         the last argument to "code" from "type".
12794
12795 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12796
12797         * config/h8300/h8300.c: Remove an extern declaration of
12798         rtx_equal_function_value_matters.
12799
12800 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12801
12802         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12803         by hand.
12804         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12805         (*iorqi3_1): Change to iorqi3_1.
12806         (*xorqi3_1): Change to xorqi3_1.
12807
12808 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12809
12810         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12811         typos.
12812
12813 2004-02-17  Jan Hubicka  <jh@suse.cz>
12814
12815         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12816
12817 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12818
12819         PR optimization/14119
12820         * combine.c (try_combine): When attemting to fix unrecognized insns,
12821         don't delete SETs marked with REG_EH_REGION notes.
12822
12823 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12824
12825         * combine.c (simplify_if_then_else): Do not replace
12826         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12827         modes differ.
12828
12829 2004-02017  Steven Bosscher  <stevenb@suse.de>
12830
12831         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12832         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12833         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12834         * ada/utils.c: Likewise.
12835         * cp/decl.c: Likewise.
12836         * f/com.c: Likewise.
12837         * java/class.c: Likewise.
12838
12839 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12840
12841         * config/h8300/h8300.md: Fix comment typos.
12842
12843 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12844
12845         * config/mips/t-iris6gld: Renamed to ...
12846         * config/mips/t-irix-gld: ... this.
12847         * config.gcc (mips-sgi-irix6*): Reflect this
12848         (mips-sgi-irix5*): Use it with GNU ld.
12849
12850         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12851         to ...
12852         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12853         * config/mips/t-irix-gld: Reflect this.
12854         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12855
12856         * config/mips/iris5gld.h: New file.
12857         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12858         Only use collect2 without gas.
12859
12860         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12861         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12862         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12863         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12864
12865         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12866         * config/mips/iris5.h: ... here.
12867
12868         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12869         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12870         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12871
12872         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12873         using irix_startfile_spec, irix_endfile_spec.
12874
12875 2004-02-16  Gunther Nikl  <gni@gecko.de>
12876
12877         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12878
12879 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12880
12881         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12882         insns by hand.
12883
12884 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12885
12886         * cfghooks.c (split_edge): Speed up updating of dominators.
12887
12888 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12889
12890         PR c++/11326
12891         * c-common.c (flag_abi_version): Remove.
12892         * c-common.h (flag_abi_version): Likewise.
12893         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12894         * c.opt (fabi-version): Remove.
12895         * calls.c (expand_call): Always pass a function type to
12896         struct_value_rtx.  Use convert_memory_address.
12897         * common.opt (fabi-version): Add it.
12898         * flags.h (flag_abi_version): Likewise.
12899         (abi_version_at_least): New macro.
12900         * opts.c (common_handle_option): Add OPT_fabi_version.
12901         * toplev.c (flag_abi_version): Define it.
12902         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12903         New function.
12904         (ia64_output_mi_thunk): Use it.
12905         (ia64_struct_value_rtx): Likewise.
12906
12907 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12908
12909         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12910         Don't generate insns by hand.
12911
12912 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12913
12914         PR c++/14178
12915         * doc/invoke.texi (fabi-version): The default is 2 now.
12916
12917 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12918
12919         * loop-iv.c: New file.
12920         * Makefile.in (loop-iv.o): New.
12921         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12922         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12923         num_loop_branches): New functions.
12924         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12925         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12926         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12927         get_simple_loop_desc, free_simple_loop_desc): Declare.
12928         (simple_loop_desc): New inline function.
12929         (struct rtx_iv, struct niter_desc): New.
12930         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12931         * expr.c (force_operand): Handle subregs of expressions created by
12932         loop unroller.
12933         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12934         parts of the initialization to toplev.c
12935         * loop-unroll.c (loop_exit_at_end_p): New.
12936         (unroll_and_peel_loops): Call iv_analysis_done.
12937         (decide_peel_once_rolling, decide_peel_completely,
12938         decide_unroll_stupid, decide_unroll_constant_iterations,
12939         decide_unroll_runtime_iterations, decide_peel_simple,
12940         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12941         unroll_loop_runtime_iterations): Use new simple loop analysis.
12942         * loop-unswitch.c (compare_and_jump_seq): New.
12943         (may_unswitch_on_p): Renamed to ...
12944         (may_unswitch_on): Use new iv analysis.
12945         (reversed_condition): Export.
12946         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12947         * predict.c (estimate_probability): Use new simple loop analysis.
12948         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12949         canon_condition, simplify_using_condition): Declare.
12950         * stor-layout.c (get_mode_bounds): New.
12951         * toplev.c (rest_of_handle_loop2): Some parts of
12952         initialization/finalization moved here from loop-init.c.
12953
12954 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12955
12956         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12957         pointer.
12958         (CALL_USED_REGISTERS): Likewise.
12959         (REG_ALLOC_ORDER): Likewise.
12960         (REG_CLASS) <GENERAL_REGS>: Likewise.
12961
12962 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12963
12964         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12965         in associative operators.
12966         * rtlanal.c (commutative_operand_precedence): Create some new
12967         variables.  Prefer a commutative operand on the left, then
12968         binary expressions, then NEG and NOT.
12969
12970 2004-02-16  Matthias Klose  <doko@debian.org>
12971
12972         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12973         in terms of SHLIB_SOVERSION.
12974         * config/m68k/t-slibgcc-elf-ver: New file.
12975         * config/pa/t-slibgcc-elf-ver: New file.
12976         * config.gcc (m68k-linux, parisc-linux): Use them when not
12977         sjlj exceptions are not configured.
12978
12979 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12980
12981         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12982
12983 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12984
12985         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12986
12987 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12988
12989         * doc/sourcebuild.texi: Mention backends.html.
12990
12991 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12992
12993         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12994         line-map.c, line-map.h, var-tracking.c: Fix comment
12995         formatting.
12996
12997 2004-02-16  Richard Henderson  <rth@redhat.com>
12998
12999         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
13000
13001         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
13002
13003 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13004
13005         * config/h8300/h8300.md: Remove unnecessary parallels from
13006         all define_insn and define_split patterns.
13007
13008 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13009
13010         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
13011         "clobber").
13012
13013 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
13014
13015         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
13016         '%#'.
13017
13018 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13019
13020         * config/ia64/ia64.c, config/mips/mips.c,
13021         config/mmix/mmix-modes.def: Fix comment typos.
13022
13023 2004-02-15  Roger Sayle  <roger@eyesopen.com>
13024
13025         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
13026         (get_directive_line): Remove unused function prototype.
13027
13028 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13029
13030         * tree-inline.c (copy_body_r): Do not replace ret_label.
13031
13032 2004-02-14  Jan Hubicka  <jh@suse.cz>
13033
13034         * i386.c (x86_four_jump_limit): New variable.
13035         (k8_avoid_jump_misspredicts): Rename to ...
13036         (ix86_avoid_jump_misspredicts): .. this one.
13037         (ix86_pad_returns): Break out from ...
13038         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
13039         to.
13040         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
13041
13042 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13043
13044         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
13045         PARALLEL is NULL.
13046
13047 2004-02-14  Per Bothner  <per@bothner.com>
13048
13049         * fix-header.c (line_table):  Move local variable in main to global.
13050         * scan.h (line_table):  Use it.
13051         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
13052         line (recently renamed to src_loc) before calling recognized_function.
13053
13054 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
13055
13056         * Makefile.in: Fix comment typos.
13057
13058 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
13059
13060         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
13061         for start_value when it is directly moved into reg, and factorize
13062         the retrieval of GET_MODE (reg).
13063
13064 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13065
13066         * config/mips/mips-protos.h (mips_load_got_page): Delete.
13067         (mips_load_got_global): Delete.
13068         (mips_gotoff_page): Declare.
13069         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
13070         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
13071         UNSPEC_LOAD_GOT pattern rather than a MEM.
13072         (*load_got[sd]i): New patterns.
13073         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
13074         (mips_load_got_page, mips_load_got_global): Delete.
13075         (mips_gotoff_page): New function.
13076         (override_options): Don't initialize mips_got_alias_set.
13077
13078 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13079
13080         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
13081         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
13082         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
13083         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
13084         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
13085         * config/mips/mips.c: Fix some overly-long lines.
13086         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
13087         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
13088
13089 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13090
13091         * configure.ac: Search for as, ld below libexec/gcc.
13092         * configure: Regenerate.
13093
13094 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13095
13096         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13097         __builtin_arm_setwcx ().
13098         * config/arm/arm.c (arm_expand_builtin): Generate operands
13099         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13100
13101 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13102
13103         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13104         and "wmuluh" to "wmulsm" and "wmulum", respectively.
13105         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13106         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13107         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13108         (_mm_mulhi_pu16): Likewise.
13109
13110 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
13111
13112         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13113         DECL_NAME != 0 before dereferencing.
13114
13115 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13116
13117         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13118         (s390_output_addr_const_extra): Declare.
13119         (s390_output_pool_entry): Remove FILE * argument.
13120         * config/s390/s390.c (s390_output_symbolic_const): Remove.
13121         (s390_output_addr_const_extra): New function.
13122         (print_operand_address): Call output_addr_const instead of
13123         s390_output_symbolic_const.
13124         (print_operand): Likewise.
13125         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13126         Remove FILE * argument.
13127         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13128         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13129         call.
13130
13131 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13132
13133         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13134         (struct edge, struct vertex, struct graph): New.
13135         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13136         free_graph): New functions.
13137
13138 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
13139
13140         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13141         Use ".set macro" to avoid warnings about multi-instruction
13142         macros, since they're intentional.
13143
13144 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
13145
13146         * config/darwin.h: Add include guards.  Remove old, now incorrect,
13147         comment about STANDARD_EXEC_PREFIX.
13148
13149         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13150         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
13151         for installing .1 manpages.  Add rules for installing cpp
13152         and gcov manpages under their installed names.
13153
13154 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
13155
13156         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13157         host, but try LD_FOR_TARGET first.
13158         * configure: Rebuilt.
13159
13160 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13161
13162         * dbxout.c: Move declaration of dbxout_type_decl outside
13163         #ifdef DBX_DEBUGGING_INFO.
13164         * c-parse.in: Don't give the asmdef production a type.
13165
13166 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13167
13168         * debug.h (struct gcc_debug_hooks): Add type_decl field.
13169         (debug_nothing_tree_int): Prototype.
13170         (dwarf_debug_hooks): Delete, unused.
13171         * debug.c (do_nothing_debug_hooks): Update.
13172         (debug_nothing_tree_int): New function.
13173         * langhooks.h (struct lang_hooks_for_decls):
13174         Remove builtin_type_decls field.
13175         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13176         (LANG_HOOKS_DECLS): Update.
13177         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13178         Use debug_hooks->type_decl.
13179         * dbxout.c (preinit_symbols): New static.
13180         (dbx_debug_hooks, xcoff_debug_hooks): Update.
13181         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13182         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
13183         for symbols to output.
13184         (dbxout_type_decl): New function.
13185         (dbxout_symbol): If called before dbxout_init has run, queue
13186         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13187         to TYPE_DECLs before emitting them.
13188         * xcoffout.c (assign_type_number): Delete.
13189         (xcoff_type_numbers): New static table.
13190         (xcoff_assign_fundamental_type_number): New function.
13191         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13192         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
13193         * sdbout.c: Include varray.h.
13194         (deferred_global_decls): New static.
13195         (sdb_debug_hooks): Update.
13196         (sdbout_global_decl): If we can't emit something right now,
13197         remember it in deferred_global_decls.
13198         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13199         (sdbout_init): Initialize deferred_global_decls.
13200         * Makefile.in: Update dependencies of sdbout.o.
13201         * dwarf2out.c (dwarf2out_type_decl): New function.
13202         (dwarf2_debug_hooks): Update.
13203         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13204         * c-decl.c (getdecls): Just return 0.
13205         (check_for_loop_decls): Don't use getdecls.
13206         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13207         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13208
13209 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
13210
13211         * config/s390/s390.c (s390_sched_reorder2): Remove.
13212         (TARGET_SCHED_REORDER2): Do not redefine.
13213
13214 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13215
13216         * c-parse.in (maybe_type_qual): Delete.
13217         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13218         (asm_argument): New grammar rules.
13219         (extdef_1): Use asmdef.
13220         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13221         (xexpr): Move up with other expression rules.
13222         (stmt): Use asm_stmt.
13223
13224         * c-typeck.c (build_asm_expr): New function - body mostly
13225         pulled from build_asm_stmt.
13226         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13227         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13228
13229 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13230
13231         PR bootstrap/13617
13232         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13233         (mips_declare_object): Make variadic.
13234         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13235         mips_output_aligned_decl_common.
13236         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13237         (mips_declare_object): Make variadic.
13238
13239 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13240
13241         * function.c (update_epilogue_consts): Teach about binary operations.
13242
13243         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13244         previous MEM_VOLATILE in REF.
13245         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13246         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13247
13248 2004-02-12  Gunther Nikl  <gni@gecko.de>
13249
13250         * config.gcc: Restore support for m68k-openbsd.
13251
13252 2004-02-12  Jan Hubicka  <jh@suse.cz>
13253
13254         * tree-optimize.c (tree_rest_of_compilation): Do not release
13255         DECL_ARGUMENTS.
13256
13257 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13258
13259         * doc/install.texi: Fix the spelling of "explicitly".
13260
13261 2004-02-11  Eric Christopher  <echristo@redhat.com>
13262
13263         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13264         duplicate argument structure of cpp_interpret_string.
13265         * cpphash.h: Move prototype...
13266         * cpplib.h: Here.
13267         * cpplib.c: Fix calls to match new function signature.
13268
13269 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13270
13271         PR c/456
13272         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13273         constant expressions at all outside C99 mode if pedantic.
13274
13275 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13276
13277         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13278         (log10_optab, log2_optab): Define corresponding macros.
13279         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13280         * genopinit.c (optabs): Implement log10_optab and log2_optab
13281         using log10?f2 and log2?f2 patterns.
13282         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13283         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13284         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13285         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13286
13287         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13288         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13289         log2, log2f and log2l built-ins as inline x87 intrinsics.
13290
13291 2004-02-11  Richard Henderson  <rth@redhat.com>
13292
13293         PR target/1532
13294         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13295         dead insn after reload.
13296
13297 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13298
13299         * tree.h (frame_base_decl): Add GTY marker.
13300         * var-tracking.c (frame_base_decl): Likewise.
13301
13302 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13303
13304         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13305         incorrect, hunk.
13306         (add_location_or_const_value_attribute): Use text_section_label,
13307         not TEXT_SECTION_NAME.
13308
13309 2004-02-11  Per Bothner  <per@bothner.com>
13310
13311         Represent column numbers using line-map's source_location.
13312         The "next available source_location" is now managed internally by
13313         line-maps.c rather than by clients.
13314         * line-map.h (struct line_map):  New field column_bits.
13315         <from_line>:  Rename field to start_location.
13316         (struct line_maps):  New fields highest_location and max_column_hint.
13317         (linemap_check_files_exited):  New declaration.
13318         (linemap_line_start):  New declaration.
13319         (linemap_add):  Remove from_line parameter; use highest_location field.
13320         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13321         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13322         (CURRENT_LINE_MAP):  Remove macro.
13323         (linemap_position_for_column):  New inline function.
13324         * line-map.c (linemap_init):  Clear new fields.
13325         (linemap_check_files_exited):  New function, extracted from ...
13326         (linemap_free):  Use linemap_check_files_exited.
13327         (linemap_add):  Remove from_line parameter.  Various updates.
13328         (linemap_line_start):  New function.
13329         (linemap_lookeup):  Update for new field names.
13330         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13331         linemap_position_for_column may unpredictably change the current map,
13332         it is cleaner and simpler for us to not cache it in cpp_reader.
13333         (struct cpp_buffer):  New sysp field.
13334         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13335         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13336         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13337         current map using linemap_lookup.
13338         (do_linemarker):  Also set buffer's sysp field.
13339         (destringize_and_run):  No longer need to decrement current line.
13340         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13341         (search_path_head, open_file_failed):  Use buffer's sysp.
13342         (cpp_make_system_header):  Get current map using linemap_lookup.
13343         Also set buffer's sysp flag.
13344         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13345         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13346         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13347         (struct cpp_reader):  ... and adding saved_line_base field.
13348         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13349         Update accordingly.  Don't adjust line.
13350         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13351         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13352         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13353         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13354         * cpplex.c (_cpp_lex_direct):  Likewise.
13355         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13356         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13357         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13358         Remove col field as it is now subsumed by src_loc.
13359         * cpperror.c:  Update various field, parameter, and macro names.
13360         (print_location):  If col==0, try SOURCE_COLUMN of line.
13361         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13362         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13363         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13364         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13365         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13366         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13367         (_cpp_lex_direct):  Use linemap_position_for_column.
13368         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13369         parameter.  Instead get it from the line_table global.  Adjust callers.
13370         (print):  Remove map field.  Replace line field to src_line.
13371         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13372         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13373         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13374         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13375         * cpptrad.c (copy_comment):  Rename variable.
13376         * c-lex.c (map):  Remove static variable, for same reason we removed
13377         cpp_reader's map field.
13378         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13379         to call linemap_lookup.
13380         (cb_line_change):  Token's line field replaced by src_loc.
13381         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13382         Don't save new_map.
13383
13384         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13385         source_location.
13386
13387 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13388
13389         * config/rs6000/altivec.md (*movv4si_internal): At least one
13390         operand must be register_operand.
13391         (*movv8hi_internal1): Likewise.
13392         (*movv16qi_internal1): Likewise.
13393         (*movv4sf_internal1): Likewise.
13394
13395 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13396
13397         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13398         operand.
13399         (movv4hi_internal): Same.
13400         (movv2sf_internal): Same.
13401         (movv1di_internal): Same.
13402
13403 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13404
13405         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13406         TARGET_OLDABI consistently.
13407         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13408         mips_va_arg,override_options,compute_frame_size,
13409         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13410         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13411         and TARGET_OLDABI consistently.
13412         * config/mips/mips.md (exception_receiver): Likewise.
13413         * config/mips/linux64.h: Likewise.
13414
13415 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13416
13417         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13418         Set AltiVec ABI and vrsave as default for ppc64 linux.
13419         (init_cumulative_args): Post error, if try to return
13420         value in AltiVec register without enable AltiVec.
13421         (function_arg_advance): Ditto for passing arguments.
13422
13423 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13424
13425         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13426         a label before updating its usage count.
13427
13428 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13429
13430         * doc/install.texi: Remove extra cd.
13431
13432 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13433
13434         * c-common.c (vector_size_helper): Remove; call
13435         reconstruct_complex_type() instead.
13436         * tree.c (reconstruct_complex_type): New function
13437         (formerly vector_size_helper() in c-common.c).
13438         (make_vector): Make externally visible.
13439         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13440
13441 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13442
13443         * config/h8300/h8300-protos.h: Add a prototype for
13444         h8300_regs_ok_for_stm.
13445         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13446         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13447         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13448         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13449         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13450         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13451         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13452         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13453         h8300_regs_ok_for_stm().
13454
13455 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13456
13457         PR c/14088
13458         * real.c (real_from_string): Look for 'X' as well as 'x' in
13459         hexfloat strings.
13460
13461 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13462
13463         * config/h8300/h8300.md: Remove an incorrect comment about
13464         peephole2.  Add comments.
13465
13466 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13467
13468         PR/14058
13469         * emit-rtl.c (set_decl_incoming_rtl): New.
13470         * tree.h (set_decl_incoming_rtl): New.
13471         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13472         DECL_INCOMING_RTL.
13473         * ada/misc.c (adjust_decl_rtl): Likewise.
13474
13475 2004-02-10  Per Bothner  <per@bothner.com>
13476
13477         * c-opts.c (c_common_post_options):   Don't emit working directory
13478         in cpp output if -P was specified.
13479
13480 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13481
13482         PR c/14092
13483         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13484         negate_expr back to the original type.
13485
13486 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13487
13488         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13489         bump retaddr here.
13490
13491 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13492
13493         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13494         gen_lowpart_SUBREG): Move under the file in which they
13495         are actually declared.
13496
13497 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13498
13499         * doc/sourcebuild.texi: Add libada documentation.
13500
13501         * doc/install.texi: Update documentation on Ada build, now
13502         that the GNAT lib and tools are built automatically.
13503
13504 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13505
13506         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13507         && TARGET_IRIX.
13508
13509 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13510
13511         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13512         boundaries outside build_component_ref() call (a macro in ObjC++).
13513
13514 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13515
13516         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13517         (init_cumulative_args): Likewise.
13518         (a7_overlap_mentioned_p): Delete prototype.
13519         * config/xtensa/xtensa.c (struct machine_function): Replace
13520         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13521         Add set_frame_ptr_insn field.
13522         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13523         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13524         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13525         at the function entry and replace the operand with the pseudo.
13526         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13527         argument and record this flag in CUMULATIVE_ARGS.
13528         (function_arg): Remove result_mode and special-case code to handle
13529         arguments in a7.  Instead, set need_a7_copy flag when there is an
13530         incoming argument in a7.
13531         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13532         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13533         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13534         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13535         special-case code.
13536         (a7_overlap_mentioned_p): Delete.
13537         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13538         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13539         arguments to init_cumulative_args and pass "incoming" flag instead.
13540         (BLOCK_REG_PADDING): Delete.
13541         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13542         checks for reload_in_progress and reload_completed.  Update calls to
13543         xtensa_copy_incoming_a7.
13544         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13545         to call xtensa_copy_incoming_a7.
13546
13547 2004-02-09  DJ Delorie  <dj@redhat.com>
13548
13549         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13550         longer modify standard_exec_prefix, standard_bindir_prefix, or
13551         standard_startfile_prefix.
13552
13553 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13554
13555         PR c++/11295
13556         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13557         to expand_expr_real call, and pass in alt_rtl as last argument.
13558
13559         PR libstdc++/5625
13560         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13561         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13562         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13563         * except.c (expand_builtin_extend_pointer): New.
13564         * except.h (expand_builtin_extend_pointer): Declare.
13565
13566 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13567
13568         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13569         unaligned loads and stores.
13570
13571 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13572
13573         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13574         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13575
13576         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13577         * config/mips/iris5.h: ... here.
13578         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13579
13580         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13581         * config/mips/iris5.h: ... here.
13582
13583 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13584
13585         * configure.ac: Remove default executable files before AC_PROG_CC.
13586         * configure: Regenerate.
13587
13588 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13589
13590         PR target/13721
13591         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13592         print a operand other than a register.
13593
13594 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13595
13596         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13597         tree code rather than call fold_convert, which doesn't specify a
13598         default floating point to integer conversion.
13599
13600 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13601
13602         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13603         code to support SGS assembler.  Reformat adjacent code where possible.
13604         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13605         definition.
13606         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13607         for '%#'.
13608         * config/m68k/linux.h, config/m68k/m68k.c,
13609         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13610         macros and asm_printf() format strings.
13611         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13612         * config/m68k/linux.h: Update copyright.
13613         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13614
13615 2004-02-08  Andreas Schwab  <schwab@suse.de>
13616             Bernardo Innocenti  <bernie@develer.com>
13617
13618         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13619         REGISTER_PREFIX.
13620         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13621         frame pointer register, overridable by OS targets.
13622         * (M68K_REGNAME): Macro to obtain register name for asm output,
13623         eventually replacing %a6 with M68K_FP_REG_NAME.
13624         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13625         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13626         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13627         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13628         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13629
13630 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13631
13632         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13633         hook_rtx_tree_int_null.
13634         * targhooks.c (default_struct_value_rtx): Remove.
13635         * targhooks.h: Remove the prototype for
13636         default_struct_value_rtx.
13637         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13638         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13639         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13640         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13641         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13642         config/rs6000/rs6000.c, config/s390/s390.c,
13643         config/stormy16/stormy16.c, config/v850/v850.c,
13644         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13645         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13646
13647 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13648
13649         * README.Portability: Change "ISO C89" to "ISO C90".
13650         * c-parse.in (primary, initelt): Likewise.
13651
13652 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13653
13654         * real.c (encode_ibm_extended): Normalize the input value before
13655         converting it to a double.  Handle the case where a normal value
13656         rounds to infinity.
13657
13658 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13659
13660         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13661         warning.
13662         * cse.c (preferrable): Change to preferable. Update all of its
13663         callers.
13664         * genautomata.c (ainsn): Change
13665         first_ainsn_with_given_equialence_num to
13666         first_ainsn_with_given_equivalence_num.  Update all of its
13667         references.
13668
13669 2004-02-08  Jan Hubicka  <jh@suse.cz>
13670
13671         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13672
13673 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13674
13675         * function.c (assign_parms): Fix formatting.
13676
13677 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13678
13679         * default.h (PROMOTE_PROTOTYPES): Remove.
13680         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13681         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13682         EXPAND_BUILTIN_SAVEREGS): Poison.
13683         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13684         hook_bool_tree_false.
13685         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13686         * target.h: Replace SETUP_INCOMING_VARARGS with
13687         targetm.calls.setup_incoming_varargs().
13688         * targhooks.c (default_promote_function_return): Remove.
13689         (default_promote_prototypes): Likewise.
13690         (default_struct_value_rtx): Always abort().
13691         (default_expand_builtin_saveregs): Always print an error
13692         message.
13693         (default_setup_incoming_varargs): Do nothing.
13694         (default_pretend_outgoing_varargs_named): Don't depend on
13695         SETUP_INCOMING_VARARGS.
13696         * targhooks.h: Remove the prototype for
13697         default_promote_function_return and
13698         default_promote_prototypes.
13699
13700 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13701
13702         * system.h (SHARED_SECTION_ASM_OP): Poison.
13703         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13704         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13705
13706 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13707
13708         Bug 13856
13709         * c-decl.c (diagnose_mismatched_decls): Only give special
13710         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13711         is also true.
13712         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13713         DECL_FUNCTION_CODE when defining a built-in function.
13714         Don't update DECL_ESTIMATED_INSNS.
13715         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13716         FUNCTION_DECLs.
13717         * tree.h: Delete DECL_ESTIMATED_INSNS.
13718         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13719         (expand_call_inline, optimize_inline_calls): Don't update
13720         DECL_ESTIMATED_INSNS nor inlined_insns.
13721         * cgraphunit.c (cgraph_analyze_function): Don't update
13722         DECL_ESTIMATED_INSNS.
13723
13724 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13725
13726         * c-common.c (shadow_warning): Delete.
13727         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13728         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13729         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13730         * c-parse.in (free_parser_stacks): Delete.
13731
13732 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13733
13734         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13735         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13736         Use the top level mkinstalldirs, not the one in the gcc subdir.
13737         * mkinstalldirs: Remove (from the gcc subdir).
13738
13739 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13740
13741         PR middle-end/13696
13742         * fold-const.c (fold_convert): New function to provide type
13743         conversion to the middle-end without using convert.
13744         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13745         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13746         invert_truthvalue, optimize_bit_field_compare, range_binop,
13747         decode_field_reference, make_range, build_range_check, unextend,
13748         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13749         fold_binary_op_with_conditional_arg, fold_inf_compare,
13750         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13751         convert with calls to fold_convert.
13752
13753 2004-02-07  Jan Hubicka  <jh@suse.cz>
13754
13755         * genrecog.c (find_operand): add extra argument stop.
13756         (validate_pattern): Verify that mach_dup is duplicating operand
13757         defined lexically earlier.
13758
13759 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13760
13761         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13762         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13763         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13764         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13765         config/ia64/ia64.h, config/ip2k/ip2k.h,
13766         config/iq2000/iq2000.h, config/mips/iris5.h,
13767         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13768         config/rs6000/aix51.h, config/rs6000/aix52.h,
13769         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13770         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13771         config/sparc/linux.h, config/sparc/linux64.h,
13772         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13773         config/xtensa/xtensa.h: Remove the definitions of
13774         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13775         MAX_WCHAR_TYPE_SIZE.
13776         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13777         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13778
13779 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13780
13781         PR bootstrap/13990
13782         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13783         gen_rtx_NE.
13784
13785 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13786
13787         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13788         #ifdef ENABLE_CHECKING and #endif.
13789
13790 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13791
13792         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13793         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13794         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13795         integer types and floating point with unsafe_math_optimizations.
13796         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13797         Optimize A - B as A + (-B), if B is easily negated.
13798
13799 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13800
13801         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13802         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13803         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13804         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13805         Update copyright.
13806
13807 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13808
13809         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13810
13811 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13812
13813         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13814         glibc 2.3 or better.
13815
13816 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13817
13818         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13819         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13820
13821 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13822
13823         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13824         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13825         (SHLIB_MKMAP_OPTS): Delete.
13826         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13827         (bispecs): Add rule.
13828         * config/rs6000/libgcc-ppc64.ver: New file.
13829         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13830         (__floatdidf, __floatdisf): Optimize multiply.
13831         (__fixunstfdi): New function.
13832         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13833         real and imag parts larger than one register.
13834         (function_arg): Correct type of reg used when fp arg split partially
13835         to stack.
13836         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13837         and __MACH__ or __powerpc64__.
13838
13839 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13840             Ulrich Weigand  <uweigand@de.ibm.com>
13841
13842         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13843         of gen_highpart or gen_lowpart when the floating point format is
13844         wider than the result mode.
13845
13846 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13847
13848         * dwarf2out.c (loclabel_num): Move into #ifdef
13849         DWARF2_DEBUGGING_INFO.
13850
13851 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13852
13853         * objc/objc-act.c (build_super_template) the 'class' field of
13854         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13855         (get_super_receiver): Likewise.
13856
13857 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13858
13859         * reload1.c (check_eliminable_occurrences): Optimize the reset
13860         of can_eliminate.
13861         (eliminate_regs_in_insn): Likewise.
13862
13863 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13864             Josef Zlomek  <zlomekj@suse.cz>
13865
13866         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13867         at the beginning of function, call dwarf2out_var_location for
13868         NOTE_INSN_VAR_LOCATION note.
13869         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13870         decl_loc_table): New.
13871         (lookup_decl_loc): New function.
13872         (add_var_loc_to_decl): New function.
13873         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13874         only if can_use_fbreg.
13875         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13876         functions.
13877         (loc_descriptor): Likewise. Process VAR_LOCATION.
13878         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13879         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13880         can_use_fbreg == true.
13881         (add_location_or_const_value_attribute): Added parameter enum
13882         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13883         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13884         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13885         with attr == DW_AT_location.
13886         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13887         if frame_base_decl is defined and has a location list.
13888         (gen_variable_die): Call add_location_or_const_value_attribute with
13889         attr == DW_AT_location.
13890         (dwarf2out_var_location): New function.
13891         (dwarf2out_begin_function): New function.
13892         (dwarf2out_init): Create decl_loc_table.
13893
13894 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13895
13896         * loop.c (force_movables): Transitively increase the priorities of
13897         all insns forces by an insn, not just the first one.
13898
13899 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13900             Daniel Berlin <dberlin@dberlin.org>
13901
13902         Josef Zlomek  <zlomekj@suse.cz>
13903         * Makefile.in (var-tracking.o): New.
13904         * common.opt (fvar-tracking): New.
13905         * flags.h (flag_var_tracking): New.
13906         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13907         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13908         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13909         * rtl.c (note_insn_name): Likewise.
13910         * rtl.def (VAR_LOCATION): New.
13911         * rtl.h (NOTE_VAR_LOCATION): New.
13912         (NOTE_VAR_LOCATION_DECL): New.
13913         (NOTE_VAR_LOCATION_LOC): New.
13914         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13915         (variable_tracking_main): New exported function.
13916         * timevar.def (TV_VAR_TRACKING): New.
13917         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13918         (dump_file): "vartrack" was added (-dV).
13919         (flag_var_tracking): New.
13920         (f_options): "var-tracking" was added.
13921         (rest_of_handle_variable_tracking): New function.
13922         (rest_of_compilation): Run variable tracking.
13923         (process_options): If user has not specified flag_var_tracking set it
13924         according to optimize, debug_info_level and debug_hooks.
13925         * tree.h (frame_base_decl): New.
13926         * var-tracking.c: New file.
13927         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13928         (ia64_override_options): Set flags to run variable tracking in machine
13929         dependent reorg instead of toplev.c.
13930         (ia64_reorg): Run variable tracking if wanted.
13931         * doc/invoke.texi: Mention variable tracking in -dV,
13932         add and -fvar-tracking.
13933         * doc/passes.texi: Added variable tracking pass.
13934
13935         Daniel Berlin <dberlin@dberlin.org>
13936         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13937         * dbxout.c (dbx_debug_hooks): Likewise.
13938         (xcoff_debug): Likewise.
13939         * debug.c (do_nothing_debug_hooks): Likewise.
13940         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13941         * dwarfout.c (dwarf_debug_hooks): Likewise.
13942         * sdbout.c (sdb_debug_hooks): Likewise.
13943         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13944         * final.c (final_scan_insn): Call var_location debug hook for each
13945         NOTE_INSN_VAR_LOCATION.
13946
13947 2004-02-06  Jan Hubicka  <jh@suse.cz>
13948
13949         * flow.c (update_life_info): Allocate reg_deaths when called from
13950         scheudler.
13951         (attempt_auto_inc):  Update life ranges accordingly.
13952
13953 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13954
13955         PR debug/11816
13956         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13957
13958 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13959
13960         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13961
13962 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13963
13964         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13965         a separate line info table in use.
13966         Use the correct size for terminators.
13967         (output_die): Use offset, not delta.
13968
13969 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13970
13971         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13972
13973 2004-02-06  Jan Hubicka  <jh@suse.cz>
13974
13975         * recog.c (split_all_insns): Do not update reg info.
13976         * regrename.c (regrename_optimize): Likewise.
13977         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13978         * flow.c (struct propagate_block_info): Add insn_num field.
13979         (reg_deaths): New array.
13980         (life_analysis): Free reg_deaths info.
13981         (allocate_reg_life_data): Allocate reg_deaths array.
13982         (propagate_one_insn): Use new array.
13983         (init_propagate_block): Initialize it.
13984         (free_propagate_block_info): Finish compuation of
13985         REG_LIVE_LENGTH
13986         (attempt_auto_inc): Sanity check that REG_INFO is not
13987         computed at same time.
13988         (mark_used_regs): Update new array.
13989
13990         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13991         substitution.
13992
13993 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13994
13995         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13996         *extendqisi2_short_displ.
13997
13998 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13999
14000         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
14001         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
14002         (emit_library_call_value_1): Likewise pass nargs.
14003         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
14004         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
14005         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
14006         parameter instead of scanning TYPE_ARGS_TYPES to count args.
14007         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
14008         prototype.
14009         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
14010         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
14011         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
14012         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
14013         INIT_CUMULATIVE_ARGS.
14014         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
14015         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
14016         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
14017         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
14018         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14019         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
14020         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14021         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
14022         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
14023         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
14024         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
14025         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
14026
14027 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14028
14029         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
14030         possible.
14031
14032 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14033
14034         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
14035         note containing (plus (reg) (const_int)), where reg is an
14036         eliminable reg, then perform the register elimination without
14037         depending on eliminate_regs().
14038
14039 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14040
14041         * config/arc/arc.c (arc_return_in_memory): Check the return
14042         value of int_size_in_bytes against -1.  Don't check
14043         TREE_ADDRESSABLE.
14044         * config/avr/avr.c (avr_return_in_memory): Check the return
14045         value of int_size_in_bytes against -1.
14046         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
14047         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
14048         Likewise.
14049         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
14050         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
14051         Likewise.
14052
14053 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14054
14055         * config/frv/frv-protos.h: Remove the prototype for
14056         frv_setup_incoming_varargs.
14057         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
14058         (frv_setup_incoming_varargs): Make it static.
14059         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
14060
14061 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14062
14063         * config/fr30/fr30-protos.h: Remove the prototype for
14064         fr30_setup_incoming_varargs.
14065         Update the prototypes for fr30_num_arg_regs and
14066         fr30_function_arg_partial_nregs.
14067         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
14068         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14069         (fr30_setup_incoming_varargs): Make it static.
14070         Add argument second_time.  Don't do anything when second_time
14071         is nonzero.
14072         (fr30_num_arg_regs): Change the type of the first argument to
14073         enum machine_mode.
14074         (fr30_function_arg_partial_nregs): Change the type of the
14075         second argument to enum machine_mode.
14076         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
14077         (SETUP_INCOMING_VARARGS): Remove.
14078
14079 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14080
14081         * config/arc/arc-protos.h: Remove the prototype for
14082         arc_setup_incoming_varargs.
14083         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14084         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14085         (arc_setup_incoming_varargs): Make it static.
14086         (arc_external_libcall): Likewise.
14087         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
14088         Remove the commented-out definition of
14089         ASM_OUTPUT_EXTERNAL_LIBCALL.
14090
14091 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
14092
14093         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
14094         to $$(slibdir) in the installation commands.
14095
14096 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14097
14098         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14099         with inner_regno, not regno.
14100         * rtlanal.c (refers_to_regno_p): Same.
14101
14102 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14103
14104         * config.gcc: Remove i370 support.
14105
14106 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14107
14108         * doc/install.texi:  Update automake and autoconf version
14109         requirements.  Note where to find gcj automake version.
14110
14111 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14112
14113         * Makefile.in (generate-manpages): Move dependencies to ...
14114         (man): here.
14115         * doc/makefile.texi: Document new targets.
14116         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14117
14118 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14119
14120         PR/13485
14121         Makefile.in (srcextra):  Add a level of indirection to ...
14122         (gcc.srcextra): ... here.
14123         (po-generated): Delete.
14124         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
14125         options.c.
14126         (start.encap): Remove superfluous lang.srcextra dependency.
14127         objc/Make-lang.in (po-generated):  Delete.
14128
14129 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14130
14131         * config/ia64/ia64.c (REG_GP): Remove.
14132
14133 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14134
14135         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14136
14137 2004-02-05  Devang Patel  <dpatel@apple.com>
14138
14139         * dwarf2out.c (force_type_die): Look up input type itself
14140         instead of root_type() of type.
14141
14142 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
14143
14144         * config/s390/s390.md ("*tmqidi_ext"): New insn.
14145         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14146         pre-reload splitters are transformed to post-reload
14147         define_insn_and_split patterns.
14148         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14149
14150 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14151
14152         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14153         TARGET_PROMOTE_PROTOTYPES.
14154
14155 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14156
14157         PR middle-end/13750
14158         Revert:
14159         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14160         PR pch/13361
14161         * c-typeck.c (constructor_asmspec): Delete.
14162         (struct initializer_stack): Delete field 'asmspec'.
14163         (start_init): Delete saving of asmspec.
14164         (finish_init): Don't update constructor_asmspec.
14165         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14166         * stmt.c (expand_asm): Duplicate strings from tree.
14167         (expand_asm_operands): Likewise.
14168         * tree.c (tree_size): Update computation of size of STRING_CST.
14169         (make_node): Don't make STRING_CST nodes.
14170         (build_string): Allocate string with tree node.
14171         * tree.def (STRING_CST): Update comment.
14172         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14173         (tree_string): Place contents of string in tree node.
14174         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14175         from tree.
14176
14177 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14178
14179         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14180         msgid.
14181
14182 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
14183
14184         * config/rs6000/altivec.md (*movv4si_internal): At least one
14185         operand must be altivec_register_operand.
14186         (*movv8hi_internal1): Likewise.
14187         (*movv16qi_internal1): Likewise.
14188         (*movv4sf_internal1): Likewise.
14189
14190 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14191
14192         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14193         * configure: Regenerate.
14194
14195 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
14196
14197         * doc/install.texi: Update description of --gxx-include-dir to
14198         give correct default value.
14199
14200 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14201
14202         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14203         8 with MAC_REG.
14204
14205 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14206
14207         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14208         gen_rtx_PARALLEL.
14209
14210 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14211
14212         * emit-rtl.c: Update the comment about the file.
14213
14214 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14215
14216         * sourcebuild.texi (Test Idioms): Update testcase naming
14217         conventions.
14218
14219 2004-02-04  Per Bothner  <per@bothner.com>
14220
14221         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14222         * c-ppoutput.c (pp_dir_change):  New function.
14223         * c-common.h (pp_dir_change):  New declaration.
14224         * cpplib.h (struct cpp_options):  Remove working_directory field.
14225         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14226         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14227         Don't handle -fworking_directory here, but in c_common_post_options.
14228         (read_original_directory): Don't back up when done.
14229         Don't clear no-longer used working_directory flag.
14230         * cpplib.h:  Update declarations to match.
14231         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14232         (init_c_lex):  Don't set dir_change callback here, since we want
14233         to set it even if flag_preprocess_only.
14234         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14235         (c_common_post_options):  Set dir_change callback.
14236         Call pp_dir_change if approporiate.
14237         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14238         unneeded parameter and result. Do LC_RENAME for <built-in>.
14239         (c_common_post_options):  Call cpp_read_main_file here instead.
14240         (c_common_init):  Update accordingly.
14241         (push_command_line_include):  Don't cpp_push_main_file.
14242         Do LC_RENAME rather than LC_LEASE to get back to main file.
14243         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14244         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14245         files, but call finish_options for all files.
14246         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14247         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14248         cpp_find_main_file + cpp_push_main_file.
14249         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14250         * opts.c (handle_options):  Only set main_input_filename first time.
14251
14252 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14253
14254         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14255
14256 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14257
14258         * reload.c (find_equiv_reg): When checking for register overlap,
14259         don't index hard_regno_nregs with a pseudo-reg.
14260
14261 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14262
14263         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14264
14265 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14266
14267         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14268         against FIRST_PSEUDO_REGISTER.
14269
14270 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14271
14272         * Makefile.in: Move target, host overrides after per-language
14273         fragments.
14274
14275         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14276         (GNATLIBCFLAGS): Remove -g.
14277
14278 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14279
14280         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14281         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14282         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14283         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14284         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14285         config/sparc/sparc.c, config/vax/vax.c: Revert the
14286         replacements of "FALLTHRU" with "Fall through" done in the
14287         previous patch.
14288
14289 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14290
14291         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14292         config/arm/arm.c, config/arm/arm.md,
14293         config/cris/cris-protos.h, config/fr30/fr30.c,
14294         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14295         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14296         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14297         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14298         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14299         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14300         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14301         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14302         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14303         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14304         config/s390/s390.md, config/sparc/netbsd-elf.h,
14305         config/sparc/openbsd.h, config/sparc/sparc.c,
14306         config/xtensa/lib2funcs.S: Fix comment formatting.
14307
14308 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14309
14310         * config/alpha/alpha.c, config/arc/arc.c,
14311         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14312         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14313         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14314         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14315         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14316         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14317         config/iq2000/iq2000.c, config/m32r/m32r.c,
14318         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14319         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14320         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14321         config/rs6000/rs6000.h, config/sparc/sparc.c,
14322         config/vax/vax.c: Fix comment typos.  Follow spelling
14323         conventions.
14324
14325 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14326
14327         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14328         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14329         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14330         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14331         config/arm/fpa.md, config/arm/iwmmxt.md,
14332         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14333         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14334         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14335         config/sparc/netbsd-elf.h: Update copyright.
14336
14337 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14338
14339         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14340         for all modes whose size is greater than 8 bytes if ARCH32.
14341         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14342         by reference if ARCH32.
14343
14344 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14345
14346         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14347
14348 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14349
14350         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14351         to before adddi3 insn patterns.
14352         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14353         "reload_insi"): Move to before addsi3 insn patterns.
14354
14355 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14356
14357         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14358         parameter.  Use it instead of current_function_is_thunk.
14359         * function.h (struct function): Update documentation for is_thunk.
14360         * tree.h (CALL_FROM_THUNK_P): New macro.
14361         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14362         no_new_pseudos when testing current_function_is_thunk.
14363         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14364
14365 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14366
14367         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14368         TARGET_SETUP_INCOMING_VARARGS.
14369
14370 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14371
14372         * emit-rtl.c (gen_rtx): Remove.
14373         * genattrtab.c: Don't mention gen_rtx in a comment.
14374         * rtl.h: Remove the prototype for gen_rtx.
14375         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14376
14377 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14378
14379         * config/arc/arc.h, config/fr30/fr30.h
14380         (SETUP_INCOMING_VARARGS): Remove the target-independent
14381         comments.
14382         * doc/tm.texi: Don't mention deprecated target macros.
14383
14384 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14385
14386         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14387         target-independent comment.
14388
14389 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14390
14391         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14392         mention deprecated target macros.
14393
14394 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14395
14396         * config.gcc: Remove obsolete ports and configurations.
14397         * config/linux-aout.h, config/netware.h,
14398         config/t-linux-gnulibc1, config/d30v/abi,
14399         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14400         config/d30v/d30v.h, config/d30v/d30v.md,
14401         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14402         config/dsp16xx/dsp16xx-modes.def,
14403         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14404         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14405         config/i370/README, config/i370/i370-c.c,
14406         config/i370/i370-protos.h, config/i370/i370.c,
14407         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14408         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14409         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14410         config/i386/moss.h, config/i386/netware.h,
14411         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14412         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14413         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14414         config/i960/i960-c.c, config/i960/i960-coff.h,
14415         config/i960/i960-modes.def, config/i960/i960-protos.h,
14416         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14417         config/i960/rtems.h, config/i960/t-960bare,
14418         config/m68k/hp310.h, config/m68k/hp320.h,
14419         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14420         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14421         Remove.
14422         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14423         doc/md.texi: Remove mentions of obsolete ports.
14424
14425 2004-02-04  Jan Hubicka  <jh@suse.cz>
14426
14427         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14428         pointer when all VALUE's locations has been invalidated.
14429         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14430
14431 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14432
14433         * doc/invoke.texi (x86 options): Fix spelling/wording.
14434
14435 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14436
14437         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14438         put the original string in a comment.
14439         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14440         * config/mips/mips.c (mips_output_ascii): Likewise.
14441         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14442
14443 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14444
14445         * system.h (GIV_SORT_CRITERION): Poison.
14446         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14447         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14448
14449 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14450
14451         PR target/9348
14452         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14453         multiplies with a multiplication of the wrong signedness, its the
14454         signedness of the multiplication that we've performed that needs to
14455         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14456         if expand_mult_highpart_adjust places the result in target.
14457
14458 2004-02-03  Richard Henderson  <rth@redhat.com>
14459
14460         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14461
14462 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14463
14464         * config.gcc (sh[234]l): Use little endian fragments.
14465
14466 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14467
14468         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14469         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14470         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14471         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14472         floating point format.
14473         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14474         the above functions.
14475         (output_move_quad): Output float values in correct target format.
14476         (legitimate_const_double_p): New function.
14477         * config/pdp11/pdp11.h: Fix typos.
14478         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14479         (TARGET_FLOAT_FORMAT): Ditto.
14480         (pdp11_f_format, pdp11_d_format): Add external declarations.
14481         (MAX_REGS_PER_ADDRESS): Corrected.
14482         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14483         (PRINT_OPERAND): Output float literals in target format.
14484
14485 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14486
14487         PR c++/13975
14488         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14489         TI_PRIVATE.
14490         (access_public_node): Redefine.
14491         (access_protected_node): Likewise.
14492         (access_private_node): Likewise.
14493         * tree.c (build_common_tree_nodes): Create access_public_node,
14494         access_protected_node, and access_private_node.
14495
14496 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14497
14498         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14499         (MASK_INLINE_INT_DIV_THR): Ditto.
14500         (MASK_INLINE_SQRT_LAT): Ditto.
14501         (MASK_INLINE_SQRT_THR): Ditto.
14502         (MASK_DWARF2_ASM): Ditto.
14503         (MASK_EARLY_STOP_BITS): Ditto.
14504
14505 2004-02-02  Paul Brook  <paul@codesourcery.com>
14506
14507         Merge from csl-arm-branch.
14508
14509         2004-01-30  Paul Brook  <paul@codesourcery.com>
14510
14511         * aof.h (REGISTER_NAMES): Add vfp reg names
14512         (ADDITIONAL_REGISTER_NAMES): Ditto.
14513         * aout.h (REGISTER_NAMES): Ditto.
14514         (ADDITIONAL_REGISTER_NAMES): Ditto.
14515         * arm-protos.h: Update/Add Prototypes.
14516         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14517         Only allow 0.0 for VFP.
14518         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14519         (values_fp): Rename from values_fpa.  Update Users.
14520         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14521         Update users.  Only check valid constants for this hardware.
14522         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14523         Only allow consts for FPA.
14524         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14525         Only allow consts for FPA.
14526         (use_return_insn): Check for saved VFP regs.
14527         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14528         (arm_legitimize_address): Ditto.
14529         (arm_general_register_operand): New function.
14530         (vfp_mem_operand): New function.
14531         (vfp_compare_operand): New function.
14532         (vfp_secondary_reload_class): New function.
14533         (arm_float_compare_operand): New function.
14534         (vfp_print_multi): New function.
14535         (vfp_output_fstmx): New function.
14536         (vfp_emit_fstm): New function.
14537         (arm_output_epilogue): Output VPF reg restore code.
14538         (arm_expand_prologue): Output VFP reg save code.
14539         (arm_print_operand): Add 'P'.
14540         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14541         (arm_regno_class): Return classes for VFP regs.
14542         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14543         (arm_get_frame_size): Ditto.
14544         * arm.h (FIXED_REGISTERS): Add VFP regs.
14545         (CALL_USED_REGISTERS): Ditto.
14546         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14547         (FIRST_VFP_REGNUM): Define.
14548         (LAST_VFP_REGNUM): Define.
14549         (IS_VFP_REGNUM): Define.
14550         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14551         (HARD_REGNO_NREGS): Handle VFP regs.
14552         (REG_ALLOC_ORDER): Add VFP regs.
14553         (enum reg_class): Add VFP_REGS.
14554         (REG_CLASS_NAMES): Ditto.
14555         (REG_CLASS_CONTENTS): Ditto.
14556         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14557         (REG_CLASS_FROM_LETTER): Add 'w'.
14558         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14559         (EXTRA_MEMORY_CONSTRAINT): Define.
14560         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14561         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14562         (REGISTER_MOVE_COST): Ditto.
14563         (PREDICATE_CODES): Add arm_general_register_operand,
14564         arm_float_compare_operand and vfp_compare_operand.
14565         * arm.md (various): Rename as above.
14566         (divsf3): Enable when TARGET_VFP.
14567         (divdf3): Ditto.
14568         (movdfcc): Ditto.
14569         (sqrtsf2): Ditto.
14570         (sqrtdf2): Ditto.
14571         (arm_movdi): Disable when TARGET_VFP.
14572         (arm_movsi_insn): Ditto.
14573         (movsi): Only split with general regs.
14574         (cmpsf): Use arm_float_compare_operand.
14575         (push_fp_multi): Restrict to TARGET_FPA.
14576         (vfp.md): Include.
14577         * vfp.md: New file.
14578         * fpa.md (various): Rename as above.
14579         * doc/md.texi: Document ARM w and U constraints.
14580
14581         2004-01-15  Paul Brook  <paul@codesourcery.com>
14582
14583         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14584         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14585         Break out of loop when we find a float-abi.  Fix typo.
14586         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14587         Set -mfloat-abi=.
14588         * doc/install.texi: Document --with-fpu.
14589
14590         2003-01-14  Paul Brook  <paul@codesourcery.com>
14591
14592         * config.gcc (with_arch): Add armv6.
14593         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14594         * config/arm/arm.c (arm_overrride_options): Ditto.
14595
14596         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14597
14598         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14599         (FL_ARCH6): Renamed from FL_ARCH6J.
14600         (arm_arch3m): Renamed from arm_fast_multiply.
14601         (arm_arch6): Renamed from arm_arch6j.
14602         * arm.h: Update all uses of above.
14603         * arm-cores.def: Likewise.
14604         * arm.md: Likewise.
14605
14606         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14607         not arm6j.  Add entry for arch armv6.
14608
14609         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14610
14611         * arm.c (arm_emit_extendsi): Delete.
14612         * arm-protos.h (arm_emit_extendsi): Delete.
14613         * arm.md (zero_extendhisi2): Also handle zero-extension of
14614         non-subregs.
14615         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14616         (thumb_zero_extendhisi2): Only match if not v6.
14617         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14618         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14619         (thumb_extendqisi2): Likewise.
14620         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14621         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14622         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14623         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14624         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14625         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14626         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14627         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14628         (arm_extendqisi2addsi): Likewise.
14629
14630         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14631
14632         Revert this change:
14633         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14634         + REG addressing modes.
14635
14636         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14637         + REG addressing modes.
14638
14639         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14640
14641         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14642         CONSTANT_P_RTX.
14643
14644         2003-30-12  Paul Brook  <paul@codesourcery.com>
14645
14646         * longlong.h: protect arm inlines with !defined (__thumb__)
14647
14648         2003-30-12  Paul Brook  <paul@codesourcery.com>
14649
14650         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14651
14652         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14653
14654         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14655         change.
14656
14657         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14658
14659         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14660         to the virtual incoming args pointer for downward stacks.
14661
14662         2003-12-29  Paul Brook  <paul@codesourcery.com>
14663
14664         * config/arm/arm-cores.def: Add cost function.
14665         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14666         (arm_rtx_costs): Remove
14667         (struct processors): Add rtx_costs field.
14668         (all_cores, all_architectures): Ditto.
14669         (arm_override_options): Set targetm.rtx_costs.
14670         (thumb_rtx_costs): New function.
14671         (arm_rtx_costs_1): Remove cases handled elsewhere.
14672         * config/arm/arm.h (processor_type): Add COSTS parameter.
14673
14674         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14675
14676         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14677         (arm926ejs.md): Include it.
14678         * config/arm/arm926ejs.md: New pipeline description.
14679
14680         2003-12-24  Paul Brook  <paul@codesourcery.com>
14681
14682         * config/arm/arm.c (arm_arch6j): New variable.
14683         (arm_override_options): Set it.
14684         (arm_emit_extendsi): New function.
14685         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14686         * config/arm/arm.h (arm_arch6j): Declare.
14687         * config/arm/arm.md: Add sign/zero extend insns.
14688
14689         2003-12-23  Paul Brook  <paul@codesourcery.com>
14690
14691         * config/arm/arm.c (all_architectures): Add armv6.
14692         * doc/invoke.texi: Document it.
14693
14694         2003-12-19  Paul Brook  <paul@codesourcery.com>
14695
14696         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14697         insn patterns to match.
14698         * config/arm/arm-generic.md: Ditto.
14699         * config/arm/cirrus.md: Ditto.
14700         * config/arm/fpa.md: Ditto.
14701         * config/amm/iwmmxt.md: Ditto.
14702         * config/arm/arm1026ejs.md: Ditto.
14703         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14704         for 11_loadb.
14705
14706         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14707
14708         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14709         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14710         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14711         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14712         arm_no_early_mul_dep): Correctly deal with conditional execution,
14713         parallels and single shift operations.
14714         (arm_no_early_alu_shift_value_dep): Define.
14715         * arm.md (attr type): Replace 'normal' with 'alu',
14716         'alu_shift' and 'alu_shift_reg'.
14717         (attr core_cycles): Adjust.
14718         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14719         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14720         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14721         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14722         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14723         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14724         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14725         attribute appropriately.
14726         * config/arm/arm1026ejs.md (alu_op): Adjust.
14727         (alu_shift_op, alu_shift_reg_op): New.
14728         * config/arm/arm1136.md: Add better bypasses for early
14729         registers. Remove load[234] and store[234] bypasses.
14730         (11_alu_op): Adjust.
14731         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14732
14733         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14734
14735         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14736         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14737         * config/arm/arm.c (arm_no_early_store_addr_dep,
14738         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14739         * config/arm/arm1026ejs.md: Add load-store bypass.
14740         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14741         Add bypasses between instructions.
14742
14743         2003-12-10  Paul Brook  <paul@codesourcery.com>
14744
14745         * config/arm/arm.c (arm_fpu_model): New variable.
14746         (arm_fload_abi): New variable.
14747         (target_fpe_name): Rename from target_fp_name.
14748         (target_fpu_name): New variable.
14749         (arm_is_cirrus): Remove.
14750         (fpu_desc): New struct.
14751         (all_fpus): Define.
14752         (pf_model_for_fpu): Define.
14753         (all_loat_abis): Define.
14754         (arm_override_options): Set fp arch flags based on -mfpu=
14755         and -float-abi=.
14756         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14757         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14758         (*): Use new TARGET_* flags.
14759         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14760         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14761         (TARGET_SOFT_FLOAT): Ditto.
14762         (TARGET_SOFT_FLOAT_ABI): New.
14763         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14764         TARGET_HARD_FLOAT.
14765         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14766         (TARGET_OPTIONS): Add -mfpu=.
14767         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14768         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14769         (arm_pf_model): Define.
14770         (arm_float_abi_type): Define.
14771         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14772         * config/arm/arm.md: Use new TARGET_* flags.
14773         * config/arm/cirrus.md: Ditto.
14774         * config/arm/fpa.md: Ditto.
14775         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14776         * config/arm/semi.h (ASM_SPEC): Ditto.
14777         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14778         (FPUTYPE_DEFAULT): Set to VFP.
14779         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14780
14781         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14782
14783         PR target/12476
14784         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14785         'bx' instead of 'b' to avoid branch range restrictions.  Output
14786         the thunk immediately before the thunked-to function.
14787         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14788         .thumb_func if a thunk is being generated.  Emit .code 16 along
14789         with .thumb_func if a thunk is not being generated.
14790
14791         2003-11-15  Nicolas Pitre <nico@cam.org>
14792
14793         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14794         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14795         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14796         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14797         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14798
14799         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14800             Ian Lance Taylor  <ian@wasabisystems.com>
14801
14802         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14803         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14804
14805         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14806
14807         * config/arm/arm.md (insn):  Add new V6 instruction names.
14808         (generic_sched):  New attr.
14809         * config/arm/arm-generic.md:  Use generic_sched here.
14810         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14811         stages of pipeline.  Adjust latency counts accordingly.
14812         * config/arm/arm1136jfs.md:  New file.
14813
14814         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14815
14816         * config/arm/arm.h (processor_type): New enumeration type.
14817         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14818         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14819         (CPP_CPU_ARCH_SPEC): Likewise.
14820         * config/arm/arm.c (arm_tune): New variable.
14821         (all_cores): Use cores.def.
14822         (all_architectures): Add representative processor.
14823         (arm_override_options): Restructure way in which tuning
14824         information is deduced.
14825         * arm.md: Update "insn" and "type" attributes throughout.
14826         (insn): New attribute.
14827         (type): Compute "mult" from "insn" attribute.  Add load2,
14828         load3, load4 alternatives.
14829         (arm automaton): Move to arm-generic.md.
14830         * config/arm/arm-cores.def: New file.
14831         * config/arm/arm-generic.md: Likewise.
14832         * config/arm/arm1026ejs.md: Likewise.
14833
14834 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14835
14836         * doc/invoke.texi (SPARC options): Remove -mflat and
14837         all -mxxx (xxx:chip) options.
14838         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14839         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14840         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14841         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14842         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14843         * config/sparc/sparc.c: Likewise.
14844         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14845         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14846         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14847         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14848         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14849         (sparc_flat_must_save_register_p): Likewise.
14850         (sparc_flat_compute_frame_size): Likewise.
14851         (sparc_flat_save_restore): Likewise.
14852         (sparc_flat_function_prologue): Likewise.
14853         (sparc_flat_function_epilogue): Likewise.
14854         (sparc_flat_epilogue_delay_slots): Likewise.
14855         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14856         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14857         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14858         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14859         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14860         (CONDITIONAL_REGISTER_USAGE): Likewise.
14861         (FRAME_POINTER_REQUIRED): Likewise.
14862         (INITIAL_ELIMINATION_OFFSET): Likewise.
14863         (BASE_RETURN_VALUE_REG): Likewise.
14864         (BASE_OUTGOING_VALUE_REG): Likewise.
14865         (BASE_PASSING_ARG_REG): Likewise.
14866         (BASE_INCOMING_ARG_REG): Likewise.
14867         (INCOMING_REGNO): Likewise.
14868         (OUTGOING_REGNO): Likewise.
14869         (LOCAL_REGNO): Likewise.
14870         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14871         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14872         (EPILOGUE_USES): Likewise.
14873         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14874         ("flat" attribute): Delete.
14875         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14876         handling.
14877         (call followed by jump define_peephole's): Delete.
14878         (exception_receiver): Likewise.
14879         (builtin_setjmp_receiver): Likewise.
14880         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14881
14882 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14883
14884         PR c/11658
14885         PR c/13994
14886         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14887         on langhooks.h.
14888         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14889         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14890         Include langhooks.h.  Replace c_common_truthvalue_conversion
14891         with the truthvalue_conversion language hook throughout.
14892         (expr_no_commas): Call default_conversion before save_expr
14893         for the first term of the production 'x ? : y'.
14894         * c-common.c (c_common_truthvalue_conversion): Remove
14895         obsolete block.  Invoke recursively the hook instead
14896         of this function.
14897         * c-convert.c (convert): handle ERROR_MARK_NODE.
14898         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14899         returned by the truthvalue_conversion language hook.
14900         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14901         c_objc_common_truthvalue_conversion.
14902         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14903         New function.
14904         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14905         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14906         c_objc_common_truthvalue_conversion.
14907
14908 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14909
14910         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14911         of gen_rtx.
14912         (LIBCALL_VALUE): Likewise.
14913         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14914         gen_rtx_CC0 instead of gen_rtx.
14915         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14916         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14917         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14918         gen_rtx.
14919         (m68hc11_emit_logical): Likewise.
14920
14921 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14922
14923         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14924         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14925         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14926         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14927         config/mips/mips.md, config/mmix/mmix.c,
14928         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14929         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14930         config/rs6000/altivec.md, config/s390/s390.c,
14931         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14932         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14933         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14934         constants that are readily available.
14935
14936 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14937
14938         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14939         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14940         instead of GEN_INT (0).  Do the same for other constants that
14941         are readily available.
14942
14943 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14944
14945         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14946         gen_rtx.
14947         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14948         instead of gen_rtx.
14949         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14950         gen_rtx.
14951         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14952         gen_rtx_ASHIFT instead of gen_rtx.
14953         (udivmodqi4): Likewise.
14954
14955 2004-02-02  Richard Henderson  <rth@redhat.com>
14956
14957         PR target/13789
14958         * expr.c (store_expr): Use force_operand before emit_move_insn.
14959
14960 2004-02-02  Jeff Law  <law@redhat.com>
14961             Roger Sayle  <roger@eyesopen.com>
14962
14963         * tree.c (commutative_tree_code, associative_tree_code): New
14964         functions.
14965         (iterative_hash_expr): Use commutative_tree_code.
14966         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14967         * fold-const.c (operand_equal_p): Use commutative_tree_code
14968         rather than inlining the commutativity check.
14969         (fold): Likewise.
14970
14971 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14972
14973         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14974         * config/frv/frv-protos.h: Remove the prototype for
14975         frv_function_arg_keep_as_reference.
14976         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14977         Remove.
14978         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14979         * config/stormy16/stormy16.h: Remove the commented-out
14980         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14981
14982 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14983
14984         PR target/13914
14985         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14986         for retaddr_column.
14987
14988 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14989
14990         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14991         gen_rtx.
14992
14993 2004-02-02  Eric Christopher  <echristo@redhat.com>
14994             Zack Weinberg  <zack@codesourcery.com>
14995
14996         * c-opts.c (c_common_handle_option): Add -finput-charset.
14997         * c.opt: Ditto.
14998         * cppcharset.c (one_iso88591_to_utf8): Remove.
14999         (convert_iso88591_utf8): Ditto.
15000         (conversion_tab): Remove 8859-1 converter.
15001         (_cpp_input_to_utf8): Remove.
15002         (_cpp_init_iconv_buffer): Ditto.
15003         (_cpp_close_iconv_buffer): Ditto.
15004         (_cpp_convert_input): New function.
15005         (_cpp_default_encoding): Ditto.
15006         * cpphash.h: Add/remove prototypes for above.
15007         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
15008         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
15009         for narrow execution and input character sets.
15010         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
15011         * doc/cppopts.texi: Document -finput-charset.
15012
15013 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
15014
15015         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
15016         against FIRST_PSEUDO_REGISTER.
15017
15018 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15019
15020         * doc/invoke.texi (SPARC options): Further improve.
15021
15022 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15023
15024         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
15025         config/h8300/h8300.c, config/ip2k/ip2k.md,
15026         config/iq2000/iq2000.c, config/mips/mips.c,
15027         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
15028         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
15029         config/v850/v850.md: Fix indentation.
15030
15031 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15032
15033         * config/sparc/sparc.c (function_arg_slotno): Align TImode
15034         arguments on a 16-byte boundary in the parameter array if ARCH64.
15035         Split handling of TFmode.
15036
15037 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
15038
15039         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
15040         Don't test CONSTANT_P (x).
15041         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
15042         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
15043         Fix misindentation.
15044
15045 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15046
15047         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
15048
15049 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15050
15051         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
15052         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
15053         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
15054         config/iq2000/iq2000.c, config/m32r/m32r.c,
15055         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
15056         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
15057         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
15058         config/stormy16/stormy16.c, config/v850/v850.md,
15059         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
15060
15061 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15062
15063         * config/mcore/mcore.c (block_move_sequence): Replace
15064         gen_rtx_CONST_INT with GEN_INT.
15065
15066 2004-02-02  Jan Hubicka  <jh@suse.cz>
15067
15068         * alias.c (record_set): Use hard_regno_nregs.
15069         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
15070         * builtins.c (apply_args_size): Likewise.
15071         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
15072         mark_set_regs, add_stored_regs, mark_referenced_regs,
15073         insert_restore, insert_save, insert_one_insn): Likewise.
15074         * cfgcleanup.c: Include regs.h
15075         (mark_effect, mentions_nonequal_regs): Likewise.
15076         * cfgrtl.c (mark_killed_regs): Likewise
15077         * combine.c (update_table_tick, record_value_for_reg,
15078         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
15079         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
15080         reg_bitfield_target_p, distribute_notes): Likewise.
15081         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
15082         exp_equiv_p, cse_insn): Likewise.
15083         * cselib.c (cselib_lookup): Likewise.
15084         (cselib_invalidate_regno, cselib_record_set): Likewise.
15085         * df.c (df_ref_record): Likewise.
15086         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
15087         Likewise.
15088         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
15089         count_or_remove_death_notes_bb): Likewise.
15090         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
15091         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
15092         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
15093         * integrate.c (mark_stores): Likewise.
15094         * jump.c (delete_prior_computation): Likewise.
15095         * lcm.c (reg_dies, reg_becomes_live): Likewise.
15096         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15097         * loop.c (LOOP_REGNO_NREGS): Likewise.
15098         * postreload.c (reload_combine, reload_combine_note_store,
15099         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15100         * ra-colorize.c (combine, color_usable_p, get_free_reg,
15101         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
15102         try_recolor_web, insert_coalesced_conflicts, check_colors,
15103         break_precolored_alias): Likewise.
15104         * ra-debug.c: Include regs.h
15105         (ra_print_rtx_object): Likewise.
15106         * ra-rewrite (choose_spill_colors): Likewise.
15107         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15108         * ra.c (init_ra): Likewise.
15109         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15110         peep2_find_free_register): Likewise.
15111         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15112         * regclass.c (hard_regno_nregs): New array.
15113         (init_reg_modes_once): Initialize it.
15114         (choose_hard_reg_mode): Use it.
15115         (record_reg_classes): Likewise.
15116         * regmove.c (mark_flags_life_zones): Likewise.
15117         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15118         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15119         copy_value, maybe_mode_change, find_oldest_value_reg,
15120         copyprop_hardreg_forward_1):
15121         * regs.h (hard_regno_nregs): Declare.
15122         * realod.c (reload_inner_reg_of_subreg): Use it.
15123         (push_reload, combine_reloads, find_dummy_reload,
15124         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15125         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15126         reload_adjust_reg_for_mode): Likewise.
15127         * reload1.c (compute_use_by_pseudos, count_pseudo,
15128         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15129         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15130         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15131         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15132         delete_output_reload): Likewise.
15133         * resource.c (update_live_status, mark_referenced_resources,
15134         mark_set_resources, mark_target_live_regs): Likewise.
15135         * rtlanal.c:  Include regs.h
15136         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15137         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15138         subreg_regno_offset, subreg_offset_representable_p,
15139         hoist_test_store): Likewise.
15140         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15141         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15142         * stmt.c: Include regs.h
15143         (decl_conflicts_with_clobbers_p): Likewise.
15144         * varasm.c (make_decl_rtl): Likewise.
15145         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15146
15147 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15148
15149         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15150         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15151         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15152         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15153         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15154         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15155         config/iq2000/iq2000.h, config/m32r/m32r.c,
15156         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15157         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15158         config/mcore/mcore.c, config/mcore/mcore.h,
15159         config/mcore/mcore.md, config/mips/mips.c,
15160         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15161         config/rs6000/rs6000.c, config/s390/s390.c,
15162         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15163         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15164         "gen_rtx (FOO, " with "gen_rtx_FOO (".
15165
15166 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15167
15168         * config/h8300/h8300.md (two peephole2's): New.
15169
15170 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15171
15172         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15173         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15174         (ASM_CPU_SPEC): Likewise
15175         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15176         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
15177
15178 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15179
15180         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15181         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15182         (expand_builtin): Always call expand_builtin_pow.
15183
15184 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15185
15186         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15187         BUILT_IN_SIGNBITL): New GCC builtins.
15188         * builtins.c (expand_builtin_signbit): New function to RTL expand
15189         calls to signbit, signbitf and signbitl as inline intrinsics.
15190         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15191         (fold_builtin_signbit): New function to perform constant folding
15192         of signbit, signbitf and signbitl.
15193         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15194
15195         * doc/extend.texi: Document new signbit{,f,l} builtins.
15196
15197 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
15198
15199         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15200
15201 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
15202
15203         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15204         "mips_const_double_ok" and "simple_memory_operand", which were
15205         removed from the MIPS port with the mips-3_4-rewrite branch merge.
15206         * config/mips/mips.c (mips16_lay_out_constants): Update comment
15207         for removal of simple_memory_operand.
15208
15209 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15210
15211         * config/c4x/c4x.md: Use GEN_INT instead of
15212         gen_rtx (CONST_INT, ...).
15213
15214 2004-01-31  Richard Henderson  <rth@redhat.com>
15215
15216         * varasm.c (output_constant_pool): Don't zap the pool.
15217
15218 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15219
15220         * genrecog.c (decision_type): Add DT_const_int.
15221         (write_cond) [DT_const_int]: Print a comparison against small
15222         constant.
15223         (write_node): Simplify comparisons against small constants
15224         before printing tests.
15225
15226 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15227
15228         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15229         instead of gen_rtx_CONST_INT.
15230
15231 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15232
15233         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15234         instead of gen_rtx_CONST_INT.
15235
15236 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15237
15238         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15239         hook_bool_CUMULATIVE_ARGS_false.
15240         * targhooks.c (default_strict_argument_naming): Rename to
15241         hook_bool_CUMULATIVE_ARGS_false.
15242         * targhooks.h: Update the prototype for
15243         default_strict_argument_naming.
15244
15245 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15246
15247         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15248         * config/sh/sh.h: Likewise.
15249         * config/sh/sh.md: Likewise.
15250
15251 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15252
15253         * doc/invoke.texi (SPARC options): Restructure and update.
15254
15255 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15256
15257         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15258         STRICT_ARGUMENT_NAMING): Poison.
15259         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15260         hook_bool_tree_false.
15261         * targhooks.c (default_promote_function_args): Remove.
15262         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15263         Don't check incoming.
15264         (default_strict_argument_naming): Don't use
15265         STRICT_ARGUMENT_NAMING.
15266         * targhooks.h: Remove the prototype for
15267         default_promote_function_args.
15268
15269 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15270
15271         * config/i386/i386-protos.h: Remove the prototype for
15272         ix86_setup_incoming_varargs.
15273         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15274         (ix86_setup_incoming_varargs): Make it static.
15275         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15276
15277 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15278
15279         * alloc-pool.c: Fix comment typos.
15280         * builtin-types.def: Likewise.
15281         * builtins.def: Likewise.
15282         * c-pretty-print.c: Likewise.
15283         * df.h: Likewise.
15284         * reload1.c: Likewise.
15285
15286 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15287
15288         * doc/invoke.texi: Follow spelling conventions.
15289         * doc/tm.texi: Likewise.
15290
15291 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15292
15293         * doc/install.texi: Fix typos.
15294         * doc/invoke.texi: Likewise.
15295
15296 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15297
15298         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15299         registers as pointers.
15300         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15301
15302 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15303
15304         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15305         and restore it to gen_lowpart_general on exit.
15306         (gen_lowpart_for_combine): Adjust all callers to go through
15307         gen_lowpart.
15308         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15309         and restore it to gen_lowpart_general on exit.
15310         (gen_lowpart_if_possible): Adjust all callers to go through
15311         gen_lowpart.
15312         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15313         (gen_lowpart): Declare as pointer to function, initialized to
15314         gen_lowpart_general.
15315         * rtl.h (gen_lowpart): Declare as pointer to function.
15316
15317 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15318
15319         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15320         * calls.c: Likewise.
15321         * emit-rtl.c: Likewise.
15322         * function.c: Likewise.
15323         * reload1.c: Likewise.
15324         * config/i386/cygming.h: Likewise.
15325         * config/i386/i386.c: Likewise.
15326         * config/i386/winnt.c: Likewise.
15327
15328 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15329
15330         PR bootstrap/9249
15331         * doc/install.texi: document --enable-__cxa_atexit option.
15332         * configure.ac: Disable __cxa_atexit if not supported.
15333         * configure: Regenerate.
15334
15335 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
15336
15337         * ggc-zone.c (ggc_free): New function.
15338
15339 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15340
15341         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15342         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15343         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15344         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15345         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15346         config/alpha/alpha.c, config/alpha/alpha.h,
15347         config/alpha/alpha.md, config/alpha/unicosmk.h,
15348         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15349         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15350         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15351         config/frv/frvend.c, config/i386/cygming.h,
15352         config/i386/djgpp.h, config/i386/emmintrin.h,
15353         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15354         config/i386/i386-protos.h, config/i386/openbsd.h,
15355         config/i386/winnt.c, config/i386/xm-mingw32.h,
15356         config/i386/xmmintrin.h, config/ia64/ia64.md,
15357         config/iq2000/iq2000.md, config/m32r/m32r.md,
15358         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15359         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15360         config/mips/iris5gas.h, config/mips/iris6.h,
15361         config/mips/iris6gas.h, config/mips/linux.h,
15362         config/mips/mips.md, config/mips/netbsd.h,
15363         config/mips/openbsd.h, config/mips/windiss.h,
15364         config/pa/fptr.c, config/rs6000/aix.h,
15365         config/rs6000/altivec.h, config/rs6000/darwin.h,
15366         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15367         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15368         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15369         config/sparc/sol2.h: Update copyright.
15370
15371 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15372
15373         * Makefile.in (abs_docdir, abs_srcdir): Define.
15374         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15375
15376 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15377
15378         * genconfig.c (main): Have CC0_P check its operand even on a
15379         target without cc0.
15380
15381 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15382
15383         * config/alpha/alpha.c: Remove mentions of deprecates macros
15384         in comments, remove some target-independent comments about target
15385         macros, and/or add minimal function comments for target hook
15386         implementations.
15387         * config/avr/avr.c: Likewise.
15388         * config/ia64/ia64.h: Likewise.
15389         * config/ip2k/ip2k.c: Likewise.
15390         * config/iq2000/iq2000.c: Likewise.
15391         * config/m32r/m32r.h: Likewise.
15392         * config/m68hc11/m68hc11.c: Likewise.
15393         * config/mcore/mcore.c: Likewise.
15394         * config/mmix/mmix.c: Likewise.
15395         * config/mn10300/mn10300.c: Likewise.
15396         * config/pa/pa.c: Likewise.
15397         * config/pdp11/pdp11.c: Likewise.
15398         * config/rs6000/rs6000.h: Likewise.
15399         * config/sh/sh.c: Likewise.
15400         * config/sh/sh.h: Likewise.
15401         * config/sparc/sparc.c: Likewise.
15402         * config/sparc/sparc.h: Likewise.
15403         * config/stormy16/stormy16.c: Likewise.
15404         * config/xtensa/xtensa.c: Likewise.
15405
15406 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15407
15408         PR optimization/12147
15409         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15410         RELOAD_FOR_OPADDR_ADDR.
15411         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15412         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15413
15414 2004-01-30  Jan Hubicka  <jh@suse.cz>
15415
15416         * reload.c (get_secondary_mem): Fix updating of
15417         secondary_memlocs_elim_used.
15418
15419 2004-01-30  Richard Henderson  <rth@redhat.com>
15420
15421         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15422         (MAX_RTX_HASH_TABLE): Remove.
15423         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15424         (first_pool, last_pool, pool_offset): Remove.
15425         (struct rtx_constant_pool): Split out from ...
15426         (struct varasm_status): ... here.  Reference one via pointer.
15427         (struct constant_descriptor_rtx): Merge struct pool_constant.
15428         (SYMHASH): Remove.
15429         (decode_rtx_const): Remove.
15430         (const_hash_rtx, compare_constant_rtx): Remove.
15431         (record_constant_rtx): Remove.
15432         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15433         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15434         (const_rtx_hash_1, const_rtx_hash): New.
15435         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15436         (simplify_subtraction): Use simplify_rtx.
15437         (force_const_mem): Rewrite to use new data structures.
15438         (find_pool_constant): Likewise.
15439         (get_pool_constant, get_pool_constant_mark,
15440         get_pool_constant_for_function, get_pool_mode,
15441         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15442         (output_constant_pool_2): Split out from output_constant_pool.
15443         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15444         (output_constant_pool): Zap entire pool datastructure.
15445         (mark_constant): Use new pool datastructures.
15446         (mark_constants): Use for_each_rtx.
15447         (mark_constant_pool): Use new pool datastructures.
15448
15449 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15450
15451         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15452         Copy operands[1] to pseudo for simplify_gen_subreg.
15453
15454 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15455
15456         * gcse.c (bypass_block): Fix a typo in the previous check-in
15457         to the file.
15458
15459 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15460
15461         * toplev.c: Include alloc-pool.h.
15462         * Makefile.in (toplev.c): Update dependencies.
15463
15464 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15465
15466         * combine.c (simplify_shift_const, case XOR): Be careful when
15467         commuting XOR with ASHIFTRT.
15468
15469 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15470             Eric Botcazou  <ebotcazou@libertysurf.fr>
15471
15472         * config/sparc/sparc-protos.h: Remove the prototype for
15473         sparc_builtin_saveregs.
15474         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15475         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15476         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15477         (TARGET_STRUCT_VALUE_RTX): Likewise.
15478         (TARGET_RETURN_IN_MEMORY): Likewise.
15479         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15480         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15481         (sparc_builtin_saveregs): Make it static.
15482         (sparc_promote_prototypes): New.
15483         (sparc_struct_value_rtx): Likewise.
15484         (sparc_return_in_memory): Likewise.
15485         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15486         (PROMOTE_FUNCTION_RETURN): Likewise.
15487         (RETURN_IN_MEMORY): Likewise.
15488         (STRUCT_VALUE): Likewise.
15489         (STRUCT_VALUE_INCOMING): Likewise.
15490         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15491         (STRICT_ARGUMENT_NAMING): Likewise.
15492         (PROMOTE_PROTOTYPES): Likewise.
15493
15494         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15495
15496 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15497
15498         PR c/12818
15499         * varasm.c (const_hash_1) <STRING_CST>: Use the
15500         address to compute the hash value if flag_writable_strings.
15501         (compare_constant) <STRING_CST>: Compare the addresses
15502         if flag_writable_strings.
15503         (build_constant_desc): Do not copy the expression for a
15504         STRING_CST if flag_writable_strings.
15505
15506 2004-01-30  Jan Hubicka  <jh@suse.cz>
15507
15508         * alloc-pool.c: Include hashtab.h
15509         (alloc_pool_descriptor): New structure
15510         (alloc_pool_hash): New global variable.
15511         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15512         (create_alloc_pool): Update statistics.
15513         (free_alloc_pool): Likewise.
15514         (pool_alloc): Likewise.
15515         (output_info): New structure
15516         (print_statistics, dump_alloc_pool_statistics): New function.
15517         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15518         (dump_alloc_pool_statistics): Declare.
15519         * toplev.c (finalize):  Dump statistics.
15520
15521         * reload.c (secondary_memlocs_elim_used): New static variable.
15522         (get_secondary_mem): Update it.
15523         (find_reloads): Use it.
15524
15525 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15526
15527         * toplev.c: Fix broken checkin of 2003-12-30, again.
15528
15529 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15530
15531         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15532         s390*-*-* targets by specifying a 'nop' insn.
15533         * configure: Regenerate.
15534
15535 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15536
15537         PR target/11475
15538         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15539
15540 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15541
15542         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15543         of addr when creating MEM copy.
15544
15545 2004-01-29  Devang Patel  <dpatel@apple.com>
15546
15547         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15548
15549 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15550
15551         PR inline-asm/6162
15552         * reload.c (find_reloads): Only support one pair of commutative
15553         operands.
15554
15555 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15556
15557         PR java/13824
15558         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15559         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15560         recursion.
15561
15562 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15563
15564         * config/frv/frv.c: Don't mention deprecated macros in
15565         comments.  Remove some target-independent comments about
15566         target macros.
15567         * config/frv/frv.h: Likewise.
15568
15569 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15570
15571         * cfghooks.c (split_block): Set probability and count of the
15572         new edge.
15573
15574 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
15575
15576         * dwarf2out.c (struct die_struct): Added field decl_id.
15577         (decl_die_table): Changed to hash table.
15578         (decl_die_table_allocated): Deleted.
15579         (decl_die_table_in_use): Deleted.
15580         (DECL_DIE_TABLE_INCREMENT): Deleted.
15581         (decl_die_table_hash): New function.
15582         (decl_die_table_eq): New function.
15583         (lookup_decl_die): Lookup in a hash table.
15584         (equate_decl_number_to_die): Insert into a hash table.
15585         (dwarf2out_init): Init hash table decl_die_table.
15586
15587 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15588
15589         PR optimization/13424
15590         * expr.c (store_constructor): Revert 2003-12-03 change.
15591
15592         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15593         expected before returning early.  Avoid sharing RTL if they
15594         need to be changed.
15595
15596         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15597         handling so that memory attributes are preserved.  Don't call
15598         ix86_set_move_mem_attrs.
15599         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15600         (ix86_expand_clrstr): Rename src argument to
15601         dst.  Rework rep_stos and strset handling so that memory attributes
15602         are preserved.
15603         (ix86_expand_strlen): Pass src argument to
15604         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15605         memory attributes are preserved.
15606         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15607         change_address instead of gen_rtx_MEM.
15608         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15609         expanders.
15610         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15611         strmovqi, strmovqi_rex64): Remove.
15612         (rep_mov*, strmov*): Prefix insn names with *.
15613         (strset, strset_singleop, rep_stos): New expanders.
15614         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15615         strsetqi, strsetqi_rex64): Remove.
15616         (rep_stos*, strset*): Prefix insn names with *.
15617         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15618         to SImode.
15619         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15620         are preserved.
15621         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15622         Prefix insn names with *.
15623         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15624         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15625         (strlenqi_1): New expander.
15626         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15627
15628 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15629
15630         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15631         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15632         verify_flow_info): Declaration removed.
15633         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15634         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15635         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15636         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15637         instead of delete_block.
15638         * cfghooks.c: Include timevar.h and toplev.h.
15639         (cfg_hooks): Define here.
15640         (verify_flow_info, dump_bb): Moved from cfg.c.
15641         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15642         split_block, split_block_after_labels, move_block_after,
15643         delete_basic_block, split_edge, create_basic_block,
15644         create_empty_bb, can_merge_blocks_p, merge_blocks,
15645         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15646         New functions.
15647         * cfghooks.h (struct cfg_hooks): Added fields name,
15648         make_forwarder_block, tidy_fallthru_edge and
15649         move_block_after. Changed type of verify_flow_info, dump_bb,
15650         split_block fields. Renamed cfgh_split_edge and delete_block
15651         fields.
15652         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15653         split_block, delete_block, split_edge, create_basic_block,
15654         can_merge_blocks_p, merge_blocks): Macros removed.
15655         (cfg_hooks): Do not export.
15656         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15657         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15658         move_block_after, delete_basic_block, split_edge, create_basic_block,
15659         create_empty_bb, can_merge_blocks_p, merge_blocks,
15660         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15661         Declare.
15662         (cfg_layout_rtl_cfg_hooks): Declare.
15663         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15664         New functions.
15665         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15666         (redirect_edge_with_latch_update): Removed.
15667         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15668         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15669         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15670         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15671         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15672         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15673         cfghooks.c.
15674         (rtl_create_basic_block): Coding style fix.
15675         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15676         rtl_make_forwarder_block): New functions.
15677         (update_cfg_after_block_merging): Removed.
15678         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15679         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15680         to dump_bb.
15681         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15682         find_if_case_2): Don't update dominators.
15683         * timevar.def (TV_CFG_VERIFY): New.
15684         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15685         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15686         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15687         (remove_bbs): Don't call remove_bbs.
15688         (create_preheader): Use make_forwarder_block.
15689         (mfb_keep_just, mfb_update_loops): New static functions.
15690
15691 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15692
15693         * config/avr/avr.h: Remove target-independent comments about
15694         target macros.
15695
15696 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15697
15698         * timevar.c (timevar_print): Mention when checking is enabled.
15699
15700 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15701
15702         * c-lex.c (c_lex): Rename to...
15703         (c_lex_with_flags): Add new parameter to get CPP flags.
15704         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15705         * c-pragma.h (c_lex_with_flags): Declare.
15706
15707 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15708
15709         * config/mcore/mcore.c (mcore_external_libcall): Add a
15710         comment.
15711         (mcore_return_in_memory): Likewise.
15712
15713 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15714
15715         * config/mcore/mcore-protos.h: Remove the prototype for
15716         mcore_setup_incoming_varargs.
15717         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15718         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15719         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15720         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15721         (TARGET_STRUCT_VALUE_RTX): Likewise.
15722         (TARGET_RETURN_IN_MEMORY): Likewise.
15723         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15724         (mcore_setup_incoming_varargs): Make it static.  Receive the
15725         first argument by reference.  Add argument second_time.
15726         (mcore_external_libcall): New.
15727         (mcore_return_in_memory): Likewise.
15728         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15729         (PROMOTE_FUNCTION_RETURN): Likewise.
15730         (STRUCT_VALUE): Likewise.
15731         (RETURN_IN_MEMORY): Likewise.
15732         (SETUP_INCOMING_VARARGS): Likewise.
15733         (PROMOTE_PROTOTYPES): Likewise.
15734         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15735
15736 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15737
15738         * config/m32r/m32r-protos.h: Remove the prototype for
15739         m32r_setup_incoming_varargs.
15740         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15741         (TARGET_STRUCT_VALUE_RTX): Likewise.
15742         (TARGET_RETURN_IN_MEMORY): Likewise.
15743         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15744         (m32r_return_in_memory): New.
15745         (m32r_setup_incoming_varargs): Make it static.
15746         * config/m32r/m32r.h: Remove #undef of
15747         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15748         definitions of PROMOTE_FUNCTION_ARGS and
15749         PROMOTE_FUNCTION_RETURN.
15750         (PROMOTE_PROTOTYPES): Remove.
15751         (RETURN_IN_MEMORY): Likewise.
15752         (STRUCT_VALUE): Likewise.
15753
15754 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15755
15756         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15757         (TARGET_STRUCT_VALUE_RTX): Likewise.
15758         (m68k_struct_value_rtx): Likewise.
15759         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15760         STRUCT_VALUE_REGNUM.
15761         (PROMOTE_PROTOTYPES): Remove.
15762         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15763         STRUCT_VALUE_REGNUM.
15764         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15765         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15766
15767 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15768
15769         * config/stormy16/stormy16.c
15770         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15771         TARGET_BUILD_BUILTIN_VA_LIST.
15772
15773 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15774
15775         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15776         (TARGET_STRUCT_VALUE_RTX): Likewise.
15777         (TARGET_RETURN_IN_MEMORY): Likewise.
15778         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15779         (v850_return_in_memory): Likewise.
15780         (v850_setup_incoming_varargs): Likewise.
15781         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15782         (SETUP_INCOMING_VARARGS): Likewise.
15783         (RETURN_IN_MEMORY): Likewise.
15784         (STRUCT_VALUE): Likewise.
15785
15786 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15787
15788         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15789         (fr30_setup_incoming_varargs): Don't use
15790         STRICT_ARGUMENT_NAMING.
15791         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15792         (STRICT_ARGUMENT_NAMING): Likewise.
15793
15794 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15795
15796         * config/frv/frv-protos.h: Remove the prototype for
15797         frv_expand_builtin_saveregs.
15798         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15799         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15800         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15801         STRUCT_VALUE_REGNUM.
15802         (frv_expand_builtin_saveregs): Make it static.
15803         (frv_struct_value_rtx): New.
15804         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15805
15806 2004-01-29  Jan Hubicka  <jh@suse.cz>
15807
15808         PR c++/12850
15809         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15810         initial pointers.
15811         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15812         for functions that will be only inlined.
15813         (cgraph_mark_function_to_output): Likewise.
15814         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15815         do not clear function body.
15816         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15817         (tree_rest_of_compilation): Reorganize the logic releasing function
15818         body to use callgraph datastructure.
15819
15820 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15821
15822         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15823         to register_operand.
15824
15825 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15826
15827         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15828         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15829         match_operand expressions so that all match_dups appear
15830         lexically after their corresponding match_operands.
15831
15832 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15833
15834         * config/h8300/h8300.c (WORD_REG_USED): Use
15835         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15836         (compute_saved_regs): Likewise.
15837         (h8300_expand_prologue): Likewise.  Allocate locals after
15838         saving registers.
15839         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15840         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15841         registers.
15842         (h8300_initial_elimination_offset): Adjust for the new frame
15843         layout, which swaps flips the order of locals and saved
15844         registers.
15845         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15846         (HARD_FRAME_POINTER_REGNUM): New.
15847         (ELIMINABLE_REGS): Add an elimination rule from
15848         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15849         (REGISTER_NAMES): Add fp.
15850         * config/h8300/h8300.md (FP_REG): Change to 11.
15851         (HFP_REG): New.
15852
15853 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15854
15855         * genrecog.c (write_node): Remove a useless local variable.
15856
15857 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15858
15859         * Makefile.in (options.c options.h): Use stamp file s-options to
15860         avoid unnecessary rebuilds.
15861         (options.o): New target listing dependencies.
15862         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15863         (STAGESTUFF): Add s-gtyp-gen.
15864
15865 2004-01-28  Richard Henderson  <rth@redhat.com>
15866
15867         * ggc.h (ggc_free): Declare.
15868         * ggc-common.c (ggc_realloc): Use it.
15869         * ggc-page.c: Remove lots of inline markers.
15870         (globals): Add free_object_list.
15871         (ggc_alloc): Tidy.
15872         (ggc_free, validate_free_objects): New.
15873         (poison_pages): Provide default.
15874         (ggc_collect): Call validate_free_objects; emit markers to
15875         the debug file.
15876
15877 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15878             Jim Wilson  <wilson@specifixinc.com>
15879
15880         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15881         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15882         scratch pointer.
15883         (ia64_secondary_reload_class): Delete case GR_REGS.
15884         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15885         Do not allocate a scratch register.
15886         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15887
15888 2004-01-28  Jan Hubicka  <jh@suse.cz>
15889
15890         * gcse.c (bypass_block): Prevent edges to be unified when we are
15891         about to emit compenstation code.
15892
15893 2004-01-28  Nick Clifton  <nickc@redhat.com>
15894
15895         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15896         the setcwx insn into a register.
15897
15898 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15899
15900         * config/fp-bit.c (pack_d): When using paired doubles to implement
15901         a long double, round the high part separately.
15902         (unpack_d): Fix the case in which the high part is a power of two
15903         and the low part is a nonzero value of the opposite sign.
15904
15905 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15906
15907         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15908         (TARGET_STRUCT_VALUE_RTX): Likewise.
15909         (c4x_external_libcall): Likewise.
15910         (c4x_struct_value_rtx): Likewise.
15911         * config/c4x/c4x.h: Remove.
15912         (STRUCT_VALUE_REGNUM): Likewise.
15913         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15914
15915 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15916
15917         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15918         (TARGET_STRUCT_VALUE_RTX): Likewise.
15919         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15920         (STRUCT_VALUE): Likewise.
15921         (PROMOTE_PROTOTYPES): Likewise.
15922
15923 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15924
15925         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15926         CONST_INT before using INTVAL.
15927
15928 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15929
15930         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15931         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15932         frame if !TARGET_BACKCHAIN.
15933         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15934         TARGET_BACKCHAIN.
15935         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15936
15937 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15938
15939         * ia64.c (ia64_function_arg): When placing HFAs in integer
15940         registers, do not special case the mode used for complex
15941         types.  Do not advance int_regs until the current register
15942         is full.
15943
15944 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15945
15946         PR target/7297
15947         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15948
15949 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15950
15951         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15952         slow, unaligned loads and stores while debugging.  Fix formatting.
15953
15954 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15955
15956         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15957         of computing wmode.
15958         (restore_stack_nonlocal): Same.
15959
15960 2004-01-27  Devang Patel <dpatel@apple.com>
15961
15962         * Makefile.in (dwarf2out.o): Depend on input.h
15963         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15964         imported_module_or_decl.
15965         (xcoff_debug_hooks): Same.
15966         * sdbout.c (sdb_debug_hooks): Same.
15967         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15968         * debug.c (do_nothing_debug_hooks): Same.
15969         (debug_nothing_tree_tree): New function.
15970         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15971         * dwarf2out.c: Include input.h.
15972         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15973         (remove_child_TAG): New function.
15974         (dwarf_tag_name): Handle DW_TAG_imported_module.
15975         (gen_subprogram_die): Equate decl number to declaration die. Do not
15976         remove all children dies while reusing declaration die for definition.
15977         Instead, selectively remove only formal parameters.
15978         (gen_variable_die): Equate variable decl to declaration die.
15979         (gen_field_die): Equate field decl to line number.
15980         (force_namespace_die): Replace it with ...
15981         (force_decl_die): ... this.
15982         (force_type_die): New function.
15983         (setup_namespace_context): Replace use of force_namespace_die() with
15984         force_decl_die().
15985         (gen_namespace_die): Same.
15986         (dwarf2out_imported_module_or_decl): New function.
15987
15988 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15989
15990         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15991         on CQImode and CHImode incoming arguments in register a7.
15992         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15993         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15994         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15995         xtensa_copy_incoming_a7 before reload.
15996
15997 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15998
15999         * coverage.c (get_coverage_counts): Give a different message
16000         if flag_guess_branch_prob is set.
16001         * predict.c (counts_to_freqs): Return an int.
16002         (estimate_bb_frequencies): If counts_to_freqs returns zero,
16003         calculate estimates.
16004
16005 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
16006
16007         * config/iq2000/iq2000-protos.h: Remove the prototype for
16008         iq2000_setup_incoming_varargs.
16009         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16010         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16011         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16012         (TARGET_STRUCT_VALUE_RTX): Likewise.
16013         (TARGET_RETURN_IN_MEMORY): Likewise.
16014         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16015         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16016         (iq2000_return_in_memory): Likewise.
16017         (iq2000_setup_incoming_varargs): Make it static.  Receive the
16018         first argument by reference.
16019         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
16020         (PROMOTE_FUNCTION_RETURN): Likewise.
16021         (PROMOTE_PROTOTYPES): Likewise.
16022         (RETURN_IN_MEMORY): Likewise.
16023         (STRUCT_VALUE): Likewise.
16024         (SETUP_INCOMING_VARARGS): Likewise.
16025         (STRICT_ARGUMENT_NAMING): Likewise.
16026
16027 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
16028
16029         * fixinc/fixinc.c (test_test): Initialize res.
16030         (start_flexer): Initialize pz_cmd_save.
16031
16032 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16033
16034         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
16035         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
16036
16037 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16038
16039         PR 7198
16040         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
16041         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
16042         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
16043         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
16044         Possibly rename pattern for consistency.
16045         Remove ??? comments suggesting that this be done.
16046         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
16047         New patterns.
16048         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
16049         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
16050         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
16051         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
16052         Update to match.
16053
16054 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
16055
16056         * config/arm/arm.c (output_return_instruction): Only restore IP
16057         into SP if frame_pointer_needed.
16058
16059 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16060
16061         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16062         for SCmode and DCmode if ARCH32.
16063         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
16064         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
16065         if ARCH32.
16066         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
16067         if ARCH32.
16068         (BASE_OUTGOING_VALUE_REG): Likewise.
16069
16070 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16071
16072         PR target/10904
16073         PR target/13058
16074         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
16075         Forbid mode changes from SImode for lower FP regs if ARCH64.
16076
16077 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
16078
16079         * Makefile.in (bt-load.o): Depend on except.h.
16080         * bt-load.c (except.h): #include.
16081         (compute_defs_uses_and_gen): If insn at end of BB can throw
16082         within this function, consider registers used by it unavailable for
16083         btr migration.
16084         (move_btr_def): If insn at end of BB can throw, insert before rather
16085         than after.
16086
16087         * flags.h (flag_btr_bb_exclusive): Declare.
16088         * toplev.c (flag_btr_bb_exclusive): New variable.
16089         (f_options): Add btr-bb-exclusive.
16090         * bt-load.c (augment_live_range): Restore old behaviour if
16091         flag_btr_bb_exclusive is set.
16092         * common.opt: Add entry for -fbtr-bb-exclusive.
16093         * opts.c (common_handle_options): Same.
16094         * doc/invoke.texi: Document -fbtr-bb-exclusive.
16095
16096         * bt-load.c (btrs_live_at_end): New variable.
16097         (compute_defs_uses_and_gen): Compute its pointed-to array.
16098         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16099         (augment_live_range): When augmenting with a new dominator,
16100         use only its btrs_live_at_end set, but also add in the full set
16101         of the old dominator.
16102         (btr_def_live_range): Use btrs_live_at_end.
16103         (move_btr_def): Set other_btr_uses_before_def, and move new set
16104         to the end of the basic block, if appropriate.
16105         (migrate_btr_defs): Allocate and free btrs_live_at_end.
16106
16107         * bt-load.c (basic_block_freq): Remove outdated comment.
16108
16109 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
16110
16111         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16112         (PREDICATE_CODES): Remove duplicate.
16113         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16114         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16115         (MASK_PROFILE_KERNEL): Adjust define.
16116
16117 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
16118
16119         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16120         of long string literals from 32 bytes to sizeof (void *) when !-Os
16121         and to 1 with -Os.
16122
16123 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16124
16125         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16126         constant addresses in the normal mode.
16127
16128 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16129
16130         * system.h (CHAR_BITFIELD): Delete.
16131         (BOOL_BITFIELD): New.
16132         * c-decl.c (c_scope): Use BOOL_BITFIELD.
16133         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16134
16135 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16136
16137         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16138         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16139         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16140         (TARGET_STRUCT_VALUE_RTX): Likewise.
16141         (TARGET_RETURN_IN_MEMORY): Likewise.
16142         (arc_return_in_memory): Likewise.
16143         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16144         (PROMOTE_FUNCTION_RETURN): Likewise.
16145         (RETURN_IN_MEMORY): Likewise.
16146         (STRUCT_VALUE): Likewise.
16147
16148 2004-01-26  Richard Henderson  <rth@redhat.com>
16149
16150         * c-parse.in (extension): Use itype.
16151         (SAVE_EXT_FLAGS): Don't allocate a tree.
16152         (RESTORE_EXT_FLAGS): Don't read a tree.
16153
16154 2004-01-26  Jan Hubicka  <jh@suse.cz>
16155
16156         * cselib.c (discard_useless_values):  Clear out value pointer pointing
16157         to datastructure to be recycled.
16158
16159 2004-01-25  Jan Hubicka  <jh@suse.cz>
16160
16161         * genextract.c (main): Do not output the memset when not checking.
16162
16163 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16164
16165         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16166         switch statement instead of a chain of if statements.
16167
16168 2004-01-26  Jeff Law  <law@redhat.com>
16169
16170         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
16171         acute accents for Petur Runolfsson's entry.
16172
16173 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16174
16175         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16176         (TARGET_RETURN_IN_MEMORY): Likewise.
16177         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16178         (RETURN_IN_MEMORY): Likewise.
16179
16180 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16181
16182          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16183          unaligned load/store into smaller loads and stores.
16184
16185 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16186
16187         * function.c (assign_parms): Do not assign
16188         long long argument to memory in prologue if
16189         is it loaded into register.
16190
16191 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16192
16193          PR middle-end/13779
16194          * expr.c (emit_group_load): split constant
16195          correctly into register components of PARALLEL insn.
16196
16197 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16198
16199         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16200         Use adjust_address_nv directly with appropriate mode.
16201         (restore_stack_nonlocal): Ditto.
16202
16203 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16204
16205         * config/xtensa/xtensa-protos.h: Remove the prototype for
16206         xtensa_builtin_saveregs.
16207         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16208         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16209         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16210         (TARGET_STRUCT_VALUE_RTX): Likewise.
16211         (TARGET_RETURN_IN_MEMORY): Likewise.
16212         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16213         (xtensa_builtin_saveregs): Make it static.
16214         (xtensa_return_in_memory): New.
16215         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16216         (PROMOTE_FUNCTION_RETURN): Likewise.
16217         (PROMOTE_PROTOTYPES): Likewise.
16218         (STRUCT_VALUE): Likewise.
16219         (RETURN_IN_MEMORY): Likewise.
16220         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16221
16222 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16223
16224         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16225         (arm_setup_incoming_varargs): Likewise.
16226         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16227
16228 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16229
16230         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16231         (cris_setup_incoming_varargs): Likewise.
16232         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16233
16234 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16235
16236         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16237         (ns32k_struct_value_rtx): Likewise.
16238         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16239         NS32K_STRUCT_VALUE_REGNUM.
16240
16241 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16242
16243         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16244         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16245         (TARGET_STRUCT_VALUE_RTX): Likewise.
16246         (arm_struct_value_rtx): Likewise.
16247         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16248         (STRUCT_VALUE): Likewise.
16249         (STRUCT_VALUE_REGNUM): Likewise.
16250         (PROMOTE_PROTOTYPES): Likewise.
16251
16252 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16253
16254         * config/ia64/ia64-protos.h: Remove the prototype for
16255         ia64_setup_incoming_varargs and ia64_return_in_memory.
16256         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16257         (TARGET_RETURN_IN_MEMORY): Likewise.
16258         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16259         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16260         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16261         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16262         (ia64_return_in_memory): Make it static.  Change the return
16263         type to bool from int.  Add an argument.
16264         (ia64_struct_value_rtx): New.
16265         * config/ia64/ia64.h: Remove commented-out definitions of
16266         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16267         PROMOTE_PROTOTYPES.
16268         (RETURN_IN_MEMORY): Remove.
16269         (STRUCT_VALUE_REGNUM): Likewise.
16270         (STRICT_ARGUMENT_NAMING): Likewise.
16271
16272 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16273
16274         PR target/13666
16275         * config/sparc/sparc.c (function_arg_union_value): New function.
16276         (function_arg): Use it to deal with unions.
16277         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16278         Replace a conditional statement by a simpler one.
16279
16280 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16281
16282         * config/mips/mips.c (mips16_optimize_gp): Delete.
16283         (mips_reorg): Don't call it.
16284
16285 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16286
16287         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16288         (floatunsqihf2): Remove operand 6.
16289         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16290         fix patterns.
16291         (ldi_conditional, ldf_conditional): Validate operands.
16292
16293 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16294
16295         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16296         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16297
16298 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16299
16300         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16301         memory references if TARGET_EXPOSE_LDP nonzero.
16302
16303 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16304
16305         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16306
16307 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16308
16309         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16310         invalid operand combinations.
16311
16312 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16313
16314         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16315         c4x_legitimate_address_p.  Fix post_modify check.
16316
16317         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16318         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16319
16320 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16321
16322         * config/pa/pa-protos.h: Remove the prototype for
16323         hppa_builtin_saveregs.  Add a prototype for
16324         pa_return_in_memory.
16325         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16326         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16327         (TARGET_STRUCT_VALUE_RTX): Likewise.
16328         (TARGET_RETURN_IN_MEMORY): Likewise.
16329         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16330         (pa_struct_value_rtx): Likewise.
16331         (pa_return_in_memory): Likewise.
16332         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16333         PA_STRUCT_VALUE_REGNUM.
16334         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16335         (EXPAND_BUILTIN_SAVEREGS): Remove.
16336         (PROMOTE_PROTOTYPES): Likewise.
16337         (PROMOTE_FUNCTION_RETURN): Likewise.
16338
16339 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16340
16341         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16342         (TARGET_STRUCT_VALUE_RTX): Likewise.
16343         (vax_struct_value_rtx): Likewise.
16344         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16345         VAX_STRUCT_VALUE_REGNUM.
16346         (PROMOTE_PROTOTYPES): Remove.
16347
16348 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16349
16350         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16351
16352 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
16353
16354         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16355         and MIPS64 have HI/LO interlocks.  Update comment.
16356
16357 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16358
16359         * config/stormy16/stormy16-protos.h: Remove the prototype for
16360         xstormy16_setup_incoming_varargs.
16361         * config/stormy16/stormy16.c
16362         (xstormy16_setup_incoming_varargs): Remove.
16363         (xstormy16_return_in_memory): New.
16364         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16365         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16366         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16367         (TARGET_STRUCT_VALUE_RTX): Likewise.
16368         (TARGET_RETURN_IN_MEMORY): Likewise.
16369         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16370         (PROMOTE_FUNCTION_RETURN): Likewise
16371         (PROMOTE_PROTOTYPES): Likewise
16372         (RETURN_IN_MEMORY): Likewise
16373         (STRUCT_VALUE): Likewise
16374         (SETUP_INCOMING_VARARGS): Likewise
16375
16376 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16377
16378         * config/mips/mips.c (mips_offset_within_object_p): New function.
16379         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16380         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16381         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16382
16383 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16384
16385         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16386         (PROMOTE_FUNCTION_RETURN): Likewise.
16387
16388 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16389
16390         * config/mn10300/mn10300-protos.h: Remove the prototype for
16391         mn10300_builtin_saveregs.
16392         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16393         (TARGET_STRUCT_VALUE_RTX): Likewise.
16394         (TARGET_RETURN_IN_MEMORY): Likewise.
16395         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16396         (mn10300_return_in_memory): Likewise.
16397         (mn10300_builtin_saveregs): Make it static.
16398         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16399         (RETURN_IN_MEMORY): Likewise.
16400         (STRUCT_VALUE): Likewise.
16401         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16402
16403 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16404
16405         PR bootstrap/13853
16406         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16407
16408 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16409
16410         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16411         using ccr.
16412
16413 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16414
16415         * config/i860/i860-protos.h: Remove the prototype for
16416         i860_saveregs.
16417         * config/i860/i860.c (i860_saveregs): Make it static.
16418         (i860_struct_value_rtx): New.
16419         (TARGET_STRUCT_VALUE_RTX): Likewise.
16420         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16421         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16422         I860_STRUCT_VALUE_REGNUM.
16423         (EXPAND_BUILTIN_SAVEREGS): Remove.
16424
16425 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16426
16427         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16428         (TARGET_RETURN_IN_MEMORY): Likewise.
16429         (m68hc11_struct_value_rtx): Likewise.
16430         (m68hc11_return_in_memory): Likewise.
16431         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16432         of PROMOTE_PROTOTYPES.
16433         (RETURN_IN_MEMORY): Remove.
16434         (STRUCT_VALUE_REGNUM): Likewise.
16435
16436 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16437
16438         * config/mmix/mmix-protos.h: Remove the prototype for
16439         mmix_setup_incoming_varargs.
16440         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16441         (TARGET_STRUCT_VALUE_RTX): Likewise.
16442         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16443         (mmix_setup_incoming_varargs): Make it static.
16444         (mmix_struct_value_rtx): New.
16445         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16446         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16447         (STRUCT_VALUE_REGNUM): Remove.
16448         (SETUP_INCOMING_VARARGS): Likewise.
16449
16450 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16451
16452         * config/mips/mips-protos.h: Remove the prototypes for
16453         mips_setup_incoming_varargs and mips_return_in_memory.
16454         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16455         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16456         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16457         (TARGET_STRUCT_VALUE_RTX): Likewise.
16458         (TARGET_RETURN_IN_MEMORY): Likewise.
16459         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16460         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16461         (mips_setup_incoming_varargs): Match the prototype for
16462         TARGET_SETUP_INCOMING_VARARGS.
16463         (mips_return_in_memory): Make it static.  Add argument fntype.
16464         (mips_strict_argument_naming): New.
16465         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16466         (PROMOTE_FUNCTION_ARGS): Likewise.
16467         (PROMOTE_FUNCTION_RETURN): Likewise.
16468         (STRUCT_VALUE): Likewise.
16469         (RETURN_IN_MEMORY): Likewise.
16470         (SETUP_INCOMING_VARARGS): Likewise.
16471         (STRICT_ARGUMENT_NAMING): Likewise.
16472
16473 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16474
16475         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16476         (TARGET_RETURN_IN_MEMORY): Likewise.
16477         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16478         (ip2k_return_in_memory): Likewise.
16479         (ip2k_setup_incoming_varargs): Likewise.
16480         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16481         (STRUCT_VALUE): Likewise.
16482         (STRUCT_VALUE_INCOMING): Likewise.
16483         (SETUP_INCOMING_VARARGS): Likewise.
16484
16485 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16486
16487         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16488         (TARGET_RETURN_IN_MEMORY): Likewise.
16489         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16490         (avr_return_in_memory): Remove.
16491         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16492         (STRUCT_VALUE): Likewise.
16493         (STRUCT_VALUE_INCOMING): Likewise.
16494         (STRICT_ARGUMENT_NAMING): Likewise.
16495
16496 2004-01-25  Jan Hubicka  <jh@suse.cz>
16497
16498         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16499
16500 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16501
16502         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16503         (mips_regno_mode_ok_for_base_p): Declare.
16504         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16505         (FRAME_POINTER_REGNUM): Renumber to 78.
16506         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16507         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16508         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16509         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16510         (REG_MODE_OK_FOR_BASE_P): Likewise.
16511         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16512         entry for 77 to "$arg" and entry for 78 to "$frame".
16513         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16514         (mips_reg_mode_ok_for_base_p): Remove.
16515         (mips_regno_mode_ok_for_base_p): New function, derived from old
16516         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16517         restrictions unless we're being strict.
16518         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16519
16520 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16521
16522         * c-common.h: Fix comment typos.
16523         * c-decl.c: Likewise.
16524         * cgraphunit.c: Likewise.
16525         * combine.c: Likewise.
16526         * et-forest.c: Likewise.
16527         * flow.c: Likewise.
16528         * function.c: Likewise.
16529         * ifcvt.c: Likewise.
16530         * integrate.c: Likewise.
16531         * jump.c: Likewise.
16532         * postreload.c: Likewise.
16533         * varray.c: Likewise.
16534
16535 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16536
16537         * doc/frontends.texi: Update copyright.
16538         * doc/gcov.texi: Likewise.
16539         * doc/gty.texi: Likewise.
16540         * doc/sourcebuild.texi: Likewise.
16541         * doc/standards.texi: Likewise.
16542
16543 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16544
16545         PR target/12978
16546         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16547         Remove movstrqi_small because it conflicts with movstrqi_large.
16548
16549 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16550
16551         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16552         (TARGET_STRUCT_VALUE_RTX): Likewise.
16553         (cris_struct_value_rtx): Likewise.
16554         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16555         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16556         STRUCT_VALUE_REGNUM.
16557         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16558
16559 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16560
16561         PR bootstrap/13848
16562         * cse.c (cse_cc_succs): Change the mode of the source expression
16563         as soon as decide we need a new mode.  Don't permit changing modes
16564         if we found a match in a successor block.
16565         (cse_condition_code_reg): Save original mode of source expression
16566         so that we know whether we have to change the mode in other
16567         insns.
16568
16569 2004-01-24  Jan Hubicka  <jh@suse.cz>
16570
16571         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16572         widen_memory_access):  Return early when there is nothing to change.
16573
16574 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16575
16576         * simplify-rtx.c (simplify_relational_operation): Don't
16577         simplify address == constant into address + -constant == 0.
16578
16579 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16580
16581         * gcc.c (process_command): Don't internationalize the
16582         Copyright message.
16583         * mips-tfile.c (main): Likewise.
16584
16585 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16586
16587         * cse.c: (cse_cc_succs) Fix comparison warning.
16588
16589 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16590
16591         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16592
16593 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16594
16595         * config/h8300/h8300-protos.h: Provide prototypes for
16596         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16597         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16598         (h8300_rtx_ok_for_base_p): Likewise.
16599         (h8300_legitimate_address_p): Likewise.
16600         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16601         h8300_legitimate_constant_p.
16602         (RTX_OK_FOR_BASE_P): Remove.
16603         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16604
16605 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16606
16607         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16608         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16609         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16610         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16611         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16612         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16613         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16614         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16615
16616 2004-01-24  Jan Hubicka  <jh@suse.cz>
16617
16618         * cselib.c (remove_useless_values):  Do not access discarded values.
16619
16620 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16621
16622         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16623         arrays.
16624
16625 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16626
16627         * recog.c: Fix a typo in copyright.
16628
16629 2004-01-23  Andrew Pinski  <apinski@apple.com>
16630
16631         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16632         (call_value): Likewise.
16633
16634 2004-01-23  Richard Henderson  <rth@redhat.com>
16635
16636         PR opt/12941
16637         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16638         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16639         if SHIFT_COUNT_TRUNCATED is set.
16640
16641 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16642
16643         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16644         separate real and imaginary parts.
16645         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16646
16647 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16648
16649         PR target/13674
16650         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16651         loading into GPR.
16652
16653 2004-01-23  Jan Hubicka  <jh@suse.cz>
16654
16655         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16656         change.
16657
16658         * alloc-pool.c (align_four): Kill.
16659         (create_alloc_pool): Align size to eight.
16660         (free_alloc_pool, free_pool): Invalidate deallocated data.
16661
16662 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16663
16664         PR gcc/1532
16665         * cse.c (cse_change_cc_mode): New static function.
16666         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16667         (cse_condition_code_reg): New function.
16668         * rtl.h (cse_condition_code_reg): Declare.
16669         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16670         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16671         cc_modes_compatible.
16672         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16673         (TARGET_CC_MODES_COMPATIBLE): Define.
16674         (TARGET_INITIALIZER): Add new initializers.
16675         * targhooks.c (default_cc_modes_compatible): New function.
16676         * targhooks.c (default_cc_modes_compatible): Declare.
16677         * hooks.c (hook_bool_intp_intp_false): New function.
16678         * hooks.h (hook_bool_intp_intp_false): Declare.
16679         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16680         (TARGET_CC_MODES_COMPATIBLE): Define.
16681         (ix86_fixed_condition_code_regs): New static function.
16682         (ix86_cc_modes_compatible): Likewise.
16683         * doc/tm.texi (Condition Code): Document new hooks.
16684
16685 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16686
16687         * fixinc/inclhack.def (bad_lval): Renamed to ...
16688         (alpha_bad_lval): ... this.
16689         Removed file list.
16690         Restrict to alpha*-dec-osf*.
16691         * fixinc/fixincl.x: Regenerate.
16692         * fixinc/tests/base/dirent.h: Remove, moving test ...
16693         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16694
16695 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16696
16697         PR c/13814
16698         * c-decl.c (diagnose_mismatched_decls): Also discard a
16699         built-in if we encounter an old-style definition with the
16700         same name.
16701
16702 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16703
16704         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16705         set to default{32,64}.
16706
16707 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16708
16709         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16710         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16711
16712 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16713             Olivier Hainque  <hainque@act-europe.fr>
16714
16715         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16716         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16717
16718 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16719
16720         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16721         size for minipool references.
16722
16723 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16724
16725         * real.c (real_floor, real_ceil): Tweak to allow input and output
16726         arguments to overlap.
16727         (real_round): New function to implement round(3m) semantics.
16728         * real.h (real_round): Prototype here.
16729         * builtins.c (fold_builtin_round): New function to constant fold
16730         round, roundf and roundl.
16731         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16732
16733 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16734
16735         PR optimization/13819
16736         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16737         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16738         (sh_handle_sp_switch_attribute): Remove warning.
16739
16740 2004-01-23  Jan Hubicka  <jh@suse.cz>
16741
16742         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16743
16744 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16745
16746         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16747         may or may not return non-NIL.
16748         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16749         check CANNOT_CHANGE_MODE_CLASS
16750
16751 2004-01-23  Jan Hubicka  <jh@suse.cz>
16752
16753         * basic-block.h (PROP_POSTRELOAD): New macro.
16754         (CLEANUP_LOG_LINKS): New.
16755         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16756         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16757
16758         * cselib.c (value_pool): New.
16759         (new_cselib_val): Use pool.
16760         (cselib_init): Initialize value_pool
16761         (cselib_finish): Free pool.
16762
16763 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16764
16765         * config/sparc/sparc.c (scan_record_type): New function.
16766         (function_arg_slotno): Use it to determine which kinds of
16767         registers the record can be passed in.
16768
16769 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16770
16771         * config/pa/fptr.c: Fix old-style definition.
16772
16773 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16774
16775         PR optimization/13724
16776         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16777         represents the zero bits produced by a ZERO_EXTEND operation.
16778
16779 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16780
16781         PR optimization/13821
16782         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16783         correctly calculate the lowpart offset of the contracted subreg.
16784
16785 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16786
16787         * doc/invoke.texi (Optimize Options): Note that --param arguments
16788         are subject to change without notice.
16789
16790 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16791
16792         * config.gcc (mips-sgi-irix6*o32): Removed.
16793         * config/mips/iris6-o32-as.h: Likewise.
16794         * config/mips/iris6-o32-gas.h: Likewise.
16795         * config/mips/iris6-o32.h: Likewise.
16796
16797 2004-01-22  Jan Hubicka  <jh@suse.cz>
16798
16799         * cfgcleanup.c (first_pass): New static variable.
16800         (try_forward_edges):  Add work limiting check for threading.
16801         (try_crossjump_bb):  Add work limiting check for crossjumping.
16802         (try_optimize_cfg):  Maintain first pass variable.
16803
16804 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16805
16806         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16807         handles complex and vector modes.
16808
16809 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16810
16811         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16812         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16813         (STRICT): Likewise.
16814
16815 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16816
16817         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16818         (genrtl_for_stmt): Remove emit_nop calls.
16819
16820 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16821
16822         PR target/13713
16823         PR target/13324
16824         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16825         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16826         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16827
16828 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16829
16830         * config/arm/arm.c: Include "debug.h".
16831         (thumb_pushpop): Take two new arguments.  Add some commentary.
16832         Output frame information when pushing.
16833         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16834         thumb_pushpop.
16835         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16836         offset, and pass it to thumb_pushpop.  Output CFI information.
16837         (thumb_expand_prologue): Add some frame-related markers and notes.
16838
16839 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16840
16841         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16842         for TARGET_64BIT.
16843         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16844         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16845
16846 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16847             Paolo Bonzini  <bonzini@gnu.org>
16848
16849         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16850         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16851         * rtl.h (subreg_lsb_1): Prototype here.
16852         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16853         sign extensions.
16854
16855 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16856
16857         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16858         macro need not be defined if jump-tables should contain
16859         relative addresses only when -fPIC or -fPIC is in effect.
16860
16861 2004-01-22  Jan Hubicka  <jh@suse.cz>
16862
16863         * alias.c (reg_base_value): Turn into varray.
16864         (reg_base_value_size): Kill.
16865         (old_reg_base_value): New deletable varray.
16866         (alias_invariant_size): New variable.
16867         (REG_BASE_VALUE): Update to use varray.
16868         (find_base_value): Likewise.
16869         (record_set): Likewise.
16870         (record_base_value): Likewise.
16871         (memrefs_conflict_p): Likewise.
16872         (record_set): Likewise
16873         (record_base_value): Likewise.
16874         (memrefs_conflict_p): Use alias_invariant_size.
16875         (init_alias_analysis): Use varray; set alias_invariant_size;
16876         rescale other arrays to be sized by maxreg.
16877         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16878
16879 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16880
16881         * config/sparc/sparc.c (function_arg_slotno): Use
16882         FLOAT_TYPE_P to detect FP fields in structures.
16883         (function_arg_record_value_1): Likewise.
16884         (function_arg_record_value_2): Likewise.
16885
16886 2004-01-22  Jan Hubicka  <jh@suse.cz>
16887
16888         * function.c (allocate_struct_function): Do not initialize expr, emit
16889         and varasm.
16890         (prepare_function_start): Do it here.
16891         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16892
16893 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16894
16895         PR target/13559
16896         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16897         to 'word_mode' once the first slot has been filled.
16898
16899 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16900
16901         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16902         computation of the number of integer registers required.
16903
16904 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16905
16906         * config/i386/i386.md: Simplify certain comparisons of
16907         const_int.
16908
16909 2004-01-21  Andrew Pinski  <apinski@apple.com>
16910
16911         PR target/13785
16912         * config/rs6000/rs6000.md (call_value): Force operand
16913         1 not operand 0 into a register.
16914
16915 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16916
16917         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16918         unwind-dw2-fde.h: Update copyright.
16919
16920 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16921
16922         * pa-protos.h: Update copyright.
16923         * pa.h: Likewise.
16924         * pa.md: Likewise.
16925
16926 2004-01-21  Caroline Tice  <ctice@apple.com>
16927
16928         PR target/12308
16929         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16930         flags register.
16931         (fix_truncdfdi2): Likewise.
16932         (fix_truncsfdi2): Likewise.
16933         (*fix_truncdi_1): Likewise.
16934         (fix_truncxfsi2): Likewise.
16935         (fix_truncdfsi2): Likewise.
16936         (fix_truncsfsi2): Likewise.
16937         (*fix_truncsi_1): Likewise.
16938         (fix_truncxfhi2): Likewise.
16939         (fix_truncdfhi2): Likewise.
16940         (fix_truncsfhi2): Likewise.
16941         (*fix_trunchi_1): Likewise.
16942
16943 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16944
16945         * alias.c, basic-block.h, c-common.c, c-common.h,
16946         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16947         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16948         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16949         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16950         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16951         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16952         genautomata.c, genconditions.c, genemit.c, genflags.c,
16953         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16954         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16955         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16956         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16957         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16958         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16959         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16960         unwind.h, varray.c, varray.h: Update copyright.
16961
16962 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16963
16964         * config/h8300/coff.h: Update copyright.
16965         * config/h8300/elf.h: Likewise.
16966         * config/h8300/h8300-protos.h: Likewise.
16967         * config/h8300/h8300.c: Likewise.
16968         * config/h8300/h8300.h: Likewise.
16969         * config/h8300/h8300.md: Likewise.
16970
16971 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16972
16973         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16974         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16975         ultrix_unistd): New hacks.
16976         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16977         ULTRIX_CONST2_CHECK): Add checks.
16978         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16979         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16980         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16981         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16982         * fixinc/tests/base/locale.h: New file.
16983         * fixinc/fixincl.x: Rebuilt.
16984
16985 2004-01-21  Andreas Jaeger  <aj@suse.de>
16986             Michael Matz  <matz@suse.de>
16987
16988         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16989
16990 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16991
16992         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16993         _Jv_RegisterClasses through a function pointer.
16994
16995 2004-01-21  Falk Hueffner  <falk@debian.org>
16996
16997         PR target/12898
16998         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16999         no_new_pseudos, use gen_rtx_SET directly for SImode constants
17000         which need multiple instructions to emit.
17001
17002 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
17003
17004         * config/m32r/m32r.h (CPP_SPEC): Define.
17005
17006 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
17007
17008         * c-decl.c (merge_decls): Kill different_binding_level and
17009         different_tu arguments; simplify throughout.
17010         (duplicate_decls): Likewise.
17011         (pushdecl, merge_translation_unit_decls): Update calls to
17012         duplicate_decls.
17013
17014 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17015
17016         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
17017         $(SYSTEM_H).
17018         (print-rtl1.o): Depend on $(SYSTEM_H).
17019
17020 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17021
17022         PR bootstrap/12730
17023         * configure.ac: Delete definition and subsitution of docdir.
17024         Add info, man, srcman and srcinfo to target hooks. Create doc/
17025         directory.
17026         * configure: Regenerate.
17027         * Makefile.in: Don't substitute docdir and delete all references
17028         throughout.
17029         (MAKEINFOFLAGS): Define.
17030         (stmp-docobjdir): Delete.
17031         (INFOFILES, MANFILES): Define.
17032         (info): Call lang.info, srcinfo and lang.srcinfo.
17033         (generated-manpages): Call lang.man, srcman and lang.srcman.
17034         (srcinfo, srcman): New rules to copy back files to source directory.
17035         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
17036         (install-man): Revamp rule.
17037         (clean): Update dvi directory.
17038         (distclean): Delete TAGS from front end directorys.
17039         (maintainer-clean): Delete all document files in source directory.
17040
17041         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
17042         (objc.srcman, objc.srcinfo): Likewise.
17043
17044 2004-01-20  Bruce Korb  <bkorb@gnu.org>
17045
17046         * fixinc/inclhack.def(math_exception): bypass only for glibc.
17047         (matherr_decl): rename & relocate as exception_structure.
17048         This fix must precede the math_exception fix.
17049
17050 2004-01-20  Roger Sayle  <roger@eyesopen.com>
17051
17052         * fold-const.c (fold_convert): Rename to fold_convert_const.
17053         (fold_convert_const): Change arguments to take a tree_code,
17054         a type and the operand/expression to be converted.  Return
17055         NULL_TREE if no simplification is possible.  Add support for
17056         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
17057         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
17058         Adjust call to fold_convert to match new fold_convert_const.
17059         Avoid modifying the tree passed to fold in-place.
17060
17061 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
17062
17063         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
17064         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
17065         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
17066
17067 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17068
17069         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
17070         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
17071         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
17072         (emit_move_sequence): Check scratch_reg first in various if statements.
17073         Extend source simplification to handle all 64-bit CONST_INTs.
17074         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
17075         frame size.
17076         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
17077         frame offset calculations.
17078         * pa.h (NEW_HP_ASSEMBLER): Add comment.
17079         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
17080         LEGITIMATE_64BIT_CONST_INT_P): Define.
17081         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
17082         any CONST_INT as legitimate during and after reload.
17083         (VAL_32_BITS_P, INT_32_BITS): Define.
17084         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
17085
17086 2004-01-20  Jan Hubicka  <jh@suse.cz>
17087
17088         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
17089         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
17090         containing hard regs are shared.
17091         (gen_hard_reg_clobber): New function.
17092         (hard_reg_clobbers): New array.
17093         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
17094         (copy_rtx): Do not copy clobbers containing hard regs.
17095         * rtl.h (gen_hard_reg_clobber): Declare.
17096
17097 2004-01-20  Jan Hubicka  <jh@suse.cz>
17098
17099         * varray.c:  Include hashtab.h
17100         (varray_descriptor): New structure.
17101         (hash_descriptor, eq_descriptor, varray_descriptor,
17102         print_statistics): New static functions
17103         (varray_init, varray_grow): Update statistics
17104         (dump_varray_statistics): New function.
17105         * varray.h (dump_varray_statistics): Declare.
17106         * toplev.c (finalize): Call it.
17107         * Makefile.in (varray.o): Add dependency.
17108
17109 2004-01-20  Jan Hubicka  <jh@suse.cz>
17110
17111         * cselib.c: Include alloc-pool.h
17112         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17113         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17114         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17115         unchain_one_elt_loc_list_pool, unchain_one_value,
17116         new_cselib_val): Simplify using allocpool.
17117         (cselib_init): Initialize allocpools.
17118         (cselib_finish): Finish allocpools.
17119         * Makefile.in (cselib.o): Depend on alloc-pool.h
17120
17121 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
17122
17123         * config/mips/mips.c (mips_load_call_address): Make the call insn
17124         use $gp if it could be calling a lazy binding stub.
17125
17126 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17127
17128         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17129         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17130         (TARGET_STRUCT_VALUE_RTX): Likewise.
17131         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17132         (PROMOTE_FUNCTION_RETURN): Remove.
17133         (STRUCT_VALUE): Remove.
17134
17135 2004-01-20  Denis Chertykov  <denisc@overta.ru>
17136
17137         PR bootstrap/13735
17138         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17139         register as pointer after reload.
17140
17141 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17142
17143         PR optimization/12440
17144         * loop.c: Include ggc.h.
17145         (loop_optimize): Run garbage collector between optimization of loops.
17146         * Makefile.in (loop.o): Add GGC_H dependency.
17147
17148 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
17149
17150         * gcc/config/rs6000/rs6000.c (function_arg) Handle
17151         vector register special in function without prototype.
17152         (function_arg_advance): Vector parameters get always
17153         GPRs allocated for the linux64 target.
17154
17155 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17156
17157         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17158         not TARGET_M32RX_MASK.
17159
17160 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
17161
17162         PR target/13557
17163         * config/sparc/sparc.c (function_arg): Reorder the cases.
17164
17165 2004-01-19  Per Bothner  <per@bothner.com>
17166
17167         Move cpp_reader's line_maps field to a shared global.
17168         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
17169         and change the type to a pointer rather than a struct.
17170         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
17171         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17172         Likewise.
17173         * cppfiles.c (validate_pch):  Likewise.
17174         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17175         Likewise.
17176         * cpperror.c (print_location):  Likewise.
17177         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
17178         * cppinit.c (cpp_create_reader):  Handle new parameter.
17179         (cpp_destroy):  Don't free line_maps - that's no longer our job.
17180         * input.h (line_table):  New variable.
17181         * toplev.c (line_table):  Declare variable.
17182         (general_init):  Initialize line_table.
17183         * c-opts.c (c_common_init_options):  Pass line_table to
17184         cpp_create_reader.
17185         * fix-header.c (read_scan_file):  New local variable line_table.
17186         Initialize, and pass it to cpp_create_reader.
17187         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
17188         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
17189
17190 2004-01-19  Per Bothner  <per@bothner.com>
17191
17192         Implement a cache for linemap_lookup.
17193         * line-map.h (struct_line_maps):  Add cache field.
17194         * line-map.c (linemap_init):  Zero cache field.
17195         (linemap_add):  Set cache field to offset of newly allocated map.
17196         (linemap_lookup):  Use and set cache field.
17197
17198 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17199
17200         PR optimization/13567
17201         * cse.c (cse_basic_block): Call cse_insn with a non-null
17202         libcall_insn for the last SET insn of a no-confilict block.
17203
17204 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17205
17206         * Makefile.in (target_noncanonical, program_transform_name): Use
17207         immediate define instead of deferred.
17208         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17209         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17210         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17211         deferred backquote.
17212
17213 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
17214
17215         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17216         true unconditionally.
17217         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17218         Remove.
17219         (build_unary_op, build_modify_expr): Don't handle extended
17220         lvalues.
17221         (build_component_ref, build_conditional_expr): Call non_lvalue
17222         instead of pedantic_non_lvalue.
17223         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17224         * fold-const.c (fold): Don't check pedantic directly for
17225         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17226         passed to pedantic_non_lvalue.
17227         * doc/extend.texi: Remove documentation of extended lvalues.
17228
17229 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17230
17231         PR optimization/5263
17232         * simplify-rtx.c (associative_constant_p): Delete.
17233         (simplify_associative_operation): Rewrite to linearize terms, and
17234         attempt to simplify new term against both left and right subterms.
17235         (simplify_binary_operation): Call swap_commutative_operands_p on
17236         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17237         trueop0 and trueop1 down to where first needed.
17238         (simplify_relational_operation): Likewise.
17239         * rtlanal.c (commutative_operand_precedence): Also order constant
17240         operands using avoid_constant_pool_reference.
17241
17242 2004-01-19  Richard Henderson  <rth@redhat.com>
17243
17244         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17245         don't check memory mode.
17246         (unaligned_memory_operand): Likewise.
17247         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17248         abort for op0 not MEM.
17249
17250         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17251         is not a reg, copy to a scratch first.
17252         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17253         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17254         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17255         (reload_inqi, reload_inhi): Fix mode of op0.
17256         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17257         reload_outhi_help): Likewise.  Use define_insn_and_split.
17258
17259         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17260         as well as $29 dead.
17261
17262 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17263
17264         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17265         "tls_object" for thread-local objects.
17266         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17267         "#tls" for thread-local sections.
17268         * configure.ac (thread-local checks): Specify --fatal-warnings in
17269         every binutils-specific checks.  For sparc*-*-*, test whether the
17270         OS is Solaris and the tools are native and act accordingly.
17271         * configure: Rebuild.
17272
17273 2004-01-19  Jeff Law  <law@redhat.com>
17274
17275         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17276         Jerry Quinn and Petur Runolfsson.
17277
17278 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17279
17280         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17281         size, don't use the larger zero-extending loads.
17282
17283 2004-01-19  Richard Henderson  <rth@redhat.com>
17284
17285         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17286         * alpha.md (UNSPEC_NT_LDA): Remove.
17287         (UNSPEC_CVTLQ, cvtlq): New.
17288         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17289         (extendsidi2_fix): Remove.
17290         (extendsidi2 splitter): Use cvtlq.
17291         (extendsidi2 fp peepholes): Remove.
17292         (cvtql): Use SFmode instead of SImode.
17293         (fix_trunc?fsi): Update to match.
17294         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17295         (movsi): Rename from movsi_nofix, remove f alternatives.
17296         (movsi_nt_vms): Similarly.
17297         (movsi_fix, movsi_nt_vms_fix): Remove.
17298         (nt_lda): Remove.
17299         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17300
17301 2004-01-19  Jan Hubicka  <jh@suse.cz>
17302
17303         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17304         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17305         list.
17306         (cgraph_remove_unreachable_nodes): New function
17307         (cgraph_decide_inlining_of_small_function): Fix pasto.
17308         (cgraph_decide_inlining_incrementally): Fix pasto.
17309         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17310
17311 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17312
17313         * gengtype.c (header_file): Make it static.
17314         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17315         * gengtype.h (header_file): No longer extern.
17316
17317 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17318
17319         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17320         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17321         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17322
17323 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17324
17325         * stmt.c (HAVE_casesi): Define it not already defined.
17326         (HAVE_tablejump): Likewise.
17327         (expand_end_case_type): Resort to the binary tree method if
17328         neither casesi or tablejump is available.
17329
17330 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17331
17332         * final.c (final_scan_insn): Make non-static again.
17333         * output.h (final_scan_insn): Re-add prototype.
17334         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17335         to final_scan_insn call.
17336         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17337         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17338         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17339         * config/sh/sh.c (print_slot): Likewise.
17340         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17341         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17342
17343 2004-01-18  Jan Hubicka  <jh@suse.cz>
17344
17345         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17346         * cfgcleanup.c (try_optimize_cfg): Use it.
17347         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17348         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17349         Kill hack.
17350         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17351
17352         Revert:
17353         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17354
17355                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17356                 even after reload, just don't remove the actual jump tables.
17357
17358 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17359
17360         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17361
17362 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17363
17364         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17365         the size of a pointer in bytes.
17366
17367 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17368
17369         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17370         live "next" variable, which could lead to an infinite loop.
17371
17372 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17373
17374         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17375         block.
17376
17377         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17378         Check for NULL in the chain and remove repeated code.
17379
17380 2004-01-18  Jan Hubicka  <jh@suse.cz>
17381
17382         * coverage.c (checksum_string): Rename to ...
17383         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17384         names containing random number and zero the number out in order to get
17385         match.
17386
17387 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17388
17389         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17390
17391 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17392
17393         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17394         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17395         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17396         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17397         doc/trouble.texi: Remove trailing whitespace.
17398
17399 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17400
17401         PR target/7618
17402         * config/mips/mips.c: Include cfglayout.h.
17403         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17404         (mips_unspec_offset_high): Add temporary register argument.
17405         (mips_load_call_address): New function, split out from...
17406         (mips_expand_call): ...here.
17407         (mips_output_cplocal): New function.
17408         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17409         (mips_emit_loadgp): New function, split out from...
17410         (mips_expand_prologue): ...here.
17411         (mips_output_mi_thunk): New function.
17412
17413 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17414
17415         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17416         mcpu32): Remove redundant checks for implied target predefines.
17417
17418 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17419
17420         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17421         Return type is unsigned int not int.
17422         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17423         Likewise.
17424
17425 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17426
17427         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17428         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17429         "GNU/Linux" and "Microsoft Windows" terminology.
17430
17431 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17432
17433         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17434         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17435         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17436         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17437         @smallexample instead of @example.
17438
17439 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17440
17441         * objc/objc-act.c (build_objc_method_call): Use target
17442         hooks instead of macros to determine if ..._stret
17443         dispatchers should be used (NeXT runtime only).
17444
17445 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17446
17447         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17448         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17449
17450 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17451
17452         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17453         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17454         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17455         macros.
17456         * reload1.c (emit_reload_insns): Use them.
17457         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17458         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17459         for NULL PATTERN.
17460
17461 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17462
17463         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17464         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17465         a line note after the prologue.  Make static.
17466         (line_note_exists): Remove.
17467         (final): Don't initialize line_note_exists.  Update call to
17468         final_scan_insn.
17469         * output.h (final_scan_insn): Remove prologue.
17470         * function.c (set_insn_locators): Update comment.
17471         (thread_prologue_and_epilogue_insns): Add a comment.
17472
17473 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17474
17475         PR target/10781
17476         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17477         Prototype.
17478         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17479         New function.
17480         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17481         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17482         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17483
17484 2004-01-17  Jan Hubicka  <jh@suse.cz>
17485
17486         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17487         commit.
17488
17489         * toplev.c (HAVE_conditional_execution): Provide default.
17490         (rest_of_handle_reorder_blocks): For conditional_execution target
17491         update liveness once after all transformations
17492         (rest_of_compilation): Do crossjumping before ce3.
17493
17494 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17495
17496         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17497         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17498         for PCH.
17499         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17500         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17501         (get_TOC_alias_set): Mark 'set' for PCH.
17502
17503 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17504
17505         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17506         even after reload, just don't remove the actual jump tables.
17507
17508 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17509
17510         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17511         Remove checks for is_ada() and TREE_UNSIGNED.
17512         (subrange_type_die): Emit a byte_size attribute if the subrange
17513         type size is different from the base type size.
17514         (modified_type_die): Replace call to is_ada_subrange_type() by
17515         call to is_subrange_type().
17516
17517 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17518
17519         * config/sh/sh.c: Include ggc.h.
17520
17521 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17522
17523         * Makefile.in (MD5_H): New.
17524         (fold-const.o): Depend on md5.h.
17525         (dwarf2out.o): Likewise.
17526         (cppfiles.o): Likewise.
17527         * cppfiles.c: Include md5.h.
17528         (should_stack_file): Check against list read from PCH file.
17529         (struct pchf_data): New.
17530         (pchf): New variable.
17531         (struct pchf_adder_info): New.
17532         (pchf_adder): New.
17533         (pchf_save_compare): New.
17534         (_cpp_save_file_entries): New.
17535         (_cpp_read_file_entries): New.
17536         (struct pchf_compare_data): New.
17537         (pchf_compare): New.
17538         (check_file_against_entries): New.
17539         * cpphash.h (_cpp_save_file_entries): Prototype.
17540         (_cpp_read_file_entries): Prototype.
17541         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17542         (cpp_read_state): Read the list of headers.
17543
17544 2004-01-17  Jan Hubicka  <jh@suse.cz>
17545
17546         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17547         builtin_expect specially.
17548         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17549         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17550         * invoke.texi (max-inline-insns-single): Set to 100.
17551         (large-function-insns): Set to 3000.
17552
17553 2004-01-16  Eric Christopher  <echristo@redhat.com>
17554             Chandrakala Chavva <cchavva@redhat.com>
17555
17556         * cppcharset.c (one_iso88591_to_utf8): New function.
17557         (convert_iso88591_utf8): Ditto. Use.
17558         (conversion_tab): Use.
17559         (_cpp_input_to_utf8): New function.
17560         (_cpp_init_iconv_buffer): Ditto.
17561         (_cpp_close_iconv_buffer): Ditto.
17562         * cpphash.h: Prototype new functions.
17563         (cpp_buffer): Add input_cset_desc.
17564         * cppinit.c: Add input_charset default.
17565         * cpplib.c (cpp_push_buffer): Support init and
17566         close of iconv.
17567         * cpplib.h (cpp_options): Add input_charset.
17568
17569 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17570
17571         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17572         * config/alpha/unicosmk.h: Remove a commented-out definition
17573         of ASM_OUTPUT_SECTION_NAME.
17574         * config/stormy16/stormy16.h: Likewise.
17575
17576 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17577
17578         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17579         (alpha___extern_prefix_sys_stat): ... this.
17580         Apply to <sys/mount.h>, too.
17581         Tweak to match more variations.
17582         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17583
17584         * fixinc/inclhack.def (alpha___extern_prefix,
17585         alpha___extern_prefix_standards): New hacks to obey
17586         __PRAGMA_EXTERN_PREFIX.
17587         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17588         test.
17589         * fixinc/tests/base/standards.h: Likewise.
17590
17591         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17592         variations.
17593         New testcase.
17594         * fixinc/tests/base/pthread.h: Handle it.
17595
17596         * fixincl/inclhack.def (bad_lval): Sort file list.
17597         Add many missing files up to Tru64 UNIX V5.1B.
17598         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17599         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17600         order.
17601
17602         * fixinc/fixincl.x: Regenerate.
17603
17604 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17605
17606         * version.c (version_string): Change to 3.5.0.
17607         * doc/include/gcc-common.texi (version-GCC): Likewise.
17608
17609 2004-01-16  Jan Hubicka  <jh@suse.cz>
17610
17611         * i386.md (load_tp_di): Fix pasto.
17612
17613         PR opt/13608
17614         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17615
17616         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17617         pp_c_character_constant, pp_c_floating_constant,
17618         pp_c_additive_expression, pp_c_shift_expression,
17619         pp_c_equality_expression, pp_c_and_expression,
17620         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17621         pp_c_logical_and_expression): Remove inline modifier.
17622         * dwarf2out.c (get_AT): Likewise.
17623         * et-forest.c (et_splay): Likewise.
17624         * ra.h (ra_alloc, ra_calloc): Likewise
17625
17626 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17627
17628         * config/frv/frv-protos.h: Fix comment formatting.
17629         * config/frv/frv.c: Likewise.
17630         * config/frv/frv.h: Likewise.
17631         * config/frv/frv.md: Likewise.
17632         * config/frv/frvbegin.c: Likewise.
17633         * config/frv/frvend.c: Likewise.
17634
17635 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17636
17637         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17638         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17639         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17640         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17641
17642 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17643
17644         PR 11864
17645         * postreload.c (reload_cse_simplify_operands): Don't remove
17646         implicit extension from LOAD_EXTEND_OP.
17647
17648 2004-01-16  Jan Hubicka  <jh@suse.cz>
17649
17650         PR opt/11350
17651         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17652         after reload.
17653         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17654         rtl_try_redirect_by_replacing_branch): Likewise.
17655
17656 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17657
17658         PR pch/13689
17659         * alias.c (struct alias_set_entry): Mark for GC.
17660         (alias_sets): Make static, mark for GC.
17661         (record_alias_subset): Use GC to allocate alias structures.
17662         * varray.c (element): Make generic varrays GCed.
17663
17664         PR pch/13361
17665         * c-typeck.c (constructor_asmspec): Delete.
17666         (struct initializer_stack): Delete field 'asmspec'.
17667         (start_init): Delete saving of asmspec.
17668         (finish_init): Don't update constructor_asmspec.
17669         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17670         * stmt.c (expand_asm): Duplicate strings from tree.
17671         (expand_asm_operands): Likewise.
17672         * tree.c (tree_size): Update computation of size of STRING_CST.
17673         (make_node): Don't make STRING_CST nodes.
17674         (build_string): Allocate string with tree node.
17675         * tree.def (STRING_CST): Update comment.
17676         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17677         (tree_string): Place contents of string in tree node.
17678         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17679         from tree.
17680
17681         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17682         altivec operands.
17683
17684 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17685
17686         * c-common.h: Fix comment formatting.
17687         * c-cppbuiltin.c: Likewise.
17688         * c-pragma.c: Likewise.
17689         * calls.c: Likewise.
17690         * collect2.c: Likewise.
17691         * cppcharset.c: Likewise.
17692         * cpptrad.c: Likewise.
17693         * dbxout.c: Likewise.
17694         * defaults.h: Likewise.
17695         * dwarf2out.c: Likewise.
17696         * fold-const.c: Likewise.
17697         * genautomata.c: Likewise.
17698         * genconditions.c: Likewise.
17699         * genflags.c: Likewise.
17700         * gengtype.c: Likewise.
17701         * integrate.c: Likewise.
17702         * loop.c: Likewise.
17703         * predict.c: Likewise.
17704         * sdbout.c: Likewise.
17705
17706 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17707
17708         * config/ia64/ia64.md (*movti_internal): C output template
17709         extracted to ia64.c.
17710         (*movti_internal_reg): Delete.
17711         (reload_inti, reload_outti): Use the correct mode on operand 2
17712         in the first place, don't fix it up in the output template.
17713         (movtf, reload_ointf, reload_outtf): New expanders.
17714         (*movtf_internal): New define_insn_and_split.
17715         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17716         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17717         (ia64_split_tmode_move): New function, body mostly pulled
17718         from ia64.md:*movti_internal.
17719         (ia64_function_arg_words): New function, extracted common
17720         logic from ia64_function_arg et seq.
17721         (ia64_function_arg_offset): Likewise.  Handle correctly the
17722         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17723         (ia64_function_arg, ia64_function_arg_partial_nregs)
17724         (ia64_function_arg_advance): Use ia64_function_arg_words and
17725         ia64_function_arg_offset.
17726         (ia64_function_value): TCmode does not go in float regs.
17727         (ia64_secondary_reload_class): Also handle TFmode.
17728         * config/ia64/ia64-protos.h: Remove prototype for
17729         ia64_split_timode; add prototype for ia64_split_tmode_move.
17730
17731 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17732
17733         * Makefile.in (MAINT): Make it an immediate assignment.
17734
17735 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17736
17737         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17738
17739 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17740
17741         * config/h8300/coff.h: Replace Hitachi with Renesas.
17742         * config/h8300/elf.h: Likewise.
17743         * config/h8300/h8300-protos.h: Likewise.
17744         * config/h8300/h8300.c: Likewise.
17745         * config/h8300/h8300.h: Likewise.
17746         * config/h8300/h8300.md: Likewise.
17747         * config/h8300/lib1funcs.asm: Likewise.
17748
17749 2004-01-15  Andrew Pinski  <apinski@apple.com>
17750
17751         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17752         around it.
17753
17754 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17755
17756         * config/h8300/h8300.c (h8300_return_in_memory): New.
17757         (TARGET_STRUCT_VALUE_RTX): Likewise.
17758         (TARGET_RETURN_IN_MEMORY): Likewise.
17759         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17760         (RETURN_IN_MEMORY): Likewise.
17761
17762 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17763
17764         PR optimization/13375
17765         * gcse.c (handle_avail_expr): Just return if the source is not a
17766         single set.
17767
17768 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17769             Daniel Jacobowitz  <drow@mvista.com>
17770
17771         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17772         (EQUIV): Define.
17773         (ARM_FUNC_ALIAS): New macro.
17774         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17775         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17776
17777 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17778
17779         PR optimization/12372
17780         * calls.c (expand_call): Add call_fusage data for stack arguments in
17781         constant calls.
17782
17783 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17784
17785         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17786         (rs6000_elf_declare_function_name): Formatting.
17787         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17788
17789 2004-01-15  Jan Hubicka  <jh@suse.cz>
17790
17791         PR bootstrap/13692
17792         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17793         previous patch.
17794
17795 2004-01-15  Richard Henderson  <rth@redhat.com>
17796
17797         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17798         integer regs of the same call-savedness.
17799
17800 2004-01-15  Andreas Schwab  <schwab@suse.de>
17801
17802         PR bootstrap/13562
17803         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17804         status for NOTB/NOTW/NEGW methods.
17805
17806 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17807
17808         * doc/invoke.texi: Update dump file names.  Fix a typo.
17809
17810 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17811
17812         * builtins.c (expand_builtin_va_end): Don't use
17813         EXPAND_BUILTIN_VA_END.
17814         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17815         * config/d30v/d30v.h: Remove a commented-out definition of
17816         EXPAND_BUILTIN_VA_END.
17817         * config/stormy16/stormy16.h: Likewise.
17818
17819 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17820
17821         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17822         * targhooks.c (default_struct_value_rtx): Don't use
17823         STRUCT_VALUE_INCOMING_REGNUM.
17824
17825 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17826
17827         PR bootstrap/12744
17828         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17829         GENINSRC and not parsedir.  Define srcextra as a langhook.
17830         * configure: Regenerate.
17831         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17832         parsedir and delete all references throughout.  Conditionally define
17833         rule for srcextra dependent on GENINSRC.
17834         (stmp-docobjdir): Delete.
17835         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17836         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17837         and gengtype-yacc.h back to source directory.
17838         (maintainer-clean): Delete all parse files in source directory.
17839         (distclean): Delete generated files.
17840
17841         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17842         (objc-parse.c, objc-parse.y): Don't use parsedir.
17843         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17844         directory if requested.
17845         (po-generated): Don't use parsedir.
17846         (objc.maintainer-clean): Delete above files from source directory.
17847
17848 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17849
17850         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17851
17852 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17853
17854         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17855         TARGET_RETURN_IN_MEMORY.
17856
17857 2004-01-15  Jan Hubicka  <jh@suse.cz>
17858
17859         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17860         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17861         functions accepting SSE arguments
17862         (function_arg): Warn only when asked to warn.
17863         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17864
17865 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17866
17867         * c-parse.in (stmts_and_decls): Make label at end of compound
17868         statement a hard error.
17869
17870 2004-01-14  Jan Hubicka  <jh@suse.cz>
17871
17872         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17873         * cgraph.h (cgraph_local_info): Sort fields by size; add
17874         redefined_extern_inline
17875         (cgraph_global_info): Sort fields by size.
17876         (cgraph_node): Likewise.
17877         * cgraphunit.c (cgraph_finalize_function): Se
17878         local.redefined_extern_inline on redefinition.
17879         (cgraph_analyze_function): Use it; fix formating.
17880
17881 2004-01-14  Jan Hubicka  <jh@suse.cz>
17882
17883         PR c++/10776
17884         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17885         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17886         bitmaps
17887         (cache_size): New variable
17888         (add_dependence): Update use; canonize early memory locations
17889         (sched_analyze_1): Likewise.
17890         (sched_analyze_2): Likewise.
17891         (init_dependency_caches): Initialize bitmaps.
17892         (free_dependency_caches): Free bitmaps
17893
17894 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17895
17896         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17897         targetm.calls.strict_argument_naming().
17898         * target.h: Likewise.
17899
17900 2004-01-14  Richard Henderson  <rth@redhat.com>
17901
17902         PR debug/13231
17903         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17904         instructions.
17905
17906 2004-01-14  Richard Henderson  <rth@redhat.com>
17907
17908         PR c++/12491
17909         * except.c (struct eh_region): Add u.fixup.resolved.
17910         (resolve_one_fixup_region): Split out from ...
17911         (resolve_fixup_regions): ... here.
17912
17913 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17914
17915         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17916
17917 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17918
17919         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17920         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17921         (STRUCT_VALUE): Remove.
17922
17923 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17924
17925         * system.h: Poison PROMOTED_MODE
17926         * integrate.c (expand_inline_function): Don't mention the
17927         PROMOTED_MODE.
17928         * loop.c (update_giv_derive): Same.
17929         * tree.h (DECL_RTL): Same.
17930
17931 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17932
17933         PR target/9365
17934         * sh.c (gen_block_redirect): Add special handling of RETURN.
17935         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17936         far branch target (i.e. it's a return).
17937
17938 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17939
17940         * regrename.c (find_oldest_value_reg): Fix a warning.
17941
17942 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17943
17944         PR bootstrap/12527
17945         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17946         Move linux-gas.h and linux-elf.h before aout.h.
17947         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17948         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17949
17950 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17951
17952         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17953         (CONST_INT, VOIDmode, ...).
17954
17955 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17956
17957         * regrename.c (find_oldest_value_reg): If the replacement uses
17958         multiple hard registers, check that all of them are in CLASS.
17959
17960 2004-01-14  Jan Hubicka  <jh@suse.cz>
17961
17962         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17963         impossible.
17964
17965 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17966
17967         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17968
17969 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17970
17971         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17972         Calculate always vrsave_mask if TARGET_ALTIVEC.
17973         (rs6000_emit_prologue): Emit code for vrsave
17974         only if TARGET_ALTIVEC_VRSAVE.
17975         (rs6000_emit_epilogue): Likewise.
17976
17977 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17978
17979         * config/sparc/sparc.md (tie_add32): Fix pasto.
17980         (tie_add64): Likewise.
17981
17982 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17983
17984         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17985
17986 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17987
17988         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17989         * config/iq2000/iq2000.c: Likewise.
17990         * config/iq2000/iq2000.md: Likewise.
17991
17992 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17993
17994         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17995         (subrange_type_die): Add handle for nameless subrange types.
17996
17997 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17998
17999         * config/h8300/h8300-protos.h: Replace do_movsi with
18000         h8300_expand_movsi.
18001         * config/h8300/h8300.c (do_movsi): Change to
18002         h8300_expand_movsi.
18003         * config/h8300/h8300.md (movsi): Replace do_movsi with
18004         h8300_expand_movsi.
18005         (movsf): Likewise.
18006
18007 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18008
18009         * config/h8300/h8300.c (dosize): Change to
18010         h8300_emit_stack_adjustment.  Update callers.
18011
18012 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18013
18014         * config/h8300/h8300.md (movstrictqi): Add an alternative with
18015         the source being post_inc.  Tighten the predicate for the
18016         destination to register_operand.
18017         (movstricthi): Likewise.
18018
18019 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18020
18021         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
18022         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
18023         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
18024
18025 2004-01-14  Jan Hubicka  <jh@suse.cz>
18026
18027         Partial fix PR c++/12850
18028         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
18029         at zero nest level.
18030
18031 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
18032
18033         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
18034         pseudo-register.
18035
18036 2004-01-13  Devang Patel <dpatel@apple.com
18037
18038         PR debug/7078
18039         * dbxout.c (dbxout_symbol_name): Emit mangled names for
18040         NAMESPACE_DECL memebers.
18041
18042 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
18043
18044         PR c++/12709
18045         * c-common.c (finish_fname_decls): Use the chain only if the
18046         tree is an expr_stmt.
18047
18048 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
18049
18050         * rtl.def: Add comment about new option in automata_option.
18051
18052         * genautomata.c (PROGRESS_OPTION): New macro.
18053         (progress_flag): New global variable.
18054         (gen_automata_option): Process `progress'.
18055         (transform_insn_regexps, check_unit_distributions_to_automata,
18056         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
18057         expand_automata, write_automata): Print about the progress only if
18058         progress_flag.  Remove fflush.
18059         (initiate_automaton_gen): Process command line flag `-progress'.
18060
18061         * doc/md.texi: Describe the new option.
18062
18063 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18064
18065         * cfg.c (dump_bb): Dump entry edges.
18066
18067 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
18068
18069         * arm.c (thumb_legitimate_address_p): Only allow constant pool
18070         references from SImode.
18071         * arm.md (thumb_movhi_insn): Don't allow minipool references.
18072
18073 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18074
18075         * system.h (TEXT_SECTION): Poison.
18076         * varasm.c (text_section): Don't use TEXT_SECTION.
18077         * config/sh/sh.c (sh_file_start): Fix a comment typo.
18078         * doc/tm.texi (TEXT_SECTION): Remove.
18079
18080 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
18081
18082         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
18083
18084 2004-01-12  James E Wilson  <wilson@specifixinc.com>
18085
18086         * unwind-libunwind.c: Delete.
18087
18088 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18089
18090         PR 13656
18091         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
18092         oldtype is set, set *newtypep or *oldtypep too.  Do not set
18093         them at the very end.
18094         (validate_proto_after_old_defn): Restructure for comprehensibility;
18095         make error messages clearer.
18096
18097 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18098
18099         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18100         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18101         * varray.c: No need to prototype error.
18102         (varray_check_failed): Wrap long string onto two lines.
18103         (varray_underflow): New function.
18104
18105 2004-01-13  Steven Bosscher  <stevenb@suse.de>
18106
18107         PR c++/13376
18108         * function.h (struct function): Kill `name' field.
18109         (current_function_name): Make it an extern function.
18110         * function.c (current_function_name): New function.
18111         * graph.c: Update all uses of current_function_name.
18112         * gcse.c: Likewise.
18113         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18114         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18115         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18116         instead of a strcmp with "main".
18117
18118 2004-01-13  Jan Hubicka  <jh@suse.cz>
18119
18120         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
18121
18122         * cgraphunit.c (cgraph_optimize_function):  Always do
18123         optimize_inline_calls when there is always_inline callee.
18124         (cgraph_decide_inlining): Fix formating.
18125         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18126         functions.
18127         (expand_call_inline): Likewise.
18128         * toplev.h (sorry): Fix prototype.
18129
18130 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18131
18132         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18133         conditional jumps that drop through to unconditional jumps or the
18134         end of the sequence.
18135
18136 2004-01-13  Jan Hubicka  <jh@suse.cz>
18137
18138         * alias.c (new_alias_set): Construct the alias_set varray.
18139         (init_alias_once): Don't do it here.
18140
18141 2004-01-12  Marc Espie <espie@openbsd.org>
18142
18143         * system.h: handle YYBYACC like YYBISON.
18144
18145 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
18146
18147         PR target/10847
18148         * config.gcc: No longer includes conflicting header sparc/sol2.h when
18149         building on sparc64-*-openbsd*.
18150
18151 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
18152
18153         PR debug/13539
18154         * dbxout.c (dbxout_type): Protected inheritance is not
18155         private but protected.
18156
18157 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18158
18159         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18160
18161 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
18162
18163         PR optimization/12508.
18164         * combine.c (try_combine): Remove a dead set in a parallel
18165         even if its destination is a subreg.
18166
18167         Revert:
18168         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
18169         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18170         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18171
18172 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
18173
18174         * real.c: Update copyright date.
18175         * emit-rtl.c: Likewise.
18176         * rtl.h: Likewise.
18177         * dwarf2out.c: Likewise.
18178         * config/rs6000/darwin-ldouble.c: Likewise.
18179         * config/rs6000/rs6000.md: Likewise.
18180
18181 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18182
18183         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18184         TFmode to SImode libfuncs.
18185
18186 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18187
18188         PR middle-end/11397
18189         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18190
18191 2004-01-12  Jan Hubicka  <jh@suse.cz>
18192
18193         PR opt/12826
18194         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18195         stored.
18196
18197         PR opt/12863
18198         * cfgcleanup.c (label_is_jump_target_p): Move to...
18199         * rtlanal.c (label_is_jump_target_p): ... here.
18200         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
18201         edges unified with branch edges.
18202
18203 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
18204
18205         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18206         high word of an integral CONST_DOUBLE.
18207
18208 2004-01-12  Paul Brook  <paul@codesourcery.com>
18209
18210         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18211
18212 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
18213
18214         PR target/13585
18215         * sh-protos.h (check_use_sfunc_addr): Declare.
18216         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18217         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18218
18219 2004-01-12  Jan Hubicka  <jh@suse.cz>
18220
18221         * alias.c:  Invlude varray.h
18222         (alias_sets): Turn into varray.
18223         (get_alias_set_entry): Use VARRAY; mark inline.
18224         (mems_in_disjoint_alias_sets_p): Mark inline.
18225         (record_alias_subset): Use varray.
18226         (init_alias_once): Initialize varray.
18227         (new_alias_set): Grow array.
18228         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18229
18230 2004-01-12  Jan Hubicka  <jh@suse.cz>
18231
18232         Partial fix for PR opt/10776 II
18233         * cselib.c: Include params.h
18234         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18235         locations.
18236         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18237         * Makefile.in (cselib.o): Depend on params.h
18238
18239 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18240
18241         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18242         simplify_unary_operation if the operand has a known mode.
18243
18244 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18245
18246         PR target/13534
18247         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18248         predicate to handle 'ld' conform addresses.
18249         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18250         contraint.
18251         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18252         are memory contraints.
18253         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18254         New prototype.
18255         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18256         Change 'o' to 'Y' constraint.
18257         (*movdf_softfloat64): Ditto.
18258
18259 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18260
18261         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18262         brace-enclosed syntax in all C output statements.
18263
18264 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18265
18266         PR target/13401
18267         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18268         Objective-C language type value is 14.
18269
18270 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18271
18272         PR c/12148
18273         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18274         `int' in a number of places to make sure we always have a SImode
18275         and not a HImode.  Add a 'L' suffix to a number of constants.
18276
18277 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18278
18279         * pa.c: Don't include obstack.h.
18280
18281         * pa.md: Correct constraint in pattern for loading PIC label address.
18282
18283 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18284
18285         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18286          before defining.
18287
18288 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18289
18290         PR fortran/9972
18291         * toplev.c (rest_of_handle_inline): Also consider functions
18292         for deferral if the language is GNU F77.
18293
18294 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18295
18296         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18297         diagnostic messages.
18298
18299 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18300
18301         PR middle-end/13392
18302         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18303         to drop through label.  Don't fall back to SCC even when conditional
18304         jump has not been found.
18305
18306 2004-01-11  Jan Hubicka  <jh@suse.cz>
18307
18308         * invoke.texi: Fix syntax error in previous patch.
18309
18310         Partial fix for PR opt/10776
18311         * Makefile.in (reload.o): Include param.h
18312         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18313         * reload.c: Include params.h.
18314         (find_equiv_reg): Work limiting check.
18315         * invoke.texi: Document.
18316
18317 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18318
18319         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18320         out-of-bounds accesses to string constants.  Simplify mips16
18321         case accordingly.
18322
18323 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18324
18325         PR optimization/13469
18326         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18327         reload_cse_regs (-fnon-call-exceptions only).
18328
18329 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18330
18331         * config/mcore/lib1.asm: Fix comment formatting.
18332         * config/mcore/mcore-elf.h: Likewise.
18333         * config/mcore/mcore.c: Likewise.
18334         * config/mcore/mcore.h: Likewise.
18335         * config/mcore/mcore.md: Likewise.
18336
18337 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18338
18339         * c-decl.c (duplicate_decls): Break apart into...
18340         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18341         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18342         ... these new functions.  Restructure for comprehensibility.
18343         Remove various archaic special cases.  Always report the
18344         location of the previous declaration when a diagnostic is issued.
18345         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18346         (match_builtin_function_types): Delete unnecessary forward declaration.
18347
18348 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18349
18350         * genautomata.c (make_automaton, NDFA_to_DFA):
18351         Print progress bars with '.' characters instead of '*'.
18352         (build_automaton): Change notes to match.
18353
18354 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18355
18356         * config/m32r/m32r.md: Use define_constants for unspec and
18357         unspec_volatile.
18358
18359 2004-01-10  Jan Hubicka  <jh@suse.cz>
18360
18361         PR opt/11635
18362         * expr.c (expand_expr_real):  More curefully expand union casts.
18363
18364 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18365
18366         * config/m32r/m32r.md (flush_icache): Use 1 for
18367         unspec_volatile.
18368
18369 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18370             James E Wilson  <wilson@specifixinc.com>
18371
18372         PR debug/12860
18373         * dbxout.c (dbxout_symbol): Remove initialization of
18374         current_sym_code, current_sym_value, and current_sym_addr.
18375         (dbxout_symbol_location): Same.
18376         (dbxout_prepare_symbol): Zero current_sym_code,
18377         current_sym_value, and current_sym_addr.
18378
18379 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18380
18381         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18382         check is done first.
18383
18384 2004-01-09  Eric Christopher  <echristo@redhat.com>
18385
18386         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18387         if we're running mark_constant_function.
18388
18389 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18390
18391         PR target/12561
18392         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18393
18394 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18395
18396         PR debug/11231
18397         * dbxout.c (dbxout_type_fields): Return if any item is
18398         error_mark_node or the type is error_mark_node.
18399
18400 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18401
18402         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18403         exactly what is expected as a 'long double'.
18404         (_xlqadd): When a value to be returned is representable as a
18405         'double', just return it directly, do not construct it using a union.
18406         Also, correct final fixup.
18407         (_xlqmul): Likewise.
18408         (_xlqdiv): Likewise.
18409         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18410
18411         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18412
18413 2004-01-09  Richard Henderson  <rth@redhat.com>
18414
18415         * recog.c (constrain_operands): Validate mem operands.
18416
18417 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18418
18419         * gcc.c (init_spec): Remove -lunwind from shared case.
18420         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18421
18422 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18423
18424         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18425         * configure: Regenerate
18426
18427 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18428
18429         PR c/11234
18430         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18431         between function and object pointers.
18432         (digest_init): When comparing a pointer to function type to the
18433         target type, only apply TREE_TYPE once to the pointer to function
18434         type.
18435         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18436         function pointer rather than casting it to a function pointer.
18437         (for_each_eh_label): Update caller.
18438         * recog.h (struct insn_data): Use a struct or union for output.
18439         * genoutput.c (output_insn_data): Update.
18440         * final.c (get_insn_template): Update.
18441
18442 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18443
18444         * expr.h (expand_expr): Make it a macro, not a function.
18445         (expand_expr_real): New function.
18446         * expr.c (store_expr): Adjust logic for deciding whether or not to
18447         copy the value returned by expand_expr.
18448         (expand_expr): Rename to ...
18449         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18450         calls to language hooks.
18451         * c-common.h (c_expand_expr): Adjust prototype.
18452         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18453         * langhooks-def.h (lhd_expand_expr): Change prototype.
18454         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18455         * langhooks.h (lang_hooks): Change type of expand_expr.
18456         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18457         (last_expr_alt_rtl): Likewise.
18458         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18459         (clear_last_expr): Clear it.
18460         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18461         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18462         * tree.def (RTL_EXPR): Give it an additional operand.
18463         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18464
18465 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18466
18467         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18468         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18469
18470 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18471
18472         PR target/13380.
18473         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18474         or (ne:SI (reg:CC 17) (const_int 0)).
18475         Be specific about modes wherever possible.
18476
18477 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18478
18479         * config/m32r/m32r.c (m32r_expand_block_move): Call
18480         gen_movestrsi_internal with two more arguments.
18481         (m32r_output_block_move): Adjust operand numbers.
18482         Properly update the source and destination pointers.
18483         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18484         'r+'.  Change the set detinations to match_operand.
18485
18486 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18487
18488         * final.c (FIRST_INSN_ADDRESS): Remove.
18489         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18490         * system.h (FIRST_INSN_ADDRESS): Poison.
18491         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18492         * config/m32r/m32r-protos.h: Remove the prototype for
18493         m32r_first_insn_address.
18494         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18495         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18496         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18497
18498 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18499
18500         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18501         we just created.
18502         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18503         emitted as subrange types too.
18504         (subrange_type_die): Add handling of enumeration subtypes.
18505
18506 2004-01-08  Richard Henderson  <rth@redhat.com>
18507
18508         PR opt/12441
18509         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18510         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18511         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18512         (ix86_address_cost): Be prepared for SUBREGed registers.
18513         (legitimate_address_p): Accept SUBREGed registers.
18514
18515 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18516
18517         * Makefile.in: Rename configure.in to configure.ac
18518         * doc/sourcebuild.texi: Likewise.
18519         * configure: Regenerate.
18520         * config.in: Regenerate.
18521
18522 2004-01-08  Stuart Hastings  <stuart@apple.com>
18523
18524         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18525
18526 2004-01-08  Jan Hubicka  <jh@suse.cz>
18527
18528         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18529
18530 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18531
18532         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18533         (UNSPEC_FIX_TRUNC_TF): New constant.
18534         (movtf_internal): Make splitter active only when insn is active.
18535         (extenddftf2): Rewrite to properly load zero into low part.
18536         (extenddftf2_internal): New.
18537         (extendsftf2): Rewrite.
18538         (truncdftf2): Correct length.
18539         (floatditf2): Delete.
18540         (fix_trunc_helper): New.
18541         (fix_trunctfdi2): Use fix_trunc_helper.
18542         (fix_trunctfsi2): Likewise.fix_trunc
18543         (fix_trunctfsi2_internal): New.
18544
18545         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18546         addresses are legitimate on Darwin even when flag_pic.
18547         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18548         non-offsettable addresses for loads of TFmode constants.
18549
18550 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18551
18552         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18553         variables in the appropriate bss section.
18554
18555 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18556
18557         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18558         target_flags has MASK_POWERPC64 when -m64.
18559         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18560         to 620, 630, power3, power4 and rs64a entries.
18561         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18562
18563 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18564
18565         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18566         floating-point constants.
18567
18568 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18569
18570         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18571         Create the subrange_type DIE using the given context DIE.
18572         (modified_type_die): Update call to subrange_type_die.
18573
18574 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18575
18576         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18577         Add multiple-include guard.
18578
18579 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18580
18581         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18582         all vector constant loadable by vsplt*.
18583         (output_vec_const_move): Likewise.
18584
18585 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18586
18587         PR c/6024
18588         * c-typeck.c (comptypes): Only treat enumerated types in the same
18589         translation unit as compatible with each other when they are the
18590         same type.
18591         * doc/extend.texi: Update.
18592
18593 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18594
18595         PR c/12165
18596         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18597         array type from the array element type.
18598
18599 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18600
18601         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18602         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18603         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18604         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18605         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18606
18607 2004-01-06  Eric Christopher  <echristo@redhat.com>
18608
18609         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18610         (DWARF2_DEBUGGING_INFO): Define.
18611         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18612         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18613         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18614         for irix as.
18615         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18616         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18617         * config/mips/iris5gas.h: Ditto.
18618         (DBX_DEBUGGING_INFO): Remove.
18619         (DWARF2_DEBUGGING_INFO): Ditto.
18620         (MIPS_DEBUGGING_INFO): Ditto.
18621         (PREFERRED_DEBUGGING_TYPE): Ditto.
18622         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18623         (PREFERRED_DEBUGGING_TYPE): Ditto.
18624         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18625         * config/mips/elf64.h: Ditto.
18626
18627 2004-01-06  Jan Hubicka  <jh@suse.cz>
18628
18629         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18630         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18631
18632 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18633
18634         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18635         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18636         * config/rs6000/darwin-ldouble.c: New.
18637
18638         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18639         for constants.
18640         (constant_subword): Delete.
18641         * rtl.h (constant_subword): Delete prototype.
18642         (immed_double_const): Is not in varasm.c.
18643         * simplify-rtx.c (simplify_immed_subreg): New.
18644         (simplify_subreg): Use simplify_immed_subreg.
18645
18646         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18647         than trying to generate RTL directly.
18648         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18649         RTL directly.
18650
18651         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18652
18653 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18654
18655         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18656         function into a separate macro.
18657         (read_only_data_section): Add void argument.
18658         (private_data_section): Same.
18659         (read_only_private_data_section): Same.
18660         (toc_section): Same.
18661
18662 2004-01-06  Jan Hubicka  <jh@suse.cz>
18663
18664         * invoke.texi:  Remove typo in last change.
18665
18666         PR target/10301
18667         * config.gcc: Accept opteron and athlon-64 as variants
18668         of k8.
18669         * i386.c (override_options): Likewise.
18670         * invoke.texi (i386 -mtune): Expand documentation.
18671
18672 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18673
18674         * alias.c: Fix comment typos.
18675         * builtins.c: Likewise.
18676         * cfg.c: Likewise.
18677         * df.c: Likewise.
18678         * dominance.c: Likewise.
18679         * dwarf2out.c: Likewise.
18680         * emit-rtl.c: Likewise.
18681         * expr.c: Likewise.
18682         * final.c: Likewise.
18683         * fold-const.c: Likewise.
18684         * gcse.c: Likewise.
18685         * genattrtab.c: Likewise.
18686         * genrecog.c: Likewise.
18687         * gensupport.c: Likewise.
18688         * ggc-zone.c: Likewise.
18689         * integrate.c: Likewise.
18690         * local-alloc.c: Likewise.
18691         * loop.c: Likewise.
18692         * recog.c: Likewise.
18693         * regmove.c: Likewise.
18694         * reg-stack.c: Likewise.
18695         * reorg.c: Likewise.
18696         * rtlanal.c: Likewise.
18697         * rtl.h: Likewise.
18698         * sched-ebb.c: Likewise.
18699         * simplify-rtx.c: Likewise.
18700         * toplev.c: Likewise.
18701         * varasm.c: Likewise.
18702
18703 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18704
18705         * doc/install.texi: Fix typos.
18706         * doc/invoke.texi: Likewise.
18707         * doc/md.texi: Likewise.
18708
18709 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18710
18711         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18712
18713 2004-01-06  Jan Hubicka  <jh@suse.cz>
18714
18715         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18716         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18717         of MMX_REGPARM.
18718         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18719         add MMX_REGPARM.
18720         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18721         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18722         (MMX_REGPARM_MAX): Similarly for -mmmx.
18723
18724 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18725
18726         * config/sh/linux.h: Fix comment formatting.
18727         * config/sh/netbsd-elf.h: Likewise.
18728         * config/sh/sh.c: Likewise.
18729         * config/sh/sh.h: Likewise.
18730         * config/sh/vxworks.h: Likewise.
18731
18732 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18733
18734         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18735         * toplev.c (output_file_directive): Don't use
18736         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18737
18738 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18739
18740         * toplev.c: Fix broken checkin of 2003-12-30.
18741
18742 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18743
18744         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18745         (USING_MMAP): We don't support non-mmap.
18746         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18747         large objects.
18748         (struct page_entry): Remove bytes_free.
18749         (struct page_table_chain): Remove.
18750         (struct globals): Remove page_table member.
18751         (loookup_page_table_entry): Function deleted.
18752         (set_page_table_entry): Ditto.
18753         (ggc_allocated_p): No longer need page table lookups.
18754         (ggc_marked_p): Ditto.
18755         (alloc_small_page): Don't care about bytes_free anymore.
18756         (alloc_large_page): Round up size.
18757         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18758         their size the new way.
18759         Remove page table lookups and setting.
18760         (ggc_get_size): Calculate large object size the new way.
18761         (sweep_pages): Redo to account for fact that we no longer have
18762         bytes_free.
18763         (ggc_collect): No longer need to reincrement bytes_free.
18764         (ggc_pch_alloc_object): Handle new large objects properly.
18765         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18766
18767 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18768
18769         * doc/invoke.texi: Remove a page break.
18770
18771 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18772
18773         * config/avr/avr.c (avr_output_function_prologue): Remove an
18774         extra pair of curly braces.
18775
18776 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18777
18778         * config/mn10300/mn10300.c: Fix comment formatting.
18779         * config/mn10300/mn10300.h: Likewise.
18780
18781 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18782
18783         * tree.h: Update documentation on nothrow_flag.
18784         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18785         types.
18786
18787 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18788
18789         * doc/invoke.texi: Remove traces of dead ports.
18790
18791 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18792
18793         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18794         option.
18795
18796 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18797
18798         PR target/12945
18799         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18800         counter labels.
18801         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18802         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18803         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18804         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18805         (mips_symbol_insns): Don't trust the local/global classification.
18806         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18807         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18808         -mno-explicit-relocs.
18809         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18810         between local and global symbols.
18811
18812 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18813
18814         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18815         (mips_preferred_reload_class): Declare.
18816         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18817         (EXTRA_CONSTRAINT): Update accordingly.
18818         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18819         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18820         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18821         mips_dangerous_for_la25_p.
18822         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18823         if mips_dangerous_for_la25_p.
18824
18825 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18826
18827         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18828         warning.
18829
18830 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18831
18832         * configure.ac: Use AC_PROG_CPP_WERROR.
18833         * configure: Regenerate.
18834
18835 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18836
18837         * .cvsignore: Add autom4te.cache.
18838
18839 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18840
18841         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18842         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18843         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18844         then architecture options, then ABI options.  General rewording.
18845
18846 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18847
18848         PR c/3414
18849         * doc/extend.texi: Clarify definition of malloc attribute.
18850
18851 2004-01-04  Jan Hubicka  <jh@suse.cz>
18852
18853         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18854         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18855         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18856         (cgraph_inline_p): Add extra argument reason.
18857         * cgraphunit.c: Minor formating fixes.
18858         cgraph_first_inlined_callee): New functions.
18859         (record_call_1): Record builtins too.
18860         (cgraph_analyze_function): Update inline_failed messages.
18861         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18862         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18863         (cgraph_check_inline_limits): Likewise; Add argument reason.
18864         (cgraph_set_inline_failed): New static function.
18865         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18866         reasons.
18867         (cgraph_inline_p): Add new argument reason.
18868         * tree-inline.c (expand_call_inline):  Update warning.
18869
18870 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18871
18872         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18873         with modern equivalents.
18874         * configure: Regenerate.
18875
18876         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18877         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18878         * configure: Regenerate.
18879
18880         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18881
18882         * configure.in: Rename to configure.ac.
18883         * configure.ac: Renamed from configure.in; make minimum necessary
18884         changes for autoconf 2.5x.
18885         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18886         * configure: Regenerate with autoconf 2.57.
18887
18888 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18889
18890         * config/mips/linux.h: Fix comment formatting.
18891         * config/mips/mips.c: Likewise.
18892         * config/mips/mips.h: Likewise.
18893         * config/mips/mips.md: Likewise.
18894         * config/mips/netbsd.h: Likewise.
18895         * config/mips/windiss.h: Likewise.
18896
18897 2004-01-02  Richard Henderson  <rth@redhat.com>
18898
18899         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18900         for sse and 387; add suppression for mmx.
18901
18902 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18903
18904         * loop.c (loop_optimize): Free all loops_info's mems.
18905
18906         * c-typeck.c (finish_init): Free spelling_base before
18907         setting it again.
18908
18909         * cfgloop.c (flow_loops_find): Always free the sbitmap
18910         headers.
18911
18912         * predict.c (estimate_probability): Free bbs after being
18913         done with it.
18914
18915 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18916
18917         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18918         const_8bit_operand and call_address_operand.
18919
18920 2004-01-02  Jan Hubicka  <jh@suse.cz>
18921
18922         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18923         when there is nothing to inline but warnings are requested.
18924         (cgraph_decide_inlining):  Fix memory leak.
18925
18926 2004-01-02  Jan Hubicka  <jh@suse.cz>
18927
18928         * expr.c (store_constructor):  Fix pasto in previous patch.
18929
18930 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18931
18932         * config/i386/cygming.h: Fix comment formatting.
18933         * config/i386/djgpp.h: Likewise.
18934         * config/i386/gthr-win32.c: Likewise.
18935         * config/i386/i386-interix.h: Likewise.
18936         * config/i386/i386.c: Likewise.
18937         * config/i386/i386.h: Likewise.
18938         * config/i386/openbsd.h: Likewise.
18939         * config/i386/winnt.c: Likewise.
18940         * config/i386/xm-mingw32.h: Likewise.
18941
18942 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18943
18944         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18945         copyright and last modification dates.
18946
18947 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18948
18949         * doc/install.texi (Specific): Mention x86_64.
18950
18951 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18952
18953         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18954         Call force_operand on plus_constant result.
18955
18956 2004-01-01  Jan Hubicka  <jh@suse.cz>
18957
18958         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18959         * expr.c (store_constructor): Use vec_init pattern.
18960         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18961         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18962         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18963         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18964         New patterns.
18965         (sse2_unpc?pd): Fix pattern.
18966         (sse2_movlpd): Kill.
18967         (sse2_movsd): Deal with movlpd too.
18968         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18969         (ix86_expand_vector_init): New.
18970         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18971         * md.texi (vec_set, vec_extract): Document
18972
18973 2003-12-31  Jan Hubicka  <jh@suse.cz>
18974
18975         PR opt/13473
18976         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18977         ASM input operands
18978
18979         PR opt/12617
18980         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18981         (dump_file): Likewise.
18982         (rest_of_compilation): Likewise.
18983
18984         PR debug/13367
18985         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18986         flag_really_no_inline we inline always_inline functions.
18987         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18988         for non-always_inline functions when there is flag_really_no_inline.
18989         (cgraph_decide_inlining): Limit work done when not inlining.
18990         (cgraph_decide_inlining_incrementally): Likewise.
18991         (cgraph_optimize_function): Check whether something got inlined.
18992         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18993         extern inline functions when not inlining.
18994
18995         * opts.c (decode_options):  Disable crossjumping at -O1
18996         * invoke.texi (-O1): Document change.
18997
18998 See ChangeLog.10 for earlier changes.