OSDN Git Service

* fold-const.c (build_range_check): If !in_p and recursive call
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
2
3         * fold-const.c (build_range_check): If !in_p and recursive call
4         fails, exit immediately.  If high - low overflows and etype is
5         a signed type, retry with unsigned etype.
6         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
7         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
8
9 2004-06-18  Richard Henderson  <rth@redhat.com>
10
11         * c-gimplify.c (gimplify_condition): Remove.
12         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
13         call it.
14
15 2004-06-18  Richard Henderson  <rth@redhat.com>
16
17         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
18         switch estimates.
19
20 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
21
22         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
23         (NORMAL_TEXT_SECTION_NAME): Define.
24         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
25         (SECTION_FORMAT_STRING): Define.
26
27 2004-06-18  Steven Bosscher  <stevenb@suse.de>
28
29         * config/xtensa/xtensa.c
30         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
31         * xtensa.md: Replace the old pipeline description with a DFA model.
32
33 2004-06-18  Steven Bosscher  <stevenb@suse.de>
34             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
35
36         * config/s390/s390.md: Remove the generic pipeline description.
37         * config/s390/2064.md: Make all insn reservations apply to
38         the z900, g5 and g6.
39         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
40         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
41         Define to hook_int_void_1.
42         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
43         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
44
45 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
46                         Diego Novillo  <dnovillo@redhat.com>
47
48         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
49         (create_stmt_ann): Ditto.
50         (create_tree_ann): New function.
51         (create_cst_ann): Remove.
52         (create_expr_ann): Ditto.
53
54         * tree-flow-inline.h (cst_ann): Remove.
55         (get_cst_ann): Ditto.
56         (get_expr_ann): Ditto.
57         (expr_ann): Ditto.
58         (get_tree_ann): New function.
59         (tree_ann): Ditto.
60         (ann_type): tree_ann -> tree_ann_t.
61         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
62         (struct cst_ann_d): Removed.
63         (struct expr_ann_d): Ditto.
64         (union tree_ann_d): Removed cst and expr.
65         (tree_ann): Renamed to tree_ann_t.
66         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
67         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
68         annotation.
69         (set_value_handle): Ditto.
70         (phi_translate): Ditto.
71         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
72
73 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
74
75         * config/sh/t-linux64: New file.
76         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
77
78 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
79
80         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
81         (unshare_all_rtl_again): Call unshare_all_rtl_1.
82         (unshare_all_rtl): New.
83         * function.c (instantiate_virtual_regs): Remove parameters.
84         * function.h (instantiate_virtual_regs): Add prototype.
85         * rtl.h (unshare_all_rtl): Add prototype.
86         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
87         prototype.
88         * passes.c: Remove assertions on the parameters to
89         rest_of_handle_* functions.  Remove the parameters to
90         the functions, replacing decl with current_function_decl
91         and insns with get_insns ().
92
93 2004-06-17  Roger Sayle  <roger@eyesopen.com>
94
95         * fold-const.c (constant_boolean_node): Handle boolean_type_node
96         directly, return either boolean_true_node or boolean_false_node.
97
98 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
99
100         * opts.sh: Delete.  Break out generated code to next four files.
101         * opt-gather.awk: New file.
102         * optc-gen.awk: New file.
103         * opth-gen.awk: New file.
104         * opt-functions.awk: New common file.
105         * Makefile.in: Update for above.
106         * configure.ac: Update comment.
107         * configure: Regenerate.
108
109 2004-06-17  Richard Henderson  <rth@redhat.com>
110
111         * c-common.c (flag_objc_sjlj_exceptions): New.
112         * c-common.h (flag_objc_sjlj_exceptions): Declare.
113         * c-opts.c (c_common_handle_option): Set it.
114         (c_common_post_options): Handle interation of different
115         objective-c exception and runtime switches.
116         * c-decl.c (c_eh_initialized_p): New.
117         (finish_decl): Use it instead of local eh_initialized_p.
118         * c-parse.in (nested_function, notype_nested_function): Record
119         the result of compstmt.
120         (compstmt_or_error): Likewise.
121         (compstmt): Don't add_stmt the result.
122         (stmt): Don't return anything.  Rewrite objc try and sync rules.
123         (objc_try_stmt, objc_catch_list): Remove.
124         (objc_catch_block, objc_finally_block): Remove.
125         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
126         (objc_try_catch_clause, objc_finally_clause): New.
127         (objc_try_catch_stmt): Rewrite.
128         * c-tree.h (c_eh_initialized_p): Declare.
129         * c-opt (fobjc-sjlj-exceptions): New.
130         * except.c (output_function_exception_table): Don't call cgraph
131         on non-decls.
132         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
133         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
134         catch_count_stack, exc_binding_stack, if_nesting_count,
135         blk_nesting_count, objc_enter_block, objc_exit_block,
136         objc_declare_variable, val_stack_push, val_stack_pop, 
137         objc_build_try_enter_fragment, objc_build_extract_expr,
138         objc_build_try_exit_fragment, objc_build_extract_fragment,
139         objc_build_try_prologue, objc_build_try_epilogue, 
140         objc_build_catch_stmt, objc_build_catch_epilogue,
141         objc_build_finally_prologue, objc_build_finally_epilogue,
142         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
143         objc_build_synchronized_epilogue): Remove.
144         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
145         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
146         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
147         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
148         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
149         objc_begin_catch_clause, objc_finish_catch_clause,
150         objc_build_finally_clause, objc_finish_try_stmt,
151         objc_build_synchronized): New.
152         (objc_is_object_id, objc_is_class_id): New.
153         (objc_comptypes): Use them.
154         (build_next_objc_exception_stuff): Break NeXT sjlj out from
155         build_objc_exception_stuff.
156         (synth_module_prologue): Update to match.
157         (objc_build_throw_stmt): Use cur_try_context to decide if
158         we're in a @catch.
159         * objc/objc-act.h: Update prototypes.
160         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
161
162 2004-06-17  Andrew Pinski <apinski@apple.com>
163
164         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
165         Use TYPE_FIELDS instead of TYPE_VALUES.
166
167 2004-06-17  Jason Merrill  <jason@redhat.com>
168
169         PR c++/16015
170         * gimplify.c (gimplify_target_expr): Handle void initializer.
171         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
172         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
173         and AGGR_INIT_EXPR.
174
175 2004-06-17  Roger Sayle  <roger@eyesopen.com>
176
177         * fold-const.c (fold_relational_const): Use constant_boolean_node.
178
179 2004-06-17  Jan Hubicka  <jh@suse.cz>
180
181         PR target/15433
182         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
183         operand numbering in the output template.
184         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
185
186 2004-06-17  Jan Hubicka  <jh@suse.cz>
187
188         * except.c (can_throw_internal): Recognize RESX expresisons.
189
190 2004-06-17  Jan Hubicka  <jh@suse.cz>
191
192         * cfgbuild.c (make_edges): Do not use label_value_list.
193         (find_basic_blocks_1): Do not collect label_value_list.
194         (find_sub_basic_blocks): Update call of make_edges.
195
196 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
197
198         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
199         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
200         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
201         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
202         (get_v_may_def_result_ptr):  Return a def_operand_p.
203         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
204         (get_v_must_def_op_ptr):  Return a def_operand_p.
205         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
206         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
207         (phi_element_for_edge):  Remove.
208         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
209         (propagate_tree_value):  Add new prototype.
210         (phi_element_for_edge):  Remove prototype.
211         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
212         (prepare_operand_for_rename):  Split into two functions.
213         (prepare_use_operand_for_rename):  Prepare use operands.
214         (prepare_def_operand_for_rename):  Prepare def operands.
215         (rewrite_stmt):  Use new operand types.
216         (rewrite_operand):  Use new operand types, change parameter type.
217         * tree-outof-ssa.c (replace_variable):  Split into two functions.
218         (replace_use_variable):  Rewrite uses.
219         (replace_def_variable):  Rewrite defs.
220         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
221         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
222         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
223         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
224         (ccp_fold, replace_uses_in):  Use new operand types.
225         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
226         and no longer set the value, change parameter type.
227         (replace_exp_1):  Use new operand types.
228         (propagate_value):  Change parameter type, use new operand types.
229         (propagate_tree_value):  Propagate_value without SSA operands.
230         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
231         (cprop_into_successor_phis):  Use new operand types.
232         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
233         (eliminate_redundant_computations):  Use new operand types.
234         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
235         (fix_stmt_v_may_defs):  Use new operand_types.
236         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
237         (build_tree_conflict_graph):  Use new operand_types.
238         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
239         * tree-ssa-operands.c (struct freelist_d):  Remove.
240         (check_optype_freelist, add_optype_freelist):  Remove.
241         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
242         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
243         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
244         Call ggc_free instead of add_optype_freelist.
245         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
246         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
247         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
248         (struct use_optype_d):  Change underlying type.
249         (def_operand_p, use_operand_p):  New types for pointers to operands.
250         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
251         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
252         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
253         pointer types.
254         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
255         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
256         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
257         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
258         PHI result as an operand.
259         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
260         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
261         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
262         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
263         PHI_ARG_DEF_FROM_EDGE.
264         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
265         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
266
267 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
268
269         PR tree-optimization/15991
270         * tree-cfg.c (tree_block_label): Export.
271         * tree-flow-inline.h (bsi_after_labels): New function.
272         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
273         * tree-ssa.c (propagate_into_addr): New function.
274         (replace_immediate_uses): Handle propagation of pointer constants.
275         (raise_value): Do not restrict propagation of pointer constants.
276         * tree-ssanames.c (duplicate_ssa_name): New function.
277         * tree.h (duplicate_ssa_name): Declare.
278
279 2004-06-17  David Ayers  <d.ayers@inode.at>
280  
281         * c-parse.in: Unify Objective-C token names.
282
283 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
284
285         Bug 14610
286         * Makefile.in (min-insn-modes.o): Correct dependencies.
287         * real.c (encode_ieee_extended, decode_ieee_extended): Always
288         produce/consume 12-byte little-endian Intel format.
289         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
290         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
291         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
292         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
293         New functions which convert between 12-byte little-endian Intel
294         format and the desired format.
295         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
296         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
297         Update.
298
299 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
300
301         * expmed.c (expand_mult_const): In sanity check, compare only
302         the bits of val and val_so_far that are significant in the
303         result mode.
304
305 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
306
307         * tree-ssa-pre.c:  Update comments.
308         (val_expr_pair_eq): Factor code from here.
309         (expr_pred_trans_eq): and here.
310         (expressions_equal_p): To here.
311         (print_value_set): Print value for expression.
312         (phi_trans_lookup): Rename some variables.
313         (lookup): Ditto.
314         (value_exists_in_set_bitmap): Ditto.
315         (value_remove_from_set_bitmap): Ditto.
316         (value_insert_into_set_bitmap): Ditto.
317
318 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
319
320         * config/s390/s390-modes.def (CCL3mode): New machine mode.
321         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
322         (s390_alc_comparison, s390_slb_comparison): Likewise.
323         (s390_branch_condition_mask): Likewise.
324         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
325         ("*subsi3_cc2", "*subsi3_cconly2"): New.
326
327         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
328         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
329         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
330         Handle SIGN_EXTEND and ZERO_EXTEND.
331
332         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
333         * config/s390/s390.c (s390_expand_addcc): New function.
334         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
335         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
336         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
337
338 2004-06-17  Ben Elliston  <bje@au.ibm.com>
339
340         * tree-alias-common.c: Add whitespace.
341         * tree-inline.c: Correct comment about this file's purpose.
342         * tree-optimize.c: Likewise.
343         * tree-tailcall.c: Likewise.
344
345         * tree-alias-ander.h: Add standard top-of-file comment.
346         * tree-alias-common.h: Likewise.
347         * tree-alias-type.h: Likewise.
348
349 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
350
351         * tree-ssa-pre.c (compute_avail): Value number uses as well.
352         Strip useless type conversions.
353         Casts have to be treated slightly different than normal unaries.
354
355 2004-06-16  Richard Henderson  <rth@redhat.com>
356
357         * c-common.def (COMPOUND_STMT): Remove.
358         * c-common.c (finish_fname_decls): Don't look through it.
359         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
360         * c-common.h (COMPOUND_BODY): Remove.
361         (c_common_stmt_codes): Remove COMPOUND_STMT.
362         * c-dump.c (c_dump_tree): Likewise.
363         * c-gimplify.c (c_gimplify_stmt): Likewise.
364         * c-pretty-print.c (pp_c_statement): Likewise.
365         * tree.h (DECL_SAVED_TREE): Update commentary.
366         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
367         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
368         (GOTO_EXPR): Rename from GOTO_STMT.
369         (GOTO_FAKE_P): Remove.
370         (COMPOUND_STMT): Remove.
371         (HANDLER): Update wrt COMPOUND_STMT.
372         (STMT_EXPR): Likewise.
373         (LABEL_EXPR): Rename from LABEL_STMT.
374         (SCOPE_STMT): Remove.
375         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
376         through COMPOUND_STMT.
377
378 2004-06-16  Richard Henderson  <rth@redhat.com>
379
380         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
381         c_finish_while_stmt_cond): Remove decls.
382         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
383         * c-typeck.c (c_begin_if_stmt): Return void.
384         (c_begin_else): Tidy.  Save stmt_count.
385         * c-tree.h (c_begin_if_stmt): Update decl.
386
387         * objc/objc-act.c (objc_build_try_enter_fragment,
388         objc_build_extract_fragment, objc_build_try_epilogue,
389         objc_build_catch_stmt, objc_build_catch_epilogue,
390         objc_build_finally_prologue, objc_build_finally_epilogue): Update
391         for if builder function changes.
392
393 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
394
395         * config/s390/s390.c (struct machine_function):  New member
396         last_restore_gpr.
397         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
398         Do not modify machine->save_return_addr_p or regs_ever_live.
399         Fill in machine->last_restore_gpr.
400         (s390_optimize_prolog): Use s390_frame_info to compute registers
401         to save/restore, remove duplicated code.
402         (s390_arg_frame_offset): Use s390_frame_info to compute frame
403         size, remove duplicated code.
404         (s390_emit_prologue): Adapt s390_frame_info call.  Update
405         machine->save_return_addr_p and regs_ever_live.
406         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
407         machine->last_save_gpr.
408
409 2004-06-16  Richard Henderson  <rth@redhat.com>
410
411         * c-parse.in (if_stmt_locus): Remove.
412         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
413         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
414         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
415         empty_locus.  Add stmt_count, saw_else.
416         (c_begin_if_stmt): Push if_stack here.
417         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
418         (c_finish_then, c_finish_else): Record empty_locus.
419         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
420         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
421         if or else body.
422         * c-tree.h: Update prototypes.
423
424 2004-06-16  Steven Bosscher  <stevenb@suse.de>
425
426         * tree.h (PHI_CHAIN): New.
427         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
428         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
429         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
430         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
431         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
432         when traversing a list of PHI_NODEs.
433
434 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
435
436         PR target/13292
437         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
438         on -msoft-float.
439         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
440         68040 and soft-float.
441         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
442         in the TARGET_68040_ONLY case.
443
444 2004-06-16 Peter Barada  <peter@the-baradas.com>
445
446         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
447         (movsi_cf): Make named, don't match TARGET_CFV4.
448         (pushexthisi_const): Use mov3q if possible.
449         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
450         to special case mvz.w for ColdFire V4.
451         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
452         to special case mvz.b for ColdFire V4.
453         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
454         divide.
455         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
456         * config/m68k/m68k.c(valid_mov3q_const):  New function.
457         (const_method): SWAP is valid for ColdFire.
458         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
459         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
460
461 2004-06-16  Richard Henderson  <rth@redhat.com>
462
463         * c-common.def (CASE_LABEL): Remove.
464         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
465         (match_case_to_enum_1): Likewise.
466         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
467         * c-dump.c (c_dump_tree): Likewise.
468         * c-gimplify.c (c_gimplify_stmt): Likewise.
469         * c-pretty-print.c (pp_c_statement): Likewise.
470         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
471         * tree.h (CASE_LOW): Update commentary.
472
473 2004-06-16  Richard Henderson  <rth@redhat.com>
474
475         * c-common.def (ASM_STMT): Remove.
476         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
477         * c-dump.c (c_dump_tree): Likewise.
478         * c-gimplify.c (c_gimplify_stmt): Likewise.
479         * c-pretty-print.c (pp_c_statement): Likewise.
480         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
481         * tree.h: Fix commentary.
482
483 2004-06-16  Richard Henderson  <rth@redhat.com>
484
485         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
486         * c-common.c (c_add_case_label): Use LABEL_EXPR.
487         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
488         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
489         * c-dump.c (c_dump_tree): Likewise.
490         * c-gimplify.c (c_gimplify_stmt): Likewise.
491         * c-pretty-print.c (pp_c_statement): Likewise.
492         * c-parse.in (stmt): Use GOTO_EXPR.
493         (label): Use LABEL_EXPR.
494         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
495         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
496
497 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
498
499         * cfgcleanup.c (try_simplify_condjump): Update test to make
500         sure we have a conditional branch around am unconditional branch.
501
502 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
503
504         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
505
506 2004-06-16  Dale Johannesen  <dalej@apple.com>
507
508         * loop.c (loop_givs_reduce): Avoid miscompilation of
509         loops entered at bottom.
510
511 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
512
513         * cfglayout.c (fixup_reorder_chain): Handle case where the
514         destination of E_FALL is EXIT_BLOCK_PTR.
515
516 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
517
518         PR target/15653
519         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
520         after shifts before asm.
521
522 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
523
524         PR tree-optimization/15993
525         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
526         destination is unchanged.
527
528 2004-06-16  Andreas Jaeger  <aj@suse.de>
529
530         * doc/install.texi (Configuration): Update description for
531         --enable-version-specific-runtime-libs.
532
533 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
534
535         * doc/install.texi: boehm-gc now uses automake 1.8.5.
536
537 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
538
539         * toplev.h (rest_of_compilation): Adjust prototype.
540
541 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
542
543         * coverage.c: Remove argument to rest_of_compilation.
544         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
545         * passes.c (rest_of_compilation): Remove argument.
546         (pass_rest_of_compilation): New.
547         (rest_of_handle_final, rest_of_handle_delay_slots,
548         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
549         rest_of_handle_machine_reorg, rest_of_handle_regrename
550         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
551         rest_of_handle_regmove, rest_of_handle_tracer
552         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
553         rest_of_handle_web, rest_of_handle_branch_prob
554         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
555         rest_of_handle_addressof, rest_of_handle_jump_bypass
556         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
557         Check that the two arguments are actually superfluous.
558         * tree-optimize.c (register_dump_files): Add properties argument.
559         Track validity of passes.  Only initialize dump files for
560         tree-based passes.  Store the full set of provided passes in
561         the pass.
562         (init_tree_optimization_passes): Register pass_expand and
563         pass_rest_of_compilation.
564         (execute_one_pass): Do not track the presence of required properties
565         here.  Set in_gimple_form.  Do not update current_properties.
566         (current_properties): Remove.
567         (set_save_expr_context): Remove.
568         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
569         expand to RTL here, and do not call rest_of_compilation.  Push
570         GGC context even before gimplification.
571         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
572         (pass_expand, pass_rest_of_compilation): Declare.
573
574 2004-06-15  Jeff Law  <law@redhat.com>
575
576         * fold-const.c (swap_tree_comparison): No longer static.
577         (tree_swap_operands_p): Similarly.  Return true if both operands
578         are SSA_NAMEs and the first operand has a higher version number than
579         the second operand.
580         * tree.h (swap_tree_comparison): Prototype.
581         (tree_swap_operands_p): Prototype.
582         * tree-ssa-operands.c (get_expr_operands): For commutative
583         operators and relational comparisons, canonicalize the
584         order of the operands.
585
586 2004-06-15  Richard Henderson  <rth@redhat.com>
587
588         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
589         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
590         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
591         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
592         (finish_fname_decls, fname_decl): Use statement_lists.
593         (c_expand_expr_stmt): Don't set last_expr_type.
594         (c_type_hash): Fix indentation.
595         (c_safe_from_p): Don't follow TREE_CHAIN.
596         (c_tree_chain_matters_p): Remove.
597         * c-common.def (SCOPE_STMT): Remove.
598         (CLEANUP_STMT): Redefine to contain its own body.
599         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
600         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
601         Add x_cur_stmt_list.
602         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
603         (cur_stmt_list): New.
604         (STATEMENT_LIST_STMT_EXPR): New.
605         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
606         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
607         (CLEANUP_BODY): New.
608         (CLEANUP_DECL): Move to operand 2.
609         (c_common_stmt_codes): Remove SCOPE_STMT.
610         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
611         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
612         (c_push_function_context, c_pop_function_context): Don't save it.
613         (finish_decl): Set TREE_USED on the decl for a cleanup.
614         Use push_cleanup.
615         (store_parm_decls): Use statement lists.
616         (finish_function): Remove compstmt rule workaround.  Use statement
617         lists.  Call finish_fname_decls after finalizing the body.
618         (c_begin_compound_stmt): Move to c-typeck.c.
619         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
620         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
621         (c_genericize): Invoke them.
622         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
623         (c_build_bind_expr): Export.
624         (gimplify_block, gimplify_cleanup): Remove.
625         (gimplify_condition): Use gimplify_stmt.
626         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
627         (gimplify_if_stmt): Remove recursion hack.
628         (c_gimplify_expr): Remove STMT_EXPR handling.
629         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
630         (is_last_stmt_of_scope): Remove.
631         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
632         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
633         c_end_compound_stmt.
634         * c-objc-common.c (build_cdtor): Likewise.
635         * c-parse.in (primary): Use c_finish_stmt_expr.
636         (push_scope, pop_scope): Remove.
637         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
638         (c99_block_end, compstmt): Use c_end_compound_stmt.
639         (c99_block_lineno_labeled_stmt): Likewise.
640         (compstmt_primary_start): Use c_begin_stmt_expr.
641         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
642         (do_stmt_start): Fill in body directly.
643         (lineno_stmt): Avoid setting lineno on constants.
644         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
645         Remove SCOPE_STMT.
646         * c-semantics.c (begin_stmt_tree): Remove.
647         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
648         (add_stmt): Use statement lists.
649         (add_scope_stmt, finish_stmt_tree): Remove.
650         (push_cleanup): New.
651         * c-tree.h: Move some decls from c-common.h.
652         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
653         (do_case, c_finish_case): Likewise.
654         (c_finish_then): Take body for then as argument.
655         (c_finish_else): Similarly.
656         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
657         c_finish_for_stmt_incr, c_finish_for_stmt): New.
658         (c_begin_stmt_expr, c_finish_stmt_expr): New.
659         (c_begin_compound_stmt): Do scope management.
660         (c_end_compound_stmt): New.
661         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
662         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
663         Look through exception handling constructs.
664         (gimplify_bind_expr): Accept temporary argument.
665         (gimplify_target_expr): Special case BIND_EXPR bodies.
666         (gimplify_expr): Handle fallback == fb_none like a statement.
667         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
668         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
669         * langhooks.h (tree_chain_matters_p): Remove.
670         * stub-objc.c (objc_clear_super_receiver): New.
671         * tree-gimple.h (voidify_wrapper_expr): Update decl.
672         (append_to_statement_list, append_to_statement_list_force): Move
673         to tree-iterator.h.
674         * tree-inline.c (expand_call_inline): Update call.
675         (clone_body): Use statement lists.
676         (walk_tree): Don't check tree_chain_matters_p.
677         (copy_tree_r): Likewise.
678         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
679         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
680         * tree-iterator.h (append_to_statement_list,
681         append_to_statement_list_force): Moved from tree-gimple.h.
682         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
683         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
684         (objc_enter_block): Likewise.
685         (objc_exit_block): Use c_end_compound_stmt.
686         (objc_build_try_enter_fragment): Add #error and comment for
687         rewriting for OBJCPLUS.
688         (objc_build_extract_fragment, objc_build_try_epilogue,
689         objc_build_catch_stmt, objc_build_finally_prologue,
690         objc_build_finally_epilogue): Update for C statement builders.
691         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
692         Remove.
693
694 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
695
696         * df.c (df_reg_clobber_gen): Removed.
697         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
698         Make more effective for hard regs.
699         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
700
701 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
702
703         * c-pragma.h (c_lex_string_translate): Change type to int.
704         * c-parse.in: Change all assignments of c_lex_string_translate
705         to true and false to 1 and 0.
706         * c-lex.c (c_lex_string_translate): Likewise.
707         (lex_string): Convert string without translation in the -1
708         case.
709
710 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
711
712         * convert.h: Add include guards
713
714 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
715
716         * tree-flow-inline.h: Document all functions.
717
718 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
719
720         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
721         * tree-dfa.c (create_stmt_ann): Ditto.
722         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
723         * tree-inline.c (estimate_num_insns_1): Ditto.
724         * tree.c (tree_size): Ditto.
725         (make_node_stat): Ditto.
726         (tree_node_structure): Ditto.
727         (ephi_node_elt_check_failed): Remove.
728         (is_essa_node): Ditto.
729         * tree.def (EPHI_NODE): Ditto.
730         (EEXIT_NODE): Ditto.
731         (EUSE_NODE): Ditto.
732         (EKILL_NODE): Ditto.
733         * tree.h (EREF_NODE_CHECK): Remove.
734         (EPHI_NODE_ELT_CHECK): Ditto.
735         (struct tree_eref_common): Ditto.
736         (struct tree_euse_node): Ditto.
737         (struct ephi_arg_d): Ditto.
738         (struct tree_ephi_node): Ditto.
739         (ephi_node_elt_check_failed): Remove prototype.
740         (is_essa_node): Ditto.
741         (enum tree_node_structure_enum): Remove TS_E*_NODE.
742         (union tree_node): Remove E*_NODE uses.
743
744 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
745
746         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
747         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
748         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
749         Likewise.
750         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
751         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
752         expand_builtin_strcmp, expand_builtin_strncmp,
753         expand_builtin_frame_address): Likewise.
754         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
755         insert_one_insn): Likewise.
756         * calls.c (prepare_call_address, precompute_register_parameters,
757         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
758         * cfganal.c (flow_active_insn_p): Likewise.
759         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
760         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
761         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
762         make_extraction, recog_for_combine, gen_lowpart_for_combine,
763         simplify_comparison, record_dead_and_set_regs_1,
764         record_dead_and_set_regs, record_promoted_value,
765         check_promoted_subreg, get_last_value_validate, get_last_value,
766         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
767         unmentioned_reg_p_1): Likewise.
768         * conflict.c (mark_reg): Likewise.
769         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
770         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
771         merge_equiv_classes, flush_hash_table, invalidate,
772         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
773         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
774         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
775         record_jump_cond, cse_insn, addr_affects_sp_p,
776         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
777         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
778         cse_cc_succs, cse_condition_code_reg): Likewise.
779         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
780         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
781         cselib_record_set, cselib_record_sets): Likewise.
782         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
783         dbxout_block): Likewise.
784         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
785         * dojump.c (do_jump): Likewise.
786         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
787         is_based_loc, rtl_for_decl_location): Likewise.
788         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
789         set_decl_incoming_rtl, mark_user_reg): Likewise.
790         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
791         copy_to_suggested_reg, allocate_dynamic_stack_space,
792         probe_stack_range, hard_function_value): Likewise.
793         * expmed.c (store_bit_field, store_fixed_bit_field,
794         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
795         extract_split_bit_field, expand_divmod, emit_store_flag_force):
796         Likewise.
797         * expr.c (convert_move, convert_modes,
798         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
799         use_group_regs, emit_move_insn, emit_move_insn_1,
800         compress_float_constant, push_block, emit_single_push_insn,
801         emit_push_insn, get_subtarget, expand_assignment, store_expr,
802         store_constructor, store_field, force_operand, safe_from_p,
803         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
804         Likewise.
805         * final.c (profile_function, final_scan_insn, alter_subreg,
806         get_mem_expr_from_op, output_asm_operand_names, output_operand,
807         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
808         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
809         find_regno_partial, propagate_one_insn, init_propagate_block_info,
810         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
811         attempt_auto_inc, find_auto_inc, mark_used_regs,
812         count_or_remove_death_notes_bb): Likewise.
813         * function.c (find_temp_slot_from_address, update_temp_slot_address,
814         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
815         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
816         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
817         purge_single_hard_subreg_set, instantiate_decl,
818         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
819         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
820         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
821         expand_function_start, diddle_return_value, clobber_return_register,
822         expand_function_end, keep_stack_depressed, handle_epilogue_set,
823         update_epilogue_consts): Likewise.
824         * genemit.c (gen_exp, gen_insn): Likewise.
825         * genrecog.c (make_insn_sequence): Likewise.
826         * global.c (global_conflicts, expand_preferences, mark_reg_store,
827         mark_reg_conflicts, set_preference, reg_becomes_live,
828         build_insn_chain, mark_reg_change): Likewise.
829         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
830         Likewise.
831         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
832         Likewise.
833         * integrate.c (copy_rtx_and_substitute, try_constants,
834         subst_constants, mark_stores, allocate_initial_values): Likewise.
835         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
836         delete_computation, rtx_renumbered_equal_p, true_regnum,
837         reg_or_subregno): Likewise.
838         * lcm.c (reg_dies, reg_becomes_live): Likewise.
839         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
840         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
841         wipe_dead_reg, no_conflict_p): Likewise.
842         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
843         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
844         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
845         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
846         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
847         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
848         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
849         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
850         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
851         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
852         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
853         try_swap_copy_prop): Likewise.
854         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
855         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
856         Likewise.
857         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
858         reload_cse_simplify_operands, reload_combine,
859         reload_combine_note_store, reload_combine_note_use,
860         reload_cse_move2add, move2add_note_store): Likewise.
861         * print-rtl.c (print_rtx): Likewise.
862         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
863         contains_pseudo, handle_asm_insn): Likewise.
864         * ra-debug.c (ra_print_rtx_object, dump_constraints,
865         dump_static_insn_cost): Likewise.
866         * ra-rewrite.c (slots_overlap_p, emit_colors,
867         remove_suspicious_death_notes): Likewise.
868         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
869         register_operand, scratch_operand, nonmemory_operand,
870         constrain_operands): Likewise.
871         * reg-stack (check_asm_stack_operands, remove_regno_note,
872         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
873         subst_asm_stack_regs): Likewise.
874         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
875         record_address_regs, reg_scan_mark_refs): Likewise.
876         * regmove.c (discover_flags_reg, replacement_quality,
877         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
878         fixup_match_1): Likewise.
879         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
880         kill_set_value, copyprop_hardreg_forward_1): Likewise.
881         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
882         reload_inner_reg_of_subreg, can_reload_into, push_reload,
883         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
884         operands_match_p, decompose, find_reloads, find_reloads_toplev,
885         find_reloads_address, subst_indexed_address, find_reloads_address_1,
886         find_reloads_subreg_address, find_replacement,
887         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
888         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
889         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
890         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
891         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
892         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
893         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
894         do_output_reload, emit_reload_insns, gen_reload,
895         delete_address_reloads_1, inc_for_reload): Likewise.
896         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
897         update_reg_unused_notes, fill_slots_from_thread): Likewise.
898         * resource.c (update_live_status, mark_referenced_resources,
899         mark_set_resources, mark_target_live_regs): Likewise.
900         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
901         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
902         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
903         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
904         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
905         parms_set, find_first_parameter_load, keep_with_call_p,
906         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
907         num_sign_bit_copies1): Likewise.
908         * rtlhooks.c (gen_lowpart_general): Likewise.
909         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
910         sched_analyze): Likewise.
911         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
912         Likewise.
913         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
914         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
915         simplify_binary_operation, simplify_const_relational_operation,
916         simplify_subreg): Likewise.
917         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
918         expand_end_stmt_expr, expand_return, expand_decl,
919         expand_anon_union_decl): Likewise.
920         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
921         find_splittable_regs, find_splittable_givs, find_common_reg_term,
922         loop_iterations): Likewise.
923         * var-tracking.c (variable_union, variable_part_different_p,
924         variable_different_p, count_uses, add_uses, add_stores,
925         compute_bb_dataflow, set_variable_part, delete_variable_part,
926         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
927         Likewise.
928         * varasm.c (assemble_variable): Likewise.
929
930 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
931
932         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
933         definition.
934         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
935         #undef and #if 0'd definition.
936
937 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
938
939         * combine.c (distribute_notes): Comment typo fix.
940
941 2004-06-15  Roger Sayle  <roger@eyesopen.com>
942
943         * expmed.c (synth_mult): Mask bits of the multiplier to the
944         machine mode of the multiplication.  Don't consider shifts
945         by more than (or equal to) the width of the operation's mode.
946
947 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
948
949         * doc/install.texi: Yet another update for autoconf
950         and automake versions.
951
952 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
953
954         * function.h (struct function): Remove cannot_inline field.
955         (current_function_cannot_inline): Remove.
956         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
957         Simplify conditionals to ignore warn_return_type.
958         * tree-optimize.c (tree_rest_of_compilation): Do not reset
959         DECL_DEFER_OUTPUT.
960         * objc/objc-act.c (build_module_descriptor, finish_method_def):
961         Do not set current_function_cannot_inline.
962
963 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
964
965         * cfglayout.c (fixup_reorder_chain): Handle case where the
966         destination of E_TAKEN is EXIT_BLOCK_PTR.
967
968 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
969
970         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
971
972 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
973
974         * fold-const.c (operand_equal_p): Update comment.
975
976 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
977
978         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
979         (INCOMING_RETURN_ADDR_RTX): Define.
980         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
981         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
982         __builtin_return_address(0).
983         (m32r_return_addr): Added for __builtin_return_address(0).
984         (m32r_reload_lr): Ditto.
985
986         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
987
988 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
989
990         * doc/install.texi (Prerequisites): Update libbanshee,
991         fastjar, libcpp, libjava/libltdl entries to
992         automake 1.8.5.
993
994 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
995             Olivier Hainque  <hainque@act-europe.fr>
996
997         * function.c (fixup_var_refs): Also adjust the start of sequence
998         after fixing up the insns.
999
1000 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1001
1002         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1003
1004 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1005
1006         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1007         automake 1.8.5.
1008
1009 2004-06-14  Eric Christopher  <echristo@redhat.com>
1010
1011         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1012         to -mtpf-trace (-mno-tpf-trace).
1013         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1014         documentation.
1015
1016 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1017
1018         * real.c: Fix bit count in head comment.
1019
1020 2004-06-14  Jeff Law  <law@redhat.com>
1021
1022         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1023         PHIs where the destination or an argument is marked with
1024         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1025
1026 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1027
1028         PR middle-end/15945
1029         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1030         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1031
1032 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1033
1034         * opts.sh (var_args): Fix regexp.
1035
1036 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1037
1038         PR target/15178
1039         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1040
1041 2004-06-14  Paul Brook  <paul@codesourcery.com>
1042
1043         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1044
1045 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1046
1047         * Makefile.in (FLAGS_H): New.
1048         (flags.h): Replace by FLAGS_H.
1049         * c.opt: Document Var, VarExists, Init and Report attributes.
1050         * common.opt: Fill the values of the attributes.
1051         * diagnostic.c (flag_fatal_errors): Do not define.
1052         * except.c (flag_non_call_exceptions): Do not define.
1053         * flags.h: Include options.h.  Remove declarations conflicting with
1054         the automatically defined ones.
1055         * opts.c: Remove automatically defined variables.
1056         (handle_option): Perform default initialization.
1057         (common_handle_option): Do not handle options covered by the
1058         default initialization.
1059         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1060         fields.
1061         (CL_REPORT): New.
1062         * opts.sh: Generate variable declarations, handle CL_REPORT.
1063         * toplev.c: Remove automatically defined variables.
1064         (f_options): Removed.
1065         (print_switch_values): Use cl_options instead of f_options.
1066         * toplev.h (version_flag): Declaration removed.
1067
1068 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1069
1070         * config/sparc/sparc.h: Correct comment about availability of
1071         little endian option.
1072
1073         * config.gcc: Remove sparc64-*-aout*.
1074         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1075         * config/sparc/sp64-aout.h: Remove.
1076         * config/sparc/aout.h: Remove.
1077
1078 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1079
1080         * config/s390/s390.c: Include "tree-gimple.h".
1081         (s390_gimplify_va_arg): New function.
1082         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1083         (s390_va_arg): Remove.
1084         * config/s390/s390-protos.h (s390_va_arg): Remove.
1085         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1086
1087 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1088
1089         * basic-block.h (could_fall_through): Declare.
1090         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1091         Fail if the source already has a fallthrough edge to the exit
1092         block pointer.
1093         (could_fall_through): New function.
1094         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1095         edge to the exit block pointer.
1096         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1097         not called before reload has completed.
1098         Handle special case of first block having a fall-through exit edge.
1099         (cfg_layout_finalize): Don't call it before reload or if we have
1100         rtl epilogues.
1101         (fixup_reorder_chain): A fall through to the exit block does not
1102         require the block to come last.  Add sanity checks.
1103         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1104         edges to the exit block.
1105         * function.c (cfglayout.h): #include.
1106         (thread_prologue_and_epilogue_insns): If we have neither return nor
1107         epilogue, but a fall through to the exit block from mid-function,
1108         force a non-fall-through exit.
1109         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1110
1111 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1112
1113         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1114         for power5 and rs64a.  Correct condition for default.  Correct power3,
1115         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1116
1117 2004-06-13  Steven Bosscher <stevenb@suse.de>
1118
1119         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1120         Revert previous change, don't use CALL_P.
1121
1122 2004-06-13  Jason Merrill  <jason@redhat.com>
1123
1124         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1125         * tree-gimple.h: From here.
1126
1127 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1128
1129         Fix PR tree-optimization/15979
1130         Fix PR tree-optimization/15981
1131         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1132         try to insert values undefined along some path.
1133
1134 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1135
1136         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1137         are available everywhere too.
1138
1139 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1140
1141         * fold-const.c (fold_checksum_tree <case 't'>): Only
1142         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1143         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1144         EXPR is an INTEGERAL_TYPE or a scalar float type.
1145
1146 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1147
1148         * tree-sra.c (tree_sra): Update documentation.
1149
1150 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1151
1152         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1153         function_types_compatible_p, type_lists_compatible_p): Remove
1154         flags parameter.
1155         * c-tree.h (comptypes): Likewise.
1156         (COMPARE_STRICT): Remove.
1157         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1158         callers changed.
1159
1160 2004-06-13  Eric Christopher  <echristo@redhat.com>
1161
1162         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1163         Remove unused code.
1164         * c-typeck.c (comptypes): Add location in standard we're checking.
1165
1166 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1167
1168         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1169         version 3.3.4.
1170
1171 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1172
1173         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1174         index by machine mode.
1175         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1176         tables inside the loop over machine modes.
1177         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1178         expand_divmod): Index shift*_cost by the appropriate machine mode.
1179
1180 2004-06-12  Eric Christopher  <echristo@redhat.com>
1181
1182         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1183         * config/s390/s390.md: Ditto.
1184         * config/s390/s390.c: Ditto.
1185         (s390_frame_info): Conditionalize frame and setup info on
1186         TARGET_TPF_PROFILING.
1187         (s390_arg_frame_offset): Ditto.
1188
1189 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1190
1191         * fold-const.c (omit_two_operands): New function.
1192         * tree.h (omit_two_operands): Prototype here.
1193         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1194         C99 unordered comparison builtins to the appropriate tree nodes.
1195         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1196         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1197         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1198         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1199         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1200         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1201         omit_two_operands function to build the required COMPOUND_EXPRs.
1202
1203 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1204             Andreas Jaeger  <aj@suse.de>
1205
1206         * gcse.c (record_set_info): Use predicates like REG_P.
1207         (mems_conflict_for_gcse_p): Likewise.
1208         (load_killed_in_block_p): Likewise.
1209         (hash_expr_1): Likewise.
1210         (insert_set_in_table): Likewise.
1211         (gcse_constant_p): Likewise.
1212         (hash_scan_set): Likewise.
1213         (hash_scan_insn): Likewise.
1214         (canon_list_insert): Likewise.
1215         (record_last_mem_set_info): Likewise.
1216         (record_last_set_info): Likewise.
1217         (compute_hash_table_work): Likewise.
1218         (mark_set): Likewise.
1219         (mark_clobber): Likewise.
1220         (mark_oprs_set): Likewise.
1221         (compute_transp): Likewise.
1222         (find_avail_set): Likewise.
1223         (cprop_insn): Likewise.
1224         (do_local_cprop): Likewise.
1225         (cprop): Likewise.
1226         (find_implicit_sets): Likewise.
1227         (find_bypass_set): Likewise.
1228         (bypass_conditional_jumps): Likewise.
1229         (insert_insn_end_bb): Likewise.
1230         (pre_insert_copy_insn): Likewise.
1231         (compute_transpout): Likewise.
1232         (next_ls_expr): Likewise.
1233         (invalidate_any_buried_refs): Likewise.
1234         (compute_ld_motion_mems): Likewise.
1235         (reg_set_info): Likewise.
1236         (reg_clear_last_set): Likewise.
1237         (find_moveable_store): Likewise.
1238         (compute_store_table): Likewise.
1239         (find_loads): Likewise.
1240         (store_killed_in_insn): Likewise.
1241         (insert_insn_start_bb): Likewise.
1242         (reg_set_between_after_reload_p): Likewise.
1243         (reg_used_between_after_reload_p): Likewise.
1244         (is_jump_table_basic_block): Likewise.
1245         (gcse_after_reload): Likewise.
1246         (hash_scan_set_after_reload): Likewise.
1247         (compute_hash_table_after_reload): Likewise.
1248
1249 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1250
1251         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1252         (INSN_P): Don't look at the rtx code class, just explicitly
1253         check for one of the tree RTX_INSN codes.
1254
1255 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1256
1257         * c-typeck.c (default_function_array_conversion): Use
1258         build_pointer_type not TYPE_POINTER_TO.
1259
1260 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1261
1262         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1263         * configure, config.in: Regenerate.
1264         * system.h: Unconditionally define bool as unsigned char,
1265         BOOL_BITFIELD as unsigned int.
1266         * domwalk.h: Use BOOL_BITFIELD.
1267
1268 2004-06-12  Andreas Jaeger  <aj@suse.de>
1269
1270         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1271         * libgcc-darwin.ver: Likewise.
1272
1273 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1274
1275         * reload.c (find_reloads): Force reload for pseudo registers on big
1276         endian machines.
1277
1278 2004-06-11  Steven Bosscher <stevenb@suse.de>
1279
1280         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1281         Don't try to mark anything control dependent on the entry or
1282         exit blocks.
1283
1284 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1285
1286         Fix Bug 15899
1287         Fix Bug 15460
1288         * tree.h (SSA_NAME_VALUE): New macro.
1289         (struct tree_ssa_name): Add value_handle member.
1290         * tree-ssa-pre.c: Replaced.
1291         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1292         (struct cst_ann_d): New.
1293         (struct expr_ann_d): New.
1294         (union tree_ann_d): Add cst_ann, expr_ann.
1295         * tree-dfa.c (create_cst_ann): New function.
1296         (create_expr_ann): Ditto.
1297         * tree-flow-inline.h (cst_ann): New function.
1298         (expr_ann): Ditto.
1299         (get_cst_ann): Ditto.
1300         (get_expr_ann): Ditto..
1301
1302 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1303
1304         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1305         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1306         _U_Qfcmp library function.
1307         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1308         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1309
1310         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1311         unspec used for loading address from DLT.
1312         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1313         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1314         Don't use short code sequence when loading the address of a nonlocal
1315         label.
1316         (nonlocal_goto): New expander.
1317         (indirect_goto): New jump pattern for nonlocal gotos.
1318         (short_jump): Remove extra whitespace.
1319         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1320         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1321         pattern.
1322
1323 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1324
1325         * expmed.c (synth_mult): Add an additional MODE argument for the
1326         machine mode of the multiplication.  Update recursive calls.  Use
1327         mode instead of word_mode for determining operation costs.
1328         (choose_mult_variant): Update calls to synth_mult with "mode".
1329
1330 2004-06-11  Richard Henderson  <rth@redhat.com>
1331
1332         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1333         and makes_aliased_stores.
1334
1335 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1336
1337         * doc/install.text (--enable-shared): Fix typo.
1338
1339 2004-06-11  Richard Henderson  <rth@redhat.com>
1340
1341         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1342         argument.  Use internal post for call to gimplify_expr.  Tidy
1343         rounded type size computation.
1344         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1345         get_initialized_tmp_var.
1346
1347 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1348
1349         * doc/install.texi (--enable-shared): Update libobjc's shared library
1350         status.  Remove reference to libf2c.
1351
1352 2004-06-11  Jason Merrill  <jason@redhat.com>
1353
1354         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1355         * config/i386/i386.c (ix86_va_arg): Remove.
1356         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1357         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1358         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1359         * config/alpha/alpha.c (alpha_va_arg): Remove.
1360         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1361         * config/sparc/sparc.c (sparc_va_arg): Remove.
1362
1363         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1364         assignment might throw.
1365         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1366         expressions.
1367
1368 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1369
1370         PR 15886:
1371         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1372
1373 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1374
1375         * doc/install.texi (Prerequisites): Update documentation of
1376         required versions of autoconf and automake.  Remove mention of
1377         libf2c.
1378
1379 2004-06-11  Jason Merrill  <jason@redhat.com>
1380
1381         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1382         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1383
1384 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1385
1386         * typeclass.h: Add GPL plus exception license.  Add include
1387         guard.
1388
1389 2004-06-10  Jason Merrill  <jason@redhat.com>
1390
1391         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1392         of an aggregate_value_p type.
1393
1394 2004-06-10  Jeff Law  <law@redhat.com>
1395
1396         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1397         code when we are in gimple form.
1398
1399 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1400
1401         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1402         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1403         (highest_ssa_version): Remove.
1404         * tree-outof-ssa.c (new_temp_expr_table): Replace
1405         highest_ssa_version with num_ssa_names.
1406         (dump_replaceable_exprs): Likewise.
1407         (rewrite_vars_out_of_ssa): Likewise.
1408         * tree-ssa-ccp.c (initialize): Likewise
1409         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1410         * tree-ssa-dce.c (tree_dce_init): Likewise.
1411         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1412         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1413         (dump_var_map): Likewise.
1414         * tree-ssa.c (verify_ssa): Likewise.
1415         (kill_redundant_phi_nodes): Likewise.
1416         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1417         * tree-ssanames.c: Include tree-flow.h
1418         (ssa_names): New varray.
1419         (init_ssa_names): Initialize ssa_names.
1420         Reserve the first slot of the ssa_names table.
1421         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1422         Assign version numbers using num_ssa_names.
1423
1424 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1425
1426         * doc/sourcebuild.texi (Front End): Add details of more
1427         installation documentation required.
1428
1429 2004-06-10  Brian Booth  <bbooth@redhat.com>
1430
1431         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1432         of V_MAY_DEF and V_MUST_DEF.
1433         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1434         num_vdefs to num_v_may_defs.
1435         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1436         to v_may_def.
1437         (redirect_immediate_uses): Ditto.
1438         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1439         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1440         Also add code to sum up the number of v_must_defs.
1441         (vdefs_disappeared_p): Replace with...
1442         (v_may_defs_disappeared_p): This.
1443         (v_must_defs_disappeared_p): New function.
1444         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1445         Also add code to mark new variables found in V_MUST_DEFs for
1446         renameing.
1447         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1448         vdef_ops to v_may_def_ops.
1449         (get_vdef_ops): Replace with...
1450         (get_v_may_def_ops): This.
1451         * tree-flow-inline.h (get_vdef_ops): Replace with...
1452         (get_v_may_def_ops): This.
1453         (get_v_must_def_ops): New function.
1454         (get_vdef_result_ptr): Replace with...
1455         (get_v_may_def_result_ptr): This.
1456         (get_vdef_op_ptr): Ditto with...
1457         (get_v_may_def_op_ptr); This.
1458         (get_v_must_def_op_ptr): New function.
1459         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1460         to v_may_def. Also add code to mark statements with
1461         V_MUST_DEFs as definition sites.
1462         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1463         add code to register new V_MUST_DEFs made by the statement.
1464         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1465         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1466         add check for V_MUST_DEFs.
1467         (find_replaceable_in_bb): Ditto.
1468         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1469         to v_may_def. Also add code to dump V_MUST_DEFs.
1470         * tree-sra.c (mark_all_vdefs): Replace with...
1471         (mark_all_v_may_defs): This.
1472         (mark_all_v_must_defs): New function.
1473         (create_scalar_copies): Replace call to mark_all_vdefs with
1474         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1475         (scalarize_structures): Rename occurences of vdef to v_may_def.
1476         Also add a check for V_MUST_DEFs.
1477         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1478         * tree-ssa-alias.c (global_var): Update comment.
1479         (compute_may_aliases): Ditto.
1480         (compute_points_to_and_addr_escape): Rename occurences of vdef
1481         to v_may_def. Also add code to mark variables in V_MUST_DEF
1482         operands as being written to.
1483         (group_aliases): Update comment.
1484         (maybe_create_global_var): Ditto.
1485         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1486         Also add a check for V_MUST_DEFs on GIMPLE registers.
1487         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1488         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1489         to v_may_def. Also add code to mark all V_MUST_DEF operands
1490         VARYING.
1491         (initialize): Ditto.
1492         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1493         code to update SSA_NAMEs in V_MUST_DEFs.
1494         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1495         to v_may_def.
1496         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1497         occurences of vdef to v_may_def. Also add code to mark statements
1498         with V_MUST_DEFs as necessary.
1499         (propagate_necessity): Rename occurences of vdef to v_may_def.
1500         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1501         occurences of vdef to v_may_def. Also add code to mark operands
1502         in V_MUST_DEFs for renaming.
1503         (eliminate_redundant_computations): Rename occurences of vdef
1504         to v_may_def.
1505         (record_equivalences_from_stmt): Rename occurences of vdef
1506         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1507         (optimize_stmt): Remove unnesessary variable vdefs. Update
1508         comment.
1509         (register_definitions_for_stmt): Rename occurences of vdef
1510         to v_may_def. Also add code to register definitions made with
1511         V_MUST_DEFs.
1512         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1513         (fix_stmt_v_may_defs): This.
1514         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1515         (dse_optimize_stmt): Ditto.
1516         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1517         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1518         used in virtual operators.
1519         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1520         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1521         renaming.
1522         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1523         definitions.
1524         (build_vdefs): Renamed to...
1525         (build_v_may_defs): This.
1526         (build_v_must_defs): New variable.
1527         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1528         v_may_def_ops.
1529         (append_vdef): Replace with...
1530         (append_v_may_def): This.
1531         (append_v_must_def): New function.
1532         (NUM_FREE): Increment for V_MUST_DEF
1533         (optype_freelist): Increment its size for V_MUST_DEF
1534         (allocate_vdef_optype): Replace with...
1535         (allocate_v_may_def_optype): This.
1536         (allocate_v_must_def_optype): New function.
1537         (free_vdefs): Replace with...
1538         (free_v_may_defs): This.
1539         (free_v_must_defs): New function.
1540         (remove_vdefs): Replace with...
1541         (remove_v_may_defs): This.
1542         (remove_v_must_defs): New function.
1543         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1544         add code to initialize build_v_must_defs.
1545         (finalize_ssa_vdefs): Replace with...
1546         (finalize_ssa_v_may_defs): This.
1547         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1548         (finalize_ssa_v_must_defs): New function.
1549         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1550         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1551         (verify_start_operands): Rename occurences of vdef to v_may_def.
1552         Also add check for build_v_must_defs.
1553         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1554         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1555         killing definitions.
1556         (get_expr_operands): Update comment and use opf_kill_def for
1557         killing definitions.
1558         (add_stmt_operand): Replace code that appends VDEFs with code
1559         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1560         otherwise.
1561         (add_call_clobber_ops): Update comments.
1562         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1563         (v_may_def_optype_d): This.
1564         (v_must_def_optype_d): New structure.
1565         (VDEF_OPS): Replace with...
1566         (V_MAY_DEF_OPS): This.
1567         (STMT_VDEF_OPS): Same with...
1568         (STMT_V_MAY_DEF_OPS): This.
1569         (NUM_VDEFS): And...
1570         (NUM_V_MAY_DEFS): This.
1571         (VDEF_RESULT_PTR): As well as...
1572         (V_MAY_DEF_RESULT_PTR): This.
1573         (VDEF_RESULT): Same goes for...
1574         (V_MAY_DEF_RESULT): This.
1575         (VDEF_OP_PTR): And...
1576         (V_MAY_DEF_OP_PTR): This.
1577         (VDEF_OP): And...
1578         (V_MAY_DEF_OP): This.
1579         (V_MUST_DEF_OPS): New macro.
1580         (STMT_V_MUST_DEF_OPS): Ditto.
1581         (NUM_V_MUST_DEFS): Ditto.
1582         (V_MUST_DEF_OP_PTR): Ditto.
1583         (V_MUST_DEF_OP): Ditto.
1584         (remove_vdefs): Replace signature with...
1585         (remove_v_may_defs): This.
1586         (remove_v_must_defs): New function signature.
1587         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1588         with calls to remove_v_may_defs and remove_v_must_defs.
1589         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1590         Also add code that marks left occurences of operands in V_MUST_DEFs.
1591         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1592         to v_may_def. Also add check for V_MUST_DEFs.
1593         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1594
1595 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1596
1597         PR target/15653
1598         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1599         insn.
1600
1601 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1602
1603         PR web/15263
1604         * doc/install.texi: Remove superfluous linebreak.
1605
1606 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1607
1608         * builtins.c (expand_builtin): Fall back to library function call for
1609         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1610         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1611         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1612         IMAGPART_EXPR respectively.
1613
1614 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1615
1616         * sh.c (dump_table): New argument start.  Changed caller.
1617         (fixup_mova): New function.
1618         (find_barrier): Use it.
1619         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1620         If the label a mova refers to is above the mova itself, change
1621         the mova into a load.
1622         * sh.md (*casesi_worker): Rename to:
1623         (casesi_worker_1).
1624         (casesi_worker_2): New insn.
1625
1626 2004-06-10  Jason Merrill  <jason@redhat.com>
1627
1628         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1629         hook signature.
1630         * tree-gimple.h: Adjust.
1631         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1632         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1633         Use fold_convert.
1634         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1635         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1636         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1637         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1638         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1639         Gimplify valist rather than calling stabilize_va_list.
1640
1641 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1642
1643         * Makefile.in (df.o): Remove fibheap dependency.
1644         * df.h: Do not include sbitmap.h.
1645         (struct ref): New field "data".
1646         (DF_REF_DATA): New accessor macro.
1647         (struct df): Field "dom" removed.
1648         (df_analyze_subcfg): New function.
1649         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1650         (transfer_function): ... new type.
1651         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1652         (iterative_dataflow): ... new function.
1653         (enum set_representation, struct dataflow): New.
1654         * df.c: Do not include fibheap.h.
1655
1656         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1657         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1658         prune_to_subcfg, df_bb_modify): New functions.
1659         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1660         df_refs_update, df_reg_table_realloc, df_ref_create,
1661         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1662         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1663         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1664
1665         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1666         (df_rd_transfer_function, df_ru_transfer_function,
1667         df_lr_transfer_function): Type of bitmaps changed to void *.
1668         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1669         (hybrid_search): ... new function.
1670         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1671         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1672         a worklist.  Do not process basic blocks unnecessarily.
1673
1674 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1675
1676         * fold-const.c (fold_abs_const): Make extern.
1677         * tree.h (fold_abs_const): Prototype here.
1678         * builtins.c (fold_builtin_fabs): New function to transform
1679         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1680         (fold_builtin_abs): New function to transform abs, labs, llabs
1681         and imaxabs builtins into ABS_EXPR tree nodes.
1682         (expand_builtin): Fall back to a function call for abs, labs,
1683         llabs and imaxabs builtins that survive constant folding.
1684         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1685         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1686
1687 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1688
1689         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1690         leaf function without unwind info at RP 0.
1691
1692 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1693
1694         PR c++/14791
1695         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1696         (fileptr_type_node): Define.
1697         * tree.c (build_common_tree_nodes_2): Initialize
1698         fileptr_type_node to ptr_type_node.
1699         * c-common.c (c_common_nodes_and_builtins): For C++, make
1700         fileptr_type_node a distinct type copy.
1701         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1702         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1703         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1704         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1705         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1706         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1707         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1708         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1709         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1710         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1711         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1712         the above *FILEPTR* types instead of *PTR*.
1713
1714 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1715
1716         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1717         match.
1718
1719 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1720
1721         * fold-const.c (fold_not_const): New function.
1722         (fold) <ABS_EXPR>: Don't bother testing wins.
1723         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1724         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1725
1726 2004-06-09  Richard Henderson  <rth@redhat.com>
1727
1728         PR middle-end/15228
1729         * function.c (assign_parms): Always set_mem_align with the computed
1730         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1731
1732 2004-06-09  Richard Henderson  <rth@redhat.com>
1733
1734         PR opt/15108
1735         * tree-tailcall.c (find_tail_calls): Don't check early for
1736         tail_recursion failure.
1737
1738 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1739
1740         Move SSA_NAME annotations into tree_ssa_name.
1741
1742         * tree-dfa.c (create_ssa_name_ann): Remove.
1743         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1744         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1745         (struct ssa_name_ann_d): Remove.
1746         (union tree_ann_d): Update.
1747         (ssa_name_ann_t): Remove.
1748         * tree-ssa-alias.c: (get_ptr_info): New local function.
1749         Replace references to ssa_name_ann_t with struct ptr_info_def.
1750         * tree-ssa-operands.c (get_expr_operands): Likewise.
1751         * tree.h (SSA_NAME_PTR_INFO): Define.
1752         (struct ptr_info_def): Declare.
1753         (struct tree_ssa_name): Add field 'ptr_info'.
1754
1755 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1756
1757         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1758         misplaced ')'.
1759
1760 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1761
1762         * config/i386/k6.md: Rewrite using the DFA model.
1763         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1764         cost of load-operation insns for the K6.
1765         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1766         (ia32_multipass_dfa_lookahead): Likewise.
1767
1768 2004-06-09  Richard Henderson  <rth@redhat.com>
1769
1770         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1771         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1772
1773 2004-06-09  Richard Henderson  <rth@redhat.com>
1774
1775         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1776
1777 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1778
1779         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1780         (CPP_ID_DATA_H): New.
1781         (gtype-desc.o): Update dependencies.
1782         (GTFILES): Use CPP_ID_DATA_H.
1783
1784 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1785
1786         Revert:
1787         PR c++/15815
1788         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1789         * doc/extend.texi: Deprecate #pragma interface and #pragma
1790         implementation.
1791
1792 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1793
1794         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1795
1796 2004-06-09  Richard Henderson  <rth@redhat.com>
1797
1798         * basic-block.h (struct edge_def): Add goto_locus.
1799         * tree-cfg.c (make_goto_expr_edges): Set it.
1800         (disband_implicit_edges): Use it.
1801         * tree-pretty-print.c (dump_implicit_edges): Print it.
1802
1803 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1804
1805         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1806
1807 2004-06-08  Jason Merrill  <jason@redhat.com>
1808
1809         Gimplify VA_ARG_EXPR into simpler forms.
1810         * target.h: Add gimplify_va_arg_expr hook.
1811         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1812         * fold-const.c (build_fold_addr_expr)
1813         (build_fold_addr_expr_with_type): Move from gimplify.c.
1814         * tree.h: Declare them.
1815         * gimplify.c (gimplify_and_add): New fn.
1816         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1817         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1818         (gimplify_expr): Use build_fold_*.
1819         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1820         don't know how to gimplify it.
1821         * builtins.c (std_gimplify_va_arg_expr): New fn.
1822         (dummy_object): New static fn.
1823         (gimplify_va_arg_expr): New fn.
1824         (stabilize_va_list): Use build_fold_*.
1825         * tree-gimple.h: Declare new fns.
1826         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1827         (ix86_gimplify_va_arg): New fn.
1828         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1829         (ia64_gimplify_va_arg): New fn.
1830         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1831         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1832         * alias.c (get_varargs_alias_set): Just return 0 for now.
1833
1834         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1835
1836 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1837
1838         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1839         of convert.
1840         * tree-inline.c (setup_one_parameter): Likewise.
1841         * tree-sra.c (csc_build_component_ref): Likewise.
1842         * tree-ssa-ccp.c (ccp_fold): Likewise.
1843         * tree-ssa-copy.c (cprop_operand): Likewise.
1844         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1845         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1846
1847 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1848
1849         PR rtl-optimization/15521:
1850         * sched-int.h (in_post_call_group_p): Change type to enum.
1851         * sched-deps.c (sched_analyze_insn):
1852         (sched_analyze): When in_post_call_group_p is post_call_initial,
1853         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1854         and also reset in_post_call_group_p to post_call.
1855         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1856         initialize in_post_call_group_p as post_call_initial.
1857         (init_deps): initialize in_post_call_group_p to not_post_call.
1858
1859 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1860
1861         PR ada/6637
1862         * doc/install.texi: List ada, libada as options to --enable-shared
1863
1864 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1865
1866         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1867         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1868         config.in entries.
1869         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1870         if hard links are not available.
1871         * configure: Regenerate.
1872         * config.in: Regenerate.
1873
1874 2004-06-08  Per Bothner  <per@bothner.com>
1875
1876         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1877
1878 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1879
1880         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1881         Correct formatting.
1882
1883 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1884
1885         PR target/15790
1886         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1887
1888 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1889
1890         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1891         POINTER_TYPE and INTEGER_TYPE.
1892
1893 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1894
1895         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1896         defined.
1897
1898 2004-06-08  Jeff Law  <law@redhat.com>
1899
1900         * doc/contrib.texi: Add entries for Stefan Olsson and
1901         Ola Ronnerup.
1902
1903 2004-06-08  DJ Delorie  <dj@redhat.com>
1904
1905         * toplev.c (floor_log2_wide): Replace loop with faster bit
1906         operations.
1907         (exact_log2_wide): Define in terms of the above.
1908         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1909         available.
1910
1911 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1912
1913         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1914         Make sure that we are in INDIRECT mode when getting the
1915         stub name.
1916
1917 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1918
1919         * h8300.md (extendqisi2_h8300): Add constraints.
1920         (ldm_h8300s_4_normal): Fix typo.
1921
1922 2004-06-08  Richard Henderson  <rth@redhat.com>
1923
1924         * gimple-low.c (struct lower_data): Replace the_return_label and
1925         one_return_stmt with return_statements.
1926         (lower_function_body): Process the entire list of return_statements.
1927         (lower_return_expr): Check source value before unifying return_exprs.
1928         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1929         for !aggregate_value_p.
1930         * tree-gimple.c: Update RETURN_EXPR grammer.
1931
1932 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1933
1934         PR target/15598
1935         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1936
1937 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1938
1939         PR rtl-optimization/15717
1940         * config/i386/i386.c (legitimate_constant_p): Do not allow
1941         x - symbol_ref.
1942
1943 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1944
1945         * gimplify.c (copy_if_shared_r): Revert:
1946         2004-05-21  Richard Henderson  <rth@redhat.com>
1947         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1948
1949 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1950
1951         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1952         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1953         (init_expmed): Initialize these cost arrays as appropriate.
1954         (store_bit_field, extract_bit_field): Correct whitespace.
1955         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1956         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1957         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1958         word_mode or compute_mode as appropriate.
1959
1960 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1961
1962         PR target/15783
1963         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1964         parameter.  Enumerate the registers inside the PARALLEL.
1965         (function_arg): Adjust call to function_arg_union_value.
1966         (function_value): Likewise.
1967
1968         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1969
1970 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1971
1972         * real.c (real_copysign): New function to implement libm's copysign.
1973         * real.h (real_copysign): Prototype here.
1974         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1975         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1976         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1977         fold_builtin_isdigit): Add function prototypes.
1978         (fold_builtin_copysign): New function to fold copysign, copysignf
1979         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1980         constant arguments at compile-time using real_copysign.  Fold
1981         copysign(X,Y) as fabs(X) if Y is always non-negative.
1982         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1983         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1984
1985 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1986
1987         * tree.c (iterative_hash_expr): Use real_hash.
1988
1989 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1990
1991         PR c/14765
1992         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1993         NULL_TREE.
1994
1995 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1996
1997         PR c++/15815
1998         * doc/extend.texi: Deprecate #pragma interface and #pragma
1999         implementation.
2000
2001 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2002
2003         PR middle-end/15666
2004         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2005         builtin decl as well.
2006
2007 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2008
2009         PR c/14649
2010         * c-typeck.c (require_constant_value, require_constant_elements):
2011         Move declarations to the top of the file.
2012         (build_function_call): If we require a constant value, fold with
2013         fold_initializer.  If the result is a constant, and the function
2014         wasn't called using __builtin_foo, issue a pedantic warning.
2015         (build_unary_op): If we require a constant value, fold tree with
2016         fold_initializer.
2017         (build_binary_op): Use require_constant_value to determine whether
2018         to call fold or fold_initializer.
2019
2020 2004-06-07  Richard Henderson  <rth@redhat.com>
2021
2022         * gimple-low.c (struct lower_data): Add the_return_label and
2023         one_return_stmt.
2024         (lower_function_body): Initialize and use them.
2025         (lower_return_expr): New.
2026         (lower_stmt): Call it.
2027         * gimplify.c (gimplify_return_expr): Force the argument to be either
2028         null or a result_decl.
2029         * tree-gimple.c: Update gimple grammer to match.
2030         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2031         coalescing of result_decls.
2032
2033 2004-06-07  Richard Henderson  <rth@redhat.com>
2034
2035         PR rtl-opt/15193
2036         * expmed.c (extract_bit_field): Fix vector_extract return.
2037
2038         * config/i386/i386.md (negv4sf2): New pattern.
2039
2040 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2041
2042         PR c++/15337
2043         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2044         message.
2045
2046 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2047
2048         * config.in: Regenerate.
2049
2050 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2051
2052         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2053         SWITCH_LABELS are always sorted.
2054
2055 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2056
2057         * hooks.c (hook_int_void_1): New generic hook.
2058         * hooks.h (hook_int_void_1): Add prototype.
2059         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2060         Define to hook_int_void_1.
2061         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2062         with dummies for the new one.
2063
2064 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2065
2066         * tree.h (lvalue_or_else): Delete function prototype.
2067         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2068
2069 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2070
2071         PR target/14542
2072         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2073         a live change of a register after peephole replacement.
2074
2075 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2076
2077         PR c/13519
2078         * c-typeck.c (composite_type, common_pointer_type): New functions.
2079         (common_type): Split parts into composite_type and
2080         common_pointer_type.  Ensure that arithmetic operations return
2081         unqualified types without attributes.  Don't make composite type
2082         of signed enum and compatible integer be unsigned.
2083         (build_conditional_expr, build_binary_op): Use
2084         common_pointer_type.
2085         * c-decl.c (merge_decls): Use composite_type.
2086         * c-tree.h (composite_type): Declare.
2087
2088 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2089
2090         PR target/14457
2091         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2092         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2093         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2094         (inhibit_libc): Must define.
2095         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2096         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2097         ("xorhi3"): Likewise.
2098
2099 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2100
2101         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2102         always_inline pass.
2103
2104 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2105
2106         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2107         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2108
2109 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2110
2111         * regclass.c (init_reg_sets): Check for missing registers in target
2112         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2113
2114 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2115
2116         * Makefile.in (MKDEPS_H): New shorthand.
2117         (c-opts.o): Update dependencies.
2118         * c-opts.c: Include mkdeps.h.
2119         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2120         not cpp_add_dependency_target.
2121
2122 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2123
2124         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2125         * config/v850/v850.md: Convert to DFA scheduler description.
2126
2127 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2128
2129         PR fortran/15478
2130         * doc/install.texi: Document GMP as prerequisite. Document
2131         --with-gmp and --with-gmp-dir configure options.
2132         * fortran/gfortran.texi: Remove section "Compiling and testing",
2133         remove TOC reference to it.
2134
2135 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2136
2137         * combine.c(simplify_shift_const): Check shift amount is a
2138         CONST_INT.
2139
2140 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2141
2142         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2143         opening asm_out_file.
2144         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2145         reading asm_out_file. Replace fflush after reading asm_out_file
2146         with fseek.
2147         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2148         default and add to HOST_HOOKS_INITIALIZER.
2149         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2150         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2151         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2152         to set mmi.offset padding.
2153          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2154         $(srcdir)/config/i386/winnt.c.
2155         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2156         (i[34567]86-*-uwin*): Likewise.
2157         *i[34567]86-*-interix3*): Likewise.
2158         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2159         * config/i386/host-mingw32.c: New file.
2160         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2161         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2162         (extern_head): Likewise.
2163         (struct export_list) Likewise.
2164         (export_head): Likewise.
2165         (i386_pe_record_external_function): Use ggc_alloc.
2166         (i386_pe_record_exported_symbol): Likewise.
2167         Include "gt-winnt.h" at end.
2168         * doc/hostconfig.texi: Document
2169         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2170
2171 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2172
2173         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2174         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2175         trailing whitespace before EOLs and before TABs.
2176         (MAX_CODE_ALIGN): Remove unused macro.
2177         (CALL_USED_REGISTERS): Reformat and add comments.
2178
2179 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2180
2181         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2182         to enumerate -lmudflap* and dependencies when linking.
2183
2184 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2185
2186         PR target/15822
2187         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2188
2189 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2190
2191         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2192         * genconditions.c (write_header): Back out removal of reload.h.
2193
2194 2004-06-04  Jan Hubicka  <jh@suse.cz>
2195
2196         Re-apply hopefully fixed patch:
2197         * i386.md (UNSPECV_EH_RETURN): Kill.
2198         (eh_return): Use jump_insn.
2199         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2200
2201 2004-06-04  Jeff Law  <law@redhat.com>
2202
2203         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2204
2205 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2206
2207         * except.c (for_each_eh_region): New function.
2208         * except.h (for_each_eh_region): Add a prototype for it.
2209         * tree-cfg.c (update_eh_labels): New function, callback for
2210         for_each_eh_region.
2211         (label_for_bb): Make global static, unfortunately.
2212         (cleanup_dead_labels): Also update label references for
2213         exception regions.
2214
2215 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2216
2217         * config/mips/mips.c (struct irix_section_align_entry): Fix
2218         GTY marker.
2219
2220 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2221
2222         * toplev.c (check_global_declarations): Don't ask for
2223         DECL_ASSEMBLER_NAME unless the function really is declared
2224         static and not defined.
2225
2226 2004-06-03  Matt Austern  <austern@apple.com>
2227
2228         PR c++/15428
2229         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2230         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2231         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2232         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2233         documentation to reflect the new macro name and to clarify its
2234         meaning.
2235
2236 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2237
2238         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2239
2240 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2241
2242         * config/darwin.c (machopic_indirect_data_reference): Copy
2243         the SYMBOL_REF_DECL from the original RTX for the new
2244         non-lazy pointer RTX.
2245
2246 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2247
2248         * tree.h: Remove include of version.h
2249         * c-cppbuiltin.c: Include version.h
2250         * diagnostic.c: Include version.h
2251         * dwarf2out.c: Include version.h
2252         * toplev.c: Include version.h
2253         * vmsdbgout.c: Include version.h
2254         * Makefile.in: Remove dependency on version.h from TREE_H, and
2255         add dependencies to required .o targets
2256
2257 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2258
2259         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2260         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2261         (TARGET_H): Add insn-modes.h.
2262         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2263         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2264         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2265         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2266         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2267         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2268         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2269         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2270         CFGLAYOUT_H.
2271         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2272         Replace ra.h with RA_H.
2273         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2274         insn-recog.o): Replace resource.h with RESOURCE_H.
2275         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2276         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2277         with SCHED_INT_H.
2278         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2279         ra-rewrite.o): Replace df.h with DF_H.
2280         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2281         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2282         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2283         (insn-conditions.o): Remove unused reload.h.
2284         * cfglayout.h: Add include guard.  Include basic-block.h.
2285         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2286         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2287         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2288         basic-block.h.
2289         * genconditions.c:  Remove reload.h.
2290         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2291         hard-reg-set.h, insn-modes.h.
2292         * resource.h: Add include guard.  Include hard-reg-set.h.
2293         * sched-int.h:  Add include guard.  Include insn-attr.h,
2294         basic-block.h, rtl.h.
2295         * target.h: Add include guard.  Include insn-modes.h.
2296         * tree-ssa-live.h: Include partition.h.
2297
2298 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2299                 Kenneth Zadeck <zadeck@naturalbridge.com>
2300
2301         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2302         (add_var_to_ssa_edges_worklist): Add value argument.
2303         Update callers.
2304         Use new worklist.
2305         (process_ssa_edge_worklist): New function.
2306         (tree_ssa_ccp): Move worklist processing core to
2307         process_ssa_edge_worklist, and just call that for the two worklists.
2308
2309 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2310
2311         * basic-block.c (tail_recursion_label_list): Don't declare.
2312         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2313         accordingly.
2314         * cfgbuild.c (find_label_refs): Remove.
2315         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2316         * cfgcleanup.c (tail_recursion_label_p): Remove.
2317         (merge_blocks_move): Do not check for tail recursion.
2318         (try_optimize_cfg): Likewise.
2319         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2320         * cfgrtl.c (tail_recursion_label_list): Remove.
2321         * except.c (remove_unreachable_regions): Don't handle
2322         CALL_PLACEHOLDER insns.
2323         (convert_from_eh_region_ranges_1, can_throw_internal,
2324         can_throw_external): Likewise.
2325         * function.c (free_after_compilation): Don't clear
2326         x_tail_recursion_label.
2327         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2328         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2329         (reorder_blocks_1): Likewise.
2330         * function.h (struct function): Remove x_tail_recursion_label
2331         member.  Don't define tail_recursion_label.
2332         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2333         * print-rtl.c (print_rtx): Likewise.
2334         * rtl.def (CALL_PLACEHOLDER): Remove.
2335         * rtl.h (sibcall_use_t): Remove enum.
2336         (optimize_sibling_and_tail_recursive_calls,
2337         replace_call_placeholder): Remove function prototypes.
2338         * stmt.c (tail_recursion_args): Remove.
2339         (optimize_tail_recursion): Remove.
2340         (expand_return): Don't check for possible tail recursion.
2341         * tree.h (optimize_tail_recursion): Remove prototype.
2342
2343 2004-06-02  Jan Hubicka  <jh@suse.cz>
2344
2345         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2346         return_stmt.
2347
2348 2004-06-02  Jason Merrill  <jason@redhat.com>
2349
2350         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2351         Do include c-parse.in.
2352
2353 2004-06-02  Eric Christopher  <echristo@redhat.com>
2354
2355         * c-typeck.c (common_type): Don't lose type qualifiers
2356         when creating new variants.
2357
2358 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2359
2360         PR tree-optimization/14042
2361         PR tree-optimization/14729
2362         PR tree-optimization/14736
2363         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2364         Check the type which the pointer points to
2365         instead of the pointer types.
2366
2367 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2368
2369         PR tree-optimization/15738.
2370         * builtins.c (fold_builtin_strchr): Transform
2371         strrchr (s, '\0') to strchr (s, '\0').
2372
2373 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2374
2375         * i386.c (ix86_adjust_cost): Don't increase the cost for
2376         load+operation for PROCESSOR_PENTIUMPRO, it is already
2377         modelled in the DFA description
2378
2379 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2380
2381         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2382         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2383         (ALIAS_H, EMIT_RTL_H): New.
2384         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2385         (cfgcleanup.o): Add EMIT_RTL_H.
2386         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2387         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2388         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2389         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2390         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2391         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2392         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2393         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2394         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2395         set_mem_size): Move to emit-rtl.h.
2396         * emit-rtl.h: New.
2397         * alias.h: New.
2398
2399 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2400
2401         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2402         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2403         Adjust recursive calls to self.
2404         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2405
2406 2004-06-01  Richard Henderson  <rth@redhat.com>
2407             Andrew Pinski  <pinskia@physics.uc.edu>
2408
2409         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2410         (primary): Handle offsetof.  Add error productions for faux functions.
2411         Move component_ref objc checking to build_component_ref.
2412         (reswords): Add offsetof.
2413         (rid_to_yy): Add offsetof.
2414         * c-tree.h (build_offsetof): Declare.
2415         * c-common.h (objc_is_public): Declare.
2416         * c-typeck.c (build_component_ref): Check objc_is_public.
2417         (build_offsetof): New.
2418         * stub-objc.c (objc_is_public): New.
2419         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2420         from is_public.
2421         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2422         * doc/extend.texi (Offsetof): Move from C++ section to C section
2423         and rewrite for __builtin_offsetof.
2424
2425 2004-06-01  Peter Barada  <peter@the-baradas.com>
2426             Peter Jakubek  <peter@laseranimation.com>
2427
2428         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2429         a scratch to perform an add to memory.
2430
2431 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2432
2433         PR target/14018
2434         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2435         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2436         m68k_align_funcs): Remove.
2437         (override_options): Remove code to handle -malign-* options.
2438         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2439         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2440         (m68k_align_loops_string, m68k_align_jumps_string,
2441         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2442         m68k_align_funcs): Remove definitions.
2443
2444 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2445
2446         PR target/15626
2447         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2448         by the Sun linker in conjunction with the Sun assembler.
2449         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2450
2451 2004-06-01  Jeff Law  <law@redhat.com>
2452
2453         * stmt.c (expand_decl): Be more selective about calling
2454         mark_reg_pointer.
2455
2456 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2457
2458         PR objc/7993
2459         * objc-act.c (is_private): Do not emit the 'instance variable %s
2460         is declared private' error.
2461         (is_public): Emit the error after calling is_private.
2462         (lookup_objc_ivar): If the instance variable is private, return 0
2463         - the instance variable is invisible here.
2464
2465 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2466
2467         * doc/invoke.texi (-static-libgcc): Explicitly mention
2468         non-GNU linkers.
2469
2470 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2471
2472         PR target/12968
2473         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2474
2475 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2476
2477         PR c/15749
2478         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2479         misuses of structures with flexible array members if
2480         in_system_header.
2481
2482 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2483
2484         PR target/15693
2485         * config/sparc/sparc.c (compare_operand): New predicate.
2486         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2487         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2488         operand is a ZERO_EXTRACT and the second operand is not zero,
2489         force the former to a register.
2490         (cmpdi expander): Likewise.
2491
2492 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2493
2494         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2495         looks at.
2496         * alias.c (alias_invariant_size): Make alias_invariant_size
2497         static, fix GTY marker.
2498
2499 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2500
2501         PR tree-optimization/15743.
2502         * builtins.c (fold_builtin_1): Fold index() and rindex().
2503
2504 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2505
2506         PR middle-end/15069
2507         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2508         into "X < 0" (where C is the signbit) if X's type is a full mode.
2509
2510 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2511
2512         * pa.md: Disable the peephole2 patterns that generate indexed
2513         floating-point stores when indexing is disabled.
2514
2515 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2516
2517         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2518         (pp_c_right_bracket): Likewise.
2519         (pp_c_star): Likewise.
2520         (pp_c_ampersand): Define.
2521         * c-pretty-print.h (pp_c_left_bracket): Declare.
2522         (pp_c_right_bracket): Likewise.
2523         (pp_c_star): Likewise.
2524         (pp_c_ampersand): Likewise.
2525
2526 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2527
2528         * config/sol2.h (__enable_execute_stack): ANSIfy function
2529         definition.
2530
2531 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2532
2533         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2534         HAVE_DOS_BASED_FILESYSTEM.
2535
2536 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2537
2538         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2539         Only look at case labels if the immediate dominator is also
2540         the only predecessor.  Don't look for more case labels if the
2541         first seen is a case range.
2542
2543 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2544
2545         * builtins.c: Add a prototype for fold_builtin_strchr().
2546
2547 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2548
2549         Revert this patch:
2550         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2551
2552         * combine.c (gen_binary): Remove.
2553         (known_cond, simplify_shift_const
2554         find_split_point, combine_simplify_rtx,
2555         simplify_if_then_else, simplify_set,
2556         simplify_logical, expand_field_assignment,
2557         extract_left_shift, force_to_mode,
2558         if_then_else_cond, apply_distributive_law,
2559         simplify_and_const_int, simplify_shift_const,
2560         gen_lowpart_for_combine, simplify_comparison,
2561         reversed_comparison): Replace with
2562         simplify_gen_binary, simplify_gen_relational or
2563         distribute_and_simplify_rtx.
2564         (distribute_and_simplify_rtx): New function.
2565
2566 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2567
2568         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2569         when generating PIC code.
2570
2571 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2572
2573         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2574         (c_expand_body): here.
2575         (c_expand_decl): Move to ...
2576         * c-common.c (c_expand_decl): Here and remove check for nested
2577         functions.
2578         * c-common.h (c_expand_decl): Add prototype.
2579         * c-tree.h (c_expand_decl): Remove.
2580
2581 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2582
2583         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2584         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2585         fold_mathfn_compare, fold_inf_compare, fold,
2586         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2587         Use constant_boolean_node where appropriate.  Don't bother using
2588         fold_convert on the second argument to omit_one_operand.
2589
2590 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2591
2592         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2593         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2594         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2595         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2596         Add missing (but documented) tree nodes to the index.
2597
2598 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2599
2600         PR tree-optimization/14819
2601         * builtins.c (fold_builtin_strchr): New.
2602         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2603         with fold_builtin_strchr().
2604
2605 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2606
2607         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2608         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2609         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2610         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2611         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2612         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2613         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2614         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2615         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2616         formatting.
2617
2618 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2619
2620         * gimplify.c (sort_case_labels): New.  Split out from...
2621         (gimplify_switch_expr): ...here.  Use it.
2622         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2623         the SWITCH_EXPR created here before leaving the function.
2624         * tree.c (sort_case_labels): Add prototype.
2625
2626 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2627
2628         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2629         of BOOLEAN_TYPE.
2630
2631 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2632
2633         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2634         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2635         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2636         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2637         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2638         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2639         comment typos.  Follow spelling conventions.
2640
2641 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2642
2643         * gengtype-yacc.y: Add NESTED_PTR token.
2644         (option): Record `nested_ptr' option.
2645         * gengtype-lex.l: Handle `nested_ptr' keyword.
2646         * gengtype.c (walk_type): Process `nested_ptr' option.
2647         * gengtype.h (struct nested_ptr_data): New.
2648         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2649         * stringpool.c (struct string_pool_data): Make 'entries' point to
2650         ht_identifier instead of tree.
2651         (gt_pch_save_stringpool): Don't adjust pointers.
2652         (gt_pch_restore_stringpool): Call ht_load.
2653
2654 2004-05-29  Jason Merrill  <jason@redhat.com>
2655
2656         * gimplify.c (gimplify_expr): Don't build a statement list
2657         if no gimplification was necessary.
2658
2659 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2660
2661         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2662         and %> as well as %'.
2663         * c-format.c: Use %< and %>.
2664         (gcc_diag_char_table, gcc_cdiag_char_table,
2665         gcc_cxxdiag_char_table): Update.
2666
2667 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2668
2669         * c-typeck.c (common_type): Correct comment.
2670
2671 2004-05-29  Peter Barada  <peter@the-baradas.com>
2672
2673         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2674         * config/m68k/m68k.c (const_method): Likewise.
2675         * config/m68k/m68k.c (const_int_cost): Likewise.
2676         * config/m68k/m68k.c (const_int_cost): Likewise.
2677         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2678
2679 2004-05-29  Peter Barada  <peter@the-baradas.com>
2680
2681         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2682         addressing.
2683         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2684         movsi,movhi,movqi insn patterns.
2685
2686 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2687
2688         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2689
2690         PR target/15720
2691         * config/darwin.c (machopic_indirect_call_target): Copy
2692         the SYMBOL_REF_DECL from the original RTX for the new
2693         stub RTX.
2694
2695 2004-05-28  DJ Delorie  <dj@redhat.com>
2696
2697         * stor-layout.c (place_field): Revert erroneous commit.
2698
2699 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2700
2701         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2702         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2703         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2704         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2705         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2706         vec_ste): Remove type checks for integral parameters and literals
2707         from '..._args_eq' macros.
2708
2709 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2710
2711         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2712
2713 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2714
2715         * testsuite/g++.dg/charset/function.cc: New.
2716
2717         * testsuite/gcc.dg/charset/function.c: New.
2718
2719         * c-decl.c (c_make_fname_decl): Free return value from
2720         fname_as_string.
2721
2722         * cp/decl.c (cp_make_fname_decl): Free return value from
2723         fname_as_string.
2724
2725         * c-common.c (fname_as_string): Translate if necessary.
2726
2727 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2728
2729         * stringpool.c: Add comments to PCH saving/restoring routines.
2730
2731 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2732
2733         * c-common.c (c_estimate_num_insns_1): Kill.
2734         (c_estimate_num_insns): Kill.
2735         * c-common.h (c_estimate_num_insns): Kill.
2736
2737         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2738         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2739         Remove comment about not checking for
2740         _POSIX_PRIORITY_SCHEDULING.
2741         * gthr-posix.c: Likewise.
2742
2743 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2744             Roger Sayle  <roger@eyesopen.com>
2745
2746         PR rtl-optimization/15649
2747         Add LTGT_EXPR and improve pretty-printing of unordered
2748         comparisons.
2749         * c-common.c (c_common_truthvalue_conversion):
2750         Handle LTGT_EXPR.
2751         * c-typeck.c (build_binary_op): Likewise.
2752         * dojump.c (do_jump): Likewise.
2753         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2754         * predict.c (tree_predict_by_opcode): Likewise.
2755         * real.c (real_compare): Likewise.
2756         * tree-cfg.c (verify_expr): Likewise.
2757         * tree-inline.c (estimate_num_insns_1): Likewise.
2758         * tree-pretty-print.c (dump_generic_node): Likewise.
2759         Handle ORDERED_EXPR, UNORDERED_EXPR.
2760         (op_symbol): Print unordered comparisons differently
2761         than ordered ones.
2762         * tree.def (LTGT_EXPR): New '<' tree code.
2763         * doc/c-tree.texi (Expressions): Document floating-point
2764         comparison nodes.
2765
2766         Fold comparisons between floating point values.
2767         * fold-const.c (enum comparison_code): New, from
2768         #define'd constants.  Define compcodes for unordered
2769         comparisons and for invalid transformations.
2770         (invert_tree_comparison): Add "honor_nans" parameter.
2771         (fold_truthop): Revamp to work on floating-point types too.
2772         (comparison_to_compcode): Support unordered comparisons.
2773         Use new enum comparison_code.
2774         (compcode_to_comparison): Likewise.
2775         (combine_compcodes): New function.
2776         (invert_truthvalue): Let invert_tree_comparison decide
2777         whether it is valid to fold the comparison.  Fold ORDERED
2778         and UNORDERED even if flag_unsafe_math_optimizations is off,
2779         and the remaining even if flag_unsafe_math_optimizations
2780         is off but we are under -fno-trapping-math.
2781         (fold_relational_const): Integer modes do not honor NaNs.
2782
2783 2004-05-28  Paul Brook  <paul@codesourcery.com>
2784
2785         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2786
2787 2004-05-28  Paul Brook  <paul@codesourcery.com>
2788
2789         * config/arm/arm.c (thumb_force_lr_save): New function.
2790         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2791         thumb_output_function_prologue): Use it.
2792         (thumb_expand_prologue): Set lr_save_eliminated.
2793
2794 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2795
2796         * config/mips/mips.md (extendsidi2): Tie the source and destination
2797         of the register alternative.  Split it into nothing.
2798
2799 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2800
2801         * rtl.h (skip_consecutive_labels): Declare.
2802         * emit-rtl.c (skip_consecutive_labels): New function.
2803         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2804         * jump.c (follow_jumps): Say what null return values mean.
2805
2806 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2807
2808         PR target/13250
2809         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2810
2811 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2812
2813         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2814         libgcc-std.ver.
2815         * config/sh/libgcc-std.ver: New file.
2816
2817 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2818
2819         * except.c: Revert change of 2004-05-26.
2820         * config/i386/i386.md: Revert change of 2004-05-27.
2821
2822 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2823
2824         * configure.ac: Remove --enable-tree-browser option.
2825         Define TREEBROWSER when ac_tree_checking is defined.
2826         * configure: Rebuilt.
2827
2828 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2829
2830         * expr.c (store_constructor): Restore sanity check on
2831         the size of the type before clearing.
2832
2833 2004-05-27  Jan Hubicka  <jh@suse.cz>
2834
2835         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2836
2837 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2838
2839         * combine.c (gen_binary): Remove.
2840         (known_cond, simplify_shift_const
2841         find_split_point, combine_simplify_rtx,
2842         simplify_if_then_else, simplify_set,
2843         simplify_logical, expand_field_assignment,
2844         extract_left_shift, force_to_mode,
2845         if_then_else_cond, apply_distributive_law,
2846         simplify_and_const_int, simplify_shift_const,
2847         gen_lowpart_for_combine, simplify_comparison,
2848         reversed_comparison): Replace with
2849         simplify_gen_binary, simplify_gen_relational or
2850         distribute_and_simplify_rtx.
2851         (distribute_and_simplify_rtx): New function.
2852         * simplify-rtx.c (simplify_binary_operation):
2853         Use nonzero_bits to simplify ANDs where we are
2854         turning off bits already known to be off in OP0.
2855
2856 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2857
2858         PR target/14478
2859         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2860
2861 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2862
2863         PR middle-end/14084
2864         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2865         to size of decl.
2866
2867 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2868
2869         PR/14924
2870         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2871
2872 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2873
2874         * tree.h: Fix comment typo.
2875
2876 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2877
2878         * gimplify.c (compare_case_labels): New function.
2879         (gimplify_switch_expr): Sort case labels, and make sure the
2880         last label in the label vector is the default case.
2881         * tree-cfg.c (group_case_labels): New function.
2882         (build_tree_cfg): Cleanup redundant labels and group case labels
2883         before creating edges.
2884         (cleanup_dead_labels): Handle GOTO_EXPRs.
2885         (find_case_label_for_value): Use a binary search to find the
2886         case label for the given value.
2887         * tree-gimple.c: Mention that labels are sorted, and that the
2888         last label must be the default.
2889
2890 2004-05-27  Jan Hubicka  <jh@suse.cz>
2891
2892         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2893
2894 2004-05-27  Jan Hubicka  <jh@suse.cz>
2895
2896         * i386.md (UNSPECV_EH_RETURN): Kill.
2897         (eh_return): Use jump_insn.
2898         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2899
2900 2004-05-26  Jan Hubicka  <jh@suse.cz>
2901
2902         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2903         not loop optimizing.
2904
2905 2004-05-26  Jan Hubicka  <jh@suse.cz>
2906
2907         * except.c (can_throw_internal):  Notice RESX instructions.
2908
2909 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2910
2911         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2912         of the two sizes to assemble_integer.
2913
2914 2004-05-25  Paul Brook  <paul@codesourcery.com>
2915
2916         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2917         pointless #ifdef.
2918
2919 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2920
2921         * Makefile.in (top_builddir): Define to .
2922
2923 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2924
2925         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2926         top-level detects, except when in-tree ld is being cross-built.
2927         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2928         then AS only if target is host.
2929         * configure: Rebuilt.
2930
2931 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2932
2933         * global.c (global_alloc): Call make_accurate_live_analysis.
2934         (record_one_conflict): Remove dead code.
2935         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2936         (bb_info): New structure.
2937         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2938         (allocate_bb_info, free_bb_info, mark_reg_change,
2939         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2940         modify_bb_reg_pav, calculate_reg_pav,
2941         make_accurate_live_analysis): New functions.
2942
2943 2004-05-25  Devang Patel  <dpatel@apple.com>
2944
2945         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2946         xrealloc.
2947         (end_alias_analysis): Use ggc_free instead fo free.
2948
2949 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2950
2951         PR target/15546
2952         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2953         as needed to be outputted.
2954
2955 2004-05-25  Jan Hubicka  <jh@suse.cz>
2956
2957         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2958
2959 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2960         Mostafa Hagog  <mustafa@il.ibm.com>
2961
2962         * Makefile.in (modulo-sched.o, ddg.o): New.
2963         * ddg.h, ddg.c, modulo-sched.c: New files.
2964         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2965         internals to "dupicate_insn".
2966         (duplicate_insn): New function.
2967         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2968         declarations.
2969         * common.opt (fmodulo-sched): New flag.
2970         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2971         Remove static and forward declaration.
2972         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2973         functions.
2974         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2975         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2976         declarations.
2977         * flags.h (flag_modulo_sched): New flag.
2978         * opts.c (common_handle_option): Handle modulo-sched flag.
2979         * params.def (max-sms-loop-number, sms-max-ii-factor,
2980         sms-dfa-history, sms-loop-average-count-threshold): New
2981         parameters.
2982         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2983         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2984         parameters.
2985         * passes.c ("sms", "sms-vcg"): New dumps.
2986         (rest_of_handle_sched): Call sms_schedule.
2987         * rtl.h (sms_schedule): New declaration.
2988         * timevar.def (TV_SMS): New.
2989         * toplev.c (flag_modulo_sched): Initialize.
2990         (f_options): Handle -fmodulo-sched option.
2991         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2992         * docs/passes.texi: Document new SMS pass.
2993
2994 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2995
2996         * Makefile.in (OBJS): Add rtlhooks.o.
2997         (rtlanal.o): Depend on function.h.
2998         (cse.o): Depend on rtlhooks-def.h.
2999         (combine.o): Depend on rtlhooks-def.h.
3000         (rtlhooks.o): New rule.
3001         * combine.c: Include rtlhooks-def.h.
3002         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3003         num_sign_bit_copies, cached_num_sign_bit_copies,
3004         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3005         (reg_nonzero_bits_for_combine,
3006         reg_num_sign_bit_copies_for_combine): New functions holding
3007         the remnants of the above.
3008         (combine_rtl_hooks): New.
3009         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3010         * cse.c: Include rtlhooks-def.h.
3011         (cse_rtl_hooks): New.
3012         (cse_main): Set rtl_hooks instead of gen_lowpart.
3013         * emit-rtl.c (gen_lowpart): Remove.
3014         (gen_lowpart_general): Move to rtlhooks.c.
3015         * rtl.h (nonzero_bits, num_sign_bit_copies,
3016         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3017         (gen_lowpart_general): Remove.
3018         (gen_lowpart): Temporarily redefine as a macro.
3019         * rtlanal.c: Include function.h.
3020         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3021         num_sign_bit_copies, cached_num_sign_bit_copies,
3022         num_sign_bit_copies1): New, from combine.c.
3023         * rtlhooks.c: New file.
3024         * rtlhooks-def.h: New file.
3025
3026 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3027
3028         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3029         to support 32-bit -mint8 mode.
3030
3031         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3032         option in the AVR architecture.
3033
3034 2004-05-24  Mike Stump  <mrs@apple.com>
3035
3036         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3037
3038 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3039
3040         * intl.h (open_quote, close_quote): New.
3041         * intl.c (open_quote, close_quote): New.
3042         (gcc_init_libintl): Set them.
3043         * pretty-print.c: Include "intl.h".
3044         (pp_base_format_text): Support 'q' format flag and %` and %'
3045         formats.  Use ' instead of ` in comments.
3046         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3047         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3048         foramt_types_orig): Describe these new formats.
3049         (decode_format_attr, check_function_format,
3050         check_format_info_main): Use these new formats.
3051         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3052         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3053         check these formats to 3.5.
3054
3055 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3056
3057         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3058         (BACKEND): Reflect this.
3059         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3060         (LIBS): Likewise.
3061
3062 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3063
3064         PR tree-optimization/14197
3065         * builtins.c: Include "tree-gimple.h"
3066         (readonly_data_expr): Use get_base_address.  Make sure to call
3067         decl_readonly_section only on trees it can handle.
3068         * tree-gimple.c (get_base_address): Accept STRING_CST and
3069         CONSTRUCTOR expressions.
3070         * Makefile.in: Update dependencies.
3071
3072 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3073
3074         Move libcpp to the toplevel.
3075         * Makefile.in: Remove references to libcpp files,
3076         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3077         and change hashtable.h to that.
3078         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3079         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3080         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3081         * configure: Regenerate.
3082         * config.in: Regenerate.
3083         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3084         * cppcharset.c: Removed.
3085         * cpperror.c: Removed.
3086         * cppexp.c: Removed.
3087         * cppfiles.c: Removed.
3088         * cpphash.c: Removed.
3089         * cpphash.h: Removed.
3090         * cppinit.c: Removed.
3091         * cpplex.c: Removed.
3092         * cpplib.c: Removed.
3093         * cpplib.h: Removed.
3094         * cppmacro.c: Removed.
3095         * cpppch.c: Removed.
3096         * cpptrad.c: Removed.
3097         * cppucnid.h: Removed.
3098         * cppucnid.pl: Removed.
3099         * cppucnid.tab: Removed.
3100         * hashtable.c: Removed.
3101         * hashtable.h: Removed.
3102         * line-map.c: Removed.
3103         * line-map.h: Removed.
3104         * mkdeps.c: Removed.
3105         * mkdeps.h: Removed.
3106         * stringpool.h: Include symtab.h instead of hashtable.h.
3107         * tree.h: Include symtab.h instead of hashtable.h.
3108         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3109
3110 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3111
3112         * gcc.c (struct prefix_list): Add forward declaration.
3113         (do_spec_path): New function, extracted from...
3114         (do_spec_1) <'D'>: ... here.  Drop support for
3115         SPACE_AFTER_L_OPTION.
3116         (do_spec_1) <'I'>: Use do_spec_path.
3117         (process_command): Do not store the 'include' suffix
3118         in include_prefixes.
3119         * system.h: Poison SPACE_AFTER_L_OPTION.
3120
3121 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3122
3123         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3124         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3125
3126 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3127
3128         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3129         Update based on printed manual.  Enable setting of offsets for
3130         FSFPRINT and move it to gcc-common.texi.
3131         * doc/gcc.texi: Update FSF printing details.
3132         * doc/gccint.texi: Remove FSF printing details.
3133
3134 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3135
3136         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3137
3138 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3139
3140         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3141         expand_builtin_strrchr, expand_builtin_strpbrk,
3142         expand_builtin_mempcpy, expand_builtin_memcmp,
3143         expand_builtin_strcmp, expand_builtin_strncmp,
3144         expand_builtin_strcat, std_expand_builtin_va_start,
3145         std_expand_builtin_va_arg, expand_builtin_va_copy,
3146         expand_builtin_signbit, fold_builtin_cabs,
3147         fold_builtin_logarithm, fold_builtin_mempcpy,
3148         fold_builtin_signbit, fold_builtin_isascii,
3149         fold_builtin_toascii, fold_builtin_isdigit,
3150         fold_builtin_1, build_function_call_expr,
3151         simplify_builtin_strchr, simplify_builtin_strrchr,
3152         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3153         simplify_builtin_memcmp, simplify_builtin_strcmp,
3154         simplify_builtin_strncmp, simplify_builtin_strncat,
3155         simplify_builtin_strspn, simplify_builtin_strcspn,
3156         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3157         to build with calls to build2, build3 or omit_one_operand.
3158
3159 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3160
3161         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3162         section when generating EABI code.
3163
3164 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3165
3166         PR 15546
3167         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3168         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3169
3170 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3171
3172         * c-common.c (c_common_truthvalue_conversion): Handle
3173         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3174         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3175         i.e. set the type to truthvalue_type_node and return.
3176
3177 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3178
3179        * tree.h (struct tree_decl): Add possibly_inlined bit.
3180         (DECL_POSSIBLY_INLINED): New accessor macro.
3181         * cgraph.h: Remove declaration of cgraph_inline_hash.
3182         * cgraph.c: Remove definition of cgraph_inline_hash.
3183         (hash_node): Revert to hashing DECL_UID.
3184         (eq_node): Take two pointers to cgraph_node structures.
3185         Compare DECL_UIDs.
3186         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3187         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3188         hash on DECL_UID.
3189         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3190         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3191         (cgraph_node): Allocate a temporary node on the stack, fill in
3192         its DECL field, and pass that to htab_find_slot.
3193         (cgraph_varpool_node): Likewise.
3194         (cgraph_function_possibly_inlined_p): If global info is ready,
3195         return the DECL_POSSIBLY_INLINED bit.
3196         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3197         instead of mucking with cgraph_inline_hash.
3198
3199 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3200
3201         * doc/contrib.texi: Add g77 contributors.
3202
3203 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3204
3205         * calls.c (initialize_argument_information): Forbid sibcalls if a
3206         callee-copied argument is stored in the current function's frame.
3207
3208 2004-05-22  Eric Christopher  <echristo@redhat.com>
3209
3210         * fix-header.c (read_scan_file): Update for add_path change.
3211
3212 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3213
3214         * c.opt (Wmissing-include-dirs): New.
3215         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3216         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3217         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3218         * c-incpath.h (add_path): Add fourth (bool) argument.
3219         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3220         (add_standard_paths): Likewise.
3221         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3222         is used and the directory was user-supplied via -I.
3223         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3224         using add_cpp_dir_path ().
3225         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3226         (struct cpp_dir): Add user_supplied_p.
3227         * doc/invoke.texi (Warning Options): Document new option.
3228
3229 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3230
3231         * fold-const.c (fold_read_from_constant_string): Convert result to
3232         requested type.
3233
3234 2004-05-21  Richard Henderson  <rth@redhat.com>
3235
3236         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3237         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3238         Don't mark VA_ARG_EXPRs volatile here.
3239         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3240
3241 2004-05-21  Richard Henderson  <rth@redhat.com>
3242
3243         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3244         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3245
3246 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3247
3248         * fold-const.c (fold, fold_relational_hi_lo,
3249         nondestructive_fold_binary_to_constant,
3250         fold_read_from_constant_string): Use fold_convert instead of convert.
3251         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3252         simplify_builtin_strchr, simplify_builtin_strrchr,
3253         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3254
3255 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3256
3257         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3258         is NULL.
3259
3260 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3261
3262         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3263         override sparc.h definition.
3264
3265 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3266
3267         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3268         get_unwidened, get_narrower): Replace build with build2.
3269         * fold-const.c (negate_expr, associate_trees, size_binop,
3270         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3271         pedantic_omit_one_operand, distribute_bit_expr,
3272         make_bit_field_ref, optimize_bit_field_compare,
3273         decode_field_reference, range_binop, make_range,
3274         build_range_check, fold_range_test, fold_truthop,
3275         optimize_minmax_comparison, extract_muldiv_1,
3276         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3277         fold_inf_compare, fold_single_bit_test, fold,
3278         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3279         Likewise replace build with either build2 or build3.
3280
3281 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3282
3283         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3284         * calls.c (prepare_call_address): Don't test
3285         NO_RECURSIVE_FUNCTION_CSE.
3286         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3287         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3288         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3289         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3290         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3291         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3292         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3293         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3294         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3295         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3296         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3297         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3298         Likewise.
3299         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3300         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3301         * doc/tm.texi (Costs): Remove documentation for
3302         NO_RECURSIVE_FUNCTION_CSE.
3303
3304 2004-05-20  Paul Brook  <paul@codesourcery.com>
3305
3306         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3307         * unwind-dw2.c (extract_cie_info): Ditto.
3308         (_Unwind_FrameState): Change retaddr_column to word type.
3309
3310 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3311
3312         PR middle-end/3074
3313         * fold-const.c (strip_compound_expr): Delete function.
3314         (count_cond): Delete function.
3315         (fold_binary_op_with_conditional_arg): Only perform transformations
3316         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3317         when a is constant.  This greatly simplifies this routine.
3318
3319         * tree.c (saved_expr_p): Delete function.
3320         * tree.h (saved_expr_p): Delete function prototype.
3321
3322 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3323
3324         * common.opt (ftree-loop-optimize): Remove.
3325
3326 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3327
3328         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3329         (NM_FOR_TARGET): Use := and $(shell).
3330         (mainversion): Remove unused variable.
3331
3332 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3333
3334         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3335         sequence containing the insn to be deleted, always reemit it.
3336
3337 2004-05-20  Richard Henderson  <rth@redhat.com>
3338
3339         PR 15454
3340         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3341         * function.c (expand_function_start): Expand static_chain_decl by hand.
3342         * gimplify.c (create_tmp_var_name): Export.
3343         * tree-gimple.h (create_tmp_var_name): Declare.
3344
3345 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3346
3347         * rs6000.c (print_operand) <case 'z'>: Call
3348         mark_decl_referenced before assemble_name.
3349
3350 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3351
3352         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3353         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3354         (cgraph_varpool_node): Hash on the pointer to the decl, not
3355         the DECL_UID.  Fixes 64-bit bootstrap failure.
3356
3357 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3358
3359         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3360         we don't earlyclobber operands used in the second insn.
3361
3362 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3363
3364         * tree-mudflap.c: Formatting fixes.
3365
3366 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3367
3368         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3369         * gengtype.c (open_base_files): Include reload.h in ifiles.
3370         * reload.h (reg_equiv_memory_loc_varray): Declare.
3371         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3372         (init_reload): Initialize it.
3373         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3374         reg_equiv_memory_loc_varray to size 0.
3375         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3376         growing reg_equiv_memory_loc_varray to the desired size.
3377         * passes.c (rest_of_handle_old_regalloc): Likewise.
3378         * reload.c: Amend comment on calling init_reload.
3379
3380 2004-05-20  Nick Clifton  <nickc@redhat.com>
3381
3382         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3383         with 'TRAMP' in the body of the macro definition.
3384
3385 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3386
3387         PR target/15383
3388         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3389         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3390         cmptf_libfunc isn't set.
3391         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3392         conventions.
3393         (ia64_sysv4_init_libfuncs): New.
3394
3395         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3396         ia64_sysv4_init_libfuncs.
3397
3398 2004-05-20  Falk Hueffner  <falk@debian.org>
3399
3400         PR other/15526
3401         * libgcc2.c (__mulvsi3): Fix overflow test.
3402
3403 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3404
3405         PR c/14171
3406         * reg-stack.c (nan): Rename to ...
3407         (not_a_num): Here.
3408         (reg_to_stack): Rename nan to not_a_num.
3409         (subst_stack_regs_pat): Likewise.
3410         (convert_regs_entry): Likewise.
3411         (convert_regs_1): Likewise.
3412
3413         * tree-cfg.c (find_case_label_for_value): Replace call to
3414         simple_cst_equal with tree_int_cst_equal.
3415
3416 2004-05-19  Jeff Law <law@redhat.com>
3417
3418         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3419         If the operand is for a use, then strip away the SSA_NAME, do not
3420         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3421         (mark_def_sites): Appropriately pass additional argument to
3422         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3423         then set the VDEF_RESULT to the VDEF_OP.
3424         (set_def_block): Strip away any SSA_NAME to get to the real
3425         underlying variable.
3426
3427         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3428         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3429         BB directly.
3430
3431 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3432
3433         PR c++/15463
3434         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3435         result of inverse.
3436
3437         PR rtl-optimization/15274
3438         * loop-iv.c (determine_max_iter, shorten_into_mode,
3439         iv_number_of_iterations): Handle constants correctly.
3440         * rtl.h (get_mode_bounds): Declaration changed.
3441         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3442         the target mode.
3443
3444         PR rtl-optimization/14692
3445         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3446         (unswitch_single_loop): Work correctly when may_unswitch_on
3447         returns a folded constant.
3448
3449         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3450         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3451         comparisons with mode bounds.
3452
3453         * function.c (struct temp_slot): Add new field prev.
3454         (free_after_compilation, init_temp_slots): Free new fields.
3455         (cut_slot_from_list, insert_slot_to_list,
3456         temp_slots_at_level, max_slot_level, move_slot_to_level,
3457         make_slot_available): New functions.
3458         (assign_stack_temp_for_type, combine_temp_slots,
3459         find_temp_slot_from_address, preserve_temp_slots,
3460         preserve_rtl_expr_result, free_temp_slots,
3461         free_temps_for_rtl_expr, pop_temp_slots): Work with
3462         the new structure of lists.
3463         (mark_all_temps_used): Removed.
3464         * function.h (struct function): Field x_temp_slots
3465         replaced by x_used_temp_slots and x_avail_temp_slots.
3466         (temp_slots): Replaced by ...
3467         (used_temp_slots, avail_temp_slots): New.
3468         * tree.h (mark_all_temps_used): Declaration removed.
3469
3470         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3471         simplify_using_assignment): Take the expression out of
3472         the expr_list wrapper.
3473
3474         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3475         infinite loops.
3476
3477 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3478
3479         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3480         costs should be based on code size when optimizing for size.
3481
3482 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3483
3484         * fold-const.c: Remove non-printable character 160.
3485
3486 2004-05-19  Nick Clifton  <nickc@redhat.com>
3487
3488         * doc/invoke.texi (ARM Options): Fix typo.
3489         Remove descrption of -mshort-load-bytes and
3490         -mno-short-load-bytes.
3491
3492         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3493         missing parenthesis.
3494         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3495         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3496
3497 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3498
3499         * expr.c (store_constructor): Build loop start and end by hand
3500         instead of via loop functions from stmt.c.
3501         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3502         Remove the code to expand them.
3503
3504         * stmt.c (loop_stack): Remove this and everything related.
3505         (struct nesting, enum nesting_desc): Update.
3506         (expand_fixup): Likewise.
3507         (expand_loop_start, expand_start_loop_continue_elsewhere,
3508         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3509         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3510         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3511         expand_exit_something): Remove.
3512         * tree.h: Remove prototypes.
3513
3514 2004-05-18  Mike Stump  <mrs@apple.com>
3515             Devang Patel  <dpatel@apple.com>
3516
3517         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3518         if this label is for eh.
3519         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3520         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3521         * dwarf2out.c (output_call_frame_info): Likewise.
3522         * output.h (default_emit_unwind_label): Likewise.
3523         * target.h (unwind_label): Likewise.
3524         * varasm.c (default_emit_unwind_label): Likewise.
3525
3526         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3527         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3528         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3529         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3530         DEBUG_RANGES_SECTION): Define.
3531
3532 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3533
3534         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3535         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3536         (cgraph_varpool_node):
3537         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3538         (cgraph_function_possibly_inlined_p): Use the decl itself for
3539         the key, not DECL_ASSEMBLER_NAME.
3540         (change_decl_assembler_name): No need to muck with the hash tables.
3541         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3542         Delete.
3543         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3544         for the key, not DECL_ASSEMBLER_NAME.
3545         * cgraph.h: Remove prototypes of deleted functions.
3546         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3547         (mark_decl_referenced): New function.
3548         * tree.h: Prototype mark_decl_referenced.
3549         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3550         mark_decl_referenced before assemble_name.
3551         * c-decl.c (finish_decl): Use mark_decl_referenced.
3552
3553 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3554             Jeff Law <law@redhat.com>
3555
3556         * tree-ssa-phiopt.c (abs_replacement): New function.
3557         (empty_block_p): New function extracted from...
3558         (candidate_bb_for_phi_optimization): Break out empty block test.
3559         (conditional_replacement): Use empty_block_p.
3560         (value_replacement): Similarly.
3561
3562         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3563         * tree-ssa-phiopt.c: Include flags.h.
3564         (conditional_replacement): Remove argument names from prototype.
3565         Minor formatting and comment fixes.
3566         (tree_ssa_phiopt): If conditional_replacement returns false, then
3567         call value_replacement.
3568         (value_replacement): New function.
3569
3570 2004-05-18  Jeff Law  <law@redhat.com>
3571
3572         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3573         from conditional_replacement.
3574         (candidate_bb_for_phi_optimization): Similarly.
3575         (conditional_replacement): Use replace_phi_with_stmt and
3576         candidate_bb_for_phi_optimization.
3577
3578         * tree-ssa-phiopt.c: Fix various formatting issues.
3579
3580 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3581
3582         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3583         s390_expand_cmpmem): Do not use expand_start_loop and
3584         expand_end_loop, instead build the loop manually.
3585
3586 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3587
3588         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3589         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3590
3591 2004-05-17  Jeff Law  <law@redhat.com>
3592
3593         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3594         * flags.h (flag_delete_null_pointer_checks): Here.
3595         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3596         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3597         (add_phi_arg, remove_phi_arg_num): Similarly.
3598         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3599         property into PHI nodes.
3600         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3601         (record_equivalences_from_phis): If all PHI arguments are known to be
3602         nonzero, then the result must be nonzero as well.
3603         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3604         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3605         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3606         as appropriate.
3607         * tree.h (PHI_ARG_NONZERO): Define.
3608         (phi_arg_d): Add nonzero flag.
3609
3610 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3611
3612         * f: Entire directory removed
3613
3614         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3615         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3616         (g77_integer_type_node, g77_uinteger_type_node)
3617         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3618         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3619         the above set of variables.
3620
3621         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3622         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3623         to g77 manual.
3624
3625 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3626
3627         PR tree-optimization/15438
3628         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3629         attributed functions as pure or const.
3630
3631 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3632
3633         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3634         from source code with errors.
3635
3636 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3637
3638         Enable tree browser for all front ends.
3639         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3640         (BACKEND): ...to here.
3641
3642 2004-05-17  Jan Hubicka  <jh@suse.cz>
3643
3644         * i386.c (construct_container): Do not produce BLKmode registers.
3645         (classify_argument): Properly compute alignment of complex types.
3646
3647 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3648
3649         PR target/15084
3650         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3651         and renamed to movdi_insv_1_rex64.
3652         (insv): Support SImode for 32bit and DImode for 64bit.
3653
3654 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3655
3656         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3657         (TARGET_SWITCHES): Remove debugg.
3658         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3659         TARGET_64BIT.
3660         (subdi3): Replace the define_expand with a define_insn, the latter
3661         renamed from subdi3_internal_3.
3662         (negdi2): Likewise negdi2_internal_2.
3663         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3664         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3665         and associated define_splits.
3666         (adddi3_internal): Renamed from adddi3_internal_3.
3667         (ashldi3_internal): Likewise ashldi3_internal4.
3668         (ashrdi3_internal): Likewise ashrdi3_internal4.
3669         (lshrdi3_internal): Likewise lshrdi3_internal4.
3670
3671 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3672
3673         * optabs.c (expand_unop): Try implementing negation using subtraction
3674         from zero.
3675
3676 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3677
3678         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3679         SAR register.
3680
3681 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3682
3683         PR target/10982
3684         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3685         (ne_zeroextractsi_shifted): New pattern.
3686         (ite_ne_zeroextractsi): New pattern.
3687         (ite_ne_zeroextractsi_shifted): New pattern.
3688
3689 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3690
3691         * c-gimplify.c (c_genericize):
3692         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3693         * c-parse.in <expr_no_commas>: Likewise.
3694         <if_prefix>: Likewise.
3695         <select_or_iter_stmt>: Likewise.
3696         * expr.c (expand_var, expand_expr_real_1): Likewise.
3697         * expr.h (expand_expr): Make it a static inline function.
3698         Move prototype for expand_expr_real up before this.
3699         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3700         Likewise.
3701         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3702         gimplify_asm_expr, gimplify_expr): Likewise.
3703         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3704         dump_function_to_file): Likewise.
3705         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3706         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3707         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3708         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3709         Likewise.
3710         * tree-optimize.c (execute_one_pass): Likewise.
3711         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3712         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3713
3714         * objc/objc-act.c (objc_build_try_enter_fragment,
3715         objc_build_try_epilogue, objc_build_catch_stmt,
3716         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3717         with lang_hooks.foo ().
3718
3719 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3720
3721         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3722         that simplify_builtin doesn't destructively modify its argument.
3723
3724 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3725
3726         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3727         implementations for ARM and Thumb.
3728         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3729
3730 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3731
3732         * prefix.c (update_path): Replace PREFIX with KEY only
3733         when it matches a full directory name in PATH.
3734
3735 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3736
3737         * arm.h (TARGET_APCS_32): Delete.
3738         (TARGET_MMU_TRAPS): Delete.
3739         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3740         define __APCS_26__.
3741         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3742         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3743         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3744         (prog_mode_type): Delete.
3745         (PROMOTE_MODE): Always promote unsigned for HImode.
3746         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3747         (MASK_RETURN_ADDR): Simplify.
3748         * arm.c (arm_prgmode): Delete.
3749         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3750         (print_multi_reg, output_return_instruction): Simplify.
3751         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3752         (arm_return_addr): Simplify.
3753         * arm.md (prog_mode): Delete.
3754         (conds): Simplify.
3755         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3756         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3757         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3758         (loadhi_shiftpredec): Delete.
3759         (peephole for post-increment on HImode load): Delete.
3760         * arm/crtn.asm: (FUNC_END): Simplify.
3761         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3762         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3763         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3764         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3765         MULTILIB_DEFAULTS as required.
3766         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3767         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3768         variables as required.
3769         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3770
3771 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3772
3773         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3774         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3775         count to 8 to handle n_reg > 2.
3776
3777 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3778
3779         * doc/extend.texi: Update WG14 URL.
3780
3781 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3782
3783         * basic-block.h (life_analysis, delete_noop_moves):
3784         Update prototypes.
3785         * bt-load.c (branch_target_load_optimize): Don't take the
3786         insns stream as an argument.  Update the life_analysis calls.
3787         * combine.c (combine_instructions): Update delete_noop_moves
3788         calls.
3789         * flow.c (notice_stack_pointer_modification): Don't take the
3790         insns stream as an argument.  Work on the flow graph.
3791         (life_analysis): Likewise.
3792         (delete_noop_moves): Likewise.
3793         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3794         (rest_of_handle_life): Update life_analysis call.
3795         (rest_of_compilation): Likewise, and also update
3796         branch_target_load_optimize call.
3797         * ra.c (reg_alloc): Update life_analysis call.
3798         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3799         the insns stream as an argument.
3800         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3801         call.
3802         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3803         prototypes.
3804         * value-profile.c (branch_prob): Update life_analysis call.
3805         * web.c (web_main): Work on the CFG, not on the insns stream.
3806
3807         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3808         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3809         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3810
3811 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3812
3813         PR c/15444
3814         * c-format.c (avoid_dollar_number): New function.
3815         (check_format_info_main): Call avoid_dollar_number when operand
3816         numbers might occur but has_operand_number == 0.
3817
3818 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3819
3820         * arm.md (all peephole2 patterns): Use predicates that validate
3821         register classes as appropriate.
3822
3823 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3824
3825         PR opt/14472
3826         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3827         ignore type conversions that do not inhibit tail calling.
3828         (find_tail_calls): Likewise.
3829
3830 2004-05-14  Jeff Law  <law@redhat.com>
3831
3832         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3833         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3834         bypassed virtuals into vars_to_rename just before into-ssa pass.
3835
3836         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3837         so that it picks up more opportunities to eliminate ABS expressions
3838         or turn them into negations.
3839
3840 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3841
3842         * passes.c (rest_of_handle_null_pointer): Remove.
3843         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3844         (rest_of_compilation): Likewise.
3845         * rtl.h (delete_null_pointer_checks): Remove prototype.
3846         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3847         Remove declarations.
3848         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3849         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3850         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3851         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3852         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3853         one_classic_gcse_pass, invalidate_nonnull_info,
3854         delete_null_pointer_checks_1, delete_null_pointer_checks,
3855         expr_reached_here_p_work): Remove.
3856         (gcse_main): Do not perform classic GCSE when optimizing for size.
3857         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3858         are never used.
3859
3860 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3861
3862         PR optimization/14466
3863         * tree-complex.c (make_temp): Remove.
3864         (gimplify_val): Replace make_temp with make_rename_temp
3865         and add NULL as the second argument.
3866         (expand_complex_div_wide): Likewise.
3867         * tree-dfa.c (make_rename_temp): New function.
3868         * tree-flow.h (make_rename_temp): Declare.
3869         * tree-sra.c (make_temp): Remove.
3870         (lookup_scalar): Replace make_temp with make_rename_temp.
3871         (create_scalar_copies): Likewise.
3872         * tree-ssa-phiopt.c (conditional_replacement): When we
3873         get non gimple create a temporary variable to hold the
3874         casted expression.
3875
3876 2004-05-14  Paul Brook  <paul@codesourcery.com>
3877
3878         * stor-layout.c (update_alignment_for_field): Use
3879         targetm.align_anon_bitfield.
3880         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3881         (TARGET_INITIALIZER): Use it.
3882         * target.h (struct gcc_target): Add align_anon_bitfield.
3883         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3884         (TARGET_ALIGN_ANON_BITFIELD): Define.
3885         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3886
3887 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3888
3889         * tree.def (documentation): Remove mention of class 'b'.
3890         (BLOCK): Now in class 'x'.
3891         * c-common.c (verify_tree): Remove case 'b'.
3892         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3893         * calls.c (calls_function_1): Control cannot get past the switch
3894         when exp is a BLOCK.
3895         * print-tree.c (print_node): Move code for class 'b' to the class
3896         'c'/'x' switch, as case BLOCK.
3897         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3898         (unsafe_for_reeval, substitute_placeholder_in_expr)
3899         (stabilize_reference_1): Remove case 'b'.
3900         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3901         of something being 'b' to tests for TREE_CODE of something being
3902         BLOCK.
3903         * tree-ssa-operands.c (get_expr_operands): Likewise.
3904
3905 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3906
3907         * tree-gimple.c: Rename from tree-simple.c.
3908         * tree-gimple.h: Rename from tree-simple.h.
3909         * c-gimplify.c: Rename from c-simplify.c
3910         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3911         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3912         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3913         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3914         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3915         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3916         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3917         Update.
3918
3919 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3920
3921         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3922
3923 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3924
3925         * tree-ssa.c (delete_tree_ssa): XFREE
3926         bitmaps allocated with BITMAP_XMALLOC.
3927
3928         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3929         idfs_cache at the end of the function.
3930
3931         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3932         at the end of the function.
3933
3934         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3935         el at the end of the function.
3936
3937         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3938         bitmaps allocated with BITMAP_XMALLOC.
3939
3940         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3941         the end.
3942
3943         * final.c (shorten_branches): Free uid_shuid before
3944         reallocating it.
3945
3946         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3947
3948 2004-05-13  Jeff Law  <law@redhat.com>
3949
3950         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3951         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3952         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3953
3954         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3955         rather than iterating through the blocks testing each bit in
3956         livein to initialize the worklist.
3957         (mark_def_sites): Remove useless checks of KILLS for virtual
3958         operands.
3959
3960         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3961         new parameters for the statement and variable worklist as well
3962         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3963         worklist recording interesting variables in the variable worklist
3964         and bitmap.  Handle casts between integral and boolean types.
3965         (substitute_single_use_vars): Accept new parameters for the statement
3966         and variable worklist.  When a substitution is made add a new
3967         entry to the statement worklist.  Handle casts between integral
3968         and boolean types.
3969         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3970         worklists to children.  Iterate until the statement worklist
3971         is empty.
3972
3973 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3974
3975         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3976         the end of the block.
3977
3978         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3979         with BITMAP_XMALLOC.
3980
3981         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3982         with BITMAP_XMALLOC.
3983
3984         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3985         Free nonzero_vars at the end of the function.
3986
3987         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3988         need to generate code instead of a NOP_EXPR.
3989
3990 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3991
3992         * gcc.c (default_compilers): Fill out initializers for new Fortran
3993         entries.
3994
3995 2004-05-13  Paul Brook  <paul@codesourcery.com>
3996
3997         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3998
3999 2004-05-13  Paul Brook  <paul@codesourcery.com>
4000
4001         * config/arm/arm.c (arm_default_short_enums): New function.
4002         (TARGET_DEFAULT_SHORT_ENUMS): Define.
4003
4004 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4005
4006         Merge from tree-ssa-20020619-branch.
4007
4008         * Makefile.in (reload1.o-warn): Add.
4009         (tree-alias-ander.o-warn): Add.
4010         (GMPLIBS): Define.
4011         (GMPINC): Define.
4012         (BANSHEELIB): Define.
4013         (BANSHEEINC): Define.
4014         (TREE_DUMP_H): Define.
4015         (TREE_SIMPLE_H): Define.
4016         (TREE_FLOW_H): Define.
4017         (LIBDEPS): Add BANSHEELIB.
4018         (INCLUDES): Add BANSHEEINC and GMPINC.
4019         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4020         c-mudflap.o and c-pretty-print.o.
4021         (C_OBJS): Remove c-pretty-print.o.
4022         (OBJS-common): Remove sibcall.o.
4023         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4024         tree-ssa.o, tree-optimize.o, tree-simple.o,
4025         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4026         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4027         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4028         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4029         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4030         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4031         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4032         tree-tailcall.o, gimple-low.o, tree-iterator.o,
4033         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4034         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4035         tree-profile.o.
4036         (OBJC-archive): Add tree-nomudflap.o.
4037         (cc1): Add dependency on @TREEBROWSER@.
4038         (c-decl.o): Add dependency on TREE_DUMP_H.
4039         (c-dump.o): Likewise.
4040         (c-common.o): Add dependency on tree-iterator.h
4041         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4042         (gtype-desc.o): Add dependency on TREE_FLOW_H.
4043         (tree.o): Add dependency on tree-iterator.h,
4044         BASIC_BLOCK_H and TREE_FLOW_H.
4045         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4046         (langhooks.o): Add dependency on TREE_SIMPLE_H.
4047         (tree-alias-type.o, tree-alias-ander.o,
4048         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4049         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4050         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4051         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4052         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4053         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4054         tree-nested.o, tree-iterator.o, tree-dfa.o,
4055         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4056         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4057         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4058         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4059         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4060         tree-sra.o, tree-complex.o, tree-profile.o,
4061         rtl-profile.o): New rules.
4062         (function.o): Add dependency on basic-block.h
4063         (expr.o): Add dependency on tree-iterator.h.
4064         (sibcall.o): Remove.
4065         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4066         (cfg.o): Add dependency on TIMEVAR_H.
4067         (cfghooks.o): Add dependency on TREE_FLOW_H.
4068         (reg-stack.o): Add dependency on basic-block.h.
4069         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4070         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4071         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4072         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4073         tree-alias-type.h, tree-alias-common.h,
4074         tree-alias-type.c, tree-alias-common.c,
4075         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4076         rtl-profile.c and tree-nested.c.
4077         (gt-tree-alias-common.h, gt-tree-mudflap.h,
4078         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4079         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4080         gt-tree-cfg.h, gt-tree-nested.h): New rules.
4081         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4082         * basic-block.h: Include predict.h
4083         (struct edge_def): Add GTY marker.
4084         Change field 'insns' to be a union of tree and rtx.
4085         (EDGE_TRUE_VALUE): Define.
4086         (EDGE_FALSE_VALUE): Define.
4087         (EDGE_EXECUTABLE): Define.
4088         (struct bb_ann_d): Forward declare.
4089         (struct basic_block_def): Add GTY marker.
4090         Remove fields head_tree and end_tree.
4091         Add fields stmt_list, rbi and tree_annotations.
4092         (struct reorder_block_def): Define.
4093         (basic_block_info): Add GTY marker.
4094         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4095         variables instead of macros.
4096         (flow_call_edges_add): Remove declaration.
4097         (make_eh_edge): Remove declaration.
4098         (brief_dump_cfg, find_edge, tree_predicted_by_p,
4099         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4100         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4101         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4102         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4103         (try_redirect_by_replacing_jump): Modfiy return type to
4104         edge instead of bool.
4105         * bb-reorder.c (copy_bb): Call duplicate_block
4106         instead of cfg_layout_duplicate_bb.
4107         (copy_bb_p): Call can_duplicate_block_p instead of
4108         cfg_layout_can_duplicate_bb_p.
4109         * bitmap.c (bitmap_first_set_bit): Abort if word
4110         wasn't found.
4111         (bitmap_last_set_bit): Likewise.
4112         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4113         (DEF_FUNCTION_TYPE_3): Add.
4114         * builtins.c (c_strlen): Make extern.
4115         (builtin_save_expr): New.
4116         (expand_builtin_nonlocal_goto): New.
4117         (expand_builtin_constant_p): Remove.
4118         (expand_builtin_mathfn): Call builtin_save_expr instead
4119         of save_expr.
4120         (expand_builtin_mathfn_2): Likewise.
4121         (expand_builtin_strcmp): Likewise.
4122         (expand_builtin_strncmp): Likewise.
4123         (expand_builtin_strcat): Likewise.
4124         (fold_builtin_cabs): Likewise.
4125         (expand_builtin_alloca): Don't trigger if -fmudflap is
4126         given.
4127         (build_string_literal): Set TREE_INVARIANT on new node.
4128         (expand_builtin_profile_fun): New.
4129         (round_trampoline_addr): New.
4130         (expand_builtin_init_trampoline): New.
4131         (expand_builtin_adjust_trampoline): New.
4132         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4133         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4134         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4135         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4136         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4137         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4138         Handle.
4139         (fold_builtin_expect): New.
4140         (fold_builtin_isascii): Don't return non-constant results
4141         in GIMPLE form.
4142         (fold_builtin_isdigit): Likewise.
4143         (fold_builtin_1): New.
4144         (fold_builtin): Call it.
4145         (build_function_call_expr): Update call to build a new
4146         CALL_EXPR.
4147         (purge_builtin_constant_p): Remove.
4148         (simplify_builtin, simplify_builtin_memcmp,
4149         simplify_builtin_strcmp, simplify_builtin_strncmp,
4150         simplify_builtin_strpbrk, simplify_builtin_strstr,
4151         simplify_builtin_strchr, simplify_builtin_strrchr,
4152         simplify_builtin_strcat, simplify_builtin_strncat,
4153         simplify_builtin_strspn, simplify_builtin_strcspn,
4154         simplify_builtin_next_arg, simplify_builtin_va_start,
4155         simplify_builtin_sprintf): New.
4156         * builtins.def (BUILT_IN_STACK_ALLOC,
4157         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4158         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4159         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4160         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4161         * c-common.c: Include tree-iterator.h and hashtab.h.
4162         (lang_statement_code_p): Declare.
4163         (lang_gimplify_stmt): Declare.
4164         (fix_string_type): Set TREE_INVARIANT for value.
4165         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4166         (c_type_hash): New.
4167         (c_common_get_alias_set): Handle multiple type nodes
4168         referring to "the same" type, currently for C90 only.
4169         (c_add_case_label): Use create_artificial_label.
4170         (finish_label_address_expr): Don't set TREE_CONSTANT on
4171         result.
4172         (c_expand_expr): Don't handle STMT_EXPR.
4173         (handle_alias_attribute): Marke aliased variables to be
4174         TREE_STATIC.
4175         (handle_nonnull_attribute): Initialize arg_num.
4176         (check_function_nonnull): Likewise.
4177         (c_walk_subtrees): New.
4178         (c_estimate_num_insns_1): Don't handle
4179         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4180         (c_decl_uninit_1): Remove.
4181         (c_decl_uninit): Remove.
4182         (c_warn_unused_result): New.
4183         * c-common.def (ASM_STMT): Change number of operands
4184         to 4.
4185         (FILE_STMT): Remove.
4186         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4187         Remove.
4188         (lang_gimplify_stmt): Add.
4189         (expand_stmt): Remove.
4190         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4191         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4192         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4193         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4194         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4195         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4196         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4197         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4198         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4199         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4200         genrtl_compound_stmt, genrtl_asm_stmt,
4201         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4202         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4203         c_tree_chain_matters_p, c_warn_unused_result,
4204         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4205         Declare.
4206         * c-convert.c (convert): Make convert work when
4207         converting to compatible types across translation unit.
4208         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4209         tree-simple.h, diagnostic.h and tree-dump.h
4210         (merge_decls): Initialize oldtype to NULL.
4211         (finish_decl): Use DECL_HARD_REGISTER instead of
4212         DECL_C_HARD_REGISTER.
4213         (check_bitfield_type_and_width): Check for null
4214         lang_type_specific when check the precision of an enum.
4215         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4216         in a pointer-to-array declarator.
4217         (finish_struct): Clear allocated struct lang_type.
4218         (finish_enum): Set enum_min and enum_max.  Set
4219         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4220         not to the enumerators.
4221         (set_decl_nonlocal): New.
4222         (store_parm_decls): Use it via walk_tree.
4223         (c_finalize): New.
4224         (finish_function): When !targetm.have_ctors_dtors,
4225         record static constructors and destructors here...
4226         (c_expand_body_1): ... not here.
4227         (c_expand_decl): Rename from c_expand_decl_stmt.
4228         Handle all C-specific expansion semantics.
4229         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4230         STMT_LINENO.
4231         * c-format.c (handle_format_arg_attribute): Initialize
4232         format_num.
4233         * c-lang.c: Include tree-inline.h
4234         (LANG_HOOKS_EXPAND_DECL,
4235         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4236         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4237         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4238         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4239         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4240         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4241         (c_types_compatible_p): New.
4242         * c-mudflap.c: New file.
4243         * c-objc-common.c: Include tree-mudflap.h
4244         (start_cdtor, finish_cdtor): Collapse
4245         together into
4246         (build_cdtor): ...here.  Update to construct a complete tree
4247         for the function.  No need to call push_scope, pop_scope, or
4248         clear_last_expr, or set current_function_cannot_inline.
4249         (c_missing_noreturn_ok_p): Change prototype to return
4250         bool.
4251         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4252         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4253         opts.c.
4254         (c_common_post_options): Don't ever use rtl inlining.
4255         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4256         * c-pragma.c (handle_pragma_redefine_extname): Define
4257         always.
4258         (init_pragma): Activate #pragma redefine_extname for mudflap.
4259         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4260         (pp_c_initializer): Accept any type CONSTRUCTOR.
4261         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4262         COMPLEX_TYPE.
4263         (decl_name_str): New local function.
4264         (pp_c_direct_declarator): Call it.
4265         (pp_c_primary_expression): Call it.
4266         (pp_c_id_expression): Call it.
4267         (pp_c_statement): Call it.
4268         (print_c_tree): Create new pp object.
4269         * c-pretty-print.h (pp_c_tree_decl_identifier,
4270         print_c_tree): Declare.
4271         * c-semantics.c: Include langhooks.h
4272         (lang_expand_stmt, lang_expand_decl_stmt,
4273         find_reachable_label_1, find_reachable_label,
4274         expand_unreachable_if_stmt, expand_unreachable_stmt,
4275         genrtl_do_stmt_1): Remove.
4276         (begin_stmt_tree): Don't check for changed filename.
4277         Call annotate_with_locus.
4278         (finish_stmt_tree): Don't set line for end of function.
4279         (build_stmt): Don't check type nodes for
4280         side effects.
4281         (build_stmt): Set TREE_SIDE_EFFECTS.
4282         Set EXPR_LOCUS instead of STMT_LINENO.
4283         (lang_expand_stmt, lang_expand_decl_stmt,
4284         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4285         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4286         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4287         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4288         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4289         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4290         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4291         find_reachable_label_1, expand_unreachable_if_stmt,
4292         expand_unreachable_stmt): Remove.
4293         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4294         * c-simplify.c: New file.
4295         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4296         (struct lang_type): Add fields enum_min and enum_max.
4297         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4298         (c_expand_decl, c_missing_noreturn_ok_p,
4299         c_types_compatible_p): Declare.
4300         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4301         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4302         (default_function_array_conversion): Rely on build to
4303         set TREE_CONSTANT.
4304         (parser_build_binary_op, pointer_diff): Likewise.
4305         (build_unary_op, build_binary_op): Likewise.
4306         (build_array_ref):
4307         (build_external_ref): Set TREE_INVARIANT.
4308         (build_c_cast, pop_init_level): Likewise.
4309         (process_init_element): Use ASM_VOLATILE_P.
4310         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4311         (c_finish_case): Call c_do_switch_warnings.
4312         * c.opt (fdump-): Remove.
4313         * calls.c (try_to_integrate): Remove.
4314         (prepare_call_address): Replace fndecl arg with a
4315         precomputed static chain value.
4316         (emit_call_1): New argument for full call expr.
4317         (flags_from_decl_or_type): Call special_function_p.
4318         (initialize_argument_information): Add argument
4319         may_tailcall.
4320         (purge_reg_equiv_notes): New.
4321         (expand_call): Do not try to expand calls inline.
4322         (fixup_tail_calls): New.
4323         * cfg.c: Include timevar.h and ggc.h.
4324         (bb_pool, edge_pool): Remove.
4325         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4326         (entry_exit_blocks): Remove.
4327         (rbi_pool): Declare.
4328         (init_flow): Do not create pools.
4329         Allocate entry/exit block.
4330         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4331         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4332         (unlink_block): Clear b->prev_bb and b->next_bb.
4333         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4334         (dump_flow_info): Work on trees too.
4335         (dump_cfg_bb_info): New.
4336         (brief_dump_cfg): New.
4337         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4338         (find_edge): New.
4339         * cfgbuild.c (rtl_make_eh_edge): Rename from
4340         make_eh_edge.  Update all users.
4341         (find_basic_blocks): Don't call VARRAY_FREE on
4342         basic_block_info.
4343         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4344         and newpos2.
4345         (delete_unreachable_blocks): Return changed status.
4346         (merge_seq_blocks): New.
4347         * cfghooks.c: Include tree-flow.h
4348         (tree_register_cfg_hooks, ir_type): New.
4349         (redirect_edge_and_branch): Change return type to edge.
4350         (predict_edge, predicted_by_p, can_duplicate_block_p,
4351         duplicate_block, block_ends_with_call_p,
4352         block_ends_with_condjump_p, flow_call_edges_add): New.
4353         * cfghooks.h (redirect_edge_and_branch): Change return
4354         type to edge.
4355         (predict_edge, predicted_by_p, can_duplicate_block_p,
4356         duplicate_block, block_ends_with_call_p,
4357         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4358         (redirect_edge_and_branch): Change return type to edge.
4359         (struct cfg_hooks): Add fields block_ends_with_call_p,
4360         block_ends_with_condjump_p, flow_call_edges_add,
4361         predict_edge, predicted_by_p, can_duplicate_block_p and
4362         duplicate_block.
4363         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4364         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4365         (fixup_reorder_chain): Use initialize_bb_rbi.
4366         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4367         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4368         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4369         (insn_locators_initialize): Use new info about blocks.
4370         * cfglayout.h (typedef struct reorder_block_def): Moved to
4371         basic_block.h.
4372         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4373         removed.
4374         * cfgloop.c: Include tree.h and tree-flow.h.
4375         * cfgloop.h (create_loop_notes): Declare.
4376         * cfgloopmanip.c (create_loop_notes): New.
4377         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4378         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4379         and duplicate_block fields.
4380         (create_basic_block_structure): Don't look at
4381         RTX_INTEGRATED_P.
4382         (rtl_block_ends_with_call_p): New.
4383         (rtl_block_ends_with_condjump_p): New.
4384         (need_fake_edge_p): Moved from cfganal.c.
4385         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4386         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4387         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4388         (cfg_layout_rtl_cfg_hooks): Ditto.
4389         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4390         functions to be reachable.
4391         * cgraphunit.c (decide_is_function_needed):
4392         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4393         inline functions don't need to be output.
4394         (cgraph_assemble_pending_functions): Don't do anything
4395         special for nested functions.
4396         (cgraph_mark_functions_to_output): Likewise.
4397         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4398         (cgraph_analyze_function): Use estimate_num_insns.
4399         (cgraph_mark_functions_to_output): Likewise.
4400         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4401         (cgraph_expand_function): Allow functions to not be
4402         emitted.
4403         (cgraph_remove_unreachable_nodes):
4404         (cgraph_recursive_inlining_p): Simplify.
4405         (lookup_recursive_calls,
4406         cgraph_decide_recursive_inlining): New.
4407         (cgraph_decide_inlining_*): Update calls of
4408         cgraph_mark_inline.
4409         * combine.c (get_pos_from_mask): Always set *plen.
4410         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4411         ftree-based-profiling, ftree-ccp, ftree-ch,
4412         ftree-combine-temps, ftree-copyrename, ftree-dce,
4413         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4414         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4415         ftree-lrs): Add.
4416         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4417         Undefine.
4418         * configure.ac: Add --enable-tree-browser option.
4419         Add --with-libbanshee option.
4420         Add GMPLIBS and GMPINC.
4421         * configure: Regenerate.
4422         * coverage.c (tree_ctr_tables): New.
4423         (coverage_counter_alloc): Use it.
4424         (build_ctr_info_value): Ditto.
4425         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4426         (tree_coverage_counter_ref): New.
4427         * coverage.h (coverage_counter_ref): Remove declaration.
4428         (rtl_coverage_counter_ref): Declare.
4429         (tree_coverage_counter_ref): Declare.
4430         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4431         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4432         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4433         (struct cse_basic_block_data): Rename enum values to not
4434         conflict with profile.h; update all uses.
4435         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4436         in comments.
4437         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4438         * diagnostic.h (debug_output_buffer, dump_generic_node,
4439         print_generic_stmt, print_generic_stmt_indented,
4440         print_generic_expr, print_generic_decl,
4441         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4442         Declare.
4443         * dominance.c: Cache immediate dominators.
4444         * domwalk.c: New file.
4445         * domwalk.h: New file.
4446         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4447         (gen_subprogram_die): Generate a DIE for a named
4448         return value.
4449         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4450         (add_location_or_const_value_attribute): Likewise.
4451         (add_bound_info): Likewise.
4452         (gen_decl_die): Likewise.
4453         * emit-rtl.c (maybe_set_first_label_num): New.
4454         (copy_most_rtx): Don't copy the integrated flag.
4455         Copy the new return_val flag.
4456         * et-forest.c (MAX_NODES): Define.
4457         (record_path_before_1): Abort if len is greater than
4458         MAX_NODES.
4459         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4460         gen_eh_region_catch, gen_eh_region_allowed,
4461         gen_eh_region_must_not_throw, get_eh_region_number,
4462         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4463         set_eh_region_tree_label, expand_resx_expr): New.
4464         (expand_eh_region_start, expand_start_catch): Use them.
4465         (expand_end_catch): Tidy.
4466         (note_eh_region_may_contain_throw): Take region argument.
4467         (note_current_region_may_contain_throw): New.
4468         (get_exception_filter): Export.
4469         (collect_eh_region_array): Export.
4470         (remove_unreachable_regions): Check ERT_TRY based on reachability
4471         of catches, not reachability of continue_label.  Never remove
4472         ERT_MUST_NOT_THROW regions.
4473         (collect_rtl_labels_from_trees): New.
4474         (convert_from_eh_region_ranges): Use it.
4475         (connect_post_landing_pads): Handle dying cleanups.
4476         (struct reachable_info): Add callback data.
4477         (add_reachable_handler): Invoke the callback.
4478         (foreach_reachable_handler): New.
4479         (reachable_handlers): Use it.
4480         (arh_to_landing_pad, arh_to_label): New.
4481         (can_throw_internal_1): Split out from can_throw_internal.
4482         (can_throw_external_1): Similarly.
4483         * except.h: Update.
4484         * explow.c (emit_stack_save): Remove savearea mode check.
4485         (update_nonlocal_goto_save_area): New.
4486         (allocate_dynamic_stack_space): Use it.
4487         (probe_stack_range): Never emit loop notes.
4488         * expmed.c (extract_fixed_bit_field): Always propagate the
4489         target for the shift if it is a REG.
4490         * expr.c: Include tree-iterator.h
4491         (is_zeros_p): Remove.
4492         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4493         (count_type_elements): New.
4494         (mostly_zeros_p): Use them.
4495         (expr_wfl_stack): Remove.
4496         (convert_move): Do nothing if to and from are the same.
4497         (emit_block_move_via_loop): Don't emit LOOP notes.
4498         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4499         (emit_move_insn_1): Don't generate inline warnings.
4500         (expand_vars, expand_var): Split from ...
4501         (expand_expr_1): ... here.
4502         (expand_expr_real, expand_expr_real_1):  Use new macros
4503         EXPR_LOCATION and EXPR_HAS_LOCATION.
4504         * expr.h (simplify_builtin_fputs,
4505         simplify_builtin_strcpy, simplify_builtin_strncpy,
4506         expand_var, fixup_tail_calls,
4507         update_nonlocal_goto_save_area): Declare.
4508         (lookup_static_chain, expand_inline_function,
4509         mark_seen_cases): Remove.
4510         (prepare_call_address): Change type of 2nd argument to
4511         rtx.
4512         * final.c (profile_function): Update static chain test.
4513         (final): Don't look at RTX_INTEGRATED_P.
4514         * flags.h (flag_mudflap, flag_mudflap_threads,
4515         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4516         flag_tree_dce, flag_tree_combine_temps,
4517         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4518         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4519         flag_tree_points_to): Declare.
4520         (enum pta_type): Declare.
4521         * flow.c (lang_missing_noreturn_ok_p): Remove.
4522         (check_function_return_warnings): Remove.
4523         (update_life_info): Update comments.
4524         (free_basic_block_vars): Don't call VARRAY_FREE for
4525         basic_block_info.
4526         (regno_uninitialized): Remove.
4527         * fold-const.c (int_const_binop): Make extern.
4528         (non_lvalue): Rely on build to set TREE_CONSTANT.
4529         (operand_equal_p): Replace only_const argument with
4530         flags.  Allow pure functions if OEP_PURE_SAME.
4531         (fold): Use OEP_ONLY_CONST.
4532         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4533         boolean type.
4534         (fold_relational_hi_lo,
4535         nondestructive_fold_binary_to_constant,
4536         nondestructive_fold_unary_to_constant,
4537         fold_read_from_constant_string): New.
4538         * function.c (struct function): Remove calls_constant_p.
4539         (current_function_calls_constant_p): Remove.
4540         (inline_function_decl): Remove.
4541         (put_var_into_stack): Don't use it.
4542         (fix_lexical_addr): Likewise.
4543         (inline_function_decl): Remove extern declaration.
4544         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4545         (trampolines_created): Move to varasm.c.
4546         (free_after_compilation): Update for removed fields.
4547         (allocate_struct_function): Likewise.
4548         (delete_handlers, lookup_static_chain): Remove.
4549         (fix_lexical_addr): Don't consider non-local variable refs.
4550         (trampoline_address): Remove.
4551         (round_trampoline_addr): Move to builtins.c.
4552         (adjust_trampoline_addr): Remove.
4553         (expand_function_start): Update for changes to static chain
4554         and nonlocal goto handling.
4555         (initial_trampoline): Move to varasm.c.
4556         (expand_function_end): Don't build trampolines or kill
4557         unreferenced nonlocal goto labels.
4558         (free_after_compilation): Don't set it.
4559         (expand_function_end): Likewise.
4560         (setjmp_vars_warning): Rename from
4561         uninitialized_vars_warning, remove uninitialized vars warning.
4562         (uninitialized_vars_warning): Remove old comment
4563         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4564         and do not call the langhook.
4565         (expand_function_start, expand_function_end): Don't do
4566         function instrumentation here.
4567         (clear_block_marks): Rename from reorder_blocks_0, export.
4568         (blocks_nreverse): Export.
4569         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4570         of rtl.
4571         (reset_block_changes, record_block_change, finalize_block_changes,
4572         check_block_change, free_block_changes): New functions.
4573         (assign_parms): Setting of current_function_stdarg
4574         moved ...
4575         (allocate_struct_function): ... here.
4576         * function.h (struct function): Remove x_nonlocal_labels,
4577         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4578         x_context_display, x_trampoline_list, needs_context.
4579         Add static_chain_decl, nonlocal_goto_save_area.
4580         (struct function): Remove x_clobber_return_insn.
4581         Add tail_call_emit field, last_label_uid,
4582         unexpanded_var_list, dont_emit_block_notes,
4583         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4584         (clear_block_marks): Declare.
4585         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4586         (mfwrap_spec, mflib_spec): Declare.
4587         (cpp_unique_options, cc1_options): Ditto.
4588         (default_compilers): Add .F and .f90.
4589         (static_specs): Add mfwrap and mflib.
4590         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4591         CONSTANT_RTX_P.
4592         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4593         Update to match insns field in struct edge_def.
4594         * gdbinit.in (pgs, pge): Define.
4595         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4596         instead of the integrated flag.
4597         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4598         * gengtype-yacc.y (bitfieldlen): Add empty action.
4599         (struct_fields): Accept unnamed bitfields.
4600         (bitfieldlen): Split from ...
4601         (bitfieldopt): ... here.
4602         * gengtype.c (ifiles): Add tree-alias-type.h and
4603         tree-flow.h.
4604         * genrecog.c (validate_pattern): Do not handle
4605         CONSTANT_P_RTX.
4606         * gimple-low.c: New file.
4607         * gimplify.c: New file.
4608         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4609         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4610         * ifcvt.c (dead_or_predicable): Initialize local variable
4611         'earliest'.
4612         * input.h (expr_wfl_stack): Remove.
4613         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4614         (setup_initial_hard_reg_value_integration): Likewise.
4615         (initialize_for_inline): Likewise.
4616         (note_modified_parmregs): Likewise.
4617         (integrate_parm_decls): Likewise.
4618         (process_reg_param): Likewise.
4619         (save_parm_insns): Likewise.
4620         (copy_insn_list): Likewise.
4621         (copy_insn_notes): Likewise.
4622         (compare_blocks): Likewise.
4623         (find_block): Likewise.
4624         (inlining): Likewise.
4625         (function_cannot_inline_p): Likewise.
4626         (parmdecl_map): Likewise.
4627         (in_nonparam_insns): Likewise.
4628         (save_for_inline): Likewise.
4629         (FIXED_BASE_PLUS): Likewise.
4630         (expand_inline_function): Likewise.
4631         (copy_rtx_and_substitute): Don't look at map->integrating,
4632         map->inline_target, and inlining, since we are never copying
4633         for integrating.
4634         Don't abort on RTX_INTEGRATED_P.
4635         (old_fun): Remove.
4636         (output_inline_function): Remove.
4637         * integrate.h (struct inline_map): Remove fields integrating,
4638         block_map, leaf_reg_map, inline_target, and local_return_label.
4639         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4640         copy_loop_headers, never_reached_warning): Removed.
4641         (any_uncondjump_p): Reject nonlocal goto.
4642         * langhooks-def.h (lhd_types_compatible_p,
4643         lhd_expand_decl, lhd_gimplify_expr): Declare.
4644         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4645         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4646         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4647         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4648         LANG_HOOKS_GIMPLIFY_EXPR,
4649         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4650         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4651         LANG_HOOKS_GIMPLIFY_EXPR,
4652         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4653         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4654         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4655         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4656         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4657         LANG_HOOKS_DECL_UNINIT,
4658         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4659         * langhooks.c: Include tree-simple.h.
4660         (lhd_expand_decl): New.
4661         (lhd_types_compatible_p): New.
4662         (lhd_decl_uninit): Remove.
4663         (lhd_gimplify_expr): New.
4664         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4665         Remove.
4666         (struct lang_hooks_for_functions): Add field
4667         missing_noreturn_ok_p.
4668         (struct lang_hooks): Add field expand_decl,
4669         types_compatible_p, gimplify_expr and
4670         gimple_before_inlining.
4671         Remove fields decl_uninit and rtl_expand
4672         * opts.c (decode_options): Set flag_tree_ccp,
4673         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4674         flag_tree_pre, flag_tree_ter,
4675         flag_tree_live_range_split, flag_tree_sra,
4676         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4677         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4678         OPT_fmudflapth, OPT_fmudflapir,
4679         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4680         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4681         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4682         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4683         OPT_ftree_points_to_ and OPT_ftree_pre.
4684         * output.h (regno_uninitialized, find_basic_blocks,
4685         cleanup_cfg, delete_unreachable_blocks,
4686         check_function_return_warnings): Remove.
4687         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4688         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4689         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4690         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4691         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4692         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4693         Define.
4694         * passes.c (rest_of_decl_compilation):
4695         (rest_of_handle_sibling_calls): Remove.
4696         (rest_of_handle_inlining): Remove.
4697         (rest_of_handle_gcse): Do not run
4698         purge_builtin_constant_p.
4699         (rest_of_compilation): Update.
4700         Do not call copy_loop_headers.
4701         Do rtl-based profiling only when
4702         !flag_tree_based_profiling.  Register rtl-based profiling
4703         hooks.
4704         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4705         (predicted_by_p): Rename to ...
4706         (rtl_predicted_by_p): .. this one; make global
4707         (tree_predicted_by_p): New.
4708         (dump_prediction): Add FILE argument.
4709         (predict_edge): Rename to ...
4710         (rtl_predict_edge): .. this one.
4711         (tree_predict_edge): New.
4712         (combine_predictions_for_insn): Update calls of predict_edge.
4713         (predict_loops): Break out from ...
4714         (estimate_probability): ... here; update comments; move updating
4715         of unknown probabilities from ...
4716         (estimate_bb_frequencies): ... here.
4717         (combine_predictions_for_bb): New.
4718         (tree_predict_by_opcode): New.
4719         (tree_estimate_probability): New.
4720         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4721         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4722         * predict.h: Add include guard.
4723         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4724         * pretty-print.c (pp_write_text_to_stream): Make extern.
4725         * pretty-print.h (pp_write_text_to_stream): Declare.
4726         * print-rtl.c (print_rtx): Don't print the integrated flag.
4727         Print the return_val flag.
4728         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4729         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4730         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4731         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4732         * profile.c: Include cfghooks.h, tree-flow.h.
4733         (profile_hooks): New.
4734         (profile_dump_file): New.
4735         (instrument_edges): Use hooks instead of RTL-specific code.
4736         (instrument_values): Ditto.
4737         (get_exec_counts): Ditto.
4738         (compute_branch_probabilities): Ditto.
4739         (compute_value_histograms): Ditto.
4740         (branch_prob): Ditto.
4741         (find_spanning_tree): Ditto.
4742         (end_branch_prob): Ditto.
4743         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4744         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4745         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4746         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4747         (tree_register_profile_hooks): New.
4748         (rtl_register_profile_hooks): New.
4749         * ra-rewrite.c (rewrite_program): Clear variable info.
4750         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4751         * regs.h: Add include guards.
4752         * reload.c (decompose): Clear val using memset.
4753         * rtl.def (CONSTANT_P_RTX): Remove.
4754         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4755         (copy_loop_headers): Remove.
4756         (struct rtx_def): Replace the integrated flag with the
4757         return_val flag.
4758         (maybe_set_first_label_num): Declare.
4759         (init_branch_prob): Move declaration to value-prof.h.
4760         (end_branch_prob): Ditto.
4761         (branch_prob): Ditto.
4762         (never_reached_warning): Don't declare it.
4763         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4764         (hoist_insn_to_edge): Update to match field insns in
4765         struct edge_def.
4766         * sbitmap.c (sbitmap_realloc): New.
4767         * sbitmap.h (sbitmap_realloc): Declare.
4768         * sibcall.c: Remove file.
4769         * simplify-rtx.c (simplify_rtx): Do not handle
4770         CONSTANT_P_RTX.
4771         * stmt.c (parse_output_constraint): Don't warn for read-write
4772         memory operand.
4773         (tail_recursion_args): Use types_compatible_p langhook.
4774         (force_label_rtx): Don't look at inline_function_decl.
4775         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4776         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4777         (declare_nonlocal_label): Remove.
4778         (expand_goto): Don't handle nonlocal gotos.
4779         (expand_nl_handler_label): Remove.
4780         (expand_nl_goto_receivers): Remove.
4781         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4782         update_nonlocal_goto_save_area.
4783         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4784         (warn_if_unused_value): Likewise.
4785         (expand_start_loop, expand_loop_continue_here,
4786         expand_end_loop): Don't create loop notes.
4787         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4788         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4789         (expand_end_case_type): Don't do warn_switch handling.
4790         (pushcase, pushcase_range) Update add_case_node calls.
4791         (add_case_node): Add dont_expand_label argument.
4792         (same_case_target_p): Don't search rtl.
4793         (expand_start_bindings_and_block, expand_end_bindings):
4794         Don't emit block notes when dont_emit_block_notes.
4795         (using_eh_for_cleanups_p): Export.
4796         (expand_return): Allow any typed rhs.
4797         (expand_stack_alloc): New.
4798         (expand_stack_save, expand_stack_restore): New.
4799         (containing_blocks_have_cleanups_or_stack_level): New
4800         function.
4801         (asm_op_is_mem_input): New fn.
4802         (expand_asm_expr): New fn.
4803         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4804         nodes.
4805         * stor-layout.c (layout_type): Just return if type is
4806         error_mark_node.
4807         (update_alignment_for_field): Export.
4808         (variable_size): We don't care about global_bindings_p if
4809         the frontend doesn't want a list of the expressions.
4810         * system.h: Poison INTEGRATE_THRESHOLD.
4811         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4812         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4813         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4814         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4815         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4816         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4817         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4818         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4819         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4820         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4821         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4822         TV_CONTROL_DEPENDENCES): Define.
4823         * toplev.c: Include tree-alias-common.h
4824         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4825         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4826         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4827         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4828         flag_tree_combine_temps, flag_tree_ter,
4829         flag_tree_live_range_split, flag_tree_dom,
4830         flag_tree_copyrename, flag_tree_dse): Declare.
4831         (f_options): Add tree-based-profiling, tree-gvn,
4832         tree-pre, tree-ccp, tree-dce,
4833         tree-dominator-opts, tree-copyrename, tree-dse,
4834         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4835         (wrapup_global_declarations): Don't output nested inlined functions.
4836         (general_init): Call init_tree_optimization_passes.
4837         (process_options): Sorry for -ftree-based-profiling plus
4838         -ftest-coverage or -fprofile-values.
4839         * toplev.h (init_tree_optimization_passes,
4840         flag_tree_based_profiling): Declare.
4841         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4842         * tree-alias-ander.c: New file.
4843         * tree-alias-ander.h: New file.
4844         * tree-alias-common.c: New file.
4845         * tree-alias-common.h: New file.
4846         * tree-alias-type.c: New file.
4847         * tree-alias-type.h: New file.
4848         * tree-browser.c: New file.
4849         * tree-browser.def: New file.
4850         * tree-cfg.c: New file.
4851         * tree-complex.c: New file.
4852         * tree-dfa.c: New file.
4853         * tree-dump.c (dump_enable_all): New.
4854         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4855         (dump_node): Remove const from field suffix and swtch.
4856         (dump_files): Add null entry, .generic, .nested, .vcg,
4857         .xml and a match-all entry.
4858         (extra_dump_files, extra_dump_files_in_use,
4859         extra_dump_files_alloced): Declare
4860         (dump_option_value_info): Add raw, details, stats,
4861         blocks, vops, lineno, uid and all.
4862         (dump_register): New.
4863         (get_dump_file_info): New.
4864         (dump_begin): Call it.
4865         Do nothing for TDI_none.
4866         (dump_begin): Include phase number in dump filename.
4867         (dump_enable_all): New.
4868         (dump_switch_p_1): Split out from dump_switch_p.
4869         (dump_switch_p): Handle extra_dump_files.
4870         Start our scan at TDI_none + 1.
4871         If -fdump-tree-all was given, call dump_enable_all.
4872         * tree-dump.h: Include splay-tree.h.
4873         (dump_function, dump_function_to_file, dump_register):
4874         Declare.
4875         * tree-eh.c: New file.
4876         * tree-flow-inline.h: New file.
4877         * tree-flow.h: New file.
4878         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4879         * tree-inline.h (walk_tree,
4880         walk_tree_without_duplicates): Move to tree.h.
4881         (estimate_num_insns): Declare.
4882         * tree-into-ssa.c: New file.
4883         * tree-iterator.c: New file.
4884         * tree-iterator.h: New file.
4885         * tree-mudflap.c: New file.
4886         * tree-mudflap.h: New file.
4887         * tree-nested.c: New file.
4888         * tree-nomudflap.c: New file.
4889         * tree-nrv.c: New file.
4890         * tree-optimize.c (dump_flags, vars_to_rename,
4891         in_gimple_form, all_passes, pass_gimple,
4892         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4893         (execute_gimple, execute_rebuild_bind,
4894         gate_all_optimizations, execute_del_cfg,
4895         register_one_dump_file, register_dump_files, dup_pass_1,
4896         init_tree_optimization_passes, execute_todo,
4897         execute_one_pass, execute_pass_list): New.
4898         (clear_decl_rtl): Remove.
4899         (tree_rest_of_compilation): Update to use tree
4900         optimizers.
4901         * tree-outof-ssa.c: New file.
4902         * tree-pass.h: New file.
4903         * tree-phinodes.c: New file.
4904         * tree-pretty-print.c: New file.
4905         * tree-profile.c: New file.
4906         * tree-simple.c: New file.
4907         * tree-simple.h: New file.
4908         * tree-sra.c: New file.
4909         * tree-ssa-alias.c: New file.
4910         * tree-ssa-ccp.c: New file.
4911         * tree-ssa-copy.c: New file.
4912         * tree-ssa-copyrename.c: New file.
4913         * tree-ssa-dce.c: New file.
4914         * tree-ssa-dom.c: New file.
4915         * tree-ssa-dse.c: New file.
4916         * tree-ssa-forwprop.c: New file.
4917         * tree-ssa-live.c: New file.
4918         * tree-ssa-live.h: New file.
4919         * tree-ssa-loop.c: New file.
4920         * tree-ssa-operands.c: New file.
4921         * tree-ssa-operands.h: New file.
4922         * tree-ssa-phiopt.c: New file.
4923         * tree-ssa-pre.c: New file.
4924         * tree-ssa.c: New file.
4925         * tree-ssanames.c: New file.
4926         * tree-tailcall.c: New file.
4927         * tree.c: Include tree-iterator.h, basic-block.h and
4928         tree-flow.h.
4929         (tree_node_kind): Add phi_nodes and ssa names.
4930         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4931         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4932         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4933         <'c'> Set TREE_INVARIANT.
4934         (copy_node_stat): Abort if trying to copy a
4935         STATEMENT_LIST.
4936         Clear TREE_VISITED.
4937         Clear annotation field.
4938         (build_constructor): Copy TREE_INVARIANT from vals.
4939         Don't clear TREE_CONSTANT.
4940         (expr_first, expr_last, expr_length): Remove.
4941         (staticp): Pass unknown component references to the language.
4942         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4943         (skip_simple_arithmetic): Likewise.
4944         (stabilize_reference_1): Likewise.
4945         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4946         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4947         STATEMENT_LIST.
4948         (lhd_unsave_expr_now): Remove.
4949         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4950         (recompute_tree_invarant_for_addr_expr): New.
4951         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4952         Call recompute_tree_invarant_for_addr_expr.
4953         Set TREE_INVARIANT accordingly.
4954         (build2_stat): Don't handle CALL_EXPR.
4955         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4956         (build_expr_wfl): Remove.
4957         (annotate_with_file_line, annotate_with_locus): New.
4958         (simple_cst_equal): Call simple_cst_list_equal to compare
4959         CONSTRUCTOR_ELTS pointers.
4960         (iterative_hash_expr): Don't hash types associated
4961         with conversions.  Instead hash on the signedness of the
4962         toplevel object and the operand of the conversion.
4963         (dump_tree_statistics): Call ssanames_print_statistics
4964         and phinodes_print_statistics.
4965         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4966         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4967         needs_to_live_in_memory): New.
4968         (initializer_zerop): Handle VECTOR_CST.  Don't check
4969         AGGREGATE_TYPE_P for CONSTRUCTOR.
4970         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4971         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4972         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4973         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4974         (CALL_EXPR): Add another operand.
4975         (EXPR_WITH_FILE_LOCATION): Remove.
4976         (SWITCH_EXPR): Add another operand.
4977         * tree.h: Update various comments.
4978         (union tree_ann_d): Forward declare.
4979         (struct tree_common): Add fields nowarning_flag,
4980         invariant_flag and visited.
4981         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4982         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4983         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4984         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4985         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4986         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4987         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4988         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4989         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4990         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4991         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4992         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4993         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4994         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4995         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4996         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4997         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4998         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4999         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5000         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5001         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5002         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5003         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5004         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5005         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5006         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5007         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5008         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5009         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5010         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5011         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5012         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5013         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5014         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5015         TDF_UID,): Define.
5016         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5017         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5018         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5019         EXPR_WFL_SET_LINECOL): Remove.
5020         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5021         make_phi_node, init_phinodes, fini_phinodes,
5022         release_phi_node, phinodes_print_statistics,
5023         init_ssanames, fini_ssanames, make_ssa_name,
5024         release_ssa_name, ssanames_print_statistics,
5025         annotate_with_file_line, build_empty_stmt,
5026         annotate_with_locus, expr_only, categorize_ctor_elements,
5027         count_type_elements, add_var_to_bind_expr, is_essa_node,
5028         expand_stack_alloc, expand_stack_save,
5029         expand_stack_restore, add_case_node, operand_equal_p,
5030         nondestructive_fold_unary_to_constant,
5031         nondestructive_fold_binary_to_constant,
5032         fold_read_from_constant_string, int_const_binop,
5033         strip_float_extensions, simplify_builtin, c_strlen,
5034         recompute_tree_invarant_for_addr_expr,
5035         needs_to_live_in_memory, make_vector,
5036         setjmp_vars_warning, update_alignment_for_field,
5037         expand_asm_expr, asm_op_is_mem_input,
5038         containing_blocks_have_cleanups_or_stack_level,
5039         create_artificial_label, gimplify_function_tree,
5040         get_name, unshare_expr, walk_tree,
5041         walk_tree_without_duplicates, in_gimple_form): Declare.
5042         (struct tree_exp): Add fields locus and block.
5043         (struct tree_ssa_name, struct edge_def, struct
5044         tree_phi_node, struct tree_eref_common, struct
5045         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5046         union alias_var_def, struct tree_statement_list_node,
5047         struct tree_statement_list, enum operand_equal_flag): Declare.
5048         (enum tree_node_structure_enum): Add TS_SSA_NAME,
5049         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5050         TS_STATEMENT_LIST.
5051         (union tree_node): Add fields ssa_name, phi, eref, ephi,
5052         euse and stmt_list.
5053         (function_cannot_inline_p, uninitialized_vars_warning,
5054         save_for_inline, output_inline_function, all_cases_count,
5055         check_for_full_enumeration_handling,
5056         declare_nonlocal_label): Remove.
5057         (enum tree_dump_index): Add TDI_none, TDI_tu,
5058         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5059         * unroll.c (unroll_loop): Don't clear map->inline_target.
5060         * unwind-sjlj.c (uw_install_context): Make a proper static inline
5061         function.
5062         * value-prof.c (value_prof_hooks): New.
5063         (find_values_to_profile): Rename to rtl_find_values_to_profile.
5064         Move rtl-specific bits in from branch_prob.
5065         (value_profile_transformations): Rename to
5066         rtl_value_profile_transformations.
5067         (struct value_prof_hooks): New.
5068         (rtl_value_prof_hooks): New.
5069         (rtl_register_value_prof_hooks): New.
5070         (tree_find_values_to_profile): New stub.
5071         (tree_value_profile_transformations): New stub.
5072         (tree_value_prof_hooks): New stub.
5073         (tree_register_value_prof_hooks): New stub.
5074         (find_values_to_profile): New.
5075         (value_profile_transformations): New.
5076         * value-prof.h: Add multiple inclusion guard.
5077         (struct histogram_value): Change rtx fields to void *.
5078         (rtl_register_value_prof_hooks): New declaration.
5079         (tree_register_value_prof_hooks): New declaration.
5080         (find_values_to_profile): New declaration.
5081         (free_profiled_values): New declaration.
5082         (value_profile_transformations): New declaration.
5083         (struct profile_hooks): New declaration.
5084         (init_branch_prob): Declaration moved from rtl.h.
5085         (branch_prob): Declaration moved from rtl.h.
5086         (end_branch_prob): Declaration mooved from rtl.h.
5087         (tree_register_profile_hooks): New declaration.
5088         (rtl_register_profile_hooks): New declaration.
5089         (tree_profile_hooks): New declaration.
5090         (rtl_profile_hooks): New declaration.
5091         * varasm.c: Include tree-mudflap.h.
5092         (TRAMPOLINE_ALIGNMENT): Remove.
5093         (make_decl_rtl): Call mudflap_enqueue_decl.
5094         (assemble_static_space):
5095         (assemble_trampoline_template): Set and return
5096         TRAMPOLINE_ALIGNMENT.
5097         * varray.c (element): Add GENERIC_PTR_NOGC entry.
5098         Add entry for 'tree *'.
5099         Add entry for struct edge_def *.
5100         (varray_copy): New.
5101         * varray.h (enum varray_data_enum): Add
5102         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5103         VARRAY_DATA_TREE_PTR.
5104         (union varray_data_tag): Corresponding changes.
5105         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5106         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5107         VARRAY_EDGE, VARRAY_TREE_PTR,
5108         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5109         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5110         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5111
5112         * config/*/*: Various updates for changed macros, tree
5113         codes, etc.  Check ChangeLog.tree-ssa.
5114
5115         * doc/cfg.texi: New file.
5116         * doc/tree-ssa.texi: New file.
5117         * doc/c-tree.texi: Document new codes.
5118         * doc/gccint.texi: Include new files.
5119         * doc/install.texi: Document new features.
5120         * doc/invoke.texi: Document new switches.
5121         * doc/passes.texi: Document new passes.
5122         * doc/rtl.texi: Update changed RTL codes.
5123         * doc/sourcebuild.texi: Update build instructions.
5124         * doc/standards.texi: Document Fortran changes.
5125         * doc/tm.texi: Update.
5126
5127 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5128
5129         Replace several arrays with a struct of arrays.
5130         * combine.c (struct reg_stat): New.
5131         (init_reg_last_arrays): Renamed to...
5132         (init_reg_last): ...this.  Callers adjusted.
5133         (reg_stat): New.
5134         (combine_instructions): Allocate it and use it.
5135         (reg_last_death, reg_last_set, reg_last_set_value,
5136         reg_last_set_label, reg_last_set_table_tick,
5137         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5138         reg_last_set_mode, reg_last_set_nonzero_bits,
5139         reg_last_set_sign_bit_copies): Replace throughout
5140         with items of reg_stat.
5141
5142 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5143
5144         PR optimization/15100
5145         * combine.c (distribute_notes): Don't create a dangling
5146         REG_LIBCALL/REG_RETVAL note.
5147
5148 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5149
5150         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5151
5152         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5153         negv2si2.
5154
5155 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5156
5157         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5158
5159 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5160
5161         * doc/gty.texi (GTY Options): Clarify example.
5162
5163 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5164
5165         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5166         Add const qualifier to altivec vector type if one is needed.
5167
5168 2004-05-11  Paul Brook  <paul@codesourcery.com>
5169
5170         * flags.h (flag_short_enums): Update comment.
5171         * opts.c (decode_options): Set flag_short_enums to 2.
5172         * toplev.c (flag_short_enums): Update comment.
5173         (process_options): Call default_short_enums target hook.
5174
5175 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5176
5177         PR target/14063
5178         * config/rs6000/altivec.md (altivec_dssall):
5179         Change to unspec_volatile.
5180         (altivec_dss): Likewise.
5181
5182 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5183
5184         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5185         vnor.
5186         ("one_cmplv8hi2"): Same.
5187         ("one_cmplv4si2"): Same.
5188
5189 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5190
5191         PR target/15130
5192         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5193         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5194         into account.  Compute the correct number of general registers
5195         for the return value.  Generate a special push/pop sequence when
5196         failing to get a temporary register for non SHmedia epilogue.
5197         (sh_expand_epilogue): Add an argument to show whether it's for
5198         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5199         -1 if needed.
5200         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5201         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5202         with 1.
5203         (epilogue): Call sh_expand_epilogue with 0.
5204
5205 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5206
5207         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5208         goto a cleanup label.  After the cleanup, free the allocated memory.
5209
5210 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5211
5212         * config/rs6000/altivec.h (vec_sld): Add overloads for
5213         argument/return types of 'vector bool int', 'vector bool short'
5214         and 'vector bool char'.
5215
5216 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5217
5218         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5219         nested function.
5220
5221 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5222
5223         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5224         treating missing ones as "".
5225         * config/mips/mips.md: Remove constraints from match_operands and
5226         match_scratches if they appear in define_expands (except reload*),
5227         define_peephole2s, define_splits or attribute specifications.
5228         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5229         constraint strings.
5230
5231 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5232
5233         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5234         AltiVec vectors.
5235         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5236         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5237         byte boundary.  Remove useless code.  Add function comment.
5238         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5239         call to where it belongs.
5240         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5241         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5242         (rs6000_va_arg): Adjust for AltiVec change.
5243
5244 2004-05-10  Paul Brook  <paul@codesourcery.com>
5245
5246         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5247         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5248         (TARGET_DOUBLEWORD_ALIGN): Use it.
5249         (WCHAR_TYPE): Define.
5250         (WCHAR_SIZE_TYPE): Define.
5251         (SIZE_TYPE): Define.
5252
5253 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5254
5255         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5256         when size is 8 bytes.
5257         (function_arg_advance): Account for stack space used by AltiVec
5258         args when -mabi=altivec.  Simplify alignment calculations.  For
5259         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5260         (function_arg): Similarly.
5261         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5262         not AltiVec ABI.
5263         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5264         Correct alignment, and align before testing reg count.  Remove
5265         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5266         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5267         TARGET_FPRS here..
5268         (rs6000_function_value): .. not here before call.
5269
5270 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5271
5272         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5273
5274 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5275
5276         PR 15007
5277         * c-decl.c (current_file_decl): Rename to all_translation_units,
5278         adjust comment.
5279         (pop_scope): If popping file_scope, construct a
5280         TRANSLATION_UNIT_DECL and make it the context of all the
5281         symbols in the scope.
5282         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5283         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5284         anything to current_file_decl.
5285         (pushdecl_top_level): Likewise.
5286         (store_parm_decls_newstyle): Adjust check for nested function.
5287         (c_write_global_declarations): Update for renamed variable.
5288
5289 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5290
5291         * config/rs6000/rs6000-protos.h
5292         (rs6000_conditional_register_usage): Protoize.
5293
5294         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5295
5296         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5297         function.
5298
5299 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5300
5301         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5302         where op is a comparison operator and C1 and C2 are integer constants
5303         into a range check.
5304         (fold): Call fold_div_compare.
5305
5306 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5307
5308         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5309         problems with earlier versions of the GNU compiler.
5310
5311 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5312
5313         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5314         Declare.
5315
5316         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5317         (rs6000_hard_regno_mode_ok): New.
5318         (rs6000_init_hard_regno_mode_ok): New.
5319         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5320
5321         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5322         result.
5323
5324 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5325
5326         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5327         define as macros #ifdef __APPLE_ALTIVEC__.
5328
5329 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5330
5331         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5332         Generate appropriate parallels for vector arguments
5333         passed to vararg functions. (function_arg): make the call
5334         to rs6000_mixed_function_arg for vector args as needed.
5335
5336 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5337
5338         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5339         EABI_FLOAT_VARARGS_P.
5340
5341 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5342
5343         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5344         * config/mips/mips.c (override_options): Disable branch likely
5345         instructions if TUNE_MIPS5500.
5346
5347 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5348
5349         * config/mips/mips.c (override_options): Allow the hi and lo registers
5350         to store any integral mode, not just MODE_INTs.
5351
5352 2004-05-07  Paul Brook  <paul@codesourcery.com>
5353
5354         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5355         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5356         (TARGET_DOUBLEWORD_ALIGN): Use it.
5357         (WCHAR_TYPE): Define.
5358         (WCHAR_SIZE_TYPE): Define.
5359         (SIZE_TYPE): Define.
5360
5361 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5362
5363         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5364         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5365
5366 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5367
5368         * loop-doloop.c (doloop_valid_p): Make sure that body
5369         gets freed.
5370
5371 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5372
5373         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5374         declaration.
5375         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5376         (sparc_skip_caller_unimp): New global variable.
5377         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5378         Use it instead of SKIP_CALLERS_UNIMP_P.
5379         * config/sparc/sparc.md (call expander): Add sanity check.
5380         (call_address_struct_value_sp32): Re-sync with expander.
5381         (call_symbolic_struct_value_sp32): Likewise.
5382         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5383         of custom predicate.
5384
5385 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5386
5387         PR c++/14962
5388         * c-pragma.c (handle_pragma_redefine_extname): Only change
5389         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5390
5391 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5392
5393         * optabs.h (enum optab_index): Add new OTI_log1p.
5394         (log1p_optab): Define corresponding macro.
5395         * optabs.c (init_optabs): Initialize log1p_optab.
5396         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5397         patterns.
5398         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5399         using log1p_optab.
5400         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5401         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5402
5403         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5404
5405         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5406         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5407         Prototype here.
5408         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5409         x87's fyl2xp1 instruction.
5410         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5411         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5412         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5413         log1p  and log1pl built-ins as inline x87 intrinsics.
5414
5415 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5416
5417         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5418         * config/arm/freebsd.h: Likewise.
5419         * config/ia64/freebsd.h: Likewise.
5420         * config/sparc/freebsd.h: Likewise.
5421
5422 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5423
5424         PR optimization/15296
5425         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5426         getting last consecutive label at a branch.
5427         (relax_delay_slots): Similar, near top of loop.
5428
5429 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5430
5431         PR target/15202
5432         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5433         register to general register.
5434
5435 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5436
5437         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5438         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5439         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5440         (STACK_BOUNDARY): Delete.
5441
5442 2004-05-06  Stuart Hastings  <stuart@apple.com>
5443
5444         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5445         mistakenly clobbered by 1.423.
5446
5447 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5448
5449         * doc/invoke.texi: Document -mvr4130-align.
5450         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5451         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5452         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5453         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5454         * config/mips/mips.md: Include sched-int.h.
5455         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5456         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5457         (override_options): Enable -mvr4130-align at -O3 and above.
5458         (mips_sim_insn): New variable.
5459         (mips_sim): New structure.
5460         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5461         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5462         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5463         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5464         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5465         (mips_reorg): Call vr4130_align_insns.
5466         (vr4130_last_insn): New variable.
5467         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5468         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5469         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5470         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5471         (mips_use_dfa_pipeline_interface): Return true for the same.
5472         * config/mips/4130.md: New file.
5473         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5474         "mult;mflo" into "mtlo;macc".
5475         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5476         target of maccs.
5477         (*msac_using_macc): New pattern.
5478
5479 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5480
5481         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5482         (ir_vr55_hilo): Split into...
5483         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5484         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5485         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5486         Add various multiplication bypasses.
5487         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5488         multiplication.
5489
5490 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5491
5492         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5493         attribute to "XF".
5494
5495 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5496
5497         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5498         (fmod_optab, drem_optab): Define corresponding macros.
5499         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5500         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5501         using fmod?f3 and drem?f3 patterns.
5502         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5503         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5504         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5505         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5506         flag_unsafe_math_optimizations is set.
5507
5508         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5509         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5510
5511         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5512         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5513         Prototype here.
5514         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5515         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5516         fprem and fprem1 instructions.
5517         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5518         Rename insn definition to x86_fnstsw_1.
5519         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5520         x87 instructions.
5521         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5522         and fmodl built-ins as inline x87 intrinsics.
5523         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5524         and dreml built-ins as inline x87 intrinsics.
5525
5526 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5527
5528         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5529
5530 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5531
5532         PR driver/9822
5533         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5534
5535 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5536
5537         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5538         representation.
5539
5540 2004-05-06  Paul Brook  <paul@codesourcery.com>
5541
5542         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5543         (arm_coproc_mem_operand): ... To this.
5544         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5545         (arm_legitimate_index_p): Ditto.
5546         (vfp_mem_operand): Rename ...
5547         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5548         (vfp_secondary_reload_class): Use it.
5549         (output_move_double): Use doubleword load/store instructions.
5550         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5551         * config/arm/arm.h (TARGET_LDRD): Define.
5552         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5553         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5554         New splitter for invalid doubleword loads.
5555         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5556         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5557         * doc/md.texi: Document Uy constraint.
5558
5559 2004-05-05  Jan Hubicka  <jh@suse.cz>
5560
5561         PR opt/14980
5562         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5563         inline clones.
5564
5565 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5566
5567         PR target/15290
5568         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5569         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5570
5571 2004-05-05  Mike Stump  <mrs@apple.com>
5572
5573         * config/darwin-c.c (add_framework): Copy the directory name as it
5574         can be freed later.  Also, ensure we always allocate enough room
5575         for the cached framework information.
5576         (find_subframework_header): Keep track of the directory where the
5577         subframework header was found.
5578         (framework_construct_pathname): Speed up by not trying to re-add a
5579         framework.
5580         * cppfiles.c (search_path_exhausted): Arrange for the missing
5581         header callback to be able to set the directory where the header
5582         was found.
5583         (cpp_get_dir): Add.
5584         * cpplib.h (missing_header_cb): Add a parameter.
5585         (cpp_get_dir): Add.
5586
5587 2004-05-03  Mike Stump  <mrs@apple.com>
5588
5589         * doc/invoke.texi (Directory Options): Document -iquote.
5590         * doc/cpp.texi: Likewise.
5591         * doc/cppopts.texi: Likewise.
5592         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5593         (c_common_handle_option): Likewise.
5594         * c.opt (iquote): Add.
5595         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5596         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5597
5598         * c-opts.c (case OPT_I): Deprecate -I- support.
5599         * doc/invoke.texi: Likewise.
5600         * doc/cpp.texi: Likewise.
5601         * doc/cppopts.texi: Likewise.
5602
5603 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5604
5605         * basic-block.h (free_basic_block_vars): Update prototype.
5606         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5607         argument.
5608         (life_analysis): Update call.
5609         * ifcvt.c (if_convert): Likewise.
5610         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5611         * passes.c (rest_of_handle_final): Likewise.
5612         (rest_of_compilation): Likewise.
5613         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5614
5615         * emit-rtl.c (next_real_insn): Use INSN_P.
5616         (prev_real_insn): Likewise.
5617
5618 2004-05-05  Eric Christopher  <echristo@redhat.com>
5619
5620         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5621         representation.
5622
5623 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5624
5625         * config/rs6000/rs6000.c (build_opaque_vector_type):
5626         New function.
5627         (rs6000_init_builtins): Use it.
5628
5629 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5630
5631         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5632         (func_table): Change type from char ** to vms_func_ref.
5633         (write_rtnbeg):  Update to reflect func_table change.  Use
5634         fde->funcdef_number instead of rtnnum in output.
5635         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5636
5637 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5638             Richard Henderson  <rth@redhat.com>
5639
5640         PR target/14899
5641
5642         * c-common.c (vector_types_convertible_p): New function.
5643         * c-typeck.c (comptypes): Recurse on vector types.
5644         (convert_for_assignment): Use vector_types_convertible_p.
5645         (digest_init): Use vector_types_convertible_p to check
5646         validness of constant vector initializers; otherwise treat
5647         them as scalars.
5648         * tree.c (make_or_reuse_type): New.
5649         (build_common_tree_nodes): Use it.
5650         * cp/call.c (standard_conversion): Likewise.
5651         * cp/typeck.c (comptypes): Recurse on vector types.
5652         (convert_for_assignment): Use vector_types_convertible_p.
5653
5654 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5655
5656         * config/mips/mips.c (override_options): Default to no
5657         generation of branch-likely operations when tuning for
5658         CPUs where they tend to have a negative performance impact
5659         (e.g., SB-1).
5660
5661 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5662
5663         * expr.c (store_constructor_field): Don't call store_constructor
5664         if bitsize is not a multiple of a byte.
5665
5666 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5667
5668         * reload1.c (inherit_piecemeal_p): New function.
5669         (emit_reload_insns): When reloading a group of hard registers, use
5670         inherit_piecemeal_p to decide whether the values of individual hard
5671         registers can be inherited.
5672
5673 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5674
5675         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5676         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5677         * config/t-linux (LIB2ADDEHDEP): Likewise.
5678
5679 2004-05-04  Paul Brook  <paul@codesourcery.com>
5680
5681         * config/arm/crti.asm: Push an even number of registers.
5682         * config/arm/crtn.asm: And restore them.  Load via sp.
5683
5684 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5685
5686         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5687         Collect overhead information.
5688         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5689         parameter and pass it through.
5690         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5691         MEM_STAT_DECL parameter and pass it through.
5692         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5693         MEM_STAT_DECL parameter and pass it through.
5694
5695 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5696
5697         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5698
5699         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5700
5701         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5702         rs6000_hard_regno_nregs.
5703
5704 2004-05-03  Eric Christopher  <echristo@redhat.com>
5705
5706         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5707         prologue insn instead of setting up call.
5708         (s390_emit_epilogue): Ditto.
5709         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5710         (define_constants): Add numbers for above patterns.
5711
5712 2004-05-03  Eric Christopher  <echristo@redhat.com>
5713
5714         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5715         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5716         * config/s390/s390-protos.h: Prototype.
5717
5718 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5719
5720         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5721         assignment.
5722
5723 2004-05-03  Eric Christopher  <echristo@redhat.com>
5724
5725         * config/mips/mips.md: Fix branch length attribute definition.
5726
5727 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5728
5729         * config.gcc: Remove --enable-altivec support.
5730
5731         * config/rs6000/altivec-defs.h: Remove.
5732
5733 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5734
5735         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5736         * fixinc/fixincl.x: Regenerate.
5737
5738 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5739
5740         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5741         definition.
5742         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5743         float_truncate insn.
5744         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5745         (logb?f2): Reimplement expanders with float_truncate insn.
5746
5747 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5748
5749         PR 14718
5750         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5751         force_type_die for CONST_DECL.
5752
5753 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5754             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5755
5756         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5757         tm-dwarf2.h to tm_file.
5758         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5759         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5760         (ASM_DEBUG_SPEC): Delete.
5761
5762 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5763
5764         * optabs.h (enum optab_index): Add new OTI_expm1.
5765         (expm1_optab): Define corresponding macro.
5766         * optabs.c (init_optabs): Initialize expm1_optab.
5767         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5768         patterns.
5769         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5770         using expm1_optab.
5771         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5772         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5773
5774         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5775         to implement expm1, expm1f and expm1l built-ins as inline x87
5776         intrinsics.
5777
5778 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5779
5780         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5781         * config/frv/frv.md (*return_true, *return_false): New patterns.
5782
5783 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5784
5785         * rtl.h (PHI_NODE_P): Remove.
5786
5787 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5788
5789         PR middle-end/14988
5790         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5791         when passed -2 as 'align'.
5792         (put_var_into_stack): Use 'bool' as the type for the three local
5793         predicates.  Adjust calls to put_reg_into_stack.
5794         When passed a CONCAT, instruct put_reg_into_stack to use
5795         a consecutive stack slot for the second part.
5796         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5797         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5798         parameters.  Retrieve the register mode from 'reg'.
5799         When consecutive_p is true, instruct assign_stack_local_1 to use
5800         BITS_PER_UNIT alignment.
5801         (put_addressof_into_stack): Use 'bool' as the type for the two
5802         local predicates. Adjust call to put_reg_into_stack.
5803
5804 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5805
5806         * fold-const.c (fold_convert_const, fold): Add missing
5807         FIX_ROUND_EXPR case.
5808
5809 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5810
5811         * configure.ac (FLEX, BISON): Only use tools from the build tree
5812         if build equals host.
5813         * configure: Rebuilt.
5814
5815         * config/frv/frv-protos.h (frv_expand_epilogue,
5816         frv_expand_fdpic_call): Add bool argument.
5817         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5818         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5819         (frv_expand_epilogue): Use new argument to decide whether to emit
5820         return instruction or copy the return address to LR.
5821         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5822         sibcalls.
5823         (sibcall_operand): New.
5824         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5825         PLUS nor LABEL_REF.  Add sibcall_operand.
5826         * config/frv/frv.md (call, call_value): Pass false to
5827         frv_expand_fdpic_call.
5828         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5829         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5830         sibcall_value_internal, sibcall_value_fdpicdi): New.
5831         (return_unsigned_true, return_unsigned_false): New.
5832         (epilogue): Adjust call to frv_expand_epilogue.
5833         (sibcall_epilogue): New.
5834
5835         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5836         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5837         before redefining them.
5838
5839 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5840
5841         * builtins.c (fold_fixed_mathfn): New function.
5842         (fold_builtin_lround, fold_builtin): Use it.
5843
5844 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5845
5846         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5847         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5848
5849 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5850
5851         * config/cris/cris.h: Revert my "fix comment typos" patch.
5852
5853 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5854
5855         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5856
5857 2004-05-01  Falk Hueffner  <falk@debian.org>
5858
5859         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5860         builtin_insll): Disallow 0 as first input operand.
5861
5862 2004-05-01  Falk Hueffner  <falk@debian.org>
5863
5864         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5865
5866 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5867
5868         PR middle-end/15054
5869         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5870         on a TARGET_EXPR temp.
5871         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5872         TARGET_EXPR temp slots.
5873
5874 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5875
5876         * simplify-rtx.c (simplify_ternary_operation): When
5877         converting an IF_THEN_ELSE to a relational op, return
5878         correct mode.
5879
5880 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5881
5882         * builtins.c (fold_builtin_round): Fix comment typo.
5883         (fold_builtin_lround): New function.
5884         (fold_builtin): Use it.
5885
5886 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5887
5888         PR target/11608
5889         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5890         more like the one in config/dbxelf.h.
5891
5892 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5893
5894         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5895         and adjust definition accordingly.
5896         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5897         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5898         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5899         VECTOR_TYPE.
5900
5901 2004-04-30  Jason Merrill  <jason@redhat.com>
5902
5903         PR c++/14587
5904         * config/i386/winnt.c (associated_type): Look for attributes on
5905         the TYPE_MAIN_VARIANT of *this.
5906         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5907         apply the attributes to the variants.
5908
5909 2004-04-30  Paul Brook  <paul@codesourcery.com>
5910
5911         * config.gcc: Simplify arm --with-{cpu,tune} test.
5912         * config/arm/arm-cores.def: Document whitespace restrictions.
5913
5914 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5915
5916         PR other/1963
5917         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5918
5919 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5920             DJ Delorie  <dj@redhat.com>
5921
5922         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5923         (DWARF2_DEBUGGING_INFO): Define to enable.
5924         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5925         DWARF2.
5926         * configure.ac (Target-specific assembler checks)
5927         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5928         relocs.
5929         * configure: Regenerate.
5930         * config.in: Likewise.
5931
5932         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5933         (ASM_OUPUT_DWARF_OFFSET): Define.
5934
5935 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5936
5937         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5938         (s390_emit_call): New function prototype added.
5939         (s390_tls_get_offset): Function removed.
5940         * config/s390/s390.c (s390_function_ok_for_sibcall,
5941         s390_call_saved_register_used_p): New functions.
5942         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5943         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5944         (s390_emit_tls_call_insn): New function.
5945         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5946         emit_call_insn.
5947         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5948         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5949         added.
5950         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5951         register number used to hold the target address for sibcalls.
5952         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5953         New expanders.
5954         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5955         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5956         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5957         Expanders removed.
5958         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5959         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5960         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5961         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5962         new parameter.
5963
5964 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5965
5966         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5967         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5968         reg-stack.c, varasm.c, config/alpha/ev4.md,
5969         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5970         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5971         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5972         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5973         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5974         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5975         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5976         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5977         comment typos.
5978
5979 2004-04-30  Paul Brook  <paul@codesourcery.com>
5980
5981         * config.gcc: Default ep9312 to hard-float.
5982         * config/arm/arm-cores.def: Add ARCH field.
5983         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5984         (arm_arch_cirrus): New variable.
5985         (all_cores): Set and use arch.
5986         (all_architectures): Ditto.
5987         (arm_arch_name): New variable.
5988         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5989         Set and use arm_arch_cirrus.
5990         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5991         (enum processor_type): Update ARM_CORE define.
5992         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5993         (CPP_SPEC): Remove %(cpp_cpu_arch).
5994         (CPP_ARCH_DEFAULT_SPEC): Remove.
5995         (CPP_CPU_ARCH_SPEC): Remove.
5996         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5997         (FPUTYPE_DEFAULT): Don't define here.
5998
5999 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
6000
6001         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6002         updates too.
6003
6004 2004-04-30  Paul Brook  <paul@codesourcery.com>
6005
6006         * arm.c (arm_needs_doubleword_align): Use mode alignment.
6007
6008 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
6009
6010         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6011         vec_sububs.
6012         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6013         duplicates.
6014
6015 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6016
6017         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6018         atan2?f3 expanders.
6019
6020 2004-04-29  Nick Clifton  <nickc@redhat.com>
6021
6022         Bug 14093
6023         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6024         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6025         Delete static from definition.
6026         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6027
6028 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6029
6030         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6031         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6032         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6033         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6034
6035 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
6036
6037         * commom.opt (Wfatal-errors): Add it.
6038         * diagnostic.c (flag_fatal_errors): Define it.
6039         (diagnostic_action_after_output): Check for flag_fatal_errors.
6040         * flags.h (flag_fatal_errors): Declare it.
6041         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6042         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6043
6044 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
6045
6046         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6047         blocks which have kill flag set.
6048
6049 2004-04-29  Ben Elliston  <bje@au.ibm.com>
6050
6051         * configure.ac (--with-as): Abort if user-supplied assembler
6052         cannot be executed.
6053         (--with-ld): Likewise for the linker.
6054         * configure: Regenerate.
6055
6056 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6057
6058         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6059         isn't NULL before using it.
6060
6061 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
6062
6063         PR target/15189
6064         * config/mips/mips.md (load_df_low): Use default length.
6065         (load_df_high, store_df_high): Likewise.
6066
6067 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6068
6069         * config/mips/mips.md, config/mips/sb1.md,
6070         config/rs6000/rs6000.c: Fix comment typos.
6071
6072 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6073
6074         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6075         Fix comment typos.
6076
6077 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
6078
6079         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6080         (delete_if_ordinary): Use above macro.
6081         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6082         Update copyright.
6083         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6084
6085 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
6086
6087         * c-decl.c (get_parm_info): Use the correct tag keywords when
6088         warning about type declarations in prototypes.
6089
6090 2004-04-29  Paul Brook  <paul@codesourcery.com>
6091
6092         * config.gcc: Pull list of cores from arm-cores.def.
6093
6094 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6095
6096         * combine.c (combine_simplify_rtx): Adjust call to use
6097         simplify_relational_operation.  Do not use SELECT_CC_MODE
6098         when a comparison already has a MODE_CC mode.
6099
6100 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6101
6102         (simplify_set): simplify_relational_operation may now
6103         return another relational expression.
6104         * cse.c (fold_rtx): simplify_relational_operation now
6105         takes of computing the comparison mode.
6106         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6107         remove dead code.
6108         (do_compare_rtx_and_jump): Likewise.
6109         * integrate.c (subst_constants): simplify_relational_operation
6110         may now return another relational expression.
6111         * simplify-rtx.c (simplify_gen_relational): Move most code to
6112         the new simplify_relational_operation and
6113         simplify_relational_operation_1 functions.
6114         (simplify_relational_operation): Rewritten.
6115         (simplify_relational_operation_1): New function.
6116         (simplify_ternary_operation): simplify_relational_operation
6117         may now return another relational expression.
6118         (simplify_rtx): Remove unnecessary temp variable.
6119
6120 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6121
6122         * reg-stack.c (swap_to_top): New function.
6123         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6124         swap_to_top().
6125         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6126         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6127         UNSPEC_FSCALE_EXP.
6128
6129         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6130         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6131         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6132         x87's fscale insn.
6133         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6134         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6135         patterns.
6136
6137 2004-04-28  Serge Belyshev  <1319@bot.ru>
6138
6139         PR 14944
6140         * coverage.c (read_counts_file): Fix usage of warning () call.
6141         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6142
6143 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6144
6145         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6146         options with "-" in the option index.
6147         (SPARC Options): Likewise.
6148         (M32R/D Options): Likewise.
6149
6150 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6151
6152         * convert.c (convert_to_integer): Convert (long)round -> lround,
6153         etc.
6154
6155 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6156
6157         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6158         Return false if we do not have fp register.
6159         (addrs_ok_for_quad_peep): Rename to ...
6160         (mems_ok_for_quad_peep): this.
6161         Add check for volatile memory.
6162         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6163         Rename to ...
6164         (mems_ok_for_quad_peep): this.
6165         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6166         to peephole2's.
6167         (lfq_power2): New instruction.
6168         (stfq_power2): Likewise.
6169
6170 2004-04-28  Jan Hubicka  <jh@suse.cz>
6171
6172         PR c/15004
6173         * function.c (do_warn_unused_parameter): Break out form ...
6174         (expand_function_end): ... here; warn only when not using cgraphunit.
6175         * function.h (do_warn_unused_parameter): Declare.
6176         * cgraphunit.c: Include function.h.
6177         (cgraph_finalize_function): Do unused parameter warning.
6178         * Makefile.in (cgraphunit.o): Depend on function.h
6179
6180 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6181
6182         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6183         calling install-info on $(DESTDIR)$(infodir)/dir already being
6184         present.
6185
6186 2004-04-28  Paul Brook  <paul@codesourcery.com>
6187
6188         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6189
6190 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6191
6192         * gcse.c (find_moveable_store): Do not accept store insns with
6193         REG_EH_REGION note.
6194
6195 2004-04-28  Paul Brook  <paul@codesourcery.com>
6196
6197         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6198         * function.c (assign_temp): Ditto.
6199         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6200
6201 2004-04-28  Paul Brook  <paul@codesourcery.com>
6202
6203         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6204
6205 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6206
6207         * var-tracking.c (variable_different_p): Add a parameter
6208         compare_current_location, compare current location of variable parts
6209         if it is true.
6210         (dataflow_set_different_1): Pass compare_current_location == false.
6211         (dataflow_set_different_2): Pass compare_current_location == false.
6212         (emit_notes_for_differences_1): Pass compare_current_location == true.
6213
6214 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6215
6216         * config/s390/s390.md ("casesi"): Mark jump table access as
6217         non-trapping and unchanging.
6218
6219 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6220
6221         PR debug/14829
6222         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6223         callers.
6224         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6225         number for indexing hard_regno_nregs array.
6226
6227 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6228
6229         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6230         * config/darwin-crt2.c: Only have contents on __ppc__.
6231
6232 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6233
6234         * config/xtensa/xtensa.c (call_insn_operand): Check
6235         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6236         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6237         * config/xtensa/xtensa.md (call, call_value): Likewise.
6238
6239 2004-04-27  Wu Yongwei  <adah@sh163.net>
6240
6241         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6242         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6243         (__gthread_mutex_init_function): Replace CreateMutex with
6244         initialization of custom mutex using CreateSemaphore.
6245         (__gthread_mutex_lock): Use InterlockedIncrement.
6246         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6247         (__gthread_mutex_unlock): Use InterlockedDecrement and
6248         ReleaseSemaphore to unlock
6249         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6250         __gthread_mutex_lock, __gthread_mutex_trylock,
6251         __gthread_mutex_unlock): Adjust to match inline versions in
6252         gthr-win32.h.
6253
6254 2004-04-27  Paul Brook  <paul@codesourcery.com>
6255
6256         * config/arm/arm.c (arm_promote_prototypes): New function.
6257         (TARGET_PROMOTE_PROTOTYPES): Use it.
6258
6259 2004-04-27  Paul Brook  <paul@codesourcery.com>
6260
6261         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6262
6263 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6264
6265         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6266         correctly output .pdesc directive before .end.
6267
6268 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6269
6270         Bug 14927
6271         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6272         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6273
6274 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6275
6276         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6277         * config/pa/pa-hpux10.h: Likewise.
6278         * config/pa/pa-hpux11.h: Likewise.
6279
6280 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6281
6282         * doc/invoke.texi (Overall Options): Document default for -o
6283         for PCH files.
6284
6285 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6286
6287         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6288         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6289         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6290
6291 2004-04-26  Paul Brook  <paul@codesourcery.com>
6292
6293         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6294
6295 2004-04-26  Paul Brook  <paul@codesourcery.com>
6296
6297         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6298
6299 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6300
6301         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6302         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6303         X % -1 as 0.
6304
6305 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6306
6307         PR bootstrap/15141
6308         * except.c (connect_post_landing_pads): Delete insns after the
6309         barrier when generating a unwind_resume_libfunc call.
6310
6311 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6312
6313         PR/c++ 15119
6314         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6315         for TARGET_EXPR.
6316
6317 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6318
6319         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6320         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6321         inhibit_libc is defined.
6322
6323 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6324
6325         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6326         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6327         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6328         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6329         (mips_adjust_cost): Move later in file, next to other sched hooks.
6330         (mips_macc_chains_last_hilo): New variable.
6331         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6332         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6333         * config/mips/mips.md (may_clobber_hilo): New attribute.
6334
6335 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6336             Bruce Korb  <bkorb@gnu.org>
6337
6338         * fixinc/inclhack.def (aix_syswait_2): New fix.
6339         * fixinc/fixincl.x: Regenerate.
6340         * fixinc/tests/base/sys/wait.h: Update for new test.
6341
6342 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6343
6344         PR target/14960
6345         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6346         to non_fixed_size, and leave out fixed_size from the sum.
6347         (generate_set_vrsave): Correct clobbers.
6348         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6349         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6350         (rs6000_libcall_value): Likewise.
6351         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6352         (FUNCTION_ARG_REGNO_P): Likewise.
6353
6354 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6355
6356         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6357         is a CONST_INT.
6358         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6359         with NARROW_OP1 instead of OP1.
6360
6361 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6362
6363         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6364         and __s390x__ hosts.
6365
6366 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6367
6368         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6369         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6370         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6371         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6372         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6373         * builtins.c (expand_builtin_fork_or_exec): New.
6374         (expand_builtin): Call it.
6375         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6376         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6377         * c-common.c (PID_TYPE): New macro.
6378         (c_common_nodes_and_builtins): Initialize pid_type_node.
6379         * calls.c (special_function_p): Do not handle fork and exec.
6380         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6381         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6382         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6383         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6384         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6385         * tree.h (enum tree_index): Add TI_PID_TYPE.
6386         (pid_type_node): New macro.
6387         (ECF_FORK_OR_EXEC): Removed.
6388
6389 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6390
6391         PR optimization/13985
6392         * cfgloopmanip.c (fix_loop_placements): New prototype.
6393         Call fix_bb_placements on the preheader of loops that have
6394         been reparented.
6395         (remove_path): Adjust call to fix_loop_placements.
6396
6397 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6398
6399         * config/darwin7.h: New file.
6400         * config.gcc (*-*-darwin*): Add darwin7.h if the
6401         version is greater than 6.
6402         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6403         (MATH_LIBRARY): Wrap in ifdefs.
6404
6405 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6406
6407         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6408         loading iWMMXt registers with a frame pointer.  Use post-increment
6409         without a frame pointer.
6410         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6411
6412 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6413
6414         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6415         mode" rather than "-funit-at-a-time" since -O2 enables it
6416         without requiring -f* options.  Refer to -fprofile-generate and
6417         -fprofile-use correctly.  Move -funit-at-a-time among options
6418         enabled by -O.  Add information about unit-at-a-time caveats.
6419
6420 2004-04-22  Per Bothner  <per@bothner.com>
6421
6422         * line-map.h (struct line_maps):  New field highest_line.
6423         (linemap_position_for_column):  Make non-inline function.
6424         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6425         * line-map.c (linemap_init):  Clear highest_line field.
6426         (linemap_add):  Set highest_line field.
6427         (linemap_line_start):  Minor optimization - use highest_line field.
6428         Reduce maximum column hint to 10000.  Update highest_line field.
6429         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6430         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6431         line_table->highest_line.
6432         (saved_line):  Remove unused field.
6433         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6434         Use  line_table's highest_line field instead of cpp_reader's line.
6435         * cpplib.c (start_directive):  Likewise use highest_line field.
6436         (do_line, do_linemarker):  Likewise just use newest map.
6437         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6438         * cpperror.c (cpp_error):  Likewise use highest_line field.
6439         * cppfiles.c (open_file_failed:  Likewise.
6440         (cpp_make_system_header):  Likewise use newest map and highest_line.
6441         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6442         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6443         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6444         _cpp_lex_direct):  Likewise use highest_line.
6445         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6446         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6447         and use newest map.
6448         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6449         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6450         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6451
6452 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6453
6454         PR bootstrap/14992
6455         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6456         * config/linux.h (USE_LD_AS_NEEDED): Define.
6457         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6458         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6459         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6460         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6461         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6462         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6463         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6464
6465 2004-04-22  Per Bothner  <per@bothner.com>
6466
6467         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6468         Fixes PR preprocessor/15067.
6469
6470 2004-04-23  Andreas Schwab  <schwab@suse.de>
6471
6472         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6473         avoid aliasing warning.
6474
6475 2004-04-22  Jan Hubicka  <jh@suse.cz>
6476             Mostafa Hagog <mustafa@il.ibm.com>
6477
6478       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6479       * cfgloopanal.c (expected_loop_iterations): Change the return value
6480
6481 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6482
6483         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6484         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6485         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6486         traces.
6487
6488 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6489
6490         Revert
6491         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6492
6493                 * var-tracking.c (variable_part_different_p): Variable parts
6494                 differ when the most recent locations differ.
6495
6496 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6497
6498         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6499         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6500         (embedded_pic_offset): Delete.
6501         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6502         MASK_* constants.
6503         (TARGET_EMBEDDED_PIC): Delete.
6504         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6505         (ASM_SPEC): Remove -membedded-pic.
6506         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6507         (ASM_OUTPUT_CASE_LABEL): Likewise.
6508         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6509         * config/mips/windiss.h (ASM_SPEC): Likewise.
6510         * config/mips/mips.c (struct machine_function): Remove
6511         embedded_pic_fnaddr_rtx.
6512         (TARGET_ENCODE_SECTION_INFO): Remove override.
6513         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6514         (override_options): Remove -membedded-pic handling.
6515         (print_operand): Remove handling of '%S'.
6516         (mips_select_section: Remove -membedded-pic handling.
6517         (mips_encode_section_info): Delete.
6518         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6519         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6520         -membedded-pic handling.
6521         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6522
6523 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6524
6525         * var-tracking.c (frame_base_decl): Remove useless GTY.
6526
6527 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6528
6529         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6530         user wants altivec and e500 instructions.
6531
6532 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6533
6534         PR target/14813
6535         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6536         in .init_array section to ...
6537         * config/ia64/crtbegin.asm: Here.
6538
6539         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6540         and hidden if HAVE_INITFINI_ARRAY is defined.
6541
6542 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6543
6544         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6545         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6546         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6547         (fp_register_operand, lo_operand): New.
6548         (mips_rtx_costs): Add TUNE_SB1 support.
6549         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6550         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6551         (mips_multipass_dfa_lookahead): New.
6552         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6553         TUNE_SB1): New.
6554         (TARGET_SWITCHES): Add -mfp-exceptions support.
6555         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6556         (BRANCH_COST): Fix whitespace.
6557         * config/mips/mips.md: Include sb1.md.
6558         * config/mips/sb1.md: New file.
6559         * doc/invoke.texi: Document -mfp-exceptions.
6560
6561         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6562         comment.
6563         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6564         (fixincl.o-warn): Delete.
6565
6566 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6567
6568         * config/rs6000/rs6000 (print_operand) ['z']:
6569         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6570
6571 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6572
6573         * config.gcc: Support --with-arch=iwmmxt for ARM.
6574
6575 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6576
6577         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6578         in two more places; remove unneeded force_reg
6579
6580 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6581
6582         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6583         for TARGET_MACHO.
6584         (print_operand): For TARGET_MACHO check to see if we need a stub
6585         and output one if we need it.
6586
6587         PR debug/15033
6588         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6589         rtl.
6590
6591 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6592
6593         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6594         (vall_value_gp): Likewise.
6595
6596 2004-04-20  DJ Delorie  <dj@redhat.com>
6597
6598         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6599         variables stored in word registers, then in memory.
6600
6601 2004-04-20  Eric Christopher  <echristo@redhat.com>
6602
6603         * cp/parser.c (cp_parser_declaration): Move translate
6604         up before tokens are lexed.
6605
6606 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6607
6608         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6609         (asin_optab, acos_optab): Define corresponding macros.
6610         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6611         * genopinit.c (optabs): Implement asin_optab and acos_optab
6612         using asin?f2 and acos?f2 patterns.
6613         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6614         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6615         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6616         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6617
6618         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6619         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6620         acos, acosf and acosl built-ins as inline x87 intrinsics.
6621
6622 2004-04-20  Paul Brook  <paul@codesourcery.com>
6623
6624         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6625
6626 2004-04-20  Paul Brook  <paul@codesourcery.com>
6627
6628         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6629
6630 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6631
6632         Revert part of 2004-04-17 change that moved -frename-registers
6633         to -O1.  -frename-registers is buggy.
6634
6635         * toplev.c (flag_rename_registers): Initialize to 0.
6636         * doc/invoke.texi (Optimize options): Move -frename-registers
6637         to "Not triggered by any -O level" section.  Adjust commentary
6638         accordingly.
6639
6640 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6641
6642         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6643
6644 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6645
6646         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6647         for mflo and mfhi instructions.
6648         (mips_output_move): Remove mflo and mfhi handling.
6649         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6650         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6651         Likewise various define_peephole2s.
6652         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6653         alternatives.
6654         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6655         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6656         (mfhilo_di, mfhilo_si): New patterns.
6657
6658 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6659
6660         * function.c (assign_parms): Force
6661         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6662
6663 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6664
6665         * var-tracking.c (variable_part_different_p): Variable parts differ
6666         when the most recent locations differ.
6667
6668 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6669
6670         * rtl.h (reg_set_last): Delete declaration.
6671         * rtlanal.c (reg_set_last): Delete.
6672
6673 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6674
6675         * fold-const.c (fold_convert): Make function extern/public.
6676         * tree.h (fold_convert): Prototype here.
6677         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6678         expand_builtin_strrchr, expand_builtin_strpbrk,
6679         expand_builtin_mempcpy, expand_builtin_bcopy,
6680         expand_builtin_bzero, expand_builtin_memcmp,
6681         expand_builtin_strcmp, expand_builtin_strncmp,
6682         stabilize_va_list, expand_builtin_sprintf,
6683         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6684         fold_builtin_exponent, fold_builtin_mempcpy,
6685         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6686         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6687         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6688
6689 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6690
6691         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6692         (move_from_CR_gt_bit): New.
6693         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6694         E500.
6695         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6696         E500.
6697
6698         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6699         (tstsfeq_gpr): Same.
6700         (cmpsfgt_gpr): Same.
6701         (tstsfgt_gpr): Same.
6702         (cmpsflt_gpr): Same.
6703         (tstsflt_gpr): Same.
6704         (e500_cceq_ior_compare): New.
6705         (e500_flip_gt_bit): New.
6706
6707         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6708         (print_operand): Add 'c' and 'D'.
6709         (rs6000_generate_compare): Rewrite to generate correct rtl.
6710         (rs6000_emit_sCOND): Handle E500.
6711         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6712         (output_e500_flip_gt_bit): New.
6713
6714         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6715         Protoize.
6716
6717 2004-04-19  Eric Christopher  <echristo@redhat.com>
6718
6719         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6720
6721 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6722
6723         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6724         fix information.
6725
6726 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6727
6728         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6729         download URL.
6730
6731 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6732
6733         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6734         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6735
6736 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6737
6738         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6739         (fold_builtin): Update caller to match.
6740
6741         PR bootstrap/15009
6742         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6743
6744         PR bootstrap/14999
6745         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6746
6747 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6748
6749         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6750
6751         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6752         (expand_mult_highpart_optab): Likewise.
6753         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6754
6755 2004-04-19  Paul Brook  <paul@codesourcery.com>
6756
6757         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6758         floatunssisf2, floatunssidf2): New patterns.
6759
6760 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6761
6762         PR other/14918
6763         * doc/invoke.texi (-fprofile-generate): Document requirement to
6764         use -fprofile-generate when linking.
6765
6766         * doc/extend.texi (Strong Using): Warn users against using this
6767         feature.
6768
6769 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6770
6771         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6772         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6773         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6774         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6775         constant.  Propogate change throughout file.
6776         (struct machine_function): Remove insns_len.
6777         (mips_string_length, mips16_strings, string_constants): Delete.
6778         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6779         when generating mips16 code.  Remove special mips16 treatment of
6780         string constants.
6781         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6782         to have the form LABEL+CONSTANT.
6783         (mips_symbolic_address_p): Fix comment.
6784         (m16_usym8_4, m16_usym5_4): Delete.
6785         (mips_output_function_epilogue): Remove mips16 string handling.
6786         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6787         (mips_select_section, mips_encode_section_info): Remove mips16
6788         string handling.
6789         (struct mips16_constant_pool): New.
6790         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6791         sorted into order of ascending mode size.  Keep track of the highest
6792         possible start address, taking padding and the masking of the base PC
6793         value into account.
6794         (dump_constants_1): New function, split out from dump_constants.
6795         Handle vector constants.  Use gen_consttable_{int,float} rather than
6796         separate functions for each mode.
6797         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6798         rather than separate functions for each alignment.
6799         (mips_find_symbol): Delete.
6800         (mips16_insn_length): New function, split out from
6801         mips16_lay_out_constants.
6802         (mips16_rewrite_pool_refs): New function.
6803         (mips16_lay_out_constants): Rework. Remove string handling.
6804         Always create an inline constant pool.
6805         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6806         (UNSPEC_ALIGN): New constants.
6807         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6808         (UNSPEC_ALIGN_[248]): Delete.
6809         (consttable_int, consttable_float, align): New patterns.
6810         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6811
6812 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6813
6814         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6815         __unn_args_eq.
6816
6817 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6818
6819         PR target/14715
6820         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6821         with STARTING_FRAME_OFFSET.
6822
6823 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6824
6825         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6826         * config/mips/mips.c (macc_msac_operand): New function.
6827         * config/mips/mips.md (*msac): Move after *macc.
6828         (*msac2): New.  Generalize macc-related peepholes so that they apply
6829         to msac too.
6830
6831 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6832
6833         * opts.c (decode_options): Do not enable flag_rename_registers
6834         and flag_web at -O3.
6835         * toplev.c (flag_rename_registers): Initialize
6836         flag_rename_registers and flag_web to
6837         AUTODETECT_FLAG_VAR_TRACKING.
6838         (default_debug_hooks): New global.
6839         (process_options): Initialize default_debug_hooks.  Warn if
6840         -fvar-tracking specified but not supported by the current
6841         debug format.  Do not run var tracking at -O0 or if not
6842         supported by the current debug format, even if
6843         -fvar-tracking was given.  If -fno-rename-registers
6844         is not specified, always run register renaming if var
6845         tracking is supported by the default debugging information
6846         format for the target, and we are at -O1 or higher; similarly
6847         for -fweb, but only at -O2 or higher.
6848         * doc/invoke.texi (Optimize Options): Document this.
6849
6850 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6851
6852         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6853         * configure: Regenerate.
6854
6855 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6856
6857         * gcc.c (used_arg): Check whether an option has been removed.
6858
6859 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6860
6861         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6862         debugging on Solaris 7 and up.
6863
6864 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6865
6866         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6867         IRIX 5 port.
6868         Remove -save-temps workaround, handled automatically.
6869         Require GNU binutils 2.15 for debugging.
6870         Remove SGI make warnings since GNU make is now required.
6871         (Specific, mips-sgi-irix6): Some markup fixes.
6872         Describe MIPSpro C problems and workarounds.
6873         Mention working O32 ABI support.
6874         Recommend GNU as 2.15 for O32 with debugging.
6875         Remove description of fixed structure pass/return bug.
6876
6877 2004-04-16  DJ Delorie  <dj@redhat.com>
6878
6879         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6880         TYPE_FIELDS.
6881         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6882
6883 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6884
6885         * pa.md: Remove unnecessary declarations for asm_out_file.
6886
6887         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6888         SAR register.  Fix comment.
6889         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6890         (%cr11).
6891
6892         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6893
6894 2004-04-16  Nick Clifton  <nickc@redhat.com>
6895
6896         * config/arm/arm.c (arm_override_options): Revert previous patch.
6897         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6898         be safely built.
6899
6900 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6901
6902         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6903         bug.
6904         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6905         TARGET_DEFAULT): Changed. Ditto.
6906         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6907         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6908         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6909         (TARGET_ENDIAN_DEFAULT): Added.
6910
6911 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6912
6913         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6914         ATTR_CONST_NOTHROW_LIST.
6915
6916 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6917
6918         PR/middle-end 14915
6919         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6920         BITS_BIG_ENDIAN.
6921
6922 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6923
6924         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6925
6926 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6927
6928         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6929
6930 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6931
6932         * libada-mk.in: New file.
6933         * configure.ac: Create libada-mk from libada-mk.in.
6934         * configure: Regenerate.
6935
6936 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6937
6938         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6939         (logb_optab, ilogb_optab): Define corresponding macros.
6940         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6941         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6942         using logb?f2 and ilogb?i2 patterns.
6943         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6944         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6945         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6946         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6947
6948         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6949         and UNSPEC_XTRACT_EXP.
6950
6951         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6952         patterns to implement fxtract x87 instruction.
6953         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6954         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6955         intrinsics.
6956         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6957         x87's fxtract insn.
6958
6959 2004-04-14  Eric Christopher  <echristo@redhat.com>
6960
6961         * config/mips/t-elf: Enable multilibs by default.
6962
6963 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6964
6965         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6966         previous fix to check HAVE_return at runtime too.
6967
6968 2004-04-14  Nick Clifton  <nickc@redhat.com>
6969
6970         * config/arm/arm.c (arm_override_options): If the user has not
6971         specified an ABI, then default to AAPCS for the iWMMXt processor.
6972         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6973         * config/arm/t-xscale-coff: Likewise.
6974
6975 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6976
6977         * builtins.c (fold_builtin_isdigit): New.
6978         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6979         * defaults.h: Add TARGET_DIGIT0 and sort.
6980         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6981
6982 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6983
6984         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6985         `mathfn_built_in' to determine the new builtin.
6986         * fold-const.c (fold): Likewise.
6987
6988 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6989
6990         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6991         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6992         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6993         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6994         (ASM_SPEC): Update accordingly.
6995         * config/mips/mips.c: Update after above renaming.
6996         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6997         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6998
6999 2004-04-13  James E Wilson  <wilson@specifixinc.com>
7000
7001         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7002         increment errorcount and return false instead of true.
7003
7004 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
7005
7006         * optabs.c (expand_twoval_unop): Reorder function arguments.
7007         * builtins.c (expand_builtin_mathfn_3): Update calls to
7008         expand_twoval_unop.
7009
7010         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7011         and UNSPEC_TAN_TAN. Add missing comment.
7012
7013         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7014         patterns to implement fptan x87 instruction.
7015         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7016         and tanl built-ins as inline x87 intrinsics. Define corresponding
7017         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7018         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7019         x87's fptan insn.
7020
7021 2004-03-13  Richard Henderson  <rth@redhat.com>
7022
7023         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7024         for LABEL_REFs.
7025
7026         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7027         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7028         * doc/invoke.texi: Update to match.
7029
7030         * varasm.c (unlikely_text_section): Use assemble_align instead of
7031         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
7032         correct alignment argument.
7033
7034 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7035
7036         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7037         after setting reg_last_reload_reg for optional output reloads.
7038
7039 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7040
7041         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7042         Definition of these two macros are corrected by adding
7043         matchine right paren.
7044
7045 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
7046
7047         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7048
7049 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7050
7051         * config/i386/i386.c (output_387_reg_move): New function.
7052         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7053         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7054         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7055         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7056         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7057
7058 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7059
7060         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7061         TYPE_DECL.
7062         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7063         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7064         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7065         Use skip_simple_arithmetic to find SAVE_EXPR.
7066         (force_type_save_exprs, force_type_save_exprs_1): New functions.
7067         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7068         Properly chain multiple pointers.
7069         (copy_tree_r): Copy a TYPE_DECL.
7070         * tree.c (variably_modified_type_p): Add some missing tests and
7071         make some other minor changes.
7072         * tree.h (force_type_save_exprs): New declaration.
7073
7074 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7075
7076         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7077         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
7078         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
7079         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
7080         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
7081         x%-1 into 0 (or x&0 if x has side-effects).
7082
7083 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7084
7085         * config/rs6000/rs6000.md: Document why a pattern is not
7086         available.
7087
7088         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7089         of floats on the E500.
7090         (branch_positive_comparison_operator): Do not allow NE even on the
7091         E500.
7092
7093 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7094
7095         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7096         in_text_unlikely_section to in_unlikely_text_section.
7097
7098 2004-04-11  Roger Sayle  <roger@eyesopen.com>
7099
7100         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
7101         calling convention to allow a NULL_TREE to be returned.  Factor
7102         sanity checks from callers, return NULL_TREE when appropriate.
7103         (fold): Handle COMPOUND_EXPR operands of binary expressions
7104         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
7105         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
7106         calls to fold_binary_op_with_conditional_arg.
7107
7108 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7109
7110         * config/mips/iris5.h (current_section_flags):  Add
7111         in_unlikely_executed_text and default case.
7112
7113 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7114
7115         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7116         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7117         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7118         HAVE_return and place it around the place where it is needed.
7119
7120 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7121
7122         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7123         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7124         and NORMAL_TEXT_SECTION_NAME.
7125         (unlikely_text_section): Check targetm.have_named_sections
7126         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7127         instead of SECTION_FORMAT_STRING.
7128         * config/mips/iris5.h (current_section_name): Add
7129         in_unlikely_executed_text case and move the abort into the switch.
7130         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7131         (NORMAL_TEXT_SECTION_NAME): Remove.
7132         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7133         (SECTION_FORMAT_STRING): Remove.
7134         * defaults.h (SECTION_FORMAT_STRING): Remove.
7135         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7136         (SECTION_FORMAT_STRING): Remove.
7137
7138 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7139
7140         * c-typeck.c (common_type): Prefer long long to long when same
7141         precision.
7142
7143 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7144
7145         PR 14887
7146         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7147         mode argument.
7148         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7149         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7150
7151 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7152
7153         * simplify-rtx.c (mode_signbit_p): New function to check whether
7154         an RTX is an immediate constant that represents the most significant
7155         bit of a given machine mode.
7156         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7157         C is the sign bit.
7158         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7159         when C2 is the sign bit.
7160         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7161         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7162         sign bit.
7163
7164 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7165
7166         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7167         TYPE_MODE.
7168
7169 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7170
7171         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7172         of TREE_READONLY for types.
7173
7174 2004-04-09  Caroline Tice  <ctice@apple.com>
7175
7176         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7177         (struct basic_block_def):  Add new field, partition.
7178         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7179         definitions.
7180         (partition_hot_cold_basic_blocks): Add extern function
7181         declaration.
7182         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7183         include statements.
7184         (N_ROUNDS): Increase the maximum number of rounds by 1.
7185         (branch_threshold): Add array value for new round.
7186         (exec_threshold): Add array value for new round.
7187         (push_to_next_round_p): New function.
7188         (add_unlikely_executed_notes): New function.
7189         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7190         (mark_bb_for_unlikely_executed_section): New function.
7191         (add_labels_and_missing_jumps): New function.
7192         (add_reg_crossing_jump_notes): New function.
7193         (fix_up_fall_thru_edges): New function.
7194         (find_jump_block): New function.
7195         (fix_crossing_conditional_branches): New function.
7196         (fix_crossing_unconditional_branches): New function.
7197         (fix_edges_for_rarely_executed_code): New function.
7198         (partition_hot_cold_basic_blocks): New function.
7199         (find_traces):  Add an extra round for partitioning hot/cold
7200         basic blocks.
7201         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7202         and only cold blocks, into the last (extra) round of collecting traces.
7203         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7204         over crossing edges.
7205         (bb_to_key):  Add code to correctly identify cold blocks when
7206         doing partitioning.
7207         (connect_traces): Modify to connect all the non-cold traces first, then
7208         go back and connect up all the cold traces.
7209         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7210         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7211         entry and exit blocks.
7212         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7213         if we are doing hot/cold partitioning.
7214         * cfgcleanup.c (cfglayout.h): Add new include statement.
7215         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7216         that cross section boundaries.
7217         (try_forward_edges): Likewise.
7218         (merge_blocks_move_predecessor_nojumps): Likewise.
7219         (merge_blocks_move_successor_nojumps): Likewise.
7220         (merge_blocks_move): Likewise.
7221         (try_crossjump_to_edge): Modify to not attempt after we have done
7222         the block partitioning.
7223         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7224         cross section boundaries.
7225         (try_optimize_cfg): Likewise.
7226         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7227         jumps that cross section boundaries.
7228         * cfglayout.c (flags.h): Add new include statement.
7229         (update_unlikely_executed_notes):  New function.
7230         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7231         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7232         updated appropriately.
7233         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7234         introduced by this optimization.
7235         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7236         extern function declaration.
7237         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7238         list of notes that can be deleted.
7239         (create_basic_block_structure):  Add initialization for partition field.
7240         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7241         section boundaries.
7242         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7243         cross section boundaries.
7244         (commit_one_edge_insertion): Add code so newly created basic block
7245         ends up in correct (hot or cold) section.  Modify to disallow
7246         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7247         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7248         crosses section boundaries.
7249         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7250         cross section boundaries.
7251         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7252         ends up in correct section, with correct notes attached.
7253         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7254         optimization.
7255         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7256         the end of functions are written into the correct (hot or cold)
7257         section.
7258         (dbx_source_file): Add code so writing debug file information
7259         doesn't incorrectly change sections.
7260         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7261         in partitioning hot/cold basic blocks into separate sections.
7262         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7263         section partitioning.
7264         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7265         conditional branches can span all of memory.
7266         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7267         unconditional branches can span all of memory.
7268         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7269         (final_scan_insn):  Add code to check for NOTE instruction indicating
7270         whether basic block belongs in hot or cold section, and to make sure
7271         the current basic block is being written to the appropriate section.
7272         Also added code to ensure that jump table basic blocks end up in the
7273         correct section.
7274         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7275         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7276         one of the branches has a jump that crosses between sections.
7277         (find_if_case_2): Likewise.
7278         (ifcvt): Modify to not attempt to mark loop exit edges after
7279         hot/cold partitioning has occurred.
7280         * opts.c (decode_options): Code to handle new flag,
7281         flag_reorder_blocks_and_partition; also to turn it off if
7282         flag_exceptions is on.
7283         (common_handle_option): Code to handle new flag,
7284         flag_reorder_blocks_and_partition.
7285         * output.h (unlikely_text_section): New extern function declaration.
7286         (in_unlikely_text_section): New extern function declaration.
7287         * passes.c (rest_of_handle_stack_regs):  Add
7288         flag_reorder_blocks_and_partition as an 'or' condition for calling
7289         reorder_basic_blocks.
7290         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7291         as an 'or' condition for calling reorder_basic_blocks.
7292         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7293         * print-rtl.c (print_rtx): Add code for handling new note,
7294         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7295         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7296         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7297         cross between section boundaries.
7298         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7299         indicating the basic block containing it belongs in the cold section.
7300         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7301         between hot and cold sections.
7302         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7303         initialize this flag, and to tie it to the command-line option
7304         freorder-blocks-and-partition.
7305         * varasm.c (cfglayout.h):  Add new include statement.
7306         (unlikely_section_label_printed):  New global variable, used for
7307         determining when to output section name labels for cold sections.
7308         (in_section):  Add in_unlikely_executed_text to enum data structure.
7309         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7310         NORMAL_TEXT_SECTION_NAME macros.
7311         (unlikely_text_section):  New function.
7312         (in_unlikely_text_section):  New function.
7313         (function_section):  Add code to make sure beginning of function is
7314         written into correct section (hot or cold).
7315         (assemble_start_function):  Add code to make sure stuff is written to
7316         the correct section.
7317         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7318         to an if statement that was checking 'in_text_section'.
7319         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7320         condition to an if statement that was checking 'in_text_section'.
7321         (default_section_type_flags_1):  Add check: if in cold section
7322         flags = SECTION_CODE.
7323         * config/darwin.c (darwin_asm_named_section):  Modify to use
7324         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7325         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7326         specifically for the i386.
7327         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7328         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7329         text string to something more informative.
7330         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7331         (SECTION_FORMAT_STRING):  Add new definition.
7332         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7333         '!in_unlikely_text_section' as an 'and' condition to an if statement
7334         that was already checking '!in_text_section'.
7335         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7336         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7337         sure these are properly defined for linux on ppc.
7338         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7339         for this new flag.
7340         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7341         reg_note.
7342         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7343         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7344         these new macros.
7345
7346 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7347
7348         * function.c (gen_mem_addressof): When changing the RTX from a REG
7349         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7350
7351 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7352
7353         PR target/14888
7354         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7355         truncxfdf2_noop): Provide dummy "fmov" implementations.
7356
7357 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7358
7359         * gcc.c (default_compilers): Add missing initializers.
7360
7361         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7362         Return 1 if file was successfully mapped.
7363
7364 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7365
7366         PR pch/13419
7367         PR pch/14137
7368         Radar #: 3315288
7369         * doc/invoke.texi (Precompiled Headers): Suggest -o
7370         to put an output file in a particular place.  Be more detailed
7371         about which options affect PCH validity and which options
7372         might not work.
7373         * c-pch.c (pch_matching): New.
7374         (MATCH_SIZE): New.
7375         (struct c_pch_validity): New field 'match'.
7376         (pch_init): Handle pch_matching.
7377         (c_common_valid_pch): Check pch_matching.
7378
7379         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7380
7381 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7382
7383         * doc/invoke.texi (Precompiled Headers): Warn about known
7384         problems.
7385
7386 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7387
7388         PR c++/14808
7389         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7390         to 1 if ASM_OUTPUT_DEF is defined.
7391         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7392         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7393         Set to non-zero iff not a one_only decl.
7394
7395 2004-04-08  Paul Brook  <paul@codesourcery.com>
7396
7397         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7398
7399 2004-04-08  Paul Brook  <paul@codesourcery.com>
7400
7401         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7402         PROMOTE_FOR_CALL_ONLY.
7403         * config/arm/arm-protos.h (arm_function_value): Declare.
7404         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7405         (TARGET_PROMOTE_PROTOTYPES): Return false.
7406         (arm_function_value): New function.
7407         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7408         (FUNCTION_VALUE): Call arm_function_value.
7409         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7410         (PROMOTE_FUNCTION_MODE): ... to this.
7411         (PROMOTE_FOR_CALL_ONLY): Remove.
7412         * config/mmix/mmix.h: Likewise.
7413         * config/s390/s390.h: Likewise.
7414         * config/sparc/sparc.h: Likewise.
7415         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7416         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7417         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7418         (PROMOTE_FOR_CALL_ONLY): Remove.
7419
7420 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7421
7422         PR ada/14538
7423         * ada/5rosinte.adb: Remove fake mprotect() body.
7424         * ada/5rosinte.ads: Add SA_SIGINFO.
7425         * ada/5rtpopsp.adb: Rewrite to use new interface.
7426         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7427         is tested before more complex ones which mix UNIX and embedded
7428         systems in the conditional.
7429
7430 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7431
7432         PR ada/14665
7433         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7434         filenames which end in .exe or have versioning suffixes like VMS.
7435
7436 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7437
7438         PR target/10129
7439         * config/darwin.c (darwin_encode_section_info): When the decl has
7440         a DECL_INITIAL, it is only defined also when it is not a common.
7441
7442 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7443
7444         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7445         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7446
7447 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7448
7449         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7450         global register variables.
7451
7452 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7453
7454         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7455         rpc_xdr_lvalue_cast_b): New fixes.
7456         * fixinc/fixincl.x: Regenerate.
7457         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7458
7459 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7460
7461         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7462         to power4 and power5 entries.
7463
7464 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7465
7466         * c-common.h (pending_lang_change): Mark for PCH.
7467
7468 2004-04-07  Caroline Tice  <ctice@apple.com>
7469
7470         * gcc.c (main): Move 'break' in main loops (on an error)
7471         to wait until error processing has occurred.
7472
7473 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7474
7475         * config.gcc: Stop changing enable_threads midstream.
7476         Replace uses of enable_threads_flag with enable_threads.
7477         * configure.ac: Replace uses of enable_threads_flag with
7478         enable_threads.  Improve autoconf quotation in one place.
7479         * configure: Regenerate.
7480
7481 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7482
7483         * builtins.c: Implement support for sincos function.
7484         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7485         BUILT_IN_COS{,F,L}.
7486         (expand_builtin_mathfn_3): New function.
7487         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7488         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7489         flag_unsafe_math_optimization is set.
7490
7491         * optabs.h (enum optab_index): Add new OTI_sincos.
7492         (sincos_optab): Define corresponding macro.
7493
7494         * optabs.c (init_optabs): Initialize sincos_optab.
7495         (expand_twoval_unop): New function.
7496
7497         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7498         patterns.
7499
7500         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7501         and UNSPEC_SINCOS_SIN.
7502
7503         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7504         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7505         built-ins as inline x87 intrinsics. Define splits for
7506         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7507         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7508         sincos patterns.
7509         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7510         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7511
7512         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7513         x87's fsincos insn.
7514
7515 2004-04-06  Devang Patel  <dpatel@apple.com>
7516
7517         PR 14467
7518         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7519
7520 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7521
7522         * doc/install.texi: Update HP-UX 11 installation procedure.
7523
7524 2004-04-06  Paul Brook  <paul@codesourcery.com>
7525
7526         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7527
7528 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7529
7530         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7531         when the TLS address is generated by a function call.
7532         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7533         (tls_local_dynamic): Likewise.
7534
7535 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7536
7537         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7538         and TYPE_VOLATILE.
7539
7540 2004-04-05  Caroline Tice  <ctice@apple.com>
7541
7542         * gcc.c (combine_flag): New global variable, for new driver option.
7543         (struct compiler): Add two new fields, to be used when
7544         combining multiple input files in a single pass (IMA).
7545         (default_compilers):  Add values for the new fields to all
7546         compiler entries. Modify the "@c" compiler entry for doing IMA
7547         properly with "-save-temps" and the "combine" flag.
7548         (option_map):  Add new driver option, "--combine", to tell driver
7549         to pass multiple input files to compiler at one time.
7550         (have_o_argbuf_index): New global variable.
7551         (store_arg): Modify to assign value to have_o_argbuf_index.
7552         (struct infile):  Add three new fields, to help with IMA.
7553         (display_help): Add help for new "combine" option.
7554         (process_command): Remove local variable have_o; add code to check
7555         for new "combine" option; remove assignment to combine_inputs.
7556         (do_spec_1):  Modify to deal with IMA better.
7557         (main): Make variable 'lang_n_infiles' local to entire function
7558         rather than to a single block.  Use flag combine_flag to
7559         determine whether to do IMA or not; Modify loop initializing
7560         infiles to deal properly with linker files.
7561         Add code for doing preprocessing in presence of
7562         IMA with "-save-temps" flag.  Modify "main" loop to handle
7563         multiple input files, in multiple languages, with or without
7564         preprocessing,  gracefully.
7565         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7566         re-set it to same directory it's previously been set to (avoid
7567         irritating, meaningless warning messages when doing IMA with
7568         save-temps).
7569         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7570         remove documentation about IMA that is no longer accurate; Add
7571         documentation explaining what "-combine" does.
7572         * ada/lang-specs.h: Add initialization values for new fields in
7573         "struct compiler".
7574         * cp/lang-specs.h: Likewise.
7575         * f/lang-specs.h: Likewise.
7576         * java/lang-specs.h: Likewise.
7577         * objc/lang-specs.h: Likewise.
7578         * treelang/lang-specs.h: Likewise.
7579
7580 2004-04-05  David Edelsohn
7581
7582         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7583         symbol handling.
7584
7585 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7586             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7587
7588         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7589         * pa.md: Use replace_equiv_address to retain the attributes of the
7590         memory operands used in the split and peephole2 patterns for optimizing
7591         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7592
7593 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7594
7595         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7596         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7597         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7598         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7599         PARM_DECL.
7600         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7601         for a type.
7602         * print-tree.c (print_node): Properly handle side-effects, readonly,
7603         and constant flags.
7604         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7605         and TREE_CONSTANT if not a type.
7606         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7607         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7608         (NON_TYPE_CHECK): New macro.
7609         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7610
7611 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7612
7613         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7614         to DWARF2_DEBUG unconditionally.
7615         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7616
7617 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7618             Nathanael Nerode  <neroden@gcc.gnu.org>
7619
7620         PR target/14548
7621         * config.host: Set the shell variable host_can_use_collect2.
7622         Set it to yes by default, and to no for alpha*-dec-*vms*,
7623         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7624         * configure.ac: Set and substitute the shell variable collect2.
7625         Give an error if use_collect2 is yes and host_can_use_collect2 is
7626         no.
7627         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7628         uses.  Initialize to @collect2@.
7629         (STAGESTUFF): Remove $(USE_COLLECT2).
7630         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7631         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7632         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7633         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7634         * configure: Regenerate.
7635
7636 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7637
7638         * simplify-rtx.c (simplify_binary_operation): Constant fold
7639         DIV, MOD, UDIV and UMOD using div_and_round_double.
7640
7641 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7642
7643         PR c++/14804
7644         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7645         RECORD_TYPEs.
7646
7647 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7648
7649         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7650         documentation.
7651
7652 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7653
7654         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7655         updating the REG_EQUAL note on an insn's libcall_insn.
7656
7657 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7658
7659         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7660
7661 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7662
7663         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7664         with reorder_operands_p.
7665
7666 2004-04-03  Jan Hubicka  <jh@suse.cz>
7667
7668         * md.texi (vec_set, vec_extract, vec_init): Document.
7669
7670 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7671
7672        * opts.c (decode_options): Do function inlining with very small
7673        max-inline-insns-* parameters when optimizing for size.
7674
7675 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7676
7677         * config/i386/i386.h (TARGET_NOCONA): New macro.
7678         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7679         (processor_type): Add PROCESSOR_NOCONA.
7680
7681         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7682
7683         * config/i386/i386.c (nocona_cost): New variable.
7684         (m_NOCONA): New macro.
7685         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7686         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7687         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7688         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7689         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7690         x86_decompose_lea, x86_arch_always_fancy_math_387,
7691         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7692         x86_ext_80387_constants, x86_four_jump_limit):
7693         (override_options): Add nocona_cost to processor_target_table.
7694         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7695         (incdec_operand): Prevent inc/dec generation for Nocona too.
7696         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7697
7698 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7699
7700         * rtlanal.c (find_reg_note): Manually
7701         unswitch the loop.
7702
7703 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7704
7705         * genemit.c (gen_split): Change prototype of generated code.
7706         * genrecog.c (write_action): Adjust prototype for and calls to
7707         gen_split_*.
7708         * gensupport.c (struct queue_elem): Add split field.
7709         (queue_pattern): Return a value.  Clear the split field.
7710         (process_rtx): Maintain an association between an insn and the
7711         split generated from it for a define_insn_and_split.
7712         (process_one_cond_exec): Generate a new split for a
7713         define_insn_and_split.
7714         * config/arm/arm-protos.h (arm_split_constant): Add insn
7715         parameter.
7716         (emit_constant_insn): New function.
7717         (arm_gen_constant): Use it.
7718         * config/arm/arm.md: Adjust calls to arm_split_constant.
7719
7720 2004-04-02  Jan Hubicka  <jh@suse.cz>
7721
7722         * cgraph.c: Add overall comment.
7723         (cgraph_inline_hash): New global variable.
7724         (cgraph_create_node): Break out from ...
7725         (cgraph_node): ... here.
7726         (cgraph_edge): New function.
7727         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7728         (cgraph_remove_edge): Accept edge, intead of source and destination.
7729         (cgraph_redirect_edge_callee): New.
7730         (cgraph_remove_node): Update all new datastructures.
7731         (cgraph_record_call, cgraph_remove_call): Kill.
7732         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7733         (dump_cgraph): ... here.
7734         (cgraph_function_possibly_inlined_p): Use new hashtable.
7735         (cgraph_clone_edge, cgraph_clone_node): New.
7736         * cgraph.h: Include hashtab.h
7737         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7738         fields, add inlined_to pointer.
7739         (cgraph_node): Add pointer to next_clone.
7740         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7741         (cgraph_remove_call, cgraph_record_call): Kill.
7742         (cgraph_inline_hash): Declare.
7743         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7744         cgraph_redirect_edge_callee): Declare.
7745         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7746         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7747         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7748         * cgraphunit.c: Add overall comment.
7749         (cgraph_optimize_function): Kill.
7750         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7751         (cgraph_finalize_function): Update call of cgraph_remove_node
7752         (record_call_1): Record call sites.
7753         (cgraph_create_edges): Accept node instead of decl argument.
7754         (error_found): New static variable.
7755         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7756         (cgraph_analyze_function): Update for new datastructures.
7757         (cgraph_finalize_compilation_unit): Plug memory leak.
7758         (cgraph_optimize_function): Kill.
7759         (cgraph_expand_function): Do not use cgraph_optimize_function.
7760         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7761         cgraph_inlined_callees): Kill.
7762         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7763         clones.
7764         (estimate_growth): Simplify.
7765         (cgraph_clone_inlined_nodes): New function.
7766         (cgraph_mark_inline_edge): Re-implement.
7767         (cgraph_mark_inline): Likewise.
7768         (cgraph_check_inline_limits): Simplify.
7769         (cgraph_recursive_inlining_p): New.
7770         (update_callee_keys): Break out from ...
7771         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7772         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7773         Likewise.
7774         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7775         list.
7776         (cgraph_preserve_function_body_p): New predicate.
7777         (cgraph_optimize): Verify cgraph.
7778         * function.h (struct function): Add fields saved_tree/saved_args.
7779         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7780         * toplev.c (rest_of_compilation): Do not free cfun.
7781         * tree-inline.c: Include function.h
7782         (struct inline_data): Add saving_p field; replace decl/current_decl by
7783         node/current_node.
7784         (insert_decl_map): New function.
7785         (copy_body_r): Handle saving; update cgraph datastructure.
7786         (copy_body): Handle recursive inlining.
7787         (initialize_inlined_parameters): Likewise.
7788         (expand_call_inline): Propagate node attributes; update cgraph.
7789         (optimize_inline_calls): Verify that datastructure still match.
7790         (save_body): New function.
7791         * tree-inline.h (save_body): New.
7792         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7793         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7794         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7795
7796 2004-04-01  Serge Belyshev  <1319@bot.ru>
7797
7798         PR target/14702
7799         * config/i386/i386.md: fix source operand constraints in
7800         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7801
7802 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7803
7804         * fold-const.c (folda): Preserve types of comparisons.
7805
7806 2004-04-01  Richard Henderson  <rth@redhat.com>
7807
7808         * toplev.c (backend_init): Move init_optimization_passes call ...
7809         (lang_dependent_init): ... here.
7810
7811 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7812             Jakub Jelinek  <jakub@redhat.com>
7813
7814         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7815         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7816         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7817         * configure: Rebuilt.
7818         * config.in: Rebuilt.
7819         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7820         (stage2-start, stage3-start, stage4-start): Likewise.
7821         (stageprofile-start, stagefeedback-start): Likewise.
7822
7823 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7824
7825         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7826         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7827         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7828         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7829         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7830         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7831         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7832         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7833         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7834         * config/sparc/t-linux: Removed.
7835
7836 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7837
7838         PR c++/14755
7839         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7840         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7841
7842 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7843
7844         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7845         * stor-layout.c (layout_decl): Likewise.
7846         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7847         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7848         * print-tree.c (print_node): Handle various used of unsigned_flag.
7849         * tree.def (BIT_FIELD_REF): Update comment.
7850         * tree.h (TREE_UNSIGNED): Deleted.
7851         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7852
7853 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7854
7855         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7856         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7857         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7858         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7859         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7860         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7861         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7862         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7863         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7864         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7865         REAL_TYPE, not INTEGER_TYPE.
7866         (layout_type, case VECTOR_TYPE): Simplify code.
7867         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7868         * tree.h: Update comments.
7869         (STRIP_NOPS): Use TYPE_UNSIGNED.
7870         (TYPE_UNSIGNED): New macro.
7871         (TYPE_TRAP_SIGNED): Remove now redundant check.
7872         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7873
7874 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7875
7876         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7877
7878 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7879
7880         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7881         Add darwin-fpsave.asm, darwin-vecsave.asm,
7882         and darwin-world.asm.
7883         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7884         as the asm files contain altivec instructions.
7885         * config/rs6000/darwin-fpsave.asm: New file.
7886         * config/rs6000/darwin-vecsave.asm: New file.
7887         * config/rs6000/darwin-world.asm: New file.
7888
7889 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7890
7891         * gengtype-yacc.y (option, stringseq): Add missing
7892         terminating semicolon.
7893
7894 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7895
7896         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7897         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7898         tls_dtprel_ha_32, tls_dtprel_ha_64,
7899         tls_dtprel_lo_32, tls_dtprel_lo_64,
7900         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7901         tls_tprel_ha_32, tls_tprel_ha_64,
7902         tls_tprel_lo_32, tls_tprel_lo_64,
7903         tls_got_tprel_32, tls_got_tprel_64,
7904         tls_tls_32, tls_tls_64): Replace register_operand with
7905         gpc_reg_operand.
7906
7907 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7908
7909         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7910         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7911         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7912         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7913         *ctrdi_internal6): Replace register_operand with
7914         nonimmediate_operand.
7915
7916 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7917
7918         * fold-const.c (fold): Reassociate multiply expression
7919         with an adjacent non-multiply expression to use
7920         architecture's multiply-add instruction.
7921
7922 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7923
7924         * gengtype.c (create_option): New function.
7925         * gengtype.h: Prototype it.
7926         * gengtype-yacc.y (stringseq): New rule.
7927         (option): Use create_option.  Add new bare ID production.  Use
7928         stringseq, not STRING directly.
7929
7930         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7931         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7932         * varray.h, config/alpha/alpha.c:
7933         Use new shorter form of GTY markers.
7934
7935         * doc/gty.texi: Rewrite.
7936
7937 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7938
7939         * config/darwin.c (machopic_function_base_name):
7940         Remove current_name and getting the name of the
7941         current function.
7942
7943 2004-03-30  Nick Clifton  <nickc@redhat.com>
7944
7945         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7946         range, and increase the forward branch range, to allow for
7947         the fact that the PC will be off by 4.
7948
7949 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7950
7951         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7952
7953 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7954
7955         * config/rs6000/rs6000.c (output_vec_const_move):
7956         Find all cases of EASY_VECTOR_15_ADD_SELF.
7957         (easy_vector_constant_add_self): Accept
7958         all vector constant loadable by vsplt* and vadd*.
7959         (easy_vector_same): Use easy_vector_splat_const.
7960         (easy_vector_const): Use easy_vector_splat_const.
7961         (easy_vector_splat_const): New function.
7962         (gen_easy_vector_constant_add_self): New function.
7963
7964         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7965         New prototype.
7966
7967         * config/rs6000/altivec.md (movv4si splitter): Change to
7968         emit move insn with halfed vector constant.
7969         (*movv8hi splitter): Likewise.
7970         (*movv16qi splitter): Likewise.
7971
7972 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7973
7974         PR 11591
7975         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7976         Allow any offset to argument pointer in no-strict case.
7977
7978 2004-03-30  Jan Hubicka  <jh@suse.cz>
7979
7980         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7981         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7982         dump file in non-unit-at-a-time mode.
7983
7984 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7985
7986         * config/cris/cris.h: Correct #ifdef to test for
7987         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7988         HAVE_AS_MUL_BUG_ABORT_OPTION.
7989
7990 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7991
7992         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7993         the address inside the old RTL.
7994
7995 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7996
7997         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7998         (struct c_binding, struct c_scope): Add chain_next
7999         attributes to GTY markers.
8000         (struct lang_identifier, struct lang_tree_node): Define
8001         here...
8002         * c-tree.h: ... not here.  No longer need to declare struct
8003         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8004         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8005         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8006
8007         PR 14734, 11944
8008         * c-decl.c (get_parm_info): If error_mark_node is encountered
8009         in the bindings chain, unbind and discard it; don't abort.
8010
8011 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
8012             Dorit Naishlos <dorit@il.ibm.com>
8013
8014         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8015         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8016
8017 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
8018
8019         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8020
8021         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8022         (m68hc11_attribute_table): New attribute "page0" to mark a global
8023         variable as being allocated from within page0 section.
8024         (m68hc11_encode_label): New function.
8025         (m68hc11_strip_name_encoding): New function.
8026         (m68hc11_page0_symbol_p): New function.
8027         (m68hc11_indirect_p): Accept global variables marked in page0.
8028         (m68hc11_encode_section_info): Lookup "page0" attribute.
8029
8030         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8031         represents access to page0 variables.
8032
8033         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8034         ("*logicalsi3_silshl16_zext"): Likewise.
8035         ("*ashldi3_const32"): Likewise.
8036         (peephole2 ashift): Likewise.
8037
8038 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8039
8040         * c-tree.h (C_DECL_REGISTER): New.
8041         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8042         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8043         (build_array_ref, c_mark_addressable): Set and use it.
8044         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8045         Allow structures with volatile fields to be declared register.
8046         Don't check TREE_ADDRESSABLE before warning about taking address
8047         of register.
8048         * c-decl.c (finish_decl): Don't allow structures with volatile
8049         fields to be placed in named register.
8050         * doc/trouble.texi: Remove reference to structures with volatile
8051         fields in registers.
8052
8053 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8054
8055         * function.c (thread_prologue_and_epilogue): Move
8056         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8057         before the epilogue.
8058
8059 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8060
8061         * expr.c (store_constructor): Use gen_int_mode to correctly
8062         sign-extend CONST_INT value.
8063
8064 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8065
8066         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8067         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
8068         * doc/extend.texi: Likewise.
8069
8070 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
8071
8072         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8073           with TYPE_ORIG_SIZE_TYPE.
8074
8075 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
8076
8077         PR 14219
8078         * c-typeck.c (build_binary_op): Do not allow comparisons of
8079         vectors.
8080
8081 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
8082
8083         * config.gcc: Remove sparc-tti-*.
8084         * config/sparc/pbd.h: Delete.
8085
8086         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8087         * config/sparc/aout.h: Likewise.
8088
8089         * config/sparc/sparc.h: Remove if 0'd code.
8090         * config/sparc/sparc.md (call): Remove if 0'd code.
8091         (call_value): Likewise.
8092         (nonlocal_goto): Likewise.
8093         (unimp_insn): Delete.
8094
8095 2004-03-25  Roger Sayle  <roger@eyesopen.com>
8096
8097         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8098         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8099
8100 2004-03-25  Richard Henderson  <rth@redhat.com>
8101
8102         PR 11527
8103         * c-typeck.c (pop_init_level): Emit pending init elements earlier
8104         rather than later.
8105
8106 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8107
8108         * builtins.c (fold_builtin): Fix error in last change.
8109
8110 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8111
8112         * config/mips/mips.h: Formatting fix.
8113
8114 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8115
8116         * builtins.def: Add ctype builtins.
8117         * doc/extend.texi: Likewise.
8118
8119 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8120
8121         * builtins.c (fold_builtin): Add new builtin optimizations for
8122         sqrt and/or cbrt.
8123         * fold-const.c (fold): Likewise.
8124
8125 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8126
8127         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8128         (rs6000_sched_groups): New variable.
8129         (processor_target_table): Add power5.
8130         (rs6000_override_options): Set rs6000_sched_insert_nops,
8131         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8132         from rs6000_sched_groups.
8133         (output_cbranch): Use rs6000_always_hint.
8134         (rs6000_variable_issue): Use rs6000_sched_groups.
8135         (rs6000_adjust_cost): Add CPU_POWER5.
8136         (is_microcoded_insn): Use rs6000_sched_groups.
8137         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8138         Return 2 for POWER5 cracked instructions.
8139         (is_cracked_insn): Use rs6000_sched_groups.
8140         (is_branch_slot_insn): Use rs6000_sched_groups.
8141         (rs6000_issue_rate): Add CPU_POWER5.
8142         (rs6000_sched_finish): Use rs6000_sched_groups.
8143         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8144         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8145         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8146         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8147         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8148         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8149         * config/rs6000/power5.md: New file.
8150         * doc/invoke.texi: Add power5 option.
8151
8152 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8153
8154         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8155         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8156         * doc/invoke.texi: Fix a typo.
8157
8158 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8159
8160         PR optimization/9707.
8161         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8162         of recursing if both children are single-valued cases with no
8163         children.
8164
8165 2004-03-25  Paul Brook  <paul@codesourcery.com>
8166
8167         * config/arm/arm.c (vfp_print_multi): Remove.
8168         (arm_output_fldmx): New function.
8169         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8170         (arm_expand_prologue): Update to match.
8171         (arm_get_vfp_saved_size): New Function.
8172         (arm_get_frame_offsets): Use it.
8173         (arm_output_epilogue): Use new functions.
8174
8175 2004-03-24  Richard Henderson  <rth@redhat.com>
8176
8177         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8178         (reg_known_value, reg_known_value_size): Likewise; make static.
8179         (reg_known_equiv_p): Make static.
8180         (clear_reg_alias_info): Update for new indexing.
8181         (get_reg_known_value, set_reg_known_value): New.
8182         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8183         (canon_rtx): Use them.
8184         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8185         Don't play queer offsetting games with reg_known_value and
8186         reg_known_equiv_p.
8187         (end_alias_analysis): Free reg_known_value with gc.
8188         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8189         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8190         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8191         functions instead.
8192
8193 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8194
8195         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8196         config/i386/mmintrin.h: Update copyright.
8197
8198 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8199
8200         * configure.ac: Add --enable-werror-always (for top level bootstrap
8201         support).
8202         * configure: Regenerate.
8203
8204 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8205
8206         * objc/objc-act.c (objc_comptypes): Treat comparisons
8207         between 'Class' and '<class> *' as explicitly invalid.
8208
8209 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8210
8211         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8212         (-fprofile-values): Add enabled with profile-{generate,use}.
8213         (-fvpt): Same.
8214         (-ftracer): Add enabled with profile-use.
8215         (-funit-at-a-time): Add enabled at -O2,-O3.
8216         (-funroll-loops): Add enabled with profile-use.
8217         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8218         (max-gcse-passes): Mention default.
8219         (max-cse-path-length): Mention default.
8220
8221 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8222
8223         * Makefile.in (STRICT2_WARN): Reorder.
8224         * configure.ac: Check for -Wold-style-definition, and use it
8225         in strict1_warn if it's available.
8226         * configure: Regnerate.
8227
8228 2004-03-24  Paul Brook  <paul@nowt.org>
8229
8230         * config.gcc <arm>: Add --with-abi=
8231         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8232         thumb_far_jump_used): Remove prototypes.
8233         (arm_needs_doubleword_align): Add prototype.
8234         (thumb_compute_initial_elimination_offset): Ditto.
8235         * config/arm/arm.c (arm_get_frame_offsets): New function.
8236         (use_return_insn, output_return_instruction, arm_output_epilogue,
8237         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8238         arm_expand_prologue, thumb_expand_epilogue): Use it.
8239         (arm_abi, target_abi_name, all_arm_abis): New variables.
8240         (arm_override_options): Set them.  Set structure padding for AAPCS.
8241         (arm_return_in_memory): Update ABI check.
8242         (arm_init_cumulative_args): Initialize can_split.
8243         (arm_needs_doubleword_align): New function.
8244         (arm_function_arg): Don't split args after pushing to stack. Handle
8245         doubleword/even reg alignment.
8246         (arm_va_arg): Handle all doubleword aligned args.
8247         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8248         on ABI, not CPU.
8249         (arm_compute_save_reg0_reg12_mask): Fix comment.
8250         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8251         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8252         value for alignment.
8253         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8254         to match.
8255         (thumb_compute_initial_elimination_offset): New function.
8256         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8257         unneccessary rounding.
8258         * config/arm/arm.h (target_abi_name): Declare.
8259         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8260         arm_abi_type, ARM_DEFAULT_ABI): Define.
8261         (ARM_FLAG_ATPCS): Remove.
8262         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8263         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8264         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8265         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8266         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8267         Contitionalize on ABI, not CPU.
8268         (struct arm_stack_offsets): Define.
8269         (struct machine_function): Add stack_offsets.  Remove frame_size.
8270         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8271         pushed.
8272         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8273         doubleword alignment.
8274         (THUMB_INITIAL_ELIMINATION_OFFSET,
8275         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8276         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8277         * config/arm/arm.md (align_8): Enable for all targets.
8278         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8279         (ARM_DEFAULT_ABI): Define.
8280         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8281         -mstructure-size-boundary.
8282
8283 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8284
8285         * configure.ac: Check for -Wno-variadic-macros; don't use
8286         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8287         and if it's available, use it.  Also, clean up check for
8288         -Wno-long-long.
8289         * configure: Regenerate.
8290
8291 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8292
8293         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8294         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8295         (MULTILIB_DEFAULTS): Use it.
8296         (MIPS_CPU_STRING_DEFAULT): Remove.
8297         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8298         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8299         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8300         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8301         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8302         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8303         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8304         accordingly.
8305
8306 2004-03-24  DJ Delorie  <dj@redhat.com>
8307             Richard Sandiford  <rsandifo@redhat.com>
8308
8309         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8310         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8311         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8312         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8313         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8314         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8315         if TARGET_FIX_VR4122.
8316         * config/mips/mips.md (define_attr length): Account for nops inserted
8317         after macc and dmult when using -mfix-vr4122-bugs.
8318         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8319         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8320         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8321         * config/mips/vr4122-div.S: New file.
8322         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8323
8324 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8325
8326         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8327         (TARGET_MIPS4130): New macro.
8328         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8329         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8330         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8331         with PROCESSOR_R4130.
8332         * config/mips/mips.md (define_attr cpu): Add r4130.
8333         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8334
8335 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8336             Richard Sandiford  <rsandifo@redhat.com>
8337
8338         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8339
8340 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8341
8342         PR preprocessor/14438
8343         * cpplib.c (do_pragma): Remove line_change call after pragma
8344         handler.
8345
8346 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8347
8348         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8349         declarations.
8350
8351 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8352
8353         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8354         if flag_unsafe_math_optimizations.
8355         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8356         and TARGET_80387 expand using truncdfsf2_noop pattern.
8357         (truncxfsf2): Likewise using truncxfsf2_noop.
8358         (truncxfdf2): Likewise using truncxfdf2_noop.
8359         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8360
8361 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8362
8363         * hooks.c (hook_constcharptr_tree_null): New hook.
8364         * hooks.h (hook_constcharptr_tree_null): New prototype.
8365         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8366         * target.h (mangle_fundamental_type): New target hook.
8367         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8368         target hook at rs6000_mangle_fundamental_type.
8369         (rs6000_mangle_fundamental_type): New function.
8370         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8371
8372 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8373
8374         PR 12267, 12391, 12560, 13129, 14114, 14133
8375         * c-tree.h: Forward declare struct c_binding.  Declare
8376         c_override_bindings_to_false.  Update prototypes.
8377         (struct lang_identifier): Update comments.  Change fields to be
8378         struct c_binding *.
8379         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8380         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8381         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8382         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8383         * c-common.h: Update prototypes.
8384         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8385         names_last, parms, parms_last, tags, and shadowed fields.  Add
8386         bindings and depth fields.
8387         (scope_freelist): Move to more appropriate location.
8388         (c_print_identifier): Update for changes to struct lang_identifier.
8389         (objc_mark_locals_volatile): Update for new bindings structures.
8390         (global_bindings_p): Honor c_override_global_bindings_to_false.
8391         (pushlevel): Rename to push_scope; take no arguments; use the
8392         scope_freelist; initialize scope->depth and check for overflow.
8393         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8394         structures.
8395         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8396         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8397         Improve some commentary.  Adjust handling of forward parm decls.
8398         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8399         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8400         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8401         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8402         decls.  Rewrite for new bindings structures.  Improve commentary.
8403         Eliminate the copy_node call.
8404         (implicit_decl_warning): Use the "diag" idiom (as seen in
8405         locate_old_decl) to reduce code duplication; call locate_old_decl
8406         if appropriate.  Relocate to remove need for forward declaration.
8407         (implicitly_declare): Adjust for new bindings structures.  Kludge
8408         around Objective-C not-really-builtin functions.
8409         (undeclared_variable): Improve diagnostics.  If current_function_decl
8410         is nonnull but current_function_scope is null, use current_scope.
8411         Use bind.
8412         (lookup_tag): Adjust for new bindings structures.  Kludge around
8413         Objective-C's tag declarations that wind up in the external scope.
8414         (lookup_name): Adjust for new bindings structures.  Kludge around
8415         c-common.c's pseudo-typedefs that wind up in the external scope.
8416         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8417         second argument indicating the scope to examine; rewrite for
8418         new bindings structures.
8419         (c_init_decl_processing): Adjust for renamed functions.  Do not
8420         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8421         First scope pushed is the external scope, not the global scope.
8422         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8423         for new data structures.  Keep track of builtins that should be
8424         made visible automatically.
8425         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8426         expand_decl.
8427         (grokparms): Return 0 if arg_types is error_mark_node.
8428         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8429         reversed sense.  Rewrite for new bindings structures.  Do not
8430         leave any decls in the scope, to prevent pop_scope from doing
8431         contradictory things with them.
8432         (finish_struct, finish_enum): Remove redundant diagnostics.
8433         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8434         Mark location where -pedantic changes the meaning of the program.
8435         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8436         parameter decls into the function's scope structure using bind.
8437         Warn here about function definitions in the wrong style.
8438         Adjust diagnostics.
8439         (store_parm_decls): Correct the determination of whether a
8440         function was defined with a prototype.
8441         (c_write_global_declarations): Operate on all file decls and on
8442         the external scope.  Split body of the loop to...
8443         (c_write_global_declarations_1): ... this new function, to avoid
8444         code duplication.
8445         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8446         (make_scope, pop_scope, in_parm_level_p, set_block)
8447         (any_external_decl, record_external_decl, bind_label, getdecls)
8448         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8449         (c_reset_state): Delete.
8450         (visible_builtins, c_override_global_bindings_to_false)
8451         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8452         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8453         (external_scope, binding_freelist, bind, free_binding_and_advance)
8454         (push_file_scope, pop_file_scope): New.
8455         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8456         (define_label, c_make_fname_decl, finish_decl)
8457         (mark_forward_parm_decls, build_compound_literal)
8458         (grokdeclarator, start_function, check_for_loop_decls)
8459         (identifier_global_value, record_builtin_type): Minor adjustments
8460         for new bindings structures.  Improve diagnostics and commentary.
8461         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8462         pushlevel/poplevel respectively.
8463         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8464         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8465         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8466         correct loop over multiple translation units; call fatal_error if
8467         requested to compile more than one file at once.  (This disables
8468         IMA temporarily - an up-front error being preferable to a crash.)
8469         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8470         (all actions): Adjust calls to pushlevel/poplevel.
8471         (parsing_iso_function_signature): Delete.
8472         (extdef_1): Fold into extdef.
8473         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8474         warn here about function definitions in the wrong style.
8475         (after_tyle_declarator, parm_declarator_starttypename)
8476         (parm_declarator_nostarttypename, notype_declarator): Remove
8477         commented-out productions.
8478         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8479         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8480         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8481         to suppress -Wold-style-definition after this error.
8482         (c_parse_file): Don't clear the binding stack or call
8483         finish_fname_decls here.  Correct comment.
8484         * c-typeck.c (same_translation_unit_p): Export.
8485         (common_type): Use c_override_global_bindings_to_false, not
8486         pushlevel/poplevel/declare_parm_level.
8487         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8488         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8489         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8490         * objc/objc-lang.c: Likewise.
8491         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8492         get_parm_info.
8493         (OBJC_VOID_AT_END): Delete; replace all uses
8494         with void_list_node.
8495         (generate_forward_declaration_to_string_table): Delete.
8496         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8497
8498         * coverage.c (create_coverage): Don't pushdecl anything.
8499         * langhooks.c (lhd_clear_binding_stack): Call
8500         lang_hooks.decls.poplevel, not poplevel.
8501         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8502         circular list rather than going into an infinite loop.
8503
8504 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8505
8506         * optabs.c (expand_binop): When synthesizing double word rotates
8507         from single word shifts, use a new register target if the provided
8508         target is not a REG already.
8509
8510 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8511
8512         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8513         * c-common.c (handle_mode_attribute): Add extra arg to
8514         build_pointer_type_for_mode and build_reference_type_for_mode.
8515         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8516         for INTEGER_CST.
8517         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8518         Chain pointers via TYPE_NEXT_PTR_TO.
8519         (build_reference_type_for_mode): Similarly.
8520         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8521         and build_reference_type_for_mode.
8522         (tree_check4_failed): New function.
8523         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8524         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8525         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8526         Add check.
8527
8528 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8529
8530         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8531         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8532         when both A and B are nonnegative.
8533         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8534         nonzero.
8535
8536 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8537
8538         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8539         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8540
8541 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8542
8543         PR optimization/14669
8544         * fold-const.c (fold): Only unwiden integer comparisons for equality
8545         and inequality operators, or when the signedness doesn't change.
8546
8547 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8548
8549         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8550         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8551         * config/sparc/t-linux: New file.
8552
8553 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8554
8555         * gcse.c (can_assign_to_reg_p): New function, split out from...
8556         (want_to_gcse_p): ...here.
8557         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8558         the rhs of a store.
8559
8560 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8561
8562         * c-typeck.c (same_translation_unit_p): Fix pasto.
8563
8564 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8565
8566         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8567         (PARAM_MAX_SCHED_REGION_INSNS): New.
8568         * sched-rgn.c: Include params.h
8569         (MAX_RGN_BLOCKS): Delete.
8570         (MAX_RGN_INSNS): Delete.
8571         (too_large): Return bool.  Convert to PARAM_VALUE.
8572         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8573         * doc/invoke.texi (param): Document max-sched-region-blocks and
8574         max-sched-region-insns.
8575
8576 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8577
8578         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8579         for base types.
8580
8581 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8582
8583         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8584         change.
8585
8586 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8587
8588         PR c/14069
8589         * c-decl.c (finish_struct): Change type of incorrect flexible array
8590         field into error_mark_node.
8591
8592 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8593
8594         PR target/14580
8595         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8596         who are not local for Darwin PIC.
8597
8598 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8599
8600         * regrename.c (regrename_optimize): Set regs_ever_live for all
8601         registers introduced as replacement.
8602
8603 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8604
8605         PR middle-end/14470
8606         * expr.c (mark_queue): New function.
8607         (emit_insns_enqueued_after_mark): New function replacing
8608         emit_queue.  Clear the body of emitted queued insns.
8609         (emit_queue): Call emit_insns_enqueued_after_mark.
8610         (store_expr): Mark the increment queue on entry.  Emit
8611         only the incrementations queued when expanding the source.
8612
8613 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8614
8615         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8616         of top level bootstrap, and consistency).  Reindent.
8617         * configure: Regenerate.
8618
8619 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8620
8621         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8622         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8623         unnecessary casts.
8624
8625 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8626
8627         PR target/14291
8628         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8629         __MINGW32__.
8630
8631 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8632
8633         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8634         to nonimmediate_operand.
8635         ("*doloop_di"): Likewise.
8636
8637 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8638
8639         * real.h (struct real_value): Use the same type for all
8640         bitfields.  Rename exp to uexp.
8641         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8642         Adjust all uses of exp...
8643         * builtins.c: ... here, ...
8644         * emit-rtl.c: ... here, and ...
8645         * real.c: ... and here.
8646
8647 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8648
8649         * pretty-print.c (pp_base_maybe_space): New function.
8650         * pretty-print.h (pp_base_maybe_space): Declare.
8651         (pp_maybe_space): New macro.
8652
8653 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8654
8655         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8656
8657 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8658
8659         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8660         of using register multiplication cost.
8661         (expand_mult): Adapt choose_mult_variant call.
8662         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8663         of MODE; pass appropriate cost bound.  Adjust result when
8664         performing signed multiplication by a negative constant.
8665         Don't use intermediate modes larger than word_mode.
8666
8667 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8668
8669         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8670         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8671         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8672         * explow.c (expr_size): Likewise.
8673         * expr.h (placeholder_list, find_placeholder): Deleted.
8674         * expr.c (store_constructor): Likewise.
8675         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8676         (placeholder_list, find_placeholder): Deleted.
8677         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8678         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8679         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8680         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8681         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8682         Likewise.
8683         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8684         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8685         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8686         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8687         Clean up by using first_rtl_op.
8688         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8689         (substitute_placeholder_in_expr): New function.
8690         * tree.def (WITH_RECORD_EXPR): Deleted.
8691         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8692         (substitute_placeholder_in_expr): New.
8693
8694 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8695
8696         * dojump.c (prefer_and_bit_test): Fix which part of
8697         the and_test is replaced.
8698
8699 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8700
8701         * frontends.texi: Add missing line.
8702
8703 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8704             Chris Devers  <cdevers@pobox.com>
8705             Joseph S. Myers  <jsm@polyomino.org.uk>
8706
8707         * doc/frontends.texi: Rewrite.
8708         * doc/gcc.texi: Update last modification date.
8709
8710 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8711
8712         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8713         message before redirecting the edge.
8714
8715 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8716
8717         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8718         flag.
8719         * explow.c (force_not_mem): Set REG_POINTER flag according to
8720         MEM_POINTER one.
8721         * rtl.h (MEM_POINTER): New macro.
8722         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8723         for MEM_POINTER.
8724
8725 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8726
8727         PR target/13889
8728         * cse.c (fold_rtx): Avoid substituting constants into unary
8729         conversion operations.
8730
8731 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8732
8733         * fold-const.c (fold): Replace "expr" with "t".
8734
8735 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8736
8737         PR c/12373
8738         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8739         DECL_ORIGINAL_TYPE if there isn't one.
8740
8741 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8742
8743         * fold-const.c (fold): Replace "final_type" with "type".
8744         Remove variable "final_type".
8745
8746 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8747
8748         * fold-const.c (fold): Constify "type".
8749         Replace "TREE_TYPE (t)" with "type".
8750
8751 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8752
8753         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8754         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8755         via (*targetm.foo) () with targetm.foo ().
8756
8757 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8758
8759         PR other/14630
8760         * doc/install.texi: Add info directory category and entry.
8761
8762 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8763
8764         * fold-const.c (fold): Replace "t" with "tem" where it is used
8765         as a temporary variable.  Remove "orig_t" and all of its uses.
8766
8767 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8768
8769         * fold-const.c (fold): Remove variable "invert".
8770         Move the handling of relational expressions that can be folded
8771         to a constant ...
8772         (fold_relational_const): ... here.
8773         (tree_expr_nonzero_p): New.
8774
8775 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8776
8777         PR c/14635
8778         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8779         DEF_GCC_BUILTIN.
8780
8781 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8782
8783         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8784         (GTFILES): Add $(srcdir)/dojump.h.
8785         (gt-dojump.h): New dependency.
8786         * dojump.c (and_reg, and_test, shift_test): New static variables.
8787         (prefer_and_bit_test): New function.
8788         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8789
8790 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8791
8792         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8793         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8794         reorg.c, tree.h: Fix comment typos.
8795
8796 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8797
8798         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8799         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8800         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8801         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8802         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8803         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8804         targetm.foo ().
8805
8806 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8807
8808         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8809         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8810         always_inline attribute.
8811         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8812         Treat expansion as completed even if literal argument is
8813         invalid (so that other expansions are not tried in vain).
8814
8815 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8816
8817         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8818         const0_rtx.
8819
8820 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8821
8822         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8823         ...
8824         (fold_abs_const): ... here.
8825
8826 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8827
8828         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8829
8830 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8831
8832         PR target/11520
8833         * config/avr/avr.md ("call_insn"): Handle explicit integer
8834         specially.
8835         (call_value_insn): Likewise.
8836
8837 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8838
8839         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8840
8841 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8842
8843         * fold-const.c (negate_expr): Move the handling of constants
8844         ...
8845         (fold_negate_const): ... here.
8846
8847 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8848
8849         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8850         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8851         * tree.c (debug_no_type_hash): Deleted.
8852         (type_hash_canon): Abort if passed a variant.
8853         Check lang_hooks.types.hash_types.
8854         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8855         (build_array_type): Remove unnecessary allocation of pointer type.
8856         (build_complex_type): Properly qualify resulting type.
8857
8858 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8859
8860         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8861
8862 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8863
8864         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8865         (expand_mult): ...here.
8866         (extract_high_half): New, split out from expand_mult_highpart.
8867         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8868         (expand_highpart): Evaluate the cost of a shift/add sequence,
8869         then see if any of the specialized optabs are cheaper.
8870
8871 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8872
8873         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8874
8875 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8876
8877         * convert.c (convert_to_real): Add more math builtins.
8878
8879 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8880
8881         * convert.c (convert_to_real): Reformat using switch stmt.
8882
8883 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8884
8885         * c-common.c (pointer_int_sum): Do not complain about using
8886         pointers to pointers-to-members.
8887
8888 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8889
8890         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8891         have moved to the target hooks structure".
8892
8893 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8894
8895         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8896         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8897         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8898         Likewise.
8899         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8900         Likewise.
8901         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8902         rm7_fp_quick): Likewise.
8903         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8904         rm9k_fquick): Likewise.
8905         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8906         Likewise.
8907         (ir_sr70_icmp): Delete.
8908
8909 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8910
8911         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8912         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8913         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8914         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8915         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8916         Protect with proper check.
8917         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8918         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8919         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8920         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8921         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8922         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8923         not TYPE_FIELDS.
8924         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8925
8926 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8927
8928         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8929         dest is set between beginning and current insn.
8930
8931 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8932
8933         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8934         visible "static" identifiers "extern" in a local scope.
8935         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8936         post-increments/decrements.
8937
8938 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8939
8940         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8941         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8942         (xtensa_va_start): Remove assignment to current_function_arg_words.
8943
8944 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8945
8946         * alias.c (record_set): Detect the case where a register is assigned
8947         a new value that has the same base term as the old one.
8948
8949 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8950
8951         * doloop.c: Removed.
8952         * loop-doloop.c: New file.
8953         * Makefile.in (doloop.o): Remove.
8954         (loop-doloop.o): New.
8955         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8956         * cfgloopanal.c (get_loop_level): New function.
8957         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8958         is leaved immediatelly.
8959         * loop.c (strength_reduce): Do not call doloop optimization.
8960         * loop.h (LOOP_BCT): Removed.
8961         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8962         (rest_of_handle_loop2): Call doloop_optimize_loops.
8963         (rest_of_compilation): Test for optimizations moved to
8964         rest_of_handle_loop2.
8965
8966 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8967
8968         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8969         for mixed mode.
8970         (rs6000_emit_prologue): Ditto.
8971         (rs6000_emit_epilogue): Ditto.
8972         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8973         macro for mixed mode.
8974
8975 2004-03-18  Jan Hubicka  <jh@suse.cz>
8976
8977         * predict.c (propagate_freq): Compute correctly frequency of
8978         EXIT_BLOCK.
8979
8980 2004-03-17  Eric Christopher  <echristo@redhat.com>
8981
8982         * builtins.c (apply_args_size): Use reg_raw_mode.
8983         (apply_result_size): Ditto.
8984
8985 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8986
8987         PR target/14620
8988         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8989
8990 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8991
8992         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8993         32-bit builds when defaulting to 32-bit.
8994
8995 2004-03-17  Jan Hubicka  <jh@suse.cz>
8996
8997         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8998         array.
8999
9000 2004-03-17  James E Wilson  <wilson@specifixinc.com>
9001
9002         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9003         (hazard_nop): Change type to nop.
9004         (type): Split arith into arith, shift, slt, clz.  Delete darith.
9005         Fix all uses.  Change arith to multi if more than one insn emitted.
9006         * config/mips/5400.md (ir_vr54_arith): Likewise.
9007         * config/mips/5500.md (ir_vr55_arith): Likewise.
9008         * config/mips/7000.md (rm7_int_other): Likewise.
9009         * config/mips/9000.md (rm9k_int): Likewise.
9010         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9011
9012 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
9013
9014         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9015         to hold the subtype tree instead of recomputing it several times.
9016
9017 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9018
9019         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9020         CC_INVERT.
9021         * config/mn10300/mn10300.md (cc): Remove "invert".
9022
9023 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9024
9025         * builtins.c (integer_valued_real_p): Add builtin rint.
9026         (fold_builtin): Likewise.
9027         * convert.c (convert_to_real): Likewise.
9028
9029         * convert.c (convert_to_real): Fix typos in `long double'
9030         builtins.
9031
9032 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
9033
9034         PR c++/14481
9035         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9036         generated COMPOUND_EXPRs.
9037
9038 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9039
9040         * config/h8300/t-rtems (h8300-*-rtems*): New.
9041
9042 2004-03-16  Eric Christopher  <echristo@redhat.com>
9043
9044         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9045
9046 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9047
9048         * config/i386/i386-protos.h: Add a prototype for
9049         ix86_reverse_condition.
9050         * config/i386/i386.c (ix86_reverse_condition): New.
9051         * config/i386/i386.h (REVERSE_CONDITION): Use
9052         ix86_reverse_condition.
9053         * config/i386/i386.md: Use ix86_reverse_condition instead of
9054         REVERSE_CONDITION.
9055
9056 2004-03-16  J. Brobecker  <brobecker@gnat.com>
9057
9058         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9059
9060 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9061
9062         PR bootstrap/12974
9063         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9064
9065 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9066
9067         * c-common.c (c_common_type_for_mode): Build vector types on
9068         demand.
9069         (handle_mode_attribute): Deprecate using the mode attribute
9070         to create vector types.  Fix indentation.
9071         (vector_type_node_list): Remove.
9072         (handle_vector_size_attribute): Create vector types on demand.
9073         Strip a NON_LVALUE_EXPR from the attribute if there is one.
9074         * c-typeck.c (comptypes): Make vector types compatible if they
9075         have the same underlying mode.
9076         (convert_for_assignment): Use comptypes to convert between
9077         vector types.
9078         * tree.c (build_common_tree_nodes_2): Do not create vector types.
9079         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9080         vector types.
9081         * tree.h: Remove vector types.
9082         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9083         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9084         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9085         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9086         * doc/extend.texi (Vector Types): Document how to use the
9087         vector_size attribute to create vectors, rather than mode.
9088
9089         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9090         * config/i386/emmintrin.h: Likewise.
9091         * config/i386/mmintrin.h: Likewise.
9092         * config/i386/xmmintrin.h: Likewise.
9093         * config/sh/ushmedia.h: Likewise.
9094
9095 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9096
9097         * config/freebsd-spec.h, config/arc/arc-protos.h,
9098         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9099         config/arm/linux-gas.h, config/arm/semi.h,
9100         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9101         config/ia64/freebsd.h, config/mips/7000.md,
9102         config/mips/9000.md, config/ns32k/ns32k-protos.h,
9103         config/sparc/pbd.h: Update copyright.
9104
9105 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9106
9107         PR target/14577
9108         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9109
9110 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9111
9112         * combine.c (combine_simplify_rtx): Remove the "last"
9113         parameter and its documentation.  Adjust recursive calls.
9114         (simplify_logical): Always perform the only simplification
9115         controlled by "last", if the simplified expression is
9116         actually different.
9117         (try_combine): Do not pass the "last" parameter to
9118         combine_simplify_rtx.
9119
9120 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9121
9122         PR target/14599
9123         * config/mips/mips.md (UNSPEC_GP): New constant.
9124         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9125         an UNSPEC instead of (reg $gp).
9126         (mips16_gp_pseudo_reg): Change accordingly.
9127         (print_operand): Print $gp directly when handling CONST_GP_P.
9128
9129 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9130
9131         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9132         * longlong.h: Make code 68060 clean when compiling for m68060.
9133
9134 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9135
9136         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9137         * doc/md.texi: Clarify description of "i" constraint.
9138
9139 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9140
9141         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9142         Split store into store, fpstore, fpidxstore.  Fix all uses.
9143         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9144         Likewise.
9145         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9146         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9147         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9148         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9149         ir_sr70_fstore): Likewise.
9150
9151 2004-03-15  Richard Henderson  <rth@redhat.com>
9152
9153         PR middle-end/14535
9154         * except.c (collect_one_action_chain): Record action for cleanup
9155         outer of exception spec.
9156
9157 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9158
9159         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9160         Fix the check for abort and only do the mmap if we can.
9161
9162 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9163
9164         * config/sparc/sparc.h: Rework comments about the code model
9165         in 64-bit environment and the mode 'Pmode'.
9166         * doc/invoke.texi (SPARC options): Rework description of the
9167         different code models supported in 64-bit environment.
9168
9169 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9170
9171         * defaults.h (REVERSIBLE_CC_MODE): Define.
9172         * jump.c (reversed_comparison_code_parts): Don't check if
9173         REVERSIBLE_CC_MODE is defined.
9174
9175 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9176
9177         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9178         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9179         hosthooks.h, params.h, ra-colorize.c, web.c,
9180         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9181         config/avr/avr-protos.h, config/avr/avr.md,
9182         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9183         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9184         config/i386/freebsd.h, config/i386/freebsd64.h,
9185         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9186         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9187         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9188         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9189         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9190         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9191         config/sparc/aout.h, config/sparc/freebsd.h,
9192         config/sparc/litecoff.h, config/vax/vax-protos.h,
9193         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9194         copyright.
9195
9196 2004-03-15  Paul Brook  <paul@codesourcery.com>
9197
9198         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9199
9200 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9201
9202         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9203         (pp_c_cv_qualifier): Document.
9204         (pp_c_space_for_pointer_operator): Likewise.
9205         (pp_c_integer_constant): Likewise.
9206         (pp_c_identifier): Likewise.
9207         (pp_c_init_declarator): Don't print function body.
9208
9209 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9210
9211         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9212         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9213         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9214         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9215         wording and grammar.
9216
9217 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9218
9219         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9220         with lang_hooks.foo ().
9221         * builtins.c (expand_builtin_va_arg): Likewise.
9222         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9223         c_common_type_for_mode, c_common_nodes_and_builtins,
9224         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9225         * c-convert.c (convert): Likewise.
9226         * c-format.c (check_format_types): Likewise.
9227         * c-objc-common.c (c_tree_printer): Likewise.
9228         * c-typeck.c (build_unary_op, build_conditional_expr,
9229         build_binary_op): Likewise.
9230         * calls.c (try_to_integrate, expand_call,
9231         emit_library_call_value_1): Likewise.
9232         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9233         Likewise.
9234         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9235         cgraph_expand_function): Likewise.
9236         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9237         * coverage.c (build_fn_info_type, build_ctr_info_type,
9238         build_gcov_info, create_coverage): Likewise.
9239         * dbxout.c (dbxout_init): Likewise.
9240         * diagnostic.c (diagnostic_report_current_function): Likewise.
9241         * dojump.c (do_jump): Likewise.
9242         * dwarf2out.c (dwarf2_name): Likewise.
9243         * except.c (init_eh): Likewise.
9244         * explow.c (expr_size, int_expr_size): Likewise.
9245         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9246         Likewise.
9247         * expr.c (store_expr, store_constructor, safe_from_p,
9248         expand_expr_real, do_store_flag, try_casesi): Likewise.
9249         * function.c (push_function_context_to, pop_function_context_from,
9250         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9251         put_var_into_stack, allocate_struct_function, current_function_name):
9252         Likewise.
9253         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9254         Likewise.
9255         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9256         lhd_print_error_function): Likewise.
9257         * opts.c (handle_option, decode_options): Likewise.
9258         * passes.c (open_dump_file): Likewise.
9259         * print-tree.c (print_node): Likewise.
9260         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9261         expand_decl_cleanup, emit_case_nodes): Likewise.
9262         * stor-layout.c (variable_size): Likewise.
9263         * toplev.c (announce_function, wrapup_global_declarations,
9264         check_global_declarations, compile_file, default_tree_printer,
9265         process_options, lang_dependent_init, finalize): Likewise.
9266         * tree-dump.c (dequeue_and_dump): Likewise.
9267         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9268         initialize_inlined_parameters, declare_return_variable,
9269         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9270         walk_tree, copy_tree_r): Likewise.
9271         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9272         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9273         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9274         variably_modified_type_p, dump_tree_statistics): Likewise.
9275         * varasm.c (assemble_variable, compare_constant, copy_constant,
9276         force_const_mem, compute_reloc_for_constant, output_constant,
9277         output_addressed_constants, initializer_constant_valid_p): Likewise.
9278
9279 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9280
9281         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9282
9283 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9284
9285         * doc/install.texi: Reflect autoconf and automake version for
9286         libffi. Update autoconf version to 2.59.
9287
9288 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9289
9290         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9291         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9292         make_range, build_range_check, fold_range_test, unextend,
9293         constant_boolean_node, fold_binary_op_with_conditional_arg,
9294         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9295         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9296         with lang_hooks.foo ().
9297
9298 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9299
9300         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9301
9302 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9303
9304         * doc/install.texi: Note status of -fnew-ra.
9305
9306 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9307
9308         PR middle-end/14470
9309         * expr.c (store_expr): Call emit_queue before generating the move
9310         from the temporary to the original target.  Protect the temporary
9311         from emit_queue.
9312
9313 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9314
9315         PR target/14533
9316         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9317         other than UNSPEC_GOTOFF.
9318
9319 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9320
9321         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9322         to arm_legitimate_index_p.  Update all callers with SET as default
9323         value.
9324         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9325         range if OUTER is a sign-extend operation on QImode.  Correctly
9326         reject shift operations on sign-extended QImode addresses.
9327         (bad_signed_byte_operand): Delete.
9328         (arm_extendqisi_mem_op): New function.
9329         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9330         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9331         constraints.
9332         (CONSTRAINT_LEN): New.
9333         (EXTRA_CONSTRAINT): Delete.  Replace with...
9334         (EXTRA_CONSTRAINT_STR): ... this.
9335         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9336         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9337         is now always default.
9338         (define_splits for bad sign-extend loads): Delete.
9339         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9340         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9341         Rework 'U' constraint to 'Uv'.
9342         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9343         arm_extendqisi_mem_op.
9344         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9345         Add Uq constraint.
9346
9347 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9348
9349         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9350         with targetm version.
9351
9352         PR target/14567
9353         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9354         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9355         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9356         Update all users of RS6000_ARG_SIZE.
9357         (function_arg_advance): Count fregno using mode size.
9358         (function_arg): Handle long double split over regs and memory.
9359         (function_arg_partial_nregs): Likewise.
9360         (rs6000_va_arg): Repackage complex args.
9361
9362 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9363
9364         PR target/14047
9365         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9366         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9367         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9368
9369 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9370
9371         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9372         prototype.
9373         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9374         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9375
9376 2004-03-12  Andrew Pinski  <apinski@apple.com>
9377
9378         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9379         Use ret instead of result. Use addr instead of base.
9380
9381 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9382
9383         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9384         fixes required by libstdc++ and update installation instructions
9385         for libstdc++.a.
9386
9387 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9388
9389         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9390         leading '@' on fastcall symbols before stripping suffix.
9391
9392 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9393
9394         * combine.c (unmentioned_reg_p): New function to check whether an
9395         expression is a "specialization" of another, i.e. that there are
9396         no registers or memory references mentioned in the first that don't
9397         appear in the second.
9398         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9399         (combine_instructions): Also try combining instructions using the
9400         REG_EQUAL note from a preceding log-linked instruction.
9401
9402 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9403
9404         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9405
9406 2004-03-12  Matt Austern  <austern@apple.com>
9407
9408         * target.h (struct gcc_target): New target hook, unwind_label.
9409         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9410         * output.h (default_emit_unwind_label): New function.
9411         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9412         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9413         (TARGET_SUPPORTS_HIDDEN): New target macro.
9414         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9415         that corresponds to this FDE.
9416         (FRAME_BEGIN_LABEL): Allow target to override default label.
9417         (output_call_frame_info): If FDEs are linknonce, then use extra
9418         indirection for FDE encoding, output a label for each FDE, and
9419         output an empty label for each function without an FDE.
9420         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9421         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9422         decls with DECL_ONE_ONLY set, if that macro is defined.
9423         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9424         for a SUPPORTS_ONE_ONLY target.
9425         * config/darwin-protos.h (darwin_unique_section): Declare.
9426         (darwin_asm_named_section): Likewise.
9427         (darwin_section_type_flags): Likewise.
9428         (darwin_non_lazy_pcrel): Likewise.
9429         (darwin_emit_unwind_label): Likewise.
9430         (darwin_make_decl_one_only): Likewise.
9431         * config/darwin.c (machopic_finish): Get rid of tweak that
9432         eliminate stubs for symbols that are defined.
9433         (darwin_encode_section_info): Don't treat weak functions as defined.
9434         (darwin_make_decl_one_only): Define.
9435         (darwin_asm_named_section): Likewise.
9436         (darwin_section_type_flags): Likewise.
9437         (darwin_unique_section): Likewise.
9438         (darwin_emit_unwind_label): Likewise.
9439         (darwin_non_lazy_pcrel): Likewise.
9440         (darwin_asm_output_dwarf_delta): Difference between two labels is
9441         local only if both labels are local.
9442         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9443         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9444         (TARGET_SUPPORTS_HIDDEN): Likewise.
9445         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9446         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9447         (FRAME_BEGIN_LABEL): Likewise.
9448         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9449         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9450         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9451         (TARGET_ASM_UNIQUE_SECTION): Define.
9452         (EH_FRAME_SECTION_NAME): Define.
9453         (EH_FRAME_SECTION_ATTR): Likewise.
9454         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9455         (TARGET_ASM_NAMED_SECTION): Likewise.
9456         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9457         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9458         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9459         TARGET_ASM_EMIT_UNWIND_LABEL.
9460
9461 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9462
9463         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9464         existing exp10* case.
9465         (expand_builtin): Likewise.
9466
9467 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9468
9469         * doc/tm.texi (registers) <Values in Registers>: Add
9470         entry for REGMODE_NATURAL_SIZE.
9471
9472 2004-03-12  Richard Henderson  <rth@redhat.com>
9473
9474         PR target/14547
9475         * target.h (struct gcc_target): Move calls substructure before
9476         booleans.  Add split_complex_arg.
9477         * function.c (assign_parms, split_complex_args): Use it.
9478         * calls.c (expand_call): Likewise.
9479         (split_complex_values): Likewise.  Check for splittable types
9480         before allocating memory.
9481         (split_complex_types): Likewise.
9482         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9483         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9484         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9485         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9486         (TARGET_SPLIT_COMPLEX_ARG): New.
9487         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9488         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9489         (rs6000_override_options): Zap it for non-AIX.
9490         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9491         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9492         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9493         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9494         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9495         SPLIT_COMPLEX_ARGS entry.
9496
9497 2004-03-11  Richard Henderson  <rth@redhat.com>
9498
9499         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9500         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9501         (alpha_emit_xfloating_arith): Update to match.
9502         (alpha_emit_xfloating_compare): Likewise.
9503         (alpha_emit_xfloating_cvt): Likewise.
9504         (alpha_emit_xfloating_libcall): Take already built symbol,
9505         mark call const.
9506         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9507         op1 in a register.
9508
9509 2004-03-11  Richard Henderson  <rth@redhat.com>
9510
9511         PR target/14539
9512         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9513
9514         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9515
9516 2004-03-11  Richard Henderson  <rth@redhat.com>
9517
9518         PR middle-end/14477
9519         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9520
9521 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9522
9523         PR target/14262
9524         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9525         defined, pass small BLKmode values in registers in the low-order part.
9526
9527 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9528
9529         * combine.c (if_then_else_cond): Check for NULL return value of
9530         simplify_gen_subreg.
9531
9532 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9533
9534         PR target/14496
9535         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9536         TARGET_SINGLE_FLOAT.
9537
9538 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9539
9540         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9541         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9542         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9543         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9544
9545 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9546
9547         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9548         -((int)X>>C) where C is an integer constant one bit less than the
9549         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9550         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9551
9552         * simplify-rtx.c (simplify_unary_operation): Also implement the
9553         above transformations at the RTL level.
9554
9555 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9556
9557         * real.c (encode_ibm_extended): Do round low word.
9558
9559 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9560
9561         * config/arm/arm.md (is_xscale): Comment this attribute and move
9562         it a bit further up in the file, closer to related attributes.
9563
9564 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9565
9566         * config/host-solaris.c (sol_gt_pch_use_address): Add
9567         missing terminating marker to comment.
9568
9569 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9570
9571         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9572         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9573         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9574         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9575         move_operand as source predicate in all cases.
9576         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9577         Test reg_or_0_operand.  Use move_operand as source predicate.
9578         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9579         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9580         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9581         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9582         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9583         Use move_operand as source predicate.  Remove 'K' constraint.
9584         (*movqi_internal): Likewise movqi_internal.
9585         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9586         reg_or_0_operand.  Use move_operand as source predicate.
9587         (*movsf_softfloat): Likewise movsf_internal2.
9588         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9589         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9590         (*movdf_softfloat): Likewise movdf_internal2.
9591         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9592         for DImode if !TARGET_64BIT.
9593         (mips_legitimize_move): Simplify accordingly.
9594
9595 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9596
9597         PR/14362
9598         * var-tracking.c (struct variable_def): Added field refcount.
9599         (variable_htab_free): Decrease the refcount and delete variable
9600         only if there are no more references.
9601         (unshare_variable): New function.
9602         (vars_copy_1): Increase refcount instead of copying the variable.
9603         (variable_union): Share the variables where possible, unshare
9604         the variables if needed.
9605         (variable_different_p): Return false if var1 and var2 are
9606         the same structure.
9607         (variable_was_changed): Init the refcount of new variable.
9608         (set_frame_base_location): Unshare variable if needed.
9609         (set_variable_part): Init the refcount of new variable.
9610         Unshare the variables if needed.
9611         (delete_variable_part): Unshare the variables if needed.
9612         (emit_notes_for_differences_1): Init the refcount of new variable.
9613         (vt_add_function_parameters): Do not add function parameters to
9614         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9615         (vt_initialize): Do not add frame_base_decl to IN set of
9616         ENTRY_BLOCK_PTR because it is unused anyway.
9617
9618 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9619
9620         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9621         (vars_copy): Likewise.
9622         (variable_union): Likewise.
9623         (set_variable_part): Likewise.
9624         (delete_variable_part): Likewise.
9625
9626 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9627
9628         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9629         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9630         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9631         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9632         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9633         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9634         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9635         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9636         config/stormy16/stormy16.c: Fix comment typos and formatting.
9637
9638 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9639
9640         * configure: Regenerate, since I forgot to while committing Paolo's
9641         changes.
9642
9643 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9644
9645         PR ada/14131
9646         Move language detection to the top level.
9647         * configure.ac: Remove code to detect languages,
9648         it now lives exclusively in the top level.
9649         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9650         top level, renamed to ACX_PROG_GNAT.
9651
9652 2004-03-10  Richard Henderson  <rth@redhat.com>
9653
9654         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9655         extra arguments.
9656         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9657         and host_xmake_file fragments.
9658         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9659         (gt_pch_restore): Similarly for gt_pch_use_address.
9660         (default_gt_pch_get_address): New.
9661         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9662         (default_gt_pch_use_address): Split out of gt_pch_restore.
9663         (mmap_gt_pch_use_address): Likewise.
9664         * hooks.c (hook_voidp_size_t_null): Remove.
9665         (hook_bool_voidp_size_t_false): Remove.
9666         * hooks.h: Likewise.
9667         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9668         default_ or mmap_ definitions.
9669         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9670         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9671         and gt_pch_use_address.
9672         * config/host-linux.c, config/host-solaris.c: New files.
9673         * config/x-linux, config/x-solaris: New files.
9674         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9675         Update for changed definition.
9676         (darwin_rs6000_gt_pch_use_address): Likewise.
9677         * doc/hostconfig.texi: Update docs.
9678
9679 2004-03-10  Richard Henderson  <rth@redhat.com>
9680
9681         PR c/14517
9682         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9683         except for pedantic c90 mode.
9684
9685 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9686
9687         * configure.ac: Bump AC_PREREQ to 2.59.
9688         * configure: Regenerate.
9689
9690 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9691
9692         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9693         (exp10_optab, exp2_optab): Define corresponding macros.
9694         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9695         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9696         using exp10?f2 and exp2?f2 patterns.
9697         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9698         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9699         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9700         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9701
9702         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9703         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9704         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9705
9706 2004-03-10  Anthony Green  <green@redhat.com>
9707
9708         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9709
9710 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9711
9712         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9713         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9714         __LONGDOUBLE128.
9715         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9716         TARGET_OS_AIX_CPP_BUILTINS.
9717         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9718         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9719         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9720         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9721         previous change.
9722
9723 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9724
9725         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9726
9727 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9728
9729         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9730         __LONGDOUBLE128 on AIX.
9731
9732 2004-03-10  Andrew Haley  <aph@redhat.com>
9733
9734         PR optimization/14381
9735         * function.c (expand_function_end): Emit a blockage insn before
9736         the epilogue when -fnon-call-exceptions is used.
9737
9738         * except.c (expand_start_all_catch): Make comment more accurate.
9739
9740 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9741
9742         PR target/14480
9743         * config/rs6000/t-rtems: Add missing file on branch.
9744
9745 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9746
9747         * dbxout.c (dbxout_symbol_location): Do not output references
9748         to optimized-out constant pool symbols.
9749
9750 2004-03-10  Andreas Schwab  <schwab@suse.de>
9751
9752         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9753         twon34_r.
9754
9755 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9756
9757         * alias.c (alias_sets_might_conflict_p): New.
9758         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9759         * common.opt (Wstrict-aliasing=): New.
9760         * flags.h (warn_strict_aliasing): Change type to int.
9761         * opts.c (warn_strict_aliasing): Change type to int.
9762         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9763         * tree.h (alias_sets_might_conflict_p): Declare it.
9764         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9765
9766 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9767
9768         PR bootstrap/12371
9769         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9770         (CALL_USED_REGISTERS): Likewise.
9771         (REG_CLASS_CONTENTS): Likewise.
9772         (REG_ALLOC_ORDER): New.
9773         (REGNO_REG_CLASS): Use regno_reg_class.
9774         * config/m68k/m68k.c: Add regno_reg_class array.
9775
9776 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9777
9778         * config/ia64/ia64.md (divsi3): Fix algorithm.
9779           (udivsi3): Ditto.
9780           (setf_exp_xf): Remove '*' from name.
9781         * testsuite/gcc.dg/20040309-1.c: New test.
9782
9783 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9784
9785         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9786         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9787         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9788         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9789         (sparc_aout_select_rtx_section): Don't check
9790         SUNOS4_SHARED_LIBRARIES.
9791         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9792
9793 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9794
9795         PR other/14474
9796         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9797         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9798         INTERNALS".
9799
9800 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9801
9802         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9803         (LIBGCC_SPEC): Update to match.
9804
9805 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9806
9807         * c-decl.c (last_function_parms, last_function_parm_tags)
9808         (last_function_parm_others, current_function_parms)
9809         (current_function_parm_tags, current_function_parm_others):
9810         Delete.
9811         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9812         New macros.
9813         (grokdeclarator): For function definitions, save the arg-info
9814         block from the declarator in DECL_ARGUMENTS.
9815         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9816         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9817         contains only PARM_DECLs.  Improve diagnostics.
9818         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9819         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9820         (store_parm_decls_newstyle): Take the function to operate on,
9821         and an arg-info block, as arguments; don't get anything from
9822         current_function_* globals.
9823         (store_parm_decls_oldstyle): Likewise.
9824         (store_parm_decls): Pass fndecl and its arg-info block down to
9825         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9826         argument lists through store_parm_decls_newstyle to reduce
9827         overhead.
9828         (pushdecl): Comment on the problems with the call to copy_node.
9829         Clear DECL_ARGUMENTS of the old node after copying it, if it
9830         is an arg-info block instead of a chain of decls.
9831         (start_function): Do not manipulate current_function_parm* or
9832         last_function_parm*.
9833
9834 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9835             Andrew Pinski  <pinskia@physics.uc.edu>
9836
9837         * ifcvt.c (noce_try_sign_mask): New function to transform
9838         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9839         (noce_process_if_block): Call noce_try_sign_mask.
9840
9841 2004-03-09  Andrew Pinski  <apinski@apple.com>
9842
9843         * c-typeck.c (tagged_types_tu_compatible_p):
9844         Fix typo.
9845
9846 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9847
9848         * simplify-rtx.c (simplify_const_relational_operation): New function
9849         renamed from simplify_relational_operation.
9850         (simplify_relational_operation): Change prototype to accept an
9851         additional mode argument.  Call simplify_const_relational_operation.
9852         (simplify_gen_relational): Update simplify_relational_operation call.
9853         (simplify_ternary_operation): Update simplify_relational_operation
9854         subroutine call to use simplify_const_relational_operation instead.
9855
9856         * rtl.h (simplify_const_relational_operation): Prototype here.
9857         (simplify_relational_operation): Add addtional mode argument.
9858
9859         * combine.c (combine_simplify_rtx): Update calls to
9860         simplify_relational_operation.
9861         (simplify_set): Likewise.
9862         (gen_binary): Likewise.
9863         * cse.c (fold_rtx): Likewise.
9864         * dojump.c (compare_from_rtx): Likewise.
9865         (do_compare_rtx_and_jump): Likewise.
9866         * integrate.c (subst_constants): Likewise.
9867         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9868
9869 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9870
9871         * config/m32r/m32r.md: Remove all define_peephole's.
9872
9873 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9874
9875         * config/rs6000/rs6000.md: Remove trailing whitespace.
9876
9877 2004-03-08  Eric Christopher  <echristo@redhat.com>
9878
9879         * Makefile.in (site.exp): Add libiconv variable definition.
9880
9881 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9882
9883         * configure: Regenerate for config/accross.m4 correction.
9884
9885 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9886
9887         PR target/14480
9888         * config/rs6000/t-rtems: Add missing file on branch.
9889
9890 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9891
9892         PR middle-end/14289
9893         * c-typeck.c (c_mark_addressable): A register variable should
9894         be considered global if its not automatic, i.e. TREE_PUBLIC,
9895         TREE_STATIC or DECL_EXTERNAL.
9896         * function.c (put_var_into_stack): Call abort when placing a
9897         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9898
9899 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9900
9901         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9902         ("*extendqisi2_short_displ"): Likewise.
9903
9904 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9905
9906         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9907         (comp_operator): Likewise.
9908         * config/pdp11/pdp11-protos.h: Remove corresponding
9909         prototypes.
9910
9911 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9912
9913         * expr.c (highest_pow2_factor_for_type): Rename into
9914         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9915         TYPE_ALIGN when the target is a COMPONENT_REF.
9916         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9917
9918 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9919
9920         * config/rs6000/rs6000.c: Formatting fix.
9921         (legitimate_offset_address_p): Correct offset range check.
9922
9923         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9924         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9925         and MASK_STRING.
9926
9927 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9928
9929         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9930         for little endian.
9931         ("ashrdi3_no_power"): Disable for little endian.
9932         (ashrdi3): Same.
9933
9934 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9935
9936         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9937         builtins.
9938
9939 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9940
9941         PR target/14471
9942         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9943         case, checking for -no-mul-bug-abort option.
9944         * configure, config.in: Regenerate.
9945         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9946         and -mno-mul-bug-workaround.
9947         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9948         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9949         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9950         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9951         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9952         sure mulu.d is not last on cache-line.
9953         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9954         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9955         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9956         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9957         -mno-mul-bug-workaround.
9958         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9959         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9960         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9961         relation to MULT in head comment.
9962         (cris_op_str): Abort for MULT.
9963         (cris_print_operand) <case '!'>: New case.
9964
9965 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9966
9967         PR debug/11983
9968         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9969         dw_val_class_vec.  Replace use throughout file.
9970         (dw_float_const): Delete.
9971         (dw_vec_const): New.
9972         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9973         throughout file.
9974         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9975         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9976         (size_of_die): Adjust dw_val_class_vec sizing.
9977         (output_die): Output dw_val_class_vec.
9978         (insert_int, extract_int, insert_float): New functions.
9979         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9980         Handle CONST_VECTOR.
9981         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9982
9983 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9984
9985         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9986         AltiVec abi cannot co-exist.
9987
9988         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9989
9990 2004-03-07  Jan Hubicka  <jh@suse.cz>
9991
9992         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9993
9994 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9995
9996         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9997         ("*lshrsi3"): Also accept an immediate for 68HC12.
9998         ("*ashrsi3_const"): Likewise.
9999         ("*ashrsi3"): Likewise.
10000         ("*ashlsi3_const"): Likewise.
10001         ("*ashlsi3"): Likewise.
10002         ("cmphi_1_hc12"): Compare two hard register by pushing them and
10003         comparing with a pop; don't use a split for that.
10004         ("cmphi split"): Disable compare split for 68HC12.
10005
10006         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10007         the status operands if they have side effects.
10008
10009 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10010
10011         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10012         definition.
10013         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10014         config/h8300/h8300.h, config/ia64/ia64.h,
10015         config/mcore/mcore.h, config/mmix/mmix.h,
10016         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10017         config/stormy16/stormy16.h, config/v850/v850.h,
10018         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10019         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10020         definition.
10021
10022 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10023
10024         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10025         <XOR_EXPR>: Fold x ^ x as zero.
10026         <AND_EXPR>: Fold x & x as x.
10027
10028 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10029
10030         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10031         "foo++ == const" into "++foo == const+incr".
10032
10033 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
10034
10035         * config/mips/mips.c (mips_in_small_data_p): Return false if
10036         TARGET_ABICALLS.
10037
10038 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
10039
10040         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10041         the stack register.
10042         (expand_prologue): Don't make an interrupt or a trap handler a far
10043         symbol.
10044         (m68hc11_initial_elimination_offset): Likewise.
10045
10046 2004-03-06  Richard Henderson  <rth@redhat.com>
10047
10048         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10049
10050 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10051
10052         * config/ns32k/ns32k-protos.h: Add a prototype for
10053         ns32k_notice_update_cc.
10054         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10055         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10056         ns32k_notice_update_cc.
10057
10058 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10059
10060         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10061         "*load_multiple_si"): Allow only if reload_completed.
10062         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10063         Likewise.
10064
10065 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10066
10067         * config/vax/vax-protos.h: Add a prototype for
10068         vax_notice_update_cc.
10069         * config/vax/vax.c (vax_notice_update_cc): New.
10070         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10071         vax_notice_update_cc.
10072
10073 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
10074
10075         * collect2.c (main): Only export initfunc and finifunc if
10076         LD_INIT_SWITCH not defined.
10077         (scan_prog_file): Only export constructors and destructors if
10078         LD_INIT_SWITCH not defined.  Only export symbols not found in
10079         shared objects.
10080
10081 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10082
10083         * pa.md (icacheflush): Reorder operands to make match_scratch operand
10084         last.
10085         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10086         from calls to gen_icacheflush.
10087
10088 2004-03-06  Richard Henderson  <rth@redhat.com>
10089
10090         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10091         (TARGET_LONG_DOUBLE_128): New.
10092         (TARGET_SWITCHES): Add long-double-{128,64}.
10093         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10094         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10095         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10096         (WIDEST_HARDWARE_FP_SIZE): New.
10097         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10098         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10099         if TARGET_VAX_FLOAT.
10100         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10101         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10102
10103 2004-03-06  Richard Henderson  <rth@redhat.com>
10104
10105         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10106         botched rtx class conversion.
10107
10108 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10109
10110         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10111         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10112
10113         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10114         macros.
10115         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10116
10117 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10118
10119         PR target/14343
10120         * config/i386/i386.md (movv2di_internal): Conditionalize on
10121         TARGET_SSE, not TARGET_SSE2.
10122
10123 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10124
10125         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10126         duplicated line.
10127
10128 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10129
10130         * builtins.c: Consistently use logN not log* in comments.
10131
10132 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10133
10134         * rtl.h (mem_expr_equal_p): Function prototype added.
10135         * cfgcleanup.c (merge_memattrs): New function.
10136         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10137         * emit-rtl.c (mem_expr_equal_p): New function.
10138
10139 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10140
10141         * objc/objc-act.c (synth_module_prologue): Const-qualify
10142         objc_selector type if using the GNU runtime; fix generated
10143         signatures for objc_msg_lookup and objc_msg_lookup_super
10144         to match what GNU ObjC headers provide; reformat and clean up.
10145         (synth_self_and_ucmd_args): Use previously constructed (and
10146         hence possibly const-qualified) objc_selector type.
10147
10148 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10149
10150         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10151
10152 2004-03-05  Jason Merrill  <jason@redhat.com>
10153
10154         * tree.h (TYPE_HASH): Use TYPE_UID.
10155         (TREE_HASH): New macro with old definition of TYPE_HASH.
10156         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10157         (build_array_type, build_function_type): Likewise.
10158         (build_method_type_directly): Likewise.
10159         (build_offset_type, build_complex_type): Likewise.
10160         (type_hash_list, attribute_hash_list): Likewise. Now static.
10161         * except.c: s/TYPE_HASH/TREE_HASH/.
10162
10163 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10164
10165         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10166         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10167         __va_ndx by 2 words when referencing an argument on the stack.
10168         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10169         words when an arg on the stack is first seen.
10170
10171 2004-03-05  Paul Brook  <paul@codesourcery.com>
10172
10173         * arm.h (ARM_FLAG_VFP): Remove.
10174         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10175         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10176
10177 2004-03-05  Paul Brook  <paul@codesourcery.com>
10178
10179         * function.c (assign_parms): Include pretend alignment offset.
10180
10181 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10182
10183         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10184         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10185
10186 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10187
10188         * configure.ac: When passing --enable-languages to subdir
10189         configure when host != build, make sure we don't pass an empty
10190         value.
10191         * configure: Regenerate.
10192
10193 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10194
10195         PR 13577
10196         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10197         options.
10198
10199 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10200
10201         * simplify-rtx.c (simplify_relational_operation): If
10202         flag_wrapv is set, do not move terms between the two
10203         side of a relational operator.
10204
10205 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10206
10207         * rtlanal.c: Include target.h and output.h
10208         (rtx_cost, address_cost, default_address_cost): Move from...
10209         * cse.c (rtx_cost, address_cost, default_address_cost):
10210         ... this file.
10211         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10212         * Makefile.in: Adjust dependencies.
10213
10214 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10215
10216         * cse.c (cse_end_of_basic_block): Make static.
10217         * local-alloc.c (function_invariant_p): Move to
10218         reload1.c.
10219         * loop.c (libcall_other_reg, record_excess_regs):
10220         Make static.
10221         * reload1.c (function_invariant_p): Moved here
10222         from local-alloc.c, made static.
10223         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10224         libcall_other_reg, record_excess_regs): Remove
10225         declarations.
10226
10227 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10228
10229         * config/m32r/m32r.c (signed_comparison_operator): Add a
10230         missing parenthesis.
10231
10232 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10233
10234         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10235         going to call mmap again.  Read the file into the right place.
10236         Give a fatal error if we have to relocate.
10237
10238 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10239
10240         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10241         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10242
10243 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10244
10245         PR other/14354
10246         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10247         round the same.  When rounding, clear bits that would cause a
10248         second rounding in pack_d.
10249         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10250
10251 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10252
10253         PR c++/14425, c++/14426
10254         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10255         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10256         Change C++ definitions to accept a 'const int' argument;
10257         the prototypes already do.
10258         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10259         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10260         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10261         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10262         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10263         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10264         end in ..._int; change them to accept an int instead of a char
10265         as the last parameter.
10266
10267 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10268
10269         * genmultilib:  Change '=' to '-' when translating option names
10270         to directory names.
10271
10272 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10273
10274         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10275         stack slot for temp used for result of BLKmode but in integral mode.
10276
10277 2004-03-04  Jan Hubicka  <jh@suse.cz>
10278
10279         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10280
10281         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10282         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10283
10284 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10285
10286         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10287         * testsuite/gcc.dg/20040303-1.c: New test.
10288
10289 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10290
10291         * ppro.md: Rewrite as a DFA pipeline description.
10292         * i386.md: Remove all uses of the ppro_uops attribute.
10293         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10294         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10295         ix86_sched_reorder, ix86_variable_issue,
10296         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10297         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10298         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10299         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10300         * athlon.md (athlon_ssecmp_load): Fix comment
10301
10302 2004-03-04  Stuart Hastings  <stuart@apple.com>
10303
10304         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10305
10306 2004-03-04  Stuart Hastings  <stuart@apple.com>
10307
10308         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10309         686, tell Darwin assembler to allow prefetch insns, non-empty def
10310         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10311
10312 2004-03-04  DJ Delorie  <dj@redhat.com>
10313
10314         PR optimization/14282
10315         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10316         between a call and the assignment of its return value.
10317
10318 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10319
10320         * config/h8300/h8300.c: Put a comment for every function.
10321
10322 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10323
10324         * config/h8300/h8300.md: Add comments about peephole2's.
10325
10326 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10327
10328         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10329
10330 2004-03-04  Jan Hubicka  <jh@suse.cz>
10331
10332         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10333         * cselib.c (cselib_record_memory): New static variable.
10334         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10335         Give up on memories when asked for.
10336         (cselib_init): Accept new argument.
10337         * cselib.h (cselib_init): Update prototype.
10338         * gcse.c (local_cprop_pass): Update call of cselib_init.
10339         * loop.c (load_mems): Update call of cselib_init.
10340         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10341         * sched-deps.c (sched_analyze): Update call of cselib_init.
10342
10343 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10344             GP <gp@qnx.com>
10345
10346         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10347         when compiling PIC.
10348
10349 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10350
10351         PR/14362
10352         * var-tracking.c (track_expr_p): Do not track variables which
10353         should be ignored for debugging purposes.
10354
10355 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10356
10357         * real.c (encode_ibm_extended): Don't bother rounding low double.
10358         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10359         when fmt->pnan < fmt->p.
10360
10361 2004-03-04  Eric Christopher  <echristo@redhat.com>
10362
10363         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10364         only range of valid arg registers and fixed_regs.
10365
10366 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10367
10368         PR target/14406
10369         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10370         (abstf2, abstf2_internal): New define_expand.
10371
10372 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10373
10374         PR optimization/14235
10375         * expr.c (convert_move): Copy the source to a new pseudo
10376         when converting from a sub-word source to a larger-than-word
10377         register which conflicts with the source.
10378
10379 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10380
10381         PR 13728
10382         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10383         parameters with the same name, unless one is a forward decl.
10384         Do not issue a redundant-redeclaration warning for forward
10385         decls of parameters.
10386
10387 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10388
10389         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10390         configuration.
10391
10392 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10393
10394         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10395
10396 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10397
10398         * target-def.h (TARGET_OPTF): Delete.
10399         * c-opts.c (TARGET_OPTF): Define.
10400
10401 2004-03-04  Jan Hubicka  <jh@suse.cz>
10402
10403         * cselib.c (cselib_finish): Fix another miss-application of my previous
10404         patch.
10405
10406 2004-03-03  Mike Stump  <mrs@apple.com>
10407
10408         Add framework support for darwin.
10409
10410         * c-incpath.c: Include target.h and machmode.h.
10411         (add_path): Use a consistent style for cpp_dir.  Initialize
10412         p->construct to 0.
10413         (add_cpp_dir_path): New.
10414         (register_include_chains): Add use of extra_includes callback.
10415         (hook_void_int): Add.
10416         (target_c_incpath): Add.
10417         * c-incpath.h (add_cpp_dir_path): New.
10418         (target_c_incpath_s): Add.
10419         (target_c_incpath): Add.
10420         (C_INCPATH_INIT): Add.
10421         * c-opts.c (c_common_missing_argument,
10422         c_common_handle_option): Add -F argument processing.
10423         * c.opt: Add -F argument processing.
10424         * gcc.c (trad_capable_cpp): Add -F argument processing.
10425         * cppfiles.c (find_file_in_dir): Update to use construct
10426         callback.
10427         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10428         cpp_get_prev): New.
10429         (_cpp_find_file): Use search_path_exhausted.
10430         (make_cpp_dir): Initialize construct to 0.
10431         * cpplib.h (missing_header_cb
10432         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10433         (cpp_callbacks): Add missing_header
10434         (cpp_dir): Add construct.
10435         * target-def.h: (TARGET_OPTF): New.
10436         * hooks.c (hook_void_int, hook_void_charptr): Add.
10437         * hooks.h (hook_void_int, hook_void_charptr): Add.
10438         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10439         $(MACHMODE_H) dependencies.
10440         * doc/invoke.texi (Darwin Options): Document -F.
10441         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10442         (TARGET_OPTF): Add.
10443         * fix-header.c (target_c_incpath): Add.
10444
10445         * config/darwin-c.c: Add c-incpath.h include.
10446         (using_frameworks, find_subframework_file,
10447         find_subframework_header, add_system_framework_path,
10448         frameworks_in_use, num_frameworks, max_frameworks,
10449         add_framework, find_framework, struct framework_header,
10450         framework_header_dirs, framework_construct_pathname,
10451         find_subframework_file, add_system_framework_path,
10452         add_framework_path, framework_defaults,
10453         darwin_register_frameworks, find_subframework_header): Add.
10454         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10455         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10456         (CPP_SPEC): Add __APPLE_CC__ support.
10457         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10458
10459 2004-03-04  Jan Hubicka  <jh@suse.cz>
10460
10461         * cselib.c (cselib_finish): Fix miss-application of my previous
10462         patch.
10463
10464 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10465
10466         * hooks.c (hook_tree_tree_identity): New.
10467         * hooks.h: Add a prototype for hook_tree_tree_identity.
10468         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10469         instead of MD_ASM_CLOBBERS.
10470         * system.h (MD_ASM_CLOBBERS): Poison.
10471         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10472         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10473         * target.h (gcc_target): Add md_asm_clobbers.
10474         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10475         (ix86_md_asm_clobbers): New.
10476         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10477         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10478         TARGET_MD_ASM_CLOBBERS.
10479
10480 2004-03-03  Stuart Hastings  <stuart@apple.com>
10481
10482         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10483
10484 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10485
10486         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10487
10488         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10489         (ASM_DOUBLE): Likewise.
10490         (ASM_LONGDOUBLE): Likewise.
10491         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10492
10493 2004-03-03  Richard Henderson  <rth@redhat.com>
10494
10495         PR opt/13862
10496         * cselib.c (cselib_record_sets): Don't record multiple sets in
10497         asm insns.
10498
10499 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10500
10501         * common.opt: Add description of the new -fgcse-after-reload flag.
10502
10503         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10504
10505         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10506         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10507         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10508         get_bb_avail_insn, hash_scan_set_after_reload,
10509         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10510         gcse_after_reload, get_bb_avail_insn): New functions to implement
10511         gcse-after-reload.
10512         (gcse_after_reload_main): New function, the main entry point to
10513         gcse-after-reload.
10514
10515         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10516
10517         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10518
10519         * toplev.c (flag_gcse_after_reload): Initialization.
10520
10521         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10522
10523         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10524         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10525         the gcse after reload optimization.
10526
10527         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10528         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10529         parameters.
10530
10531         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10532
10533 2004-03-03  Nicolas Pitre <nico@cam.org>
10534
10535         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10536         small negative values.
10537
10538 2004-03-03  Jan Hubicka  <jh@suse.cz>
10539
10540         * cselib.c (hash_table):  Remove GTY marker.
10541         (reg_values): Turn into array.
10542         (used_regs): Likewise.
10543         (n_used_regs): New static variable.
10544         (reg_values_old): Kill.
10545         (clear_table): Update uses of arrays.
10546         (cselib_lookup): Likewise.
10547         (cselib_record_set): Likewise.
10548         (cselib_init): Likewise.
10549         (cselib_finish): Likewise.
10550         (cselib_udpate_varray_sizes): Kill.
10551         * cselib.h (cselib_update_varray_sizes): Kill.
10552
10553 2004-03-03  Paul Brook  <paul@codesourcery.com>
10554
10555         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10556
10557 2004-03-03  Jan Hubicka  <jh@suse.cz>
10558
10559         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10560         Rename from ...; make statistics transparent.
10561         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10562         (loc_descriptor): New structure.
10563         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10564         add_statistics):
10565         New static function.
10566         (ggc_record_overhead, dump_statistics): New global function.
10567         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10568         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10569         from ...; accept locations
10570         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10571         ggc_realloc, ggc_alloc_typed):  ... this one.
10572         from ...; accept locations
10573         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10574         ggc_alloc_stat): Rename from ... ; pass locations
10575         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10576         ... this one.
10577         (ggc_alloc_stat): Record overehead.
10578         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10579         ggc_realloc, ggc_alloc_typed):  Turn to macros
10580         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10581         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10582         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10583         * langhooks.h (lhd_make_node): Declare.
10584         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10585         * langhooks.c (lhd_make_node): New.
10586         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10587         locations.
10588         (rtx_alloc, swallow_copy_rtx): ... this one.
10589         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10590         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10591         * toplpev.c (finalize): Dump stats.
10592         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10593         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10594         Rename from ... ; pass locators.
10595         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10596         build?,  build_decl): Declare.
10597         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10598         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10599         Declare.
10600         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10601         build?,  build_decl): New macros.
10602         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10603         * statistics.h: New file.
10604
10605 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10606             Richard Sandiford  <rsandifo@redhat.com>
10607
10608         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10609         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10610         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10611         * config/mips/mips.c (mips_output_division): Fill the branch delay
10612         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10613         TARGET_FIX_R4400.
10614         (mips_output_division): Adjust accordingly.
10615         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10616         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10617
10618 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10619
10620         * alias.c (rtx_equal_for_memref_p): Use predicates
10621         to test rtx classes and new rtx class codes, possibly
10622         splitting conditionals that tested against '<' and 'o'.
10623         * caller-save.c (save_call_clobbered_regs): Likewise.
10624         * combine.c (contains_muldiv, find_split_point, subst,
10625         combine_simplify_rtx, simplify_if_then_else,
10626         simplify_set, simplify_logical, expand_compound_operation,
10627         make_compound_operation, if_then_else_cond, known_cond,
10628         apply_distributive_law, cached_nonzero_bits,
10629         cached_num_sign_bit_copies, simplify_shift_const,
10630         gen_binary, simplify_comparison, update_table_tick,
10631         record_value_for_reg, get_lsat_value_validate): Likewise.
10632         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10633         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10634         Likewise.
10635         * emit-rtl.c (copy_insn_1): Likewise.
10636         * expr.c (force_operand): Likewise.
10637         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10638         * flow.c (notice_stack_pointer_modification_1,
10639         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10640         and_reg_cond, elim_reg_cond): Likewise.
10641         * function.c (update_epilogue_consts): Likewise.
10642         * genattrtab.c (attr_rtx_1): Likewise.
10643         * genopinit.c (gen_insn): Likewise.
10644         * integrate.c (subst_constants): Likewise.
10645         * jump.c (reversed_comparison_code_parts,
10646         reversed_comparison_code, delete_related_insns,
10647         rtx_renumbered_equal_p): Likewise.
10648         * local-alloc.c (block_alloc): Likewise.
10649         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10650         canonicalize_condition): Likewise.
10651         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10652         Likewise.
10653         * optabs.c (add_equal_node, expand_binop): Likewise.
10654         * predict.c (estimate_probability): Likewise.
10655         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10656         * recog.c (validate_replace_rtx_1, comparison_operator,
10657         offsettable_address_p, constrain_operands): Likewise.
10658         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10659         Likewise.
10660         * regclass.c (scan_one_insn): Likewise.
10661         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10662         * regrename.c (kill_autoinc_value): Likewise.
10663         * reload.c (find_reusable_reload, find_reloads,
10664         reg_overlap_mentioned_for_reload_p): Likewise.
10665         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10666         * rtl.c (copy_rtx): Likewise.
10667         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10668         * rtlanal.c (commutative_operand_precedence): Likewise.
10669         * sched-deps.c (conditions_mutex_p): Likewise.
10670         * sched-rgn.c (is_cfg_nonregular): Likewise.
10671         * simplify-rtx.c (simplify_gen_binary,
10672         simplify_gen_relational, simplify_replace_rtx,
10673         simplify_unary_operation, simplify_binary_operation,
10674         simplify_ternary_operation, simplify_rtx): Likewise.
10675         * unroll.c (reg_dead_after_loop): Likewise.
10676         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10677         print_operand): Likewise.
10678         * config/arc/arc.c (proper_comparison_operator): Likewise.
10679         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10680         Likewise.
10681         * config/avr/avr.c (_reg_unused_after): Likewise.
10682         * config/frv/frv.c (frv_ifcvt_modify_tests,
10683         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10684         * config/i386/i386.c (ix86_comparison_operator,
10685         ix86_carry_flag_operator, fcmov_comparison_operator,
10686         arith_or_logical_operator, print_operand,
10687         ix86_expand_binary_operator, ix86_binary_operator_ok):
10688         Likewise.
10689         * config/i386/i386.md: Likewise.
10690         * config/ia64/ia64.c (not_postinc_memory_operand,
10691         ia64_print_operand, update_set_flags, errata_emit_nops):
10692         Likewise.
10693         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10694         CONSTRAINT_OK_FOR_S): Likewise.
10695         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10696         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10697         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10698         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10699         Likewise.
10700         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10701         eqne_comparison_operator, signed_comparison_operator):
10702         Likewise.
10703         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10704         Likewise.
10705         * config/mmix/mmix (mmix_foldable_comparison_operator,
10706         mmix_comparison_operator): Likewise.
10707         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10708         * config/rs6000/rs6000.c (stmw_operation,
10709         branch_comparison_operator, trap_comparison_operator,
10710         ccr_bit): Likewise.
10711         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10712         * config/s390/s390.c (s390_alc_comparison,
10713         s390_slb_comparison):L Likewise.
10714         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10715         Likewise.
10716         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10717         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10718         emit_hard_tfmode_operation, reg_unused_after)
10719         * doc/md.texi, doc/rtl.texi: Likewise.
10720
10721         * ra-debug.c: Add 2004 to list of copyright years.
10722         * unroll.c: Likewise.
10723
10724         * combine.c (simplify_logical): Remove dummy test,
10725         (apply_distributive_law): Fix typo in comment.
10726         GET_CODE (x) == AND so x is a commutative binary op.
10727         * jump.c (delete_related_insns): simplify loop
10728         condition, move testing of RTX codes inside the loop.
10729         (rtx_renumbered_equal_p): do not use RTX_CODE.
10730         * rtl.c (rtx_class): Declare as enum rtx_class.
10731         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10732         Move to RTX_COMM_COMPARE class.
10733         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10734         Move to RTX_CONST_OBJ class.
10735         * rtl.h (enum rtx_class): New declaration,
10736         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10737         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10738         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10739         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10740         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10741         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10742         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10743         OBJECT_P): New macros.
10744         * config/sparc/sparc.c (noov_compare_op): Remove register
10745         from parameter.
10746
10747 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10748
10749         * target.h: Remove texi jargons in comments.
10750
10751 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10752
10753         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10754         threshold to 0x4f.
10755
10756         Revert:
10757         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10758         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10759         as well.
10760         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10761         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10762
10763 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10764
10765         * doc/md.texi (cbranchmode4): New.
10766
10767 2004-03-02  Eric Christopher  <echristo@redhat.com>
10768
10769         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10770         fix_trunc.
10771         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10772         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10773         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10774         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10775
10776 2004-03-02  Richard Henderson  <rth@redhat.com>
10777
10778         PR middle-end/11767
10779         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10780         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10781         before the compare, if flag_non_call_exceptions.
10782
10783 2004-03-02  Richard Henderson  <rth@redhat.com>
10784
10785         PR middle-end/14327
10786         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10787         emitting the label, not after.
10788
10789 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10790
10791         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10792         (m68hc11_mov_addr_mode): Likewise.
10793         (m68hc11_override_options): Initialize them based on target.
10794         (register_indirect_p): Allow a MEM for indirect addressing modes and
10795         use flags to control what is allowed.
10796         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10797         supported addressing modes.
10798         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10799         (go_if_legitimate_address_internal): Likewise.
10800         (m68hc11_indirect_p): Likewise and check the mode.
10801         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10802
10803 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10804
10805         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10806         (expand_builtin_setjmp_setup): Use
10807         targetm.builtin_setjmp_frame_value instead of
10808         BUILTIN_SETJMP_FRAME_VALUE.
10809         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10810         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10811         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10812         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10813         * targhooks.c (default_builtin_setjmp_frame_value): New.
10814         * targhooks.h: Add a prototype for
10815         default_builtin_setjmp_frame_value.
10816         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10817         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10818
10819 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10820
10821         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10822         sequences of moves.
10823         (add peepholes): New peepholes to optimize sequences adding small
10824         constants.
10825         (bset peepholes): New peepholes to transform an OR in a bset form
10826         (bclr peepholes): Likewise for bclr form.
10827         (cmp peepholes): New peepholes to avoid register copies when comparing.
10828
10829 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10830
10831         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10832         to separate push from moves.
10833         ("*pushdf_internal"): Likewise.
10834         ("*pushsf_internal"): Likewise.
10835         ("*pushsi_internal"): Likewise.
10836         ("movdi_internal"): Use define_insn_and_split; non push operand.
10837         ("movdf_internal"): Likewise.
10838         ("movsf_internal"): Likewise.
10839         ("movsi_internal"): Likewise.
10840         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10841         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10842         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10843
10844 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10845
10846         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10847         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10848         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10849         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10850         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10851         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10852         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10853         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10854         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10855         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10856         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10857
10858 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10859
10860         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10861         (SOFT_XY_REGNUM): Define.
10862         (cmp split): Use the above instead of hard coded numbers.
10863         (8-bit op split): No need to check the mode; allow Q_REG.
10864         (ashift split): Adjust the first operand if it uses the SP and we
10865         are pushing the shifted value.
10866         (plus shift split): Fix when a source is in register D+X.
10867         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10868
10869 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10870
10871         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10872         comparing with Z register.
10873
10874 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10875
10876         * cfgloop.h (struct loop_desc): Removed.
10877         (struct loop): Fields simple, desc and has_desc removed.
10878         (simple_loop_p, count_loop_iterations): Declaration removed.
10879         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10880         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10881         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10882         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10883         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10884         simple_condition_p, simple_increment, count_strange_loop_iterations,
10885         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10886         Removed.
10887         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10888
10889 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10890
10891         * genattrtab.c: Don't handle MATCH_INSN.
10892         * genrecog.c: Likewise.
10893         * gensupport.c: Likewise.
10894         * rtl.def (match_insn): Remove.
10895         * doc/md.texi (match_insn, match_insn2): Remove.
10896
10897 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10898
10899         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10900         macro results in memory allocation.
10901
10902 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10903
10904         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10905         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10906         %(fbsd_dynamic_linker),
10907         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10908         config/i386/freebsd.h
10909         * config/arm/freebsd.h: Ditto.
10910         * config/i386/freebsd.h: Ditto.
10911         * config/i386/freebsd64.h: Ditto.
10912         * config/ia64/freebsd.h: Ditto.
10913         * config/rs6000/sysv4.h: Ditto.
10914         * config/sparc/freebsd.h: Ditto.
10915
10916 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10917
10918         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10919
10920 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10921
10922         * rtl.def (define_combine): Remove.
10923
10924 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10925
10926         * config/h8300/h8300.md: Tweak formatting.
10927
10928 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10929
10930         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10931         *cmphi_h8300_znvc.
10932         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10933
10934 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10935
10936         PR bootstrap/14356
10937         * gcc.c (process_command): Remove const-qualification from argv.
10938         (main): Likewise.
10939
10940 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10941
10942         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10943         pushqi1_h8300hs_advanced.  Adjust its caller.
10944         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10945         Adjust its caller.
10946
10947 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10948
10949         * Makefile.in (install-libgcc, install-multilib): Pass
10950         mkinstalldirs var to libgcc.mk.
10951
10952 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10953
10954         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10955         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10956
10957 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10958
10959         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10960         * config/h8300/h8300.md: Split several peephole2's, each into
10961         two.
10962
10963 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10964
10965         * dominance.c (recount_dominator): Handle postdominators.
10966
10967 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10968
10969         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10970         (NUM_SYMBOL_TYPES): Likewise.
10971         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10972         (mips_unspec_address): Declare.
10973         (mips_gotoff_page, mips_gotoff_global): Delete.
10974         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10975         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10976         (mips_symbolic_constant_p, mips_symbolic_address_p)
10977         (mips_symbol_insns): Handle new symbol types.
10978         (general_symbolic_operand): New predicate.
10979         (mips_unspec_address): Make extern.
10980         (mips_gotoff_page, mips_gotoff_global): Delete.
10981         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10982         Handle new symbol types.
10983         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10984         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10985         mips_unspec_address directly.
10986         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10987         the documentation of -mexplicit-relocs.
10988
10989 2004-03-01  Jeff Law  <law@redhat.com>
10990
10991         * fold-const.c (fold): An equality comparison of a non-weak object
10992         against zero has a known result.  Similarly an equality comparison
10993         of the address of two non-weak, unaliased symbols has a known result.
10994
10995         * ggc-page.c (struct page_entry): New field PREV.
10996         (ggc_alloc): Update PREV field appropriately.
10997         (sweep_pages): Likewise.
10998         (ggc_free): Likewise.  Use PREV field rather than loop to
10999         improve ggc_free performance.
11000
11001 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11002
11003         * config/mips/mips.c (mips_output_division): Use the division
11004         instruction to fill the delay slot of a zero check.
11005         (mips_idiv_insns): Adjust accordingly.
11006
11007 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
11008
11009         * config.gcc: Create a default tmake_file for linux, and use
11010         it in all but two linux clauses.  Comment those two.
11011
11012 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
11013
11014         * combine.c (try_combine):  Do not refer to is_replaced.
11015         (gen_lowpart_for_combine):  Perverse subregs now have a
11016         more politically correct name.
11017         * cse.c (cse_insn): Likewise.
11018         * jump.c: Fix bogus reference to delete_insn.
11019
11020 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
11021
11022         PR debug/14328
11023         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11024         constants as signed values.
11025
11026         PR middle-end/13448
11027         * c-tree.h (readonly_warning): Rename to ...
11028         (readonly_error): ... this.
11029         * c-typeck.c (build_unary_op): Adjust accordingly.
11030         (readonly_warning): Rename to ...
11031         (readonly_error): ... this and issue errors, not warnings.
11032         (build_modify_expr): Call readonly_error, not readonly_warning.
11033         (c_expand_asm_operands): Likewise.
11034         * tree-inline.c (optimize_inline_calls): Do not inline functions
11035         after errors have occurred.
11036
11037 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11038
11039         * configure.ac: Rearrange some threading code for clarity;
11040         add section comment.
11041         * configure: Regenerate.
11042
11043 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11044
11045         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11046         typos.
11047         * doc/cppopts.texi: Fix a typo.
11048
11049 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11050
11051         * config/i386/i386.md: Fix formatting.
11052
11053 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11054
11055         * configure.ac: Add some comments delineating sections of code.
11056
11057         * doc/install.texi: Note that libada uses autoconf 2.57 also.
11058
11059         * doc/install.texi: Fix idiot typo in previous commit.
11060
11061         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11062
11063 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11064
11065         * config/h8300/h8300.md: Add comments about peephole2's.
11066
11067 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11068
11069         * config/h8300/h8300.md: Tweak operand numbers of some
11070         peephole2's.
11071
11072 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11073
11074         * config/h8300/h8300.md: Tweak comments about peephole2's.
11075
11076 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
11077
11078         PR middle-end/14203
11079         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11080         instead of testing whether DECL_RTL is not NULL.
11081
11082 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11083
11084         * config/sh/sh.c: Fix formatting.
11085
11086 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11087
11088         * config/sh/sh.c: Convert to ISO-C.
11089
11090 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
11091
11092         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11093         my previous patch.
11094
11095         * config/darwin.h (machopic_finish): Output stub even if the
11096         symbol is already defined.
11097
11098 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11099
11100         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11101
11102 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11103
11104         * genattr.c (main): Don't define
11105         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11106         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11107         (DFA_PIPELINE_INTERFACE): Likewise.
11108         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11109         (DFA_PIPELINE_INTERFACE): Likewise.
11110
11111 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11112
11113         * config/mips/mips.md (tstsi, tstdi): Delete.
11114
11115 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11116
11117         * config/mips/mips.c (override_options): Remove an obsolete
11118         duplicate definition of the "e" constraint.
11119         * config/mips/mips.h: Update a comment accordingly.
11120
11121 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11122
11123         * config/mips/mips.md: Complete the unfinished R4000
11124         multiply/shift errata workaround.  Improve documentation.
11125         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11126         has a hilo hazard.
11127         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11128         (muldi3, muldi3_internal): Likewise.
11129         (muldi3_internal2): Remove, replacing with...
11130         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11131         (mulsidi3): Take the errata into account.
11132         (mulsidi3_32bit): Remove, replacing with...
11133         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11134         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11135         (umulsidi3): Take the errata into account.
11136         (umulsidi3_32bit): Remove, replacing with..
11137         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11138         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11139         TARGET_FIX_R4000.
11140         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11141         (smuldi3_highpart, umuldi3_highpart): Likewise.
11142         * doc/invoke.texi: Document the errata workaround.
11143
11144 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11145
11146         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11147         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11148         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11149         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11150         * config/mips/mips.c (mips_idiv_insns): New function.
11151         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11152         (mips_output_division): Add a workaround for the R4000 divide/shift
11153         errata.
11154         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11155         the length of an "idiv" instruction.
11156         * doc/invoke.texi: Document the new switches.
11157
11158 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11159
11160         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11161         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11162
11163 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11164
11165         PR optimization/14229
11166         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11167
11168 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11169
11170         * fold-const.c (fold): Strip NOPs that change the signedness
11171         for RSHIFT too.  Expand comment.
11172
11173 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11174
11175         PR optimization/7871
11176         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11177         from or to call insns.
11178
11179 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11180
11181         PR optimization/7871
11182         * flow.c (propagate_one_insn): Interpret calls as setting global
11183         registers, not merely clobbering them.
11184
11185 2004-02-27  Dale Johannesen  <dalej@apple.com>
11186
11187         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11188         config/darwin-protos.h:  Ditto.
11189         config/darwin.h:  Remove call to it.
11190         * combine.c (distribute_notes): Do not place a REG_DEAD note
11191         when value is both set and used.
11192
11193 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11194
11195         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11196         as well.
11197         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11198         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11199
11200 2004-02-27  Andrew Pinski  <apinski@apple.com>
11201
11202         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11203         Speedup common case of the type values being in the same order.
11204
11205 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11206
11207         * config/ia64/ia64.h (no-inline-float-divide): New option.
11208         * config/ia64/ia64.h (no-inline-int-divide): New option.
11209         * config/ia64/ia64.h (no-inline-sqrt): New option.
11210         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11211         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11212         * config/ia64/ia64.c (ia64_override_options): Modify error
11213         checking for inlined division/sqrt.
11214
11215 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11216
11217         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11218         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11219         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11220         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11221         copyright.
11222
11223 2004-02-27  Paul Brook  <paul@codesourcery.com>
11224
11225         * function.c (assign_parms): Don't count pretend args for alignment.
11226
11227 2004-02-27  Richard Henderson  <rth@redhat.com>
11228
11229         * passes.c: New file.
11230         * Makefile.in (OBJS-common): Add it.
11231         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11232         * flags.h (rtl_dump_and_exit): ... here.
11233         * output.h (size_directive_output, last_assemble_variable_decl):
11234         Move from toplev.c.
11235         * rtl.h (reg_alloc): Move from toplev.c.
11236         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11237         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11238         open_dump_file, close_dump_file, rest_of_decl_compilation,
11239         rest_of_type_compilation, rest_of_handle_final,
11240         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11241         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11242         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11243         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11244         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11245         rest_of_handle_tracer, rest_of_handle_if_conversion,
11246         rest_of_handle_if_after_combine, rest_of_handle_web,
11247         rest_of_handle_branch_prob,
11248         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11249         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11250         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11251         rest_of_handle_null_pointer, rest_of_handle_combine,
11252         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11253         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11254         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11255         (decode_d_option): Use enable_rtl_dump_file.
11256         (compile_file, finalize, do_compile): Move profile+combine+graph
11257         cleanup to finish_optimization_passes.
11258         * toplev.h (init_optimization_passes, finish_optimization_passes,
11259         enable_rtl_dump_file): Declare.
11260
11261 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11262             Roger Sayle  <roger@eyesopen.com>
11263
11264         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11265         operands to build a tree with swapped operands.
11266         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11267         'unsignedp' predicate to specify the signedness.
11268
11269 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11270
11271         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11272         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11273         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11274         comment typos and formatting.  Follow spelling conventions.
11275
11276 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11277
11278         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11279         fix_truncsfsi2.
11280
11281         * config/rs6000/spe.md: Delete spe_efsctuiz.
11282         Add spe_fixuns_truncsfsi2.
11283         Add spe_fix_truncsfsi2.
11284
11285 2004-02-26  Eric Christopher  <echristo@redhat.com>
11286
11287         * c-lex.c (c_lex_string_translate): New variable.
11288         (lex_string): Use to determine string translation.
11289         * c-pragma.h: Prototype.
11290         * c-parse.in (start_string_translation): New. Set above.
11291         (stop_string_translation): Ditto.
11292         (attribute, attribute_list, asm_def, asm_stmt,
11293         asm_operand): Use above functions.
11294         * cp/parser.c (cp_parser_declaration): Translate strings
11295         unless token is RID_EXTERN. Set c_lex_string_translate
11296         for recursive use.
11297         (cp_parser_asm_definition): Only translate argument strings
11298         to asms.
11299         (cp_parser_asm_operand_list): Ditto.
11300         (cp_parser_attribute_list): Do not translate attribute strings.
11301
11302 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11303
11304         * stmt.c (expand_start_case_dummy): Remove.
11305         * tree.h: Remove the corresponding prototype.
11306
11307 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11308
11309         * builtins.c (apply_args_register_offset): Remove.
11310         * tree.h: Remove the corresponding prototype.
11311
11312 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11313
11314         * stor-layout.c (is_pending_size): Remove.
11315         * tree.h: Remove the corresponding prototype.
11316
11317 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11318
11319         * recog.c (validate_replace_src): Remove.
11320         * recog.h: Remove the corresponding prototype.
11321
11322 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11323
11324         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11325         MAYBE_REG_PARM_STACK_SPACE.
11326         * function.c: Likewise.
11327         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11328         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11329         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11330         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11331
11332 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11333
11334         * c-decl.c (c_expand_deferred_function): Remove.
11335         * c-tree.h: Remove the corresponding prototype.
11336
11337 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11338
11339         * postreload.c (reload_cse_move2add): Generate just a PLUS
11340         instead of an entire SET.
11341
11342 2004-02-26  Jan Hubicka  <jh@suse.cz>
11343
11344         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11345         /pentium4m.
11346         * i386.c (override_options): Add support for new CPUs.
11347         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11348         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11349         constants.
11350         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11351
11352 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11353
11354         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11355
11356 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11357
11358         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11359         (sparc_emit_fixunsdi): New prototype.
11360         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11361         (sparc_emit_fixunsdi): New function.
11362         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11363         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11364         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11365         to sparc_emit_floatunsdi.
11366         (fixuns_truncsfdi2): New expander.
11367         (fixuns_truncdfdi2): Likewise.
11368
11369 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11370
11371         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11372         unless HAVE_cc0.
11373
11374 2004-02-25  Richard Henderson  <rth@redhat.com>
11375
11376         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11377         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11378         use (op0-op1) == 0 if op0 is a pointer.
11379         * config/alpha/alpha.md (cmpdi): Use some_operand.
11380         (three comparison combine splits): Remove.
11381
11382 2004-02-25  Richard Henderson  <rth@redhat.com>
11383
11384         PR c/12794
11385         * c-common.c (handle_alias_attribute): Reject the attribute if
11386         current_function_decl is set.
11387
11388 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11389
11390         * config.gcc: Add comment describing extra_gcc_objs.
11391         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11392         * configure.ac (extra_gcc_objs): New substitution variable.
11393         (host_extra_gcc_objs): Don't substitute.
11394         * configure: Regenerate.
11395         * Makefile.in: Use extra_gcc_objs.
11396
11397 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11398
11399         * doc/contrib.texi: Add an entry for myself.
11400
11401 2004-02-25  Jan Hubicka  <jh@suse.cz>
11402
11403         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11404         * cfgbuild.c (make_eh_edge):  Make global.
11405         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11406         * except.c (build_post_landing_pads, connect_post_landing_pads,
11407         dw2_build_landing_pads, sjlj_emit_function_enter,
11408         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11409         sjlj_build_landing_pads): Update CFG.
11410         (emit_to_new_bb_before): New function.
11411         (finish_eh_generation): Do not rebuild the CFG.
11412
11413 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11414
11415         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11416         target_cpu_default defines.
11417         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11418         * pa.h (TARGET_DEFAULT): Likewise.
11419
11420 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11421
11422         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11423         comparisons with regard to signedness.
11424
11425 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11426
11427         * arm.c (thumb_legitimize_address): New function.
11428         * arm-protos.h: Prototype it.
11429         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11430         (LEGITIMIZE_ADDRESS): Use it.
11431
11432 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11433
11434         * reload1.c (reload): Only spill eliminable register with multiple
11435         adjacent elimination alternatives if all alternatives fail.
11436
11437 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11438
11439         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11440         is -4095...+4095 inclusive.
11441
11442 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11443
11444         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11445         the bootstrap failure with Sun CC 5.4 and 5.5.
11446
11447 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11448
11449         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11450         which modifies NEWREG.
11451         (cse_condition_code_reg): Update the mode of CC_REG in
11452         CC_SRC_INSN on our own.
11453
11454 2004-02-24  Michael Matz  <matz@suse.de>
11455
11456         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11457         regparm attributes.
11458
11459 2004-02-24  Richard Henderson  <rth@redhat.com>
11460
11461         * toplev.c (dump_file_tbl): Rename from dump_file.
11462         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11463         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11464         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11465         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11466         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11467         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11468         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11469         s/rtl_dump_file/dump_file/g.
11470
11471 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11472
11473         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11474         (spe_fixuns_truncsfsi2): Delete.
11475
11476         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11477         (fixuns_truncsfsi2): Delete.
11478
11479 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11480
11481         PR/14240
11482         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11483
11484 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11485
11486         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11487
11488 2004-02-24  Jason Merrill  <jason@redhat.com>
11489
11490         * tree.c (check_qualified_type): New fn.
11491         (get_qualified_type): Use it.  If type already has the desired
11492         quals, just return it.
11493         * tree.h: Declare it.
11494
11495 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11496
11497         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11498         TARGET_SCHED_FINISH_GLOBAL): New macros.
11499
11500         * target.h (md_init_global, md_finish_global): Function
11501         declarations corresponding to new target macros.
11502
11503         * haifa-sched.c (sched_init, sched_finish): Allow target to
11504         call the new schedular hooks.
11505
11506         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11507         call to update_life_info.
11508
11509         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11510         flag_schedule_insns for SH4.
11511
11512         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11513         find_set_regmode_weight, find_insn_regmode_weight,
11514         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11515         sh_variable_issue, high_pressure, ready_reorder,
11516         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11517         functions used to throttle the insn movement in first
11518         scheduling pass for SH.
11519
11520         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11521         TARGET_SCHED_FINISH_GLOBAL.
11522
11523 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11524
11525         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11526         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11527         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11528         symbols in sections named by the user.
11529         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11530         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11531         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11532         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11533         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11534         the above.
11535         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11536         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11537         one more pseudo to further improve code generation.
11538         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11539         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11540         inside UNSPEC.
11541         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11542         * config/frv/frv.c (frv_legitimate_address_p): Added
11543         allow_double_reg_p argument.  Adjust all callers.  Use it to
11544         decide whether to enable double-register indirect addressing.
11545         (frv_funcdesc_alias_set): Remove.
11546         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11547         register.  Emit movdi_ldd.
11548         (ldd_address_operand): New.
11549         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11550         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11551         (PREDICATE_CODES): Add ldd_address_operand.
11552         * config/frv/frv.md (movdi_ldd): New.
11553         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11554         intermediate computations if possible.
11555         (symGOTOFF2reg_i): Fix harmless typo.
11556         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11557         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11558         relocated p_vaddr to vaddr type.
11559         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11560         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11561         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11562         MEM, or use a funcdesc alias set.  Use regular move instead of
11563         ldd.
11564         (dbl_memory_one_insn_operand): Recognize function descriptors by
11565         type or by alias set, and don't split them.
11566         * config/frv/frv.md (call, call_value): Never use call_internal
11567         for fdpic.
11568         (call_internal, call_value_internal): Never match for FDPIC.
11569         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11570         call_value_fdpicsi): Require FDPIC.
11571         (ldd): Removed.
11572         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11573         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11574         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11575         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11576         FDPIC.  Compute data base address.
11577         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11578         before the other self-specs are processed.
11579         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11580         Build with -fPIC.
11581         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11582         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11583         inhibit_libc is defined.
11584         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11585         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11586         __FRV_FDPIC__.
11587         (__RELOC_POINTER): Define.
11588         (_Unwind_IteratePhdrCallback): Use it.
11589         * config/frv/frv.h (Twrite): Define.
11590         (TRANSFER_FROM_TRAMPOLINE): Use it.
11591         * config/frv/linux.h (INVOKE__main): Undefine.
11592         (Twrite): Override.
11593         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11594         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11595         (-mlibrary-pic): Emphasize that this option generates EABI code.
11596         (-mcpu): Add fr550.
11597         (-mpack): Remove.
11598         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11599         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11600         and CONSTs in FDPIC mode.
11601         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11602         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11603         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11604         constants.
11605         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11606         rather than 'i' constraint for the 2-instruction alternative.
11607         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11608         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11609         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11610         EXTRA_CONSTRAINT_FOR_Y.
11611         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11612         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11613         (addsi3): Change 'Y' constraint to 'Q'.
11614         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11615         * reload.c (CONST_POOL_OK_P): New macro.
11616         (find_reloads): Use it to decide whether a constant can be forced
11617         into memory.
11618         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11619         constant satisfies got12_operand.
11620         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11621         (frv_legitimate_address_p): Check for valid unspec offsets using
11622         got12_operand rather than frv_legitimate_fdpic_operand_p.
11623         (frv_legitimate_fdpic_operand_p): Delete.
11624         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11625         or after reload.
11626         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11627         TARGET_FDPIC.
11628         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11629         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11630         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11631         (frv_fdpic_fptr_operand): Don't declare here.
11632         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11633         rather than fdpic_got12_operand.
11634         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11635         got12_operand and const_unspec_operand.
11636         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11637         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11638         (symbolic_operand): Remove.
11639         (const_unspec_operand): New predicate.
11640         * config/frv/frv.md (*movsi_got): Use got12_operand.
11641         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11642         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11643         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11644         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11645         * config/frv/frv.c (frv_unspec): New structure.
11646         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11647         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11648         validate CONST indices.  Use frv_output_const_unspec to print them.
11649         (frv_print_operand): Update call to unspec_got_name.  Use
11650         frv_output_const_unspec to print constant unspecs.
11651         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11652         Reject UNSPECs otherwise.
11653         (unspec_got_name): Take the relocation number as argument, not an
11654         rtx containing it.
11655         (frv_output_addr_const_extra): Remove, replacing with...
11656         (frv_output_const_unspec): ...this new function.
11657         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11658         (gpr_or_int12_operand): Use fdpic_got12_operand.
11659         (dbl_memory_one_insn_operand): Likewise.
11660         (fdpic_got12_operand): Use frv_const_unspec_p.
11661         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11662         are already legitimate.  Use frv_small_data_reloc_p when deciding
11663         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11664         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11665         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11666         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11667         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11668         label, for real this time.
11669         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11670         representation of visibility.
11671         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11672         such.
11673         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11674         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11675         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11676         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11677         it was explicitly disabled.
11678         (frv_stack_info): There is no need to save the link register in every
11679         frame unless TARGET_LINKED_FP is true.
11680         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11681         frame pointer if the stack pointer might change value.
11682         (frv_return_addr_rtx): Check and process "count" argument.
11683         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11684         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11685         (frv_find_base_term): Declare.
11686         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11687         (FIND_BASE_TERM): Define.
11688         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11689         small_data_register_operand, small_data_symbolic_operand.  Add
11690         symbolic_operand.
11691         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11692         (frv_print_operand_memory_reference, output_move_single): Remove
11693         special handling for unlegitimized sdata addresses.
11694         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11695         and symbolic addresses.
11696         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11697         (frv_find_base_term): New function.
11698         (int_2word_operand): Check specifically for symbolic address constants.
11699         (pic_register_operand, pic_symbolic_operand): Delete.
11700         (small_data_register_operand, small_data_symbolic_operand): Delete.
11701         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11702         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11703         (move_source_operand): Only accept CONSTs if they're a two-insn
11704         symbolic constant.
11705         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11706         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11707         using gen_symGOTOFF2reg*.
11708         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11709         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11710         themselves a cost of 3 insns.
11711         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11712         Change predicate to symbolic_operand.
11713         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11714         (*movsi_lda_sdata): Delete.
11715         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11716         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11717         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11718         frv-*-*linux*.
11719         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11720         label.
11721         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11722         -multilib-library-pic.
11723         (LINK_SPEC): Add -z text for -mfdpic.
11724         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11725         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11726         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11727         Override.
11728         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11729         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11730         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11731         crtstuff-generated files.
11732         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11733         * config.gcc: Add frv-*-*linux*.
11734         * config/frv/linux.h, config/frv/t-linux: New.
11735         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11736         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11737         when -mfdpic even if a linker script is explicitly listed.
11738         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11739         * config/frv/frv.c (frv_override_options): Clear asm_out
11740         unaligned_op for SImode on FDPIC.
11741         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11742         argument passed to decl_readonly_section.
11743         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11744         whole block run with FDPIC even with -fno-PIC.
11745         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11746         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11747         symbol or label plus offset to memory.
11748         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11749         GOTOFF and GPREL for LABEL_REF.
11750         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11751         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11752         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11753         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11754         * doc/invoke.texi: Document them.
11755         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11756         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11757         (frv_splittable_got_operand): Removed.
11758         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11759         LO_SUM.  Add comments.
11760         (frv_override_options): Moved enabling of FDPIC to
11761         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11762         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11763         (frv_legitimize_fdpic_address): Don't duplicate logic in
11764         frv_emit_movsi.
11765         (frv_gen_GPsym2reg): New.
11766         (unspec_got_name): Added gprel.
11767         (frv_expand_fdpic_call): Add support for inlining PLTs.
11768         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11769         (gpr_or_int12_operand): Added GPREL12.
11770         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11771         (small_data_symbolic_operand): Fail if FDPIC.
11772         (fdpic_splittable_got_operand): Removed.
11773         (fdpic_got12_operand): Added GPREL12.
11774         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11775         when appropriate.  Fix sdata GOTOFF.
11776         (frv_legitimate_constant_p): Require legitimate PIC operand for
11777         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11778         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11779         flag_pic case.
11780         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11781         frv_assemble_integer fails.
11782         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11783         (SUBTARGET_DRIVER_SELF_SPECS): New.
11784         (ASM_SPEC): Don't pass -mno-fdpic.
11785         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11786         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11787         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11788         -multilib-library-pic.
11789         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11790         condexec_si_media_operator, condexec_sf_add_operator and
11791         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11792         and condexec_sf_unary_operator.
11793         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11794         New.
11795         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11796         movsi_internal.  Give them internal names.  movsi_got has type
11797         int.
11798         (fdpic got splitters): Remove.
11799         (symGPREL2reg, symGPREL2reg_hilo): New.
11800         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11801         to -mlibrary-pic.  Map -multilib-library-pic to it.
11802         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11803         Document.
11804         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11805         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11806         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11807         (frv_cannot_force_const_mem): New function.
11808         (const_small_data_p, plus_small_data_p): Update comments on sdata
11809         on FDPIC.
11810         (frv_override_options): Set flag_pie for FDPIC too.
11811         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11812         call-saved registers on FDPIC.
11813         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11814         don't force LR to be preserved.
11815         (frv_expand_prologue): Likewise.
11816         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11817         (frv_frame_pointer_required): Don't force it just because the
11818         FDPIC register is used.
11819         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11820         operand only if !condexec_p.
11821         (frv_legitimize_address): Return the FDPIC-legitimized address.
11822         Don't match small data here on FDPIC.
11823         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11824         symbols.  Use TRUE/FALSE instead of 1/0.
11825         (frv_local_funcdesc_p): New.
11826         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11827         immediates when possible.
11828         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11829         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11830         an UNSPEC_GOT.
11831         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11832         12-bit immediates when possible.
11833         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11834         are not legitimate pic operands.
11835         (frv_in_small_data_p): Re-enable for FDPIC.
11836         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11837         (FRV_GLOBAL_P): Removed.
11838         * config/frv/frv.md: Add modes to CONSTs.
11839         (movsi_got): New.
11840         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11841         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11842         (fdpic splittable operations): Match on flag_pic != 1.
11843         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11844         * config/frv/frv.c (frv_asm_out_constructor,
11845         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11846         bytes, not bits.
11847         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11848         * config/frv/frv.c (frv_assemble_integer): Reject complex
11849         expressions referencing function SYMBOL_REFs.
11850         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11851         (move_source_operand): Reject CONSTs that reference function
11852         SYMBOL_REFs on FDPIC.
11853         (frv_emit_movsi): If we get such a CONST, break it up.
11854         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11855         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11856         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11857         MEM.
11858         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11859         (frv_trampoline_size): Increase for FDPIC.
11860         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11861         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11862         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11863         Disable use of GOTOFF for now.
11864         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11865         Disable use of small data in FDPIC for now.
11866         (frv_asm_output_mi_thunk): Implement for FDPIC.
11867         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11868         * config/frv/frv.c (frv_asm_out_constructor): Use
11869         frv_assemble_integer for FDPIC pointers.
11870         (frv_asm_out_destructor): Likewise.
11871         * config/frv/frv.md (ldd): Fix order of operands.  Use
11872         address_operand for input.
11873         2003-09-18  DJ Delorie  <dj@redhat.com>
11874         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11875         (unspec_got_name): Correct typo.
11876         (frv_emit_movsi): Pre-expand splittable GOTs.
11877         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11878         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11879         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11880         * config/frv/t-frv: Add -mfdpic multilibs.
11881         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11882         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11883         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11884         flag_pic, default to 32-bit pics, require DWORD ops.
11885         (frv_override_options): Add W and Z constraints.
11886         (frv_expand_prologue): No pic prologue for -mfdpic.
11887         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11888         (frv_print_operand_memory_reference): Handle GOT constants.
11889         (frv_legitimate_address_p): Allow GOT constants.
11890         (frv_legitimize_address): Handle GOT addresses too.
11891         (frv_legitimate_fdpic_operand_p): New.
11892         (frv_legitimize_fdpic_address): New.
11893         (unspec_got_name): New.
11894         (frv_output_addr_const_extra): New.
11895         (frv_expand_fdpic_call): New.
11896         (frv_fdpic_fptr_operand): New.
11897         (gpr_or_int12_operand): Handle GOT operands.
11898         (int_2word_operand): Handle GOT operands.
11899         (fdpic_operand): New.
11900         (fdpic_splittable_got_operand): New.
11901         (fdpic_got12_operand): New.
11902         (frv_emit_movsi): Handle GOT operands.
11903         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11904         (frv_print_operand): Support 'g' code for GOT operands.
11905         * config/frv/frv-protos.h: Add prototypes as needed.
11906         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11907         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11908         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11909         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11910         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11911         R_FRV_GOTOFFLO): New.
11912         (movsi_high_got, movsi_lo_sum_got): New.
11913         (*movsi_pic): Don't use this splitter for -mfdpic.
11914         (addsi3): Allow GOT references also.
11915         (call, call_value): Handle -mfdpic separately.
11916         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11917         call_value_fdpicsi): New.
11918         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11919         symGOTOFF2reg_i): New.
11920         * config/frv/frv.h (MASK_FDPIC): New.
11921         (TARGET_FDPIC): New.
11922         (TARGET_SWITCHES): Add -mfdpic.
11923         (FDPIC_FPTR_REGNO): New.
11924         (FDPIC_REGNO): New.
11925         (OUR_FDPIC_REG): New.
11926         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11927         FDPIC_CALL_REGS.
11928         (REG_CLASS_NAMES): Likewise.
11929         (REG_CLASS_CONTENTS): Likewise.
11930         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11931         (EXTRA_CONSTRAINT): Add it here.
11932         (FRV_GLOBAL_P): New.
11933         (OUTPUT_ADDR_CONST_EXTRA): New.
11934
11935 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11936
11937         * config/sparc/sparc.h: Remove commented-out definitions of
11938         TARGET_EDOM and GEN_ERRNO_RTX.
11939
11940 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11941
11942         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11943         df_analyse with df_analyze.
11944
11945 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11946
11947         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11948         beginning of block.
11949
11950 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11951
11952         * calls.c (precompute_arguments): Update comment.
11953
11954 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11955
11956         * et-forest.c: Replace et_occurences with et_occurrences.
11957
11958 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11959
11960         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11961         with iv_analyze.
11962
11963 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11964
11965         * config/i386/i386.c: Rename pni to sse3.
11966         * config/i386/i386.h: Likewise.
11967         * config/i386/i386.md: Likewise.
11968         * config/i386/pmmintrin.h: Likewise.
11969         * doc/extend.texi: Likewise.
11970         * doc/invoke.texi: Likewise.
11971
11972 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11973             Kazu Hirata  <kazu@cs.umass.edu>
11974
11975         Remove -fwritable-strings.
11976         * c-common.c (fix_string_type): Don't check
11977         flag_writable_strings.
11978         (fix_string_type): Likewise.
11979         * c-opts.c (set_std_c89): Don't initialize
11980         flag_writable_strings.
11981         (set_std_c99): Likewise.
11982         * common.opt (fwritable-strings): Remove.
11983         * flags.h: Remove the external declaration of
11984         flag_writable_strings.
11985         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11986         Remove.
11987         * toplev.c (flag_writable_strings): Remove.
11988         (f_options): Remove an entry for writable-strings.
11989         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11990         flag_writable_strings.
11991         (compare_constant) <STRING_CST>: Likewise.
11992         (build_constant_desc): Likewise.
11993         * config/darwin.c (machopic_select_section): Likewise.
11994         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11995         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11996         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11997         * config/mips/mips.c (mips_select_section): Likewise.
11998         (mips_encode_section_info): Likewise.
11999         * config/pa/pa.c (pa_select_section): Likewise.
12000         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12001         * config/v850/v850.c (v850_select_section): Likewise.
12002         * doc/invoke.texi (-fwritable-strings): Remove.
12003         (-fno-const-strings): Don't mention -fwritable-strings.
12004         * doc/trouble.texi: Don't mention -fwritable-strings.
12005
12006 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
12007
12008         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12009
12010 2004-02-23  Dale Johannesen  <dalej@apple.com>
12011
12012         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12013         (movdf_hardfloat64):  Ditto.
12014         (movdf_softfloat64):  Ditto.
12015
12016 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
12017         * config/rs6000/rs6000.c (function_arg): call to
12018         rs6000_mixed_function_arg for DFmode moved to allow
12019         normal DFmode incoming register assignment.
12020
12021 2004-02-23  Dale Johannesen  <dalej@apple.com>
12022
12023         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12024         (movdf_hardfloat64):  Ditto.
12025
12026 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12027
12028         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12029         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12030         copyright.
12031
12032 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
12033
12034         PR c/14156
12035         * c-typeck.c (c_expand_return): Change check for VAR_DECL
12036         to use DECL_P instead.
12037
12038         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12039         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12040
12041 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12042
12043         * Makefile.in (opts.o): Depend on target.h.
12044         * opts.c (decode_options): Use targetm.default_short_enums
12045         instead of DEFAULT_SHORT_ENUMS.
12046         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12047         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12048         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12049         * target.h (gcc_target): Add default_short_enums.
12050         * config/cris/cris.h: Remove a comment about
12051         DEFAULT_SHORT_ENUMS.
12052         * config/ip2k/ip2k.h: Likewise.
12053         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12054         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
12055
12056 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12057             Falk Hueffner  <falk@debian.org>
12058
12059         PR c/14188
12060         * builtins.c (expand_builtin_va_arg): Emit an informative message
12061         if a trap is generated.
12062         * c-typeck.c (build_function_call): Likewise.
12063
12064 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12065
12066         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12067         fopen.
12068         * libgcov.c: Include sys/stat.h.
12069         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12070         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12071         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12072         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12073
12074 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12075
12076         * reorg.c: Remove comments about dead ports.
12077
12078 2004-02-22  Christopher Faylor  <cgf@redhat.com>
12079
12080         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12081         extra host object file when targetting cygwin rather than generic
12082         object files.
12083
12084 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
12085
12086         Merge from tree-ssa:
12087         2003-11-20  Richard Henderson  <rth@redhat.com>
12088
12089                 * tree-inline.c (insert_decl_map): New.
12090                 (remap_decl, remap_type, remap_block, copy_body_r,
12091                 initialize_inlined_parameters, declare_return_variable,
12092                 remap_save_expr): Use it.
12093
12094         * function.c (copy_body_r): Add mapping from id->ret_label to
12095         id->ret_label.  Revert test for ret_label.
12096
12097 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12098
12099         * genoutput.c (process_template): Strip trailing whitespace in @
12100         templates and issue a warning if there was any.
12101
12102 2004-02-21  Christopher Faylor  <cgf@redhat.com>
12103
12104         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12105         object file when targetting cygwin.
12106         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12107         overridden by top-level Makefile.
12108
12109 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12110
12111         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12112         the x87's load constant instructions when optimizing for size.
12113
12114 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12115
12116         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12117         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12118         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12119         * fold-const.c: Likewise.
12120         * simplify-rtx.c: Likewise.
12121
12122 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12123
12124         * combine.c (can_combine_p): Don't ignore SETs marked with
12125         REG_EH_REGION notes.
12126         (try_combine): When attemting to fix unrecognized insns, don't
12127         split a PARALLEL that contains the original i2.
12128
12129 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12130
12131         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12132         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12133         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12134         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12135         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12136         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12137         portion of header.
12138         (__altivec_link_error_invalid_argument): Remove prototype; will use
12139         __builtin_altivec_compiletime_error("vec_*") instead.
12140         (vec_*): Fix/complete set of available operation overloads given the
12141         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12142         cv-correctness of pointer arguments; in C, always check for correct
12143         argument types before macro expansion.
12144         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12145         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12146         '-W[no-]altivec-long-deprecated' switches.
12147         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12148         '__vector', '__pixel' and '__bool' macros using
12149         '__attribute__((altivec(...)))' types.
12150         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12151         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12152         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12153         New type nodes.
12154         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12155         handling '-W[no-]altivec-long-deprecated'.
12156         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12157         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12158         altivec_expand_dst_builtin): Remove casts from integer literals.
12159         (altivec_expand_builtin): Likewise; handle expansion of new
12160         '__builtin_altivec_compiletime_error' function.
12161         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12162         types, and make them distinct from other vector types; register
12163         '__builtin_altivec_compiletime_error' function.
12164         (print_operand): For 'P', print a full target register name instead of
12165         merely its number.
12166         (rs6000_attribute_table): Add "altivec" attribute.
12167         (rs6000_handle_altivec_attribute): New function.
12168         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12169         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12170         maps to).
12171         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12172         declare.
12173         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12174
12175 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12176
12177         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12178         check.
12179         (shift_mix4left+2): Delete redundant pattern.
12180
12181 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12182
12183         * alias.c (OUTGOING_REGNO): Don't define the default.
12184         * builtins.c (OUTGOING_REGNO): Likewise.
12185         (INCOMING_REGNO): Likewise.
12186         (apply_args_register_offset): Always use OUTGOING_REGNO.
12187         * combine.c (OUTGOING_REGNO): Likewise.
12188         * sibcall.c (OUTGOING_REGNO): Likewise.
12189         * defaults.h (INCOMING_REGNO): Provide the default.
12190         (OUTGOING_REGNO): Likewise.
12191
12192 2004-02-21  Jan Hubicka  <jh@suse.cz>
12193
12194         * params.def (max-peeled-insns, max-completely-peeled-insns,
12195         max-once-peeled-insns): Set to 400.
12196
12197 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12198
12199         PR c++/12007
12200         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12201         are set for parameters before outputing debugging information.
12202
12203 2004-02-20  Falk Hueffner  <falk@debian.org>
12204
12205         PR target/14201
12206         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12207         numbers.
12208
12209 2004-02-20  Per Bothner  <per@bothner.com>
12210
12211         * input.h:  Don't #include line-map.h.  It may cause link problems
12212         with undefined linemap_line_start when line-map.h is included but
12213         line-map.o is not linked, as currently happens with gengtype on
12214         compilers that don't support inline.
12215         * toplev.c:  So we do have to explicitly #include line-map.h here.
12216
12217 2004-02-20  Richard Henderson  <rth@redhat.com>
12218
12219         * doc/invoke.texi: Add -Wvariadic-macros.
12220
12221 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12222
12223         * haifa-sched.c (sched_emit_insn): Remove.
12224         * sched-int.h: Remove the corresponding prototype.
12225
12226 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12227
12228         Revert:
12229         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12230         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12231         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12232         * config/cris/cris.h: Remove a comment about
12233         DEFAULT_SHORT_ENUMS.
12234         * config/ip2k/ip2k.h: Likewise.
12235         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12236
12237 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12238             Tom Tromey  <tromey@redhat.com>
12239
12240         * doc/install.texi: Moved --disable-libgcj and
12241         --with-system-zlib documentation to new section for
12242         Java-specific options.
12243         Added explicit Cross-Compiler-Specific Options subheading.
12244         Added section for Java-specific options.
12245
12246 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12247
12248         * doc/install.texi (Building the Ada compiler): Remove
12249         example.
12250
12251 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12252
12253         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12254
12255 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12256
12257         * gcc.c (process_command): Allow translation of the copyright
12258         symbol but not the rest of the copyright message.
12259         * gcov.c (print_version): Likewise.  Allow translation of the
12260         message about warranty.
12261
12262 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12263
12264         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12265         predicate.
12266         ("*andsi_clear"): Tweak constraints to not match postincrement.
12267         Adjust the predicate to exclude a volatile memory reference.
12268         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12269         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12270
12271 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12272
12273         * move-if-change: Remove.
12274         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12275         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12276         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12277         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12278         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12279         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12280
12281 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12282
12283         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12284         for operand2.  Add condition that requires register_operand operand2
12285         before reload.
12286
12287 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12288             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12289
12290         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12291         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12292
12293 2004-02-19  Richard Henderson  <rth@redhat.com>
12294
12295         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12296         * tree.c (build0, build1, build2, build3, build4): Split out from...
12297         (build): ... here.  Call them.
12298         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12299
12300         * convert.c (convert_to_integer): Remove extra build argument.
12301         * tree-inline.c (expand_call_inline): Likewise.
12302
12303 2004-02-19  Richard Henderson  <rth@redhat.com>
12304
12305         * c-opts.c (warn_variadic_macros): New.
12306         (c_common_handle_option): Set it.
12307         (sanitize_cpp_opts): Copy it to cpp_opts.
12308         * c.opt (Wvariadic-macros): New.
12309         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12310         * cppinit.c (cpp_create_reader): Initialize it.
12311         * cppmacro.c (parse_params): Check it.
12312
12313 2004-02-19  David Daney <ddaney@avtrex.com>
12314
12315         PR preprocessor/14198
12316         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12317         builtin_assert ("machine=mips")
12318
12319 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12320
12321         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12322         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12323         * config/cris/cris.h: Remove a comment about
12324         DEFAULT_SHORT_ENUMS.
12325         * config/ip2k/ip2k.h: Likewise.
12326         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12327
12328 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12329
12330         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12331         when passing single SFmode quantities in general registers,
12332         put them in the high half.
12333
12334 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12335
12336         * doc/md.texi (Standard Names): Document additional dependency on
12337         fix pattern.
12338
12339         * optabs.c (ftruncify): Remove.
12340         (expand_fix): Manually inline ftruncify above.
12341         (can_fix_p): Add FIXME note.
12342
12343 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12344
12345         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12346         spe_fixuns_truncsfsi2.
12347
12348         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12349         fixuns_truncsfsi2.
12350
12351 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12352
12353         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12354         * testsuite/gcc.dg/20040219-1.c: New test.
12355
12356 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12357
12358         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12359         "*subsf3_cconly"): Subtraction is not commutative.
12360
12361 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12362
12363         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12364         (sdbout_symbol): If called before sdbout_init, queue DECL for
12365         later and return.
12366         (sdbout_init): Set sdbout_initialized true, process decls
12367         queued earlier by sdbout_symbol.
12368         (sdbout_finish): Use size_t for index variable.
12369
12370 2004-02-19  Jeff Law  <law@redhat.com>
12371
12372         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12373         for unordered comparison codes.
12374
12375 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12376
12377         * reload1.c (reload): Correct comment.
12378         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12379         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12380         register variables are not used by reload.
12381
12382 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12383
12384         PR target/14209
12385         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12386         constraints to not match postincrement.  Adjust the predicate to
12387         exclude a volatile memory reference.
12388
12389 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12390
12391         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12392
12393 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12394
12395         * hooks.c (hook_void_tree_int): Remove.
12396         (hook_void_constcharptr): Likewise.
12397         (hook_int_void_0): Likewise.
12398         * hooks.h: Remove the prototypes for the above three
12399         functions.
12400         * targhooks.c (hook_bool_machine_mode_true): Remove.
12401         * targhooks.h: Remove the prototype for
12402         hook_bool_machine_mode_true.
12403
12404 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12405
12406         * emit-rtl.c (subreg_realpart_p): Remove.
12407         (reorder_insns_with_line_notes): Likewise.
12408         (end_full_sequence): Likewise.
12409         * rtl.h: Remove the prototype for the above functions.
12410
12411 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12412
12413         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12414         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12415         config/iq2000/iq2000.h, config/m32r/m32r.h,
12416         config/pdp11/pdp11.h, config/sparc/sparc.h,
12417         config/xtensa/xtensa.h: Remove commented-out or useless
12418         definitions of CASE_VECTOR_PC_RELATIVE.
12419
12420 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12421
12422         * loop.c (all_sets_invariant_p): Remove.
12423
12424 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12425
12426         PR target/12916
12427         * config/sparc/sparc.h (NPARM_REGS): Delete.
12428         (BASE_RETURN_VALUE_REG): Likewise.
12429         (BASE_OUTGOING_VALUE_REG): Likewise.
12430         (BASE_PASSING_ARG_REG): Likewise.
12431         (BASE_INCOMING_ARG_REG): Likewise.
12432         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12433         TARGET_ARCH64, not TARGET_V9.
12434         (function_arg_slotno): Dispatch based on the mode class.
12435         Handle vector modes like floating-point modes.
12436         (function_arg_record_value_1): Handle vector types like
12437         floating-point types.
12438         (function_arg_record_value_2): Likewise.
12439         Calculate regno after mode transformation.
12440         (function_arg): Handle vector modes like floating-point modes.
12441         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12442         If ARCH64, do not recheck alignment.
12443         (function_arg_pass_by_reference): Reorder the conditions.
12444         (sparc_return_in_memory): Move after function_arg_padding.
12445         Implement calling conventions for vector modes.
12446         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12447         (function_value): Move scope of 'regbase'.
12448         Implement calling conventions for vector modes.
12449         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12450         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12451         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12452         the argument is passed by reference.
12453         (sparc_type_code): Handle vector types.
12454
12455 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12456
12457         * function.c (assign_parms): When building decl_rtl for
12458         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12459
12460 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12461
12462         * expr.c (is_aligning_offset): Check if we are aligning the
12463         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12464         in bits.
12465
12466 2004-02-18  Matt Austern  <austern@apple.com>
12467
12468         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12469         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12470         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12471         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12472         spec string.
12473         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12474
12475 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12476
12477         * dwarf2out.c (loclabel_num): Move outside #ifdef
12478         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12479         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12480         Mark with GTY(()).
12481         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12482         Allocate memory with ggc_alloc.  No need to copy anything.
12483         (ia64_hpux_file_end): Update to match.
12484
12485 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12486
12487         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12488         by default.
12489
12490 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12491
12492         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12493         ("divmodtisi3"): Likewise.
12494         ("udivmoddi4", "udivmodtidi3"): Likewise.
12495         ("divmodsi4", "divmoddisi3"): Likewise.
12496         ("udivmodsi4", "udivmoddisi3"): Likewise.
12497         ("udivsi3", "umodsi3"): Likewise.
12498
12499 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12500
12501         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12502         placeholder insn when chunkifying the pool.
12503
12504 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12505
12506         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12507         generating PIC code.
12508
12509 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12510
12511         * config/h8300/h8300-protos.h: Add a prototype for
12512         h8300_expand_branch.
12513         * config/h8300/h8300.c (h8300_expand_branch): New.
12514         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12515         bgtu, beq, bne): Call h8300_expand_branch().
12516
12517 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12518
12519         * config/h8300/h8300-protos.h: Add prototypes for
12520         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12521         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12522         (h8300_hard_regno_mode_ok): Likewise.
12523         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12524         h8300_hard_regno_nregs().
12525         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12526
12527 2004-02-18  Per Bothner  <per@bothner.com>
12528
12529         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12530         partly reverts my 2003-10-01 change, because we're back to logically
12531         including <command line> inside the main line.
12532         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12533         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12534         Fixes PR preprocessor/14103.
12535
12536         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12537         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12538         (cpp_push_include):  Don't need to increment pfile's line field.
12539         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12540
12541         * c-ppoutput.c (print struct):  New first_time field.
12542         (init_pp_output):  Set print.first_time.
12543         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12544         which is set also for (say) <command line>.  Clear print.first_time.
12545
12546         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12547         does not match the code, so fix both.
12548         (should_stack_file):  Inline include_pch_p function.
12549         (include_pch_p):  Remove pointless function.
12550
12551         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12552
12553 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12554
12555         * config/h8300/h8300.md (four define_peephole2's): Use
12556         h8300_regs_ok_for_stm().
12557
12558 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12559
12560         * config/h8300/h8300-protos.h: Update the prototype for
12561         expand_a_rotate().
12562         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12563         argument.
12564         * config/h8300/h8300.md: Update all callers.
12565
12566 2004-02-18  Jan Hubicka  <jh@suse.cz>
12567
12568         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12569         floats.
12570         (simplify_binary_operation): Deal with logicals on floats.
12571
12572         * i386.md (SSE fabs splitters): Emit new patterns.
12573         (SSE cmov splitters): Likewise.
12574         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12575         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12576         subregs.
12577         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12578         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12579
12580 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12581
12582         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12583         by hand.
12584         (output_a_rotate): Tweak a comment.
12585         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12586         (*rotlhi3_1): Change to rotlhi3_1.
12587         (*rotlsi3_1): Change to rotlsi3_1.
12588
12589 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12590
12591         PR target/13866
12592         * arm.c (load_multiple_operation): Don't insist that the source reg
12593         of a post-increment component is the same as the destination.
12594         (store_multiple_operation): Likewise.
12595
12596 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12597
12598         * config/h8300/h8300.md: Move movsf patterns into one section
12599         of the file.
12600
12601 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12602
12603         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12604         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12605         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12606         config/mips/linux64.h, config/pa/pa-64.h,
12607         config/rs6000/aix51.h, config/rs6000/aix52.h,
12608         config/rs6000/spe.md, config/sparc/linux.h,
12609         config/sparc/linux64.h: Update copyright.
12610
12611 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12612
12613         * config/h8300/h8300.md: Move push patterns into one
12614         section of the file.
12615
12616 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12617
12618         PR c++/11326
12619         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12620         fntype.
12621
12622 2004-02-18  Paul Brook  <paul@codesourcery.com>
12623
12624         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12625
12626 2004-02-18  Paul Brook  <paul@codesourcery.com>
12627
12628         PR debug/12934
12629         * dwarf2out.c (loc_descriptor_from_tree): Handle
12630         EXPR_WITH_FILE_LOCATION.
12631
12632 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12633
12634         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12635         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12636         trailing whitespace from instructions.
12637
12638 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12639
12640         * configure.ac: When generating auto-build.h, pass
12641         --enable-languages to the sub-configure.
12642         Put quotes around ${program_transform_name} when generating
12643         name of as, ld, nm, objdump.
12644         * configure: Regenerate.
12645
12646 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12647
12648         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12649         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12650         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12651         (s-preds, s-iov): Do not depend on move-if-change.
12652
12653 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12654
12655         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12656         (insert_save): Likewise.
12657
12658 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12659
12660         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12661         warning.
12662
12663 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12664
12665         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12666         *one_cmplsi2_h8300.
12667         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12668
12669 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12670
12671         * config/h8300/h8300-protos.h: Update the prototype of
12672         fix_bit_operand().
12673         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12674         argument "what".
12675         * config/h8300/h8300.md: Update all callers.
12676
12677 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12678
12679         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12680         the last argument to "code" from "type".
12681
12682 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12683
12684         * config/h8300/h8300.c: Remove an extern declaration of
12685         rtx_equal_function_value_matters.
12686
12687 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12688
12689         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12690         by hand.
12691         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12692         (*iorqi3_1): Change to iorqi3_1.
12693         (*xorqi3_1): Change to xorqi3_1.
12694
12695 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12696
12697         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12698         typos.
12699
12700 2004-02-17  Jan Hubicka  <jh@suse.cz>
12701
12702         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12703
12704 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12705
12706         PR optimization/14119
12707         * combine.c (try_combine): When attemting to fix unrecognized insns,
12708         don't delete SETs marked with REG_EH_REGION notes.
12709
12710 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12711
12712         * combine.c (simplify_if_then_else): Do not replace
12713         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12714         modes differ.
12715
12716 2004-02017  Steven Bosscher  <stevenb@suse.de>
12717
12718         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12719         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12720         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12721         * ada/utils.c: Likewise.
12722         * cp/decl.c: Likewise.
12723         * f/com.c: Likewise.
12724         * java/class.c: Likewise.
12725
12726 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12727
12728         * config/h8300/h8300.md: Fix comment typos.
12729
12730 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12731
12732         * config/mips/t-iris6gld: Renamed to ...
12733         * config/mips/t-irix-gld: ... this.
12734         * config.gcc (mips-sgi-irix6*): Reflect this
12735         (mips-sgi-irix5*): Use it with GNU ld.
12736
12737         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12738         to ...
12739         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12740         * config/mips/t-irix-gld: Reflect this.
12741         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12742
12743         * config/mips/iris5gld.h: New file.
12744         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12745         Only use collect2 without gas.
12746
12747         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12748         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12749         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12750         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12751
12752         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12753         * config/mips/iris5.h: ... here.
12754
12755         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12756         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12757         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12758
12759         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12760         using irix_startfile_spec, irix_endfile_spec.
12761
12762 2004-02-16  Gunther Nikl  <gni@gecko.de>
12763
12764         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12765
12766 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12767
12768         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12769         insns by hand.
12770
12771 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12772
12773         * cfghooks.c (split_edge): Speed up updating of dominators.
12774
12775 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12776
12777         PR c++/11326
12778         * c-common.c (flag_abi_version): Remove.
12779         * c-common.h (flag_abi_version): Likewise.
12780         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12781         * c.opt (fabi-version): Remove.
12782         * calls.c (expand_call): Always pass a function type to
12783         struct_value_rtx.  Use convert_memory_address.
12784         * common.opt (fabi-version): Add it.
12785         * flags.h (flag_abi_version): Likewise.
12786         (abi_version_at_least): New macro.
12787         * opts.c (common_handle_option): Add OPT_fabi_version.
12788         * toplev.c (flag_abi_version): Define it.
12789         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12790         New function.
12791         (ia64_output_mi_thunk): Use it.
12792         (ia64_struct_value_rtx): Likewise.
12793
12794 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12795
12796         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12797         Don't generate insns by hand.
12798
12799 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12800
12801         PR c++/14178
12802         * doc/invoke.texi (fabi-version): The default is 2 now.
12803
12804 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12805
12806         * loop-iv.c: New file.
12807         * Makefile.in (loop-iv.o): New.
12808         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12809         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12810         num_loop_branches): New functions.
12811         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12812         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12813         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12814         get_simple_loop_desc, free_simple_loop_desc): Declare.
12815         (simple_loop_desc): New inline function.
12816         (struct rtx_iv, struct niter_desc): New.
12817         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12818         * expr.c (force_operand): Handle subregs of expressions created by
12819         loop unroller.
12820         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12821         parts of the initialization to toplev.c
12822         * loop-unroll.c (loop_exit_at_end_p): New.
12823         (unroll_and_peel_loops): Call iv_analysis_done.
12824         (decide_peel_once_rolling, decide_peel_completely,
12825         decide_unroll_stupid, decide_unroll_constant_iterations,
12826         decide_unroll_runtime_iterations, decide_peel_simple,
12827         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12828         unroll_loop_runtime_iterations): Use new simple loop analysis.
12829         * loop-unswitch.c (compare_and_jump_seq): New.
12830         (may_unswitch_on_p): Renamed to ...
12831         (may_unswitch_on): Use new iv analysis.
12832         (reversed_condition): Export.
12833         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12834         * predict.c (estimate_probability): Use new simple loop analysis.
12835         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12836         canon_condition, simplify_using_condition): Declare.
12837         * stor-layout.c (get_mode_bounds): New.
12838         * toplev.c (rest_of_handle_loop2): Some parts of
12839         initialization/finalization moved here from loop-init.c.
12840
12841 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12842
12843         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12844         pointer.
12845         (CALL_USED_REGISTERS): Likewise.
12846         (REG_ALLOC_ORDER): Likewise.
12847         (REG_CLASS) <GENERAL_REGS>: Likewise.
12848
12849 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12850
12851         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12852         in associative operators.
12853         * rtlanal.c (commutative_operand_precedence): Create some new
12854         variables.  Prefer a commutative operand on the left, then
12855         binary expressions, then NEG and NOT.
12856
12857 2004-02-16  Matthias Klose  <doko@debian.org>
12858
12859         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12860         in terms of SHLIB_SOVERSION.
12861         * config/m68k/t-slibgcc-elf-ver: New file.
12862         * config/pa/t-slibgcc-elf-ver: New file.
12863         * config.gcc (m68k-linux, parisc-linux): Use them when not
12864         sjlj exceptions are not configured.
12865
12866 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12867
12868         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12869
12870 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12871
12872         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12873
12874 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12875
12876         * doc/sourcebuild.texi: Mention backends.html.
12877
12878 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12879
12880         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12881         line-map.c, line-map.h, var-tracking.c: Fix comment
12882         formatting.
12883
12884 2004-02-16  Richard Henderson  <rth@redhat.com>
12885
12886         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12887
12888         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12889
12890 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12891
12892         * config/h8300/h8300.md: Remove unnecessary parallels from
12893         all define_insn and define_split patterns.
12894
12895 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12896
12897         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12898         "clobber").
12899
12900 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12901
12902         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12903         '%#'.
12904
12905 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12906
12907         * config/ia64/ia64.c, config/mips/mips.c,
12908         config/mmix/mmix-modes.def: Fix comment typos.
12909
12910 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12911
12912         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12913         (get_directive_line): Remove unused function prototype.
12914
12915 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12916
12917         * tree-inline.c (copy_body_r): Do not replace ret_label.
12918
12919 2004-02-14  Jan Hubicka  <jh@suse.cz>
12920
12921         * i386.c (x86_four_jump_limit): New variable.
12922         (k8_avoid_jump_misspredicts): Rename to ...
12923         (ix86_avoid_jump_misspredicts): .. this one.
12924         (ix86_pad_returns): Break out from ...
12925         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12926         to.
12927         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12928
12929 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12930
12931         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12932         PARALLEL is NULL.
12933
12934 2004-02-14  Per Bothner  <per@bothner.com>
12935
12936         * fix-header.c (line_table):  Move local variable in main to global.
12937         * scan.h (line_table):  Use it.
12938         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12939         line (recently renamed to src_loc) before calling recognized_function.
12940
12941 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12942
12943         * Makefile.in: Fix comment typos.
12944
12945 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12946
12947         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12948         for start_value when it is directly moved into reg, and factorize
12949         the retrieval of GET_MODE (reg).
12950
12951 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12952
12953         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12954         (mips_load_got_global): Delete.
12955         (mips_gotoff_page): Declare.
12956         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12957         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12958         UNSPEC_LOAD_GOT pattern rather than a MEM.
12959         (*load_got[sd]i): New patterns.
12960         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12961         (mips_load_got_page, mips_load_got_global): Delete.
12962         (mips_gotoff_page): New function.
12963         (override_options): Don't initialize mips_got_alias_set.
12964
12965 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12966
12967         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12968         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12969         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12970         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12971         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12972         * config/mips/mips.c: Fix some overly-long lines.
12973         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12974         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12975
12976 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12977
12978         * configure.ac: Search for as, ld below libexec/gcc.
12979         * configure: Regenerate.
12980
12981 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12982
12983         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12984         __builtin_arm_setwcx ().
12985         * config/arm/arm.c (arm_expand_builtin): Generate operands
12986         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12987
12988 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12989
12990         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12991         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12992         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12993         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12994         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12995         (_mm_mulhi_pu16): Likewise.
12996
12997 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12998
12999         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13000         DECL_NAME != 0 before dereferencing.
13001
13002 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13003
13004         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13005         (s390_output_addr_const_extra): Declare.
13006         (s390_output_pool_entry): Remove FILE * argument.
13007         * config/s390/s390.c (s390_output_symbolic_const): Remove.
13008         (s390_output_addr_const_extra): New function.
13009         (print_operand_address): Call output_addr_const instead of
13010         s390_output_symbolic_const.
13011         (print_operand): Likewise.
13012         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13013         Remove FILE * argument.
13014         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13015         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13016         call.
13017
13018 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13019
13020         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13021         (struct edge, struct vertex, struct graph): New.
13022         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13023         free_graph): New functions.
13024
13025 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
13026
13027         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13028         Use ".set macro" to avoid warnings about multi-instruction
13029         macros, since they're intentional.
13030
13031 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
13032
13033         * config/darwin.h: Add include guards.  Remove old, now incorrect,
13034         comment about STANDARD_EXEC_PREFIX.
13035
13036         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13037         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
13038         for installing .1 manpages.  Add rules for installing cpp
13039         and gcov manpages under their installed names.
13040
13041 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
13042
13043         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13044         host, but try LD_FOR_TARGET first.
13045         * configure: Rebuilt.
13046
13047 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13048
13049         * dbxout.c: Move declaration of dbxout_type_decl outside
13050         #ifdef DBX_DEBUGGING_INFO.
13051         * c-parse.in: Don't give the asmdef production a type.
13052
13053 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13054
13055         * debug.h (struct gcc_debug_hooks): Add type_decl field.
13056         (debug_nothing_tree_int): Prototype.
13057         (dwarf_debug_hooks): Delete, unused.
13058         * debug.c (do_nothing_debug_hooks): Update.
13059         (debug_nothing_tree_int): New function.
13060         * langhooks.h (struct lang_hooks_for_decls):
13061         Remove builtin_type_decls field.
13062         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13063         (LANG_HOOKS_DECLS): Update.
13064         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13065         Use debug_hooks->type_decl.
13066         * dbxout.c (preinit_symbols): New static.
13067         (dbx_debug_hooks, xcoff_debug_hooks): Update.
13068         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13069         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
13070         for symbols to output.
13071         (dbxout_type_decl): New function.
13072         (dbxout_symbol): If called before dbxout_init has run, queue
13073         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13074         to TYPE_DECLs before emitting them.
13075         * xcoffout.c (assign_type_number): Delete.
13076         (xcoff_type_numbers): New static table.
13077         (xcoff_assign_fundamental_type_number): New function.
13078         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13079         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
13080         * sdbout.c: Include varray.h.
13081         (deferred_global_decls): New static.
13082         (sdb_debug_hooks): Update.
13083         (sdbout_global_decl): If we can't emit something right now,
13084         remember it in deferred_global_decls.
13085         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13086         (sdbout_init): Initialize deferred_global_decls.
13087         * Makefile.in: Update dependencies of sdbout.o.
13088         * dwarf2out.c (dwarf2out_type_decl): New function.
13089         (dwarf2_debug_hooks): Update.
13090         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13091         * c-decl.c (getdecls): Just return 0.
13092         (check_for_loop_decls): Don't use getdecls.
13093         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13094         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13095
13096 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
13097
13098         * config/s390/s390.c (s390_sched_reorder2): Remove.
13099         (TARGET_SCHED_REORDER2): Do not redefine.
13100
13101 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13102
13103         * c-parse.in (maybe_type_qual): Delete.
13104         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13105         (asm_argument): New grammar rules.
13106         (extdef_1): Use asmdef.
13107         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13108         (xexpr): Move up with other expression rules.
13109         (stmt): Use asm_stmt.
13110
13111         * c-typeck.c (build_asm_expr): New function - body mostly
13112         pulled from build_asm_stmt.
13113         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13114         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13115
13116 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13117
13118         PR bootstrap/13617
13119         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13120         (mips_declare_object): Make variadic.
13121         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13122         mips_output_aligned_decl_common.
13123         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13124         (mips_declare_object): Make variadic.
13125
13126 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13127
13128         * function.c (update_epilogue_consts): Teach about binary operations.
13129
13130         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13131         previous MEM_VOLATILE in REF.
13132         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13133         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13134
13135 2004-02-12  Gunther Nikl  <gni@gecko.de>
13136
13137         * config.gcc: Restore support for m68k-openbsd.
13138
13139 2004-02-12  Jan Hubicka  <jh@suse.cz>
13140
13141         * tree-optimize.c (tree_rest_of_compilation): Do not release
13142         DECL_ARGUMENTS.
13143
13144 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13145
13146         * doc/install.texi: Fix the spelling of "explicitly".
13147
13148 2004-02-11  Eric Christopher  <echristo@redhat.com>
13149
13150         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13151         duplicate argument structure of cpp_interpret_string.
13152         * cpphash.h: Move prototype...
13153         * cpplib.h: Here.
13154         * cpplib.c: Fix calls to match new function signature.
13155
13156 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13157
13158         PR c/456
13159         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13160         constant expressions at all outside C99 mode if pedantic.
13161
13162 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13163
13164         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13165         (log10_optab, log2_optab): Define corresponding macros.
13166         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13167         * genopinit.c (optabs): Implement log10_optab and log2_optab
13168         using log10?f2 and log2?f2 patterns.
13169         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13170         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13171         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13172         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13173
13174         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13175         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13176         log2, log2f and log2l built-ins as inline x87 intrinsics.
13177
13178 2004-02-11  Richard Henderson  <rth@redhat.com>
13179
13180         PR target/1532
13181         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13182         dead insn after reload.
13183
13184 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13185
13186         * tree.h (frame_base_decl): Add GTY marker.
13187         * var-tracking.c (frame_base_decl): Likewise.
13188
13189 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13190
13191         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13192         incorrect, hunk.
13193         (add_location_or_const_value_attribute): Use text_section_label,
13194         not TEXT_SECTION_NAME.
13195
13196 2004-02-11  Per Bothner  <per@bothner.com>
13197
13198         Represent column numbers using line-map's source_location.
13199         The "next available source_location" is now managed internally by
13200         line-maps.c rather than by clients.
13201         * line-map.h (struct line_map):  New field column_bits.
13202         <from_line>:  Rename field to start_location.
13203         (struct line_maps):  New fields highest_location and max_column_hint.
13204         (linemap_check_files_exited):  New declaration.
13205         (linemap_line_start):  New declaration.
13206         (linemap_add):  Remove from_line parameter; use highest_location field.
13207         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13208         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13209         (CURRENT_LINE_MAP):  Remove macro.
13210         (linemap_position_for_column):  New inline function.
13211         * line-map.c (linemap_init):  Clear new fields.
13212         (linemap_check_files_exited):  New function, extracted from ...
13213         (linemap_free):  Use linemap_check_files_exited.
13214         (linemap_add):  Remove from_line parameter.  Various updates.
13215         (linemap_line_start):  New function.
13216         (linemap_lookeup):  Update for new field names.
13217         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13218         linemap_position_for_column may unpredictably change the current map,
13219         it is cleaner and simpler for us to not cache it in cpp_reader.
13220         (struct cpp_buffer):  New sysp field.
13221         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13222         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13223         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13224         current map using linemap_lookup.
13225         (do_linemarker):  Also set buffer's sysp field.
13226         (destringize_and_run):  No longer need to decrement current line.
13227         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13228         (search_path_head, open_file_failed):  Use buffer's sysp.
13229         (cpp_make_system_header):  Get current map using linemap_lookup.
13230         Also set buffer's sysp flag.
13231         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13232         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13233         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13234         (struct cpp_reader):  ... and adding saved_line_base field.
13235         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13236         Update accordingly.  Don't adjust line.
13237         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13238         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13239         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13240         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13241         * cpplex.c (_cpp_lex_direct):  Likewise.
13242         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13243         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13244         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13245         Remove col field as it is now subsumed by src_loc.
13246         * cpperror.c:  Update various field, parameter, and macro names.
13247         (print_location):  If col==0, try SOURCE_COLUMN of line.
13248         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13249         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13250         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13251         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13252         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13253         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13254         (_cpp_lex_direct):  Use linemap_position_for_column.
13255         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13256         parameter.  Instead get it from the line_table global.  Adjust callers.
13257         (print):  Remove map field.  Replace line field to src_line.
13258         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13259         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13260         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13261         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13262         * cpptrad.c (copy_comment):  Rename variable.
13263         * c-lex.c (map):  Remove static variable, for same reason we removed
13264         cpp_reader's map field.
13265         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13266         to call linemap_lookup.
13267         (cb_line_change):  Token's line field replaced by src_loc.
13268         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13269         Don't save new_map.
13270
13271         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13272         source_location.
13273
13274 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13275
13276         * config/rs6000/altivec.md (*movv4si_internal): At least one
13277         operand must be register_operand.
13278         (*movv8hi_internal1): Likewise.
13279         (*movv16qi_internal1): Likewise.
13280         (*movv4sf_internal1): Likewise.
13281
13282 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13283
13284         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13285         operand.
13286         (movv4hi_internal): Same.
13287         (movv2sf_internal): Same.
13288         (movv1di_internal): Same.
13289
13290 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13291
13292         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13293         TARGET_OLDABI consistently.
13294         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13295         mips_va_arg,override_options,compute_frame_size,
13296         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13297         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13298         and TARGET_OLDABI consistently.
13299         * config/mips/mips.md (exception_receiver): Likewise.
13300         * config/mips/linux64.h: Likewise.
13301
13302 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13303
13304         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13305         Set AltiVec ABI and vrsave as default for ppc64 linux.
13306         (init_cumulative_args): Post error, if try to return
13307         value in AltiVec register without enable AltiVec.
13308         (function_arg_advance): Ditto for passing arguments.
13309
13310 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13311
13312         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13313         a label before updating its usage count.
13314
13315 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13316
13317         * doc/install.texi: Remove extra cd.
13318
13319 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13320
13321         * c-common.c (vector_size_helper): Remove; call
13322         reconstruct_complex_type() instead.
13323         * tree.c (reconstruct_complex_type): New function
13324         (formerly vector_size_helper() in c-common.c).
13325         (make_vector): Make externally visible.
13326         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13327
13328 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13329
13330         * config/h8300/h8300-protos.h: Add a prototype for
13331         h8300_regs_ok_for_stm.
13332         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13333         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13334         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13335         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13336         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13337         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13338         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13339         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13340         h8300_regs_ok_for_stm().
13341
13342 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13343
13344         PR c/14088
13345         * real.c (real_from_string): Look for 'X' as well as 'x' in
13346         hexfloat strings.
13347
13348 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13349
13350         * config/h8300/h8300.md: Remove an incorrect comment about
13351         peephole2.  Add comments.
13352
13353 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13354
13355         PR/14058
13356         * emit-rtl.c (set_decl_incoming_rtl): New.
13357         * tree.h (set_decl_incoming_rtl): New.
13358         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13359         DECL_INCOMING_RTL.
13360         * ada/misc.c (adjust_decl_rtl): Likewise.
13361
13362 2004-02-10  Per Bothner  <per@bothner.com>
13363
13364         * c-opts.c (c_common_post_options):   Don't emit working directory
13365         in cpp output if -P was specified.
13366
13367 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13368
13369         PR c/14092
13370         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13371         negate_expr back to the original type.
13372
13373 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13374
13375         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13376         bump retaddr here.
13377
13378 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13379
13380         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13381         gen_lowpart_SUBREG): Move under the file in which they
13382         are actually declared.
13383
13384 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13385
13386         * doc/sourcebuild.texi: Add libada documentation.
13387
13388         * doc/install.texi: Update documentation on Ada build, now
13389         that the GNAT lib and tools are built automatically.
13390
13391 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13392
13393         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13394         && TARGET_IRIX.
13395
13396 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13397
13398         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13399         boundaries outside build_component_ref() call (a macro in ObjC++).
13400
13401 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13402
13403         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13404         (init_cumulative_args): Likewise.
13405         (a7_overlap_mentioned_p): Delete prototype.
13406         * config/xtensa/xtensa.c (struct machine_function): Replace
13407         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13408         Add set_frame_ptr_insn field.
13409         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13410         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13411         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13412         at the function entry and replace the operand with the pseudo.
13413         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13414         argument and record this flag in CUMULATIVE_ARGS.
13415         (function_arg): Remove result_mode and special-case code to handle
13416         arguments in a7.  Instead, set need_a7_copy flag when there is an
13417         incoming argument in a7.
13418         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13419         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13420         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13421         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13422         special-case code.
13423         (a7_overlap_mentioned_p): Delete.
13424         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13425         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13426         arguments to init_cumulative_args and pass "incoming" flag instead.
13427         (BLOCK_REG_PADDING): Delete.
13428         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13429         checks for reload_in_progress and reload_completed.  Update calls to
13430         xtensa_copy_incoming_a7.
13431         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13432         to call xtensa_copy_incoming_a7.
13433
13434 2004-02-09  DJ Delorie  <dj@redhat.com>
13435
13436         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13437         longer modify standard_exec_prefix, standard_bindir_prefix, or
13438         standard_startfile_prefix.
13439
13440 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13441
13442         PR c++/11295
13443         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13444         to expand_expr_real call, and pass in alt_rtl as last argument.
13445
13446         PR libstdc++/5625
13447         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13448         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13449         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13450         * except.c (expand_builtin_extend_pointer): New.
13451         * except.h (expand_builtin_extend_pointer): Declare.
13452
13453 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13454
13455         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13456         unaligned loads and stores.
13457
13458 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13459
13460         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13461         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13462
13463         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13464         * config/mips/iris5.h: ... here.
13465         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13466
13467         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13468         * config/mips/iris5.h: ... here.
13469
13470 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13471
13472         * configure.ac: Remove default executable files before AC_PROG_CC.
13473         * configure: Regenerate.
13474
13475 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13476
13477         PR target/13721
13478         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13479         print a operand other than a register.
13480
13481 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13482
13483         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13484         tree code rather than call fold_convert, which doesn't specify a
13485         default floating point to integer conversion.
13486
13487 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13488
13489         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13490         code to support SGS assembler.  Reformat adjacent code where possible.
13491         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13492         definition.
13493         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13494         for '%#'.
13495         * config/m68k/linux.h, config/m68k/m68k.c,
13496         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13497         macros and asm_printf() format strings.
13498         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13499         * config/m68k/linux.h: Update copyright.
13500         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13501
13502 2004-02-08  Andreas Schwab  <schwab@suse.de>
13503             Bernardo Innocenti  <bernie@develer.com>
13504
13505         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13506         REGISTER_PREFIX.
13507         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13508         frame pointer register, overridable by OS targets.
13509         * (M68K_REGNAME): Macro to obtain register name for asm output,
13510         eventually replacing %a6 with M68K_FP_REG_NAME.
13511         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13512         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13513         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13514         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13515         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13516
13517 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13518
13519         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13520         hook_rtx_tree_int_null.
13521         * targhooks.c (default_struct_value_rtx): Remove.
13522         * targhooks.h: Remove the prototype for
13523         default_struct_value_rtx.
13524         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13525         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13526         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13527         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13528         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13529         config/rs6000/rs6000.c, config/s390/s390.c,
13530         config/stormy16/stormy16.c, config/v850/v850.c,
13531         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13532         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13533
13534 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13535
13536         * README.Portability: Change "ISO C89" to "ISO C90".
13537         * c-parse.in (primary, initelt): Likewise.
13538
13539 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13540
13541         * real.c (encode_ibm_extended): Normalize the input value before
13542         converting it to a double.  Handle the case where a normal value
13543         rounds to infinity.
13544
13545 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13546
13547         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13548         warning.
13549         * cse.c (preferrable): Change to preferable. Update all of its
13550         callers.
13551         * genautomata.c (ainsn): Change
13552         first_ainsn_with_given_equialence_num to
13553         first_ainsn_with_given_equivalence_num.  Update all of its
13554         references.
13555
13556 2004-02-08  Jan Hubicka  <jh@suse.cz>
13557
13558         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13559
13560 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13561
13562         * function.c (assign_parms): Fix formatting.
13563
13564 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13565
13566         * default.h (PROMOTE_PROTOTYPES): Remove.
13567         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13568         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13569         EXPAND_BUILTIN_SAVEREGS): Poison.
13570         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13571         hook_bool_tree_false.
13572         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13573         * target.h: Replace SETUP_INCOMING_VARARGS with
13574         targetm.calls.setup_incoming_varargs().
13575         * targhooks.c (default_promote_function_return): Remove.
13576         (default_promote_prototypes): Likewise.
13577         (default_struct_value_rtx): Always abort().
13578         (default_expand_builtin_saveregs): Always print an error
13579         message.
13580         (default_setup_incoming_varargs): Do nothing.
13581         (default_pretend_outgoing_varargs_named): Don't depend on
13582         SETUP_INCOMING_VARARGS.
13583         * targhooks.h: Remove the prototype for
13584         default_promote_function_return and
13585         default_promote_prototypes.
13586
13587 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13588
13589         * system.h (SHARED_SECTION_ASM_OP): Poison.
13590         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13591         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13592
13593 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13594
13595         Bug 13856
13596         * c-decl.c (diagnose_mismatched_decls): Only give special
13597         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13598         is also true.
13599         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13600         DECL_FUNCTION_CODE when defining a built-in function.
13601         Don't update DECL_ESTIMATED_INSNS.
13602         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13603         FUNCTION_DECLs.
13604         * tree.h: Delete DECL_ESTIMATED_INSNS.
13605         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13606         (expand_call_inline, optimize_inline_calls): Don't update
13607         DECL_ESTIMATED_INSNS nor inlined_insns.
13608         * cgraphunit.c (cgraph_analyze_function): Don't update
13609         DECL_ESTIMATED_INSNS.
13610
13611 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13612
13613         * c-common.c (shadow_warning): Delete.
13614         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13615         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13616         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13617         * c-parse.in (free_parser_stacks): Delete.
13618
13619 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13620
13621         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13622         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13623         Use the top level mkinstalldirs, not the one in the gcc subdir.
13624         * mkinstalldirs: Remove (from the gcc subdir).
13625
13626 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13627
13628         PR middle-end/13696
13629         * fold-const.c (fold_convert): New function to provide type
13630         conversion to the middle-end without using convert.
13631         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13632         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13633         invert_truthvalue, optimize_bit_field_compare, range_binop,
13634         decode_field_reference, make_range, build_range_check, unextend,
13635         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13636         fold_binary_op_with_conditional_arg, fold_inf_compare,
13637         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13638         convert with calls to fold_convert.
13639
13640 2004-02-07  Jan Hubicka  <jh@suse.cz>
13641
13642         * genrecog.c (find_operand): add extra argument stop.
13643         (validate_pattern): Verify that mach_dup is duplicating operand
13644         defined lexically earlier.
13645
13646 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13647
13648         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13649         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13650         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13651         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13652         config/ia64/ia64.h, config/ip2k/ip2k.h,
13653         config/iq2000/iq2000.h, config/mips/iris5.h,
13654         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13655         config/rs6000/aix51.h, config/rs6000/aix52.h,
13656         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13657         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13658         config/sparc/linux.h, config/sparc/linux64.h,
13659         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13660         config/xtensa/xtensa.h: Remove the definitions of
13661         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13662         MAX_WCHAR_TYPE_SIZE.
13663         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13664         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13665
13666 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13667
13668         PR bootstrap/13990
13669         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13670         gen_rtx_NE.
13671
13672 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13673
13674         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13675         #ifdef ENABLE_CHECKING and #endif.
13676
13677 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13678
13679         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13680         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13681         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13682         integer types and floating point with unsafe_math_optimizations.
13683         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13684         Optimize A - B as A + (-B), if B is easily negated.
13685
13686 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13687
13688         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13689         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13690         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13691         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13692         Update copyright.
13693
13694 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13695
13696         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13697
13698 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13699
13700         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13701         glibc 2.3 or better.
13702
13703 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13704
13705         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13706         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13707
13708 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13709
13710         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13711         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13712         (SHLIB_MKMAP_OPTS): Delete.
13713         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13714         (bispecs): Add rule.
13715         * config/rs6000/libgcc-ppc64.ver: New file.
13716         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13717         (__floatdidf, __floatdisf): Optimize multiply.
13718         (__fixunstfdi): New function.
13719         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13720         real and imag parts larger than one register.
13721         (function_arg): Correct type of reg used when fp arg split partially
13722         to stack.
13723         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13724         and __MACH__ or __powerpc64__.
13725
13726 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13727             Ulrich Weigand  <uweigand@de.ibm.com>
13728
13729         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13730         of gen_highpart or gen_lowpart when the floating point format is
13731         wider than the result mode.
13732
13733 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13734
13735         * dwarf2out.c (loclabel_num): Move into #ifdef
13736         DWARF2_DEBUGGING_INFO.
13737
13738 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13739
13740         * objc/objc-act.c (build_super_template) the 'class' field of
13741         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13742         (get_super_receiver): Likewise.
13743
13744 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13745
13746         * reload1.c (check_eliminable_occurrences): Optimize the reset
13747         of can_eliminate.
13748         (eliminate_regs_in_insn): Likewise.
13749
13750 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13751             Josef Zlomek  <zlomekj@suse.cz>
13752
13753         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13754         at the beginning of function, call dwarf2out_var_location for
13755         NOTE_INSN_VAR_LOCATION note.
13756         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13757         decl_loc_table): New.
13758         (lookup_decl_loc): New function.
13759         (add_var_loc_to_decl): New function.
13760         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13761         only if can_use_fbreg.
13762         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13763         functions.
13764         (loc_descriptor): Likewise. Process VAR_LOCATION.
13765         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13766         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13767         can_use_fbreg == true.
13768         (add_location_or_const_value_attribute): Added parameter enum
13769         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13770         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13771         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13772         with attr == DW_AT_location.
13773         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13774         if frame_base_decl is defined and has a location list.
13775         (gen_variable_die): Call add_location_or_const_value_attribute with
13776         attr == DW_AT_location.
13777         (dwarf2out_var_location): New function.
13778         (dwarf2out_begin_function): New function.
13779         (dwarf2out_init): Create decl_loc_table.
13780
13781 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13782
13783         * loop.c (force_movables): Transitively increase the priorities of
13784         all insns forces by an insn, not just the first one.
13785
13786 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13787             Daniel Berlin <dberlin@dberlin.org>
13788
13789         Josef Zlomek  <zlomekj@suse.cz>
13790         * Makefile.in (var-tracking.o): New.
13791         * common.opt (fvar-tracking): New.
13792         * flags.h (flag_var_tracking): New.
13793         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13794         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13795         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13796         * rtl.c (note_insn_name): Likewise.
13797         * rtl.def (VAR_LOCATION): New.
13798         * rtl.h (NOTE_VAR_LOCATION): New.
13799         (NOTE_VAR_LOCATION_DECL): New.
13800         (NOTE_VAR_LOCATION_LOC): New.
13801         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13802         (variable_tracking_main): New exported function.
13803         * timevar.def (TV_VAR_TRACKING): New.
13804         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13805         (dump_file): "vartrack" was added (-dV).
13806         (flag_var_tracking): New.
13807         (f_options): "var-tracking" was added.
13808         (rest_of_handle_variable_tracking): New function.
13809         (rest_of_compilation): Run variable tracking.
13810         (process_options): If user has not specified flag_var_tracking set it
13811         according to optimize, debug_info_level and debug_hooks.
13812         * tree.h (frame_base_decl): New.
13813         * var-tracking.c: New file.
13814         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13815         (ia64_override_options): Set flags to run variable tracking in machine
13816         dependent reorg instead of toplev.c.
13817         (ia64_reorg): Run variable tracking if wanted.
13818         * doc/invoke.texi: Mention variable tracking in -dV,
13819         add and -fvar-tracking.
13820         * doc/passes.texi: Added variable tracking pass.
13821
13822         Daniel Berlin <dberlin@dberlin.org>
13823         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13824         * dbxout.c (dbx_debug_hooks): Likewise.
13825         (xcoff_debug): Likewise.
13826         * debug.c (do_nothing_debug_hooks): Likewise.
13827         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13828         * dwarfout.c (dwarf_debug_hooks): Likewise.
13829         * sdbout.c (sdb_debug_hooks): Likewise.
13830         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13831         * final.c (final_scan_insn): Call var_location debug hook for each
13832         NOTE_INSN_VAR_LOCATION.
13833
13834 2004-02-06  Jan Hubicka  <jh@suse.cz>
13835
13836         * flow.c (update_life_info): Allocate reg_deaths when called from
13837         scheudler.
13838         (attempt_auto_inc):  Update life ranges accordingly.
13839
13840 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13841
13842         PR debug/11816
13843         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13844
13845 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13846
13847         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13848
13849 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13850
13851         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13852         a separate line info table in use.
13853         Use the correct size for terminators.
13854         (output_die): Use offset, not delta.
13855
13856 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13857
13858         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13859
13860 2004-02-06  Jan Hubicka  <jh@suse.cz>
13861
13862         * recog.c (split_all_insns): Do not update reg info.
13863         * regrename.c (regrename_optimize): Likewise.
13864         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13865         * flow.c (struct propagate_block_info): Add insn_num field.
13866         (reg_deaths): New array.
13867         (life_analysis): Free reg_deaths info.
13868         (allocate_reg_life_data): Allocate reg_deaths array.
13869         (propagate_one_insn): Use new array.
13870         (init_propagate_block): Initialize it.
13871         (free_propagate_block_info): Finish compuation of
13872         REG_LIVE_LENGTH
13873         (attempt_auto_inc): Sanity check that REG_INFO is not
13874         computed at same time.
13875         (mark_used_regs): Update new array.
13876
13877         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13878         substitution.
13879
13880 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13881
13882         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13883         *extendqisi2_short_displ.
13884
13885 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13886
13887         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13888         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13889         (emit_library_call_value_1): Likewise pass nargs.
13890         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13891         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13892         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13893         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13894         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13895         prototype.
13896         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13897         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13898         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13899         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13900         INIT_CUMULATIVE_ARGS.
13901         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13902         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13903         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13904         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13905         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13906         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13907         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13908         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13909         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13910         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13911         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13912         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13913
13914 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13915
13916         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13917         possible.
13918
13919 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13920
13921         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13922         note containing (plus (reg) (const_int)), where reg is an
13923         eliminable reg, then perform the register elimination without
13924         depending on eliminate_regs().
13925
13926 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13927
13928         * config/arc/arc.c (arc_return_in_memory): Check the return
13929         value of int_size_in_bytes against -1.  Don't check
13930         TREE_ADDRESSABLE.
13931         * config/avr/avr.c (avr_return_in_memory): Check the return
13932         value of int_size_in_bytes against -1.
13933         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13934         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13935         Likewise.
13936         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13937         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13938         Likewise.
13939
13940 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13941
13942         * config/frv/frv-protos.h: Remove the prototype for
13943         frv_setup_incoming_varargs.
13944         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13945         (frv_setup_incoming_varargs): Make it static.
13946         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13947
13948 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13949
13950         * config/fr30/fr30-protos.h: Remove the prototype for
13951         fr30_setup_incoming_varargs.
13952         Update the prototypes for fr30_num_arg_regs and
13953         fr30_function_arg_partial_nregs.
13954         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13955         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13956         (fr30_setup_incoming_varargs): Make it static.
13957         Add argument second_time.  Don't do anything when second_time
13958         is nonzero.
13959         (fr30_num_arg_regs): Change the type of the first argument to
13960         enum machine_mode.
13961         (fr30_function_arg_partial_nregs): Change the type of the
13962         second argument to enum machine_mode.
13963         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13964         (SETUP_INCOMING_VARARGS): Remove.
13965
13966 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13967
13968         * config/arc/arc-protos.h: Remove the prototype for
13969         arc_setup_incoming_varargs.
13970         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13971         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13972         (arc_setup_incoming_varargs): Make it static.
13973         (arc_external_libcall): Likewise.
13974         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13975         Remove the commented-out definition of
13976         ASM_OUTPUT_EXTERNAL_LIBCALL.
13977
13978 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13979
13980         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13981         to $$(slibdir) in the installation commands.
13982
13983 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13984
13985         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13986         with inner_regno, not regno.
13987         * rtlanal.c (refers_to_regno_p): Same.
13988
13989 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13990
13991         * config.gcc: Remove i370 support.
13992
13993 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13994
13995         * doc/install.texi:  Update automake and autoconf version
13996         requirements.  Note where to find gcj automake version.
13997
13998 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13999
14000         * Makefile.in (generate-manpages): Move dependencies to ...
14001         (man): here.
14002         * doc/makefile.texi: Document new targets.
14003         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14004
14005 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14006
14007         PR/13485
14008         Makefile.in (srcextra):  Add a level of indirection to ...
14009         (gcc.srcextra): ... here.
14010         (po-generated): Delete.
14011         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
14012         options.c.
14013         (start.encap): Remove superfluous lang.srcextra dependency.
14014         objc/Make-lang.in (po-generated):  Delete.
14015
14016 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14017
14018         * config/ia64/ia64.c (REG_GP): Remove.
14019
14020 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14021
14022         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14023
14024 2004-02-05  Devang Patel  <dpatel@apple.com>
14025
14026         * dwarf2out.c (force_type_die): Look up input type itself
14027         instead of root_type() of type.
14028
14029 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
14030
14031         * config/s390/s390.md ("*tmqidi_ext"): New insn.
14032         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14033         pre-reload splitters are transformed to post-reload
14034         define_insn_and_split patterns.
14035         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14036
14037 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14038
14039         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14040         TARGET_PROMOTE_PROTOTYPES.
14041
14042 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14043
14044         PR middle-end/13750
14045         Revert:
14046         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14047         PR pch/13361
14048         * c-typeck.c (constructor_asmspec): Delete.
14049         (struct initializer_stack): Delete field 'asmspec'.
14050         (start_init): Delete saving of asmspec.
14051         (finish_init): Don't update constructor_asmspec.
14052         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14053         * stmt.c (expand_asm): Duplicate strings from tree.
14054         (expand_asm_operands): Likewise.
14055         * tree.c (tree_size): Update computation of size of STRING_CST.
14056         (make_node): Don't make STRING_CST nodes.
14057         (build_string): Allocate string with tree node.
14058         * tree.def (STRING_CST): Update comment.
14059         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14060         (tree_string): Place contents of string in tree node.
14061         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14062         from tree.
14063
14064 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14065
14066         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14067         msgid.
14068
14069 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
14070
14071         * config/rs6000/altivec.md (*movv4si_internal): At least one
14072         operand must be altivec_register_operand.
14073         (*movv8hi_internal1): Likewise.
14074         (*movv16qi_internal1): Likewise.
14075         (*movv4sf_internal1): Likewise.
14076
14077 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14078
14079         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14080         * configure: Regenerate.
14081
14082 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
14083
14084         * doc/install.texi: Update description of --gxx-include-dir to
14085         give correct default value.
14086
14087 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14088
14089         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14090         8 with MAC_REG.
14091
14092 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14093
14094         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14095         gen_rtx_PARALLEL.
14096
14097 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14098
14099         * emit-rtl.c: Update the comment about the file.
14100
14101 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14102
14103         * sourcebuild.texi (Test Idioms): Update testcase naming
14104         conventions.
14105
14106 2004-02-04  Per Bothner  <per@bothner.com>
14107
14108         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14109         * c-ppoutput.c (pp_dir_change):  New function.
14110         * c-common.h (pp_dir_change):  New declaration.
14111         * cpplib.h (struct cpp_options):  Remove working_directory field.
14112         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14113         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14114         Don't handle -fworking_directory here, but in c_common_post_options.
14115         (read_original_directory): Don't back up when done.
14116         Don't clear no-longer used working_directory flag.
14117         * cpplib.h:  Update declarations to match.
14118         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14119         (init_c_lex):  Don't set dir_change callback here, since we want
14120         to set it even if flag_preprocess_only.
14121         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14122         (c_common_post_options):  Set dir_change callback.
14123         Call pp_dir_change if approporiate.
14124         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14125         unneeded parameter and result. Do LC_RENAME for <built-in>.
14126         (c_common_post_options):  Call cpp_read_main_file here instead.
14127         (c_common_init):  Update accordingly.
14128         (push_command_line_include):  Don't cpp_push_main_file.
14129         Do LC_RENAME rather than LC_LEASE to get back to main file.
14130         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14131         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14132         files, but call finish_options for all files.
14133         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14134         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14135         cpp_find_main_file + cpp_push_main_file.
14136         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14137         * opts.c (handle_options):  Only set main_input_filename first time.
14138
14139 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14140
14141         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14142
14143 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14144
14145         * reload.c (find_equiv_reg): When checking for register overlap,
14146         don't index hard_regno_nregs with a pseudo-reg.
14147
14148 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14149
14150         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14151
14152 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14153
14154         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14155         against FIRST_PSEUDO_REGISTER.
14156
14157 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14158
14159         * Makefile.in: Move target, host overrides after per-language
14160         fragments.
14161
14162         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14163         (GNATLIBCFLAGS): Remove -g.
14164
14165 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14166
14167         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14168         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14169         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14170         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14171         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14172         config/sparc/sparc.c, config/vax/vax.c: Revert the
14173         replacements of "FALLTHRU" with "Fall through" done in the
14174         previous patch.
14175
14176 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14177
14178         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14179         config/arm/arm.c, config/arm/arm.md,
14180         config/cris/cris-protos.h, config/fr30/fr30.c,
14181         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14182         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14183         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14184         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14185         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14186         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14187         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14188         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14189         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14190         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14191         config/s390/s390.md, config/sparc/netbsd-elf.h,
14192         config/sparc/openbsd.h, config/sparc/sparc.c,
14193         config/xtensa/lib2funcs.S: Fix comment formatting.
14194
14195 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14196
14197         * config/alpha/alpha.c, config/arc/arc.c,
14198         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14199         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14200         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14201         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14202         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14203         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14204         config/iq2000/iq2000.c, config/m32r/m32r.c,
14205         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14206         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14207         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14208         config/rs6000/rs6000.h, config/sparc/sparc.c,
14209         config/vax/vax.c: Fix comment typos.  Follow spelling
14210         conventions.
14211
14212 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14213
14214         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14215         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14216         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14217         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14218         config/arm/fpa.md, config/arm/iwmmxt.md,
14219         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14220         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14221         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14222         config/sparc/netbsd-elf.h: Update copyright.
14223
14224 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14225
14226         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14227         for all modes whose size is greater than 8 bytes if ARCH32.
14228         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14229         by reference if ARCH32.
14230
14231 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14232
14233         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14234
14235 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14236
14237         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14238         to before adddi3 insn patterns.
14239         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14240         "reload_insi"): Move to before addsi3 insn patterns.
14241
14242 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14243
14244         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14245         parameter.  Use it instead of current_function_is_thunk.
14246         * function.h (struct function): Update documentation for is_thunk.
14247         * tree.h (CALL_FROM_THUNK_P): New macro.
14248         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14249         no_new_pseudos when testing current_function_is_thunk.
14250         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14251
14252 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14253
14254         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14255         TARGET_SETUP_INCOMING_VARARGS.
14256
14257 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14258
14259         * emit-rtl.c (gen_rtx): Remove.
14260         * genattrtab.c: Don't mention gen_rtx in a comment.
14261         * rtl.h: Remove the prototype for gen_rtx.
14262         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14263
14264 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14265
14266         * config/arc/arc.h, config/fr30/fr30.h
14267         (SETUP_INCOMING_VARARGS): Remove the target-independent
14268         comments.
14269         * doc/tm.texi: Don't mention deprecated target macros.
14270
14271 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14272
14273         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14274         target-independent comment.
14275
14276 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14277
14278         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14279         mention deprecated target macros.
14280
14281 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14282
14283         * config.gcc: Remove obsolete ports and configurations.
14284         * config/linux-aout.h, config/netware.h,
14285         config/t-linux-gnulibc1, config/d30v/abi,
14286         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14287         config/d30v/d30v.h, config/d30v/d30v.md,
14288         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14289         config/dsp16xx/dsp16xx-modes.def,
14290         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14291         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14292         config/i370/README, config/i370/i370-c.c,
14293         config/i370/i370-protos.h, config/i370/i370.c,
14294         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14295         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14296         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14297         config/i386/moss.h, config/i386/netware.h,
14298         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14299         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14300         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14301         config/i960/i960-c.c, config/i960/i960-coff.h,
14302         config/i960/i960-modes.def, config/i960/i960-protos.h,
14303         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14304         config/i960/rtems.h, config/i960/t-960bare,
14305         config/m68k/hp310.h, config/m68k/hp320.h,
14306         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14307         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14308         Remove.
14309         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14310         doc/md.texi: Remove mentions of obsolete ports.
14311
14312 2004-02-04  Jan Hubicka  <jh@suse.cz>
14313
14314         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14315         pointer when all VALUE's locations has been invalidated.
14316         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14317
14318 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14319
14320         * doc/invoke.texi (x86 options): Fix spelling/wording.
14321
14322 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14323
14324         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14325         put the original string in a comment.
14326         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14327         * config/mips/mips.c (mips_output_ascii): Likewise.
14328         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14329
14330 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14331
14332         * system.h (GIV_SORT_CRITERION): Poison.
14333         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14334         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14335
14336 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14337
14338         PR target/9348
14339         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14340         multiplies with a multiplication of the wrong signedness, its the
14341         signedness of the multiplication that we've performed that needs to
14342         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14343         if expand_mult_highpart_adjust places the result in target.
14344
14345 2004-02-03  Richard Henderson  <rth@redhat.com>
14346
14347         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14348
14349 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14350
14351         * config.gcc (sh[234]l): Use little endian fragments.
14352
14353 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14354
14355         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14356         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14357         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14358         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14359         floating point format.
14360         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14361         the above functions.
14362         (output_move_quad): Output float values in correct target format.
14363         (legitimate_const_double_p): New function.
14364         * config/pdp11/pdp11.h: Fix typos.
14365         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14366         (TARGET_FLOAT_FORMAT): Ditto.
14367         (pdp11_f_format, pdp11_d_format): Add external declarations.
14368         (MAX_REGS_PER_ADDRESS): Corrected.
14369         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14370         (PRINT_OPERAND): Output float literals in target format.
14371
14372 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14373
14374         PR c++/13975
14375         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14376         TI_PRIVATE.
14377         (access_public_node): Redefine.
14378         (access_protected_node): Likewise.
14379         (access_private_node): Likewise.
14380         * tree.c (build_common_tree_nodes): Create access_public_node,
14381         access_protected_node, and access_private_node.
14382
14383 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14384
14385         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14386         (MASK_INLINE_INT_DIV_THR): Ditto.
14387         (MASK_INLINE_SQRT_LAT): Ditto.
14388         (MASK_INLINE_SQRT_THR): Ditto.
14389         (MASK_DWARF2_ASM): Ditto.
14390         (MASK_EARLY_STOP_BITS): Ditto.
14391
14392 2004-02-02  Paul Brook  <paul@codesourcery.com>
14393
14394         Merge from csl-arm-branch.
14395
14396         2004-01-30  Paul Brook  <paul@codesourcery.com>
14397
14398         * aof.h (REGISTER_NAMES): Add vfp reg names
14399         (ADDITIONAL_REGISTER_NAMES): Ditto.
14400         * aout.h (REGISTER_NAMES): Ditto.
14401         (ADDITIONAL_REGISTER_NAMES): Ditto.
14402         * arm-protos.h: Update/Add Prototypes.
14403         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14404         Only allow 0.0 for VFP.
14405         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14406         (values_fp): Rename from values_fpa.  Update Users.
14407         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14408         Update users.  Only check valid constants for this hardware.
14409         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14410         Only allow consts for FPA.
14411         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14412         Only allow consts for FPA.
14413         (use_return_insn): Check for saved VFP regs.
14414         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14415         (arm_legitimize_address): Ditto.
14416         (arm_general_register_operand): New function.
14417         (vfp_mem_operand): New function.
14418         (vfp_compare_operand): New function.
14419         (vfp_secondary_reload_class): New function.
14420         (arm_float_compare_operand): New function.
14421         (vfp_print_multi): New function.
14422         (vfp_output_fstmx): New function.
14423         (vfp_emit_fstm): New function.
14424         (arm_output_epilogue): Output VPF reg restore code.
14425         (arm_expand_prologue): Output VFP reg save code.
14426         (arm_print_operand): Add 'P'.
14427         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14428         (arm_regno_class): Return classes for VFP regs.
14429         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14430         (arm_get_frame_size): Ditto.
14431         * arm.h (FIXED_REGISTERS): Add VFP regs.
14432         (CALL_USED_REGISTERS): Ditto.
14433         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14434         (FIRST_VFP_REGNUM): Define.
14435         (LAST_VFP_REGNUM): Define.
14436         (IS_VFP_REGNUM): Define.
14437         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14438         (HARD_REGNO_NREGS): Handle VFP regs.
14439         (REG_ALLOC_ORDER): Add VFP regs.
14440         (enum reg_class): Add VFP_REGS.
14441         (REG_CLASS_NAMES): Ditto.
14442         (REG_CLASS_CONTENTS): Ditto.
14443         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14444         (REG_CLASS_FROM_LETTER): Add 'w'.
14445         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14446         (EXTRA_MEMORY_CONSTRAINT): Define.
14447         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14448         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14449         (REGISTER_MOVE_COST): Ditto.
14450         (PREDICATE_CODES): Add arm_general_register_operand,
14451         arm_float_compare_operand and vfp_compare_operand.
14452         * arm.md (various): Rename as above.
14453         (divsf3): Enable when TARGET_VFP.
14454         (divdf3): Ditto.
14455         (movdfcc): Ditto.
14456         (sqrtsf2): Ditto.
14457         (sqrtdf2): Ditto.
14458         (arm_movdi): Disable when TARGET_VFP.
14459         (arm_movsi_insn): Ditto.
14460         (movsi): Only split with general regs.
14461         (cmpsf): Use arm_float_compare_operand.
14462         (push_fp_multi): Restrict to TARGET_FPA.
14463         (vfp.md): Include.
14464         * vfp.md: New file.
14465         * fpa.md (various): Rename as above.
14466         * doc/md.texi: Document ARM w and U constraints.
14467
14468         2004-01-15  Paul Brook  <paul@codesourcery.com>
14469
14470         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14471         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14472         Break out of loop when we find a float-abi.  Fix typo.
14473         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14474         Set -mfloat-abi=.
14475         * doc/install.texi: Document --with-fpu.
14476
14477         2003-01-14  Paul Brook  <paul@codesourcery.com>
14478
14479         * config.gcc (with_arch): Add armv6.
14480         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14481         * config/arm/arm.c (arm_overrride_options): Ditto.
14482
14483         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14484
14485         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14486         (FL_ARCH6): Renamed from FL_ARCH6J.
14487         (arm_arch3m): Renamed from arm_fast_multiply.
14488         (arm_arch6): Renamed from arm_arch6j.
14489         * arm.h: Update all uses of above.
14490         * arm-cores.def: Likewise.
14491         * arm.md: Likewise.
14492
14493         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14494         not arm6j.  Add entry for arch armv6.
14495
14496         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14497
14498         * arm.c (arm_emit_extendsi): Delete.
14499         * arm-protos.h (arm_emit_extendsi): Delete.
14500         * arm.md (zero_extendhisi2): Also handle zero-extension of
14501         non-subregs.
14502         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14503         (thumb_zero_extendhisi2): Only match if not v6.
14504         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14505         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14506         (thumb_extendqisi2): Likewise.
14507         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14508         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14509         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14510         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14511         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14512         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14513         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14514         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14515         (arm_extendqisi2addsi): Likewise.
14516
14517         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14518
14519         Revert this change:
14520         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14521         + REG addressing modes.
14522
14523         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14524         + REG addressing modes.
14525
14526         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14527
14528         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14529         CONSTANT_P_RTX.
14530
14531         2003-30-12  Paul Brook  <paul@codesourcery.com>
14532
14533         * longlong.h: protect arm inlines with !defined (__thumb__)
14534
14535         2003-30-12  Paul Brook  <paul@codesourcery.com>
14536
14537         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14538
14539         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14540
14541         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14542         change.
14543
14544         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14545
14546         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14547         to the virtual incoming args pointer for downward stacks.
14548
14549         2003-12-29  Paul Brook  <paul@codesourcery.com>
14550
14551         * config/arm/arm-cores.def: Add cost function.
14552         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14553         (arm_rtx_costs): Remove
14554         (struct processors): Add rtx_costs field.
14555         (all_cores, all_architectures): Ditto.
14556         (arm_override_options): Set targetm.rtx_costs.
14557         (thumb_rtx_costs): New function.
14558         (arm_rtx_costs_1): Remove cases handled elsewhere.
14559         * config/arm/arm.h (processor_type): Add COSTS parameter.
14560
14561         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14562
14563         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14564         (arm926ejs.md): Include it.
14565         * config/arm/arm926ejs.md: New pipeline description.
14566
14567         2003-12-24  Paul Brook  <paul@codesourcery.com>
14568
14569         * config/arm/arm.c (arm_arch6j): New variable.
14570         (arm_override_options): Set it.
14571         (arm_emit_extendsi): New function.
14572         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14573         * config/arm/arm.h (arm_arch6j): Declare.
14574         * config/arm/arm.md: Add sign/zero extend insns.
14575
14576         2003-12-23  Paul Brook  <paul@codesourcery.com>
14577
14578         * config/arm/arm.c (all_architectures): Add armv6.
14579         * doc/invoke.texi: Document it.
14580
14581         2003-12-19  Paul Brook  <paul@codesourcery.com>
14582
14583         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14584         insn patterns to match.
14585         * config/arm/arm-generic.md: Ditto.
14586         * config/arm/cirrus.md: Ditto.
14587         * config/arm/fpa.md: Ditto.
14588         * config/amm/iwmmxt.md: Ditto.
14589         * config/arm/arm1026ejs.md: Ditto.
14590         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14591         for 11_loadb.
14592
14593         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14594
14595         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14596         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14597         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14598         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14599         arm_no_early_mul_dep): Correctly deal with conditional execution,
14600         parallels and single shift operations.
14601         (arm_no_early_alu_shift_value_dep): Define.
14602         * arm.md (attr type): Replace 'normal' with 'alu',
14603         'alu_shift' and 'alu_shift_reg'.
14604         (attr core_cycles): Adjust.
14605         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14606         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14607         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14608         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14609         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14610         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14611         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14612         attribute appropriately.
14613         * config/arm/arm1026ejs.md (alu_op): Adjust.
14614         (alu_shift_op, alu_shift_reg_op): New.
14615         * config/arm/arm1136.md: Add better bypasses for early
14616         registers. Remove load[234] and store[234] bypasses.
14617         (11_alu_op): Adjust.
14618         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14619
14620         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14621
14622         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14623         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14624         * config/arm/arm.c (arm_no_early_store_addr_dep,
14625         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14626         * config/arm/arm1026ejs.md: Add load-store bypass.
14627         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14628         Add bypasses between instructions.
14629
14630         2003-12-10  Paul Brook  <paul@codesourcery.com>
14631
14632         * config/arm/arm.c (arm_fpu_model): New variable.
14633         (arm_fload_abi): New variable.
14634         (target_fpe_name): Rename from target_fp_name.
14635         (target_fpu_name): New variable.
14636         (arm_is_cirrus): Remove.
14637         (fpu_desc): New struct.
14638         (all_fpus): Define.
14639         (pf_model_for_fpu): Define.
14640         (all_loat_abis): Define.
14641         (arm_override_options): Set fp arch flags based on -mfpu=
14642         and -float-abi=.
14643         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14644         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14645         (*): Use new TARGET_* flags.
14646         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14647         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14648         (TARGET_SOFT_FLOAT): Ditto.
14649         (TARGET_SOFT_FLOAT_ABI): New.
14650         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14651         TARGET_HARD_FLOAT.
14652         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14653         (TARGET_OPTIONS): Add -mfpu=.
14654         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14655         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14656         (arm_pf_model): Define.
14657         (arm_float_abi_type): Define.
14658         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14659         * config/arm/arm.md: Use new TARGET_* flags.
14660         * config/arm/cirrus.md: Ditto.
14661         * config/arm/fpa.md: Ditto.
14662         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14663         * config/arm/semi.h (ASM_SPEC): Ditto.
14664         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14665         (FPUTYPE_DEFAULT): Set to VFP.
14666         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14667
14668         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14669
14670         PR target/12476
14671         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14672         'bx' instead of 'b' to avoid branch range restrictions.  Output
14673         the thunk immediately before the thunked-to function.
14674         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14675         .thumb_func if a thunk is being generated.  Emit .code 16 along
14676         with .thumb_func if a thunk is not being generated.
14677
14678         2003-11-15  Nicolas Pitre <nico@cam.org>
14679
14680         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14681         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14682         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14683         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14684         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14685
14686         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14687             Ian Lance Taylor  <ian@wasabisystems.com>
14688
14689         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14690         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14691
14692         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14693
14694         * config/arm/arm.md (insn):  Add new V6 instruction names.
14695         (generic_sched):  New attr.
14696         * config/arm/arm-generic.md:  Use generic_sched here.
14697         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14698         stages of pipeline.  Adjust latency counts accordingly.
14699         * config/arm/arm1136jfs.md:  New file.
14700
14701         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14702
14703         * config/arm/arm.h (processor_type): New enumeration type.
14704         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14705         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14706         (CPP_CPU_ARCH_SPEC): Likewise.
14707         * config/arm/arm.c (arm_tune): New variable.
14708         (all_cores): Use cores.def.
14709         (all_architectures): Add representative processor.
14710         (arm_override_options): Restructure way in which tuning
14711         information is deduced.
14712         * arm.md: Update "insn" and "type" attributes throughout.
14713         (insn): New attribute.
14714         (type): Compute "mult" from "insn" attribute.  Add load2,
14715         load3, load4 alternatives.
14716         (arm automaton): Move to arm-generic.md.
14717         * config/arm/arm-cores.def: New file.
14718         * config/arm/arm-generic.md: Likewise.
14719         * config/arm/arm1026ejs.md: Likewise.
14720
14721 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14722
14723         * doc/invoke.texi (SPARC options): Remove -mflat and
14724         all -mxxx (xxx:chip) options.
14725         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14726         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14727         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14728         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14729         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14730         * config/sparc/sparc.c: Likewise.
14731         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14732         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14733         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14734         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14735         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14736         (sparc_flat_must_save_register_p): Likewise.
14737         (sparc_flat_compute_frame_size): Likewise.
14738         (sparc_flat_save_restore): Likewise.
14739         (sparc_flat_function_prologue): Likewise.
14740         (sparc_flat_function_epilogue): Likewise.
14741         (sparc_flat_epilogue_delay_slots): Likewise.
14742         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14743         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14744         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14745         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14746         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14747         (CONDITIONAL_REGISTER_USAGE): Likewise.
14748         (FRAME_POINTER_REQUIRED): Likewise.
14749         (INITIAL_ELIMINATION_OFFSET): Likewise.
14750         (BASE_RETURN_VALUE_REG): Likewise.
14751         (BASE_OUTGOING_VALUE_REG): Likewise.
14752         (BASE_PASSING_ARG_REG): Likewise.
14753         (BASE_INCOMING_ARG_REG): Likewise.
14754         (INCOMING_REGNO): Likewise.
14755         (OUTGOING_REGNO): Likewise.
14756         (LOCAL_REGNO): Likewise.
14757         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14758         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14759         (EPILOGUE_USES): Likewise.
14760         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14761         ("flat" attribute): Delete.
14762         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14763         handling.
14764         (call followed by jump define_peephole's): Delete.
14765         (exception_receiver): Likewise.
14766         (builtin_setjmp_receiver): Likewise.
14767         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14768
14769 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14770
14771         PR c/11658
14772         PR c/13994
14773         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14774         on langhooks.h.
14775         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14776         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14777         Include langhooks.h.  Replace c_common_truthvalue_conversion
14778         with the truthvalue_conversion language hook throughout.
14779         (expr_no_commas): Call default_conversion before save_expr
14780         for the first term of the production 'x ? : y'.
14781         * c-common.c (c_common_truthvalue_conversion): Remove
14782         obsolete block.  Invoke recursively the hook instead
14783         of this function.
14784         * c-convert.c (convert): handle ERROR_MARK_NODE.
14785         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14786         returned by the truthvalue_conversion language hook.
14787         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14788         c_objc_common_truthvalue_conversion.
14789         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14790         New function.
14791         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14792         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14793         c_objc_common_truthvalue_conversion.
14794
14795 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14796
14797         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14798         of gen_rtx.
14799         (LIBCALL_VALUE): Likewise.
14800         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14801         gen_rtx_CC0 instead of gen_rtx.
14802         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14803         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14804         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14805         gen_rtx.
14806         (m68hc11_emit_logical): Likewise.
14807
14808 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14809
14810         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14811         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14812         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14813         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14814         config/mips/mips.md, config/mmix/mmix.c,
14815         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14816         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14817         config/rs6000/altivec.md, config/s390/s390.c,
14818         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14819         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14820         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14821         constants that are readily available.
14822
14823 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14824
14825         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14826         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14827         instead of GEN_INT (0).  Do the same for other constants that
14828         are readily available.
14829
14830 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14831
14832         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14833         gen_rtx.
14834         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14835         instead of gen_rtx.
14836         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14837         gen_rtx.
14838         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14839         gen_rtx_ASHIFT instead of gen_rtx.
14840         (udivmodqi4): Likewise.
14841
14842 2004-02-02  Richard Henderson  <rth@redhat.com>
14843
14844         PR target/13789
14845         * expr.c (store_expr): Use force_operand before emit_move_insn.
14846
14847 2004-02-02  Jeff Law  <law@redhat.com>
14848             Roger Sayle  <roger@eyesopen.com>
14849
14850         * tree.c (commutative_tree_code, associative_tree_code): New
14851         functions.
14852         (iterative_hash_expr): Use commutative_tree_code.
14853         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14854         * fold-const.c (operand_equal_p): Use commutative_tree_code
14855         rather than inlining the commutativity check.
14856         (fold): Likewise.
14857
14858 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14859
14860         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14861         * config/frv/frv-protos.h: Remove the prototype for
14862         frv_function_arg_keep_as_reference.
14863         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14864         Remove.
14865         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14866         * config/stormy16/stormy16.h: Remove the commented-out
14867         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14868
14869 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14870
14871         PR target/13914
14872         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14873         for retaddr_column.
14874
14875 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14876
14877         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14878         gen_rtx.
14879
14880 2004-02-02  Eric Christopher  <echristo@redhat.com>
14881             Zack Weinberg  <zack@codesourcery.com>
14882
14883         * c-opts.c (c_common_handle_option): Add -finput-charset.
14884         * c.opt: Ditto.
14885         * cppcharset.c (one_iso88591_to_utf8): Remove.
14886         (convert_iso88591_utf8): Ditto.
14887         (conversion_tab): Remove 8859-1 converter.
14888         (_cpp_input_to_utf8): Remove.
14889         (_cpp_init_iconv_buffer): Ditto.
14890         (_cpp_close_iconv_buffer): Ditto.
14891         (_cpp_convert_input): New function.
14892         (_cpp_default_encoding): Ditto.
14893         * cpphash.h: Add/remove prototypes for above.
14894         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14895         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14896         for narrow execution and input character sets.
14897         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14898         * doc/cppopts.texi: Document -finput-charset.
14899
14900 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14901
14902         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14903         against FIRST_PSEUDO_REGISTER.
14904
14905 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14906
14907         * doc/invoke.texi (SPARC options): Further improve.
14908
14909 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14910
14911         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14912         config/h8300/h8300.c, config/ip2k/ip2k.md,
14913         config/iq2000/iq2000.c, config/mips/mips.c,
14914         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14915         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14916         config/v850/v850.md: Fix indentation.
14917
14918 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14919
14920         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14921         arguments on a 16-byte boundary in the parameter array if ARCH64.
14922         Split handling of TFmode.
14923
14924 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14925
14926         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14927         Don't test CONSTANT_P (x).
14928         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14929         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14930         Fix misindentation.
14931
14932 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14933
14934         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14935
14936 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14937
14938         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14939         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14940         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14941         config/iq2000/iq2000.c, config/m32r/m32r.c,
14942         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14943         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14944         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14945         config/stormy16/stormy16.c, config/v850/v850.md,
14946         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14947
14948 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14949
14950         * config/mcore/mcore.c (block_move_sequence): Replace
14951         gen_rtx_CONST_INT with GEN_INT.
14952
14953 2004-02-02  Jan Hubicka  <jh@suse.cz>
14954
14955         * alias.c (record_set): Use hard_regno_nregs.
14956         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14957         * builtins.c (apply_args_size): Likewise.
14958         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14959         mark_set_regs, add_stored_regs, mark_referenced_regs,
14960         insert_restore, insert_save, insert_one_insn): Likewise.
14961         * cfgcleanup.c: Include regs.h
14962         (mark_effect, mentions_nonequal_regs): Likewise.
14963         * cfgrtl.c (mark_killed_regs): Likewise
14964         * combine.c (update_table_tick, record_value_for_reg,
14965         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14966         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14967         reg_bitfield_target_p, distribute_notes): Likewise.
14968         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14969         exp_equiv_p, cse_insn): Likewise.
14970         * cselib.c (cselib_lookup): Likewise.
14971         (cselib_invalidate_regno, cselib_record_set): Likewise.
14972         * df.c (df_ref_record): Likewise.
14973         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14974         Likewise.
14975         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14976         count_or_remove_death_notes_bb): Likewise.
14977         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14978         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14979         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14980         * integrate.c (mark_stores): Likewise.
14981         * jump.c (delete_prior_computation): Likewise.
14982         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14983         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14984         * loop.c (LOOP_REGNO_NREGS): Likewise.
14985         * postreload.c (reload_combine, reload_combine_note_store,
14986         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14987         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14988         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14989         try_recolor_web, insert_coalesced_conflicts, check_colors,
14990         break_precolored_alias): Likewise.
14991         * ra-debug.c: Include regs.h
14992         (ra_print_rtx_object): Likewise.
14993         * ra-rewrite (choose_spill_colors): Likewise.
14994         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14995         * ra.c (init_ra): Likewise.
14996         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14997         peep2_find_free_register): Likewise.
14998         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14999         * regclass.c (hard_regno_nregs): New array.
15000         (init_reg_modes_once): Initialize it.
15001         (choose_hard_reg_mode): Use it.
15002         (record_reg_classes): Likewise.
15003         * regmove.c (mark_flags_life_zones): Likewise.
15004         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15005         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15006         copy_value, maybe_mode_change, find_oldest_value_reg,
15007         copyprop_hardreg_forward_1):
15008         * regs.h (hard_regno_nregs): Declare.
15009         * realod.c (reload_inner_reg_of_subreg): Use it.
15010         (push_reload, combine_reloads, find_dummy_reload,
15011         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15012         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15013         reload_adjust_reg_for_mode): Likewise.
15014         * reload1.c (compute_use_by_pseudos, count_pseudo,
15015         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15016         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15017         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15018         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15019         delete_output_reload): Likewise.
15020         * resource.c (update_live_status, mark_referenced_resources,
15021         mark_set_resources, mark_target_live_regs): Likewise.
15022         * rtlanal.c:  Include regs.h
15023         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15024         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15025         subreg_regno_offset, subreg_offset_representable_p,
15026         hoist_test_store): Likewise.
15027         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15028         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15029         * stmt.c: Include regs.h
15030         (decl_conflicts_with_clobbers_p): Likewise.
15031         * varasm.c (make_decl_rtl): Likewise.
15032         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15033
15034 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15035
15036         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15037         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15038         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15039         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15040         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15041         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15042         config/iq2000/iq2000.h, config/m32r/m32r.c,
15043         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15044         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15045         config/mcore/mcore.c, config/mcore/mcore.h,
15046         config/mcore/mcore.md, config/mips/mips.c,
15047         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15048         config/rs6000/rs6000.c, config/s390/s390.c,
15049         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15050         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15051         "gen_rtx (FOO, " with "gen_rtx_FOO (".
15052
15053 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15054
15055         * config/h8300/h8300.md (two peephole2's): New.
15056
15057 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15058
15059         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15060         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15061         (ASM_CPU_SPEC): Likewise
15062         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15063         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
15064
15065 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15066
15067         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15068         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15069         (expand_builtin): Always call expand_builtin_pow.
15070
15071 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15072
15073         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15074         BUILT_IN_SIGNBITL): New GCC builtins.
15075         * builtins.c (expand_builtin_signbit): New function to RTL expand
15076         calls to signbit, signbitf and signbitl as inline intrinsics.
15077         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15078         (fold_builtin_signbit): New function to perform constant folding
15079         of signbit, signbitf and signbitl.
15080         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15081
15082         * doc/extend.texi: Document new signbit{,f,l} builtins.
15083
15084 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
15085
15086         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15087
15088 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
15089
15090         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15091         "mips_const_double_ok" and "simple_memory_operand", which were
15092         removed from the MIPS port with the mips-3_4-rewrite branch merge.
15093         * config/mips/mips.c (mips16_lay_out_constants): Update comment
15094         for removal of simple_memory_operand.
15095
15096 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15097
15098         * config/c4x/c4x.md: Use GEN_INT instead of
15099         gen_rtx (CONST_INT, ...).
15100
15101 2004-01-31  Richard Henderson  <rth@redhat.com>
15102
15103         * varasm.c (output_constant_pool): Don't zap the pool.
15104
15105 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15106
15107         * genrecog.c (decision_type): Add DT_const_int.
15108         (write_cond) [DT_const_int]: Print a comparison against small
15109         constant.
15110         (write_node): Simplify comparisons against small constants
15111         before printing tests.
15112
15113 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15114
15115         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15116         instead of gen_rtx_CONST_INT.
15117
15118 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15119
15120         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15121         instead of gen_rtx_CONST_INT.
15122
15123 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15124
15125         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15126         hook_bool_CUMULATIVE_ARGS_false.
15127         * targhooks.c (default_strict_argument_naming): Rename to
15128         hook_bool_CUMULATIVE_ARGS_false.
15129         * targhooks.h: Update the prototype for
15130         default_strict_argument_naming.
15131
15132 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15133
15134         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15135         * config/sh/sh.h: Likewise.
15136         * config/sh/sh.md: Likewise.
15137
15138 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15139
15140         * doc/invoke.texi (SPARC options): Restructure and update.
15141
15142 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15143
15144         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15145         STRICT_ARGUMENT_NAMING): Poison.
15146         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15147         hook_bool_tree_false.
15148         * targhooks.c (default_promote_function_args): Remove.
15149         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15150         Don't check incoming.
15151         (default_strict_argument_naming): Don't use
15152         STRICT_ARGUMENT_NAMING.
15153         * targhooks.h: Remove the prototype for
15154         default_promote_function_args.
15155
15156 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15157
15158         * config/i386/i386-protos.h: Remove the prototype for
15159         ix86_setup_incoming_varargs.
15160         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15161         (ix86_setup_incoming_varargs): Make it static.
15162         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15163
15164 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15165
15166         * alloc-pool.c: Fix comment typos.
15167         * builtin-types.def: Likewise.
15168         * builtins.def: Likewise.
15169         * c-pretty-print.c: Likewise.
15170         * df.h: Likewise.
15171         * reload1.c: Likewise.
15172
15173 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15174
15175         * doc/invoke.texi: Follow spelling conventions.
15176         * doc/tm.texi: Likewise.
15177
15178 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15179
15180         * doc/install.texi: Fix typos.
15181         * doc/invoke.texi: Likewise.
15182
15183 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15184
15185         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15186         registers as pointers.
15187         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15188
15189 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15190
15191         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15192         and restore it to gen_lowpart_general on exit.
15193         (gen_lowpart_for_combine): Adjust all callers to go through
15194         gen_lowpart.
15195         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15196         and restore it to gen_lowpart_general on exit.
15197         (gen_lowpart_if_possible): Adjust all callers to go through
15198         gen_lowpart.
15199         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15200         (gen_lowpart): Declare as pointer to function, initialized to
15201         gen_lowpart_general.
15202         * rtl.h (gen_lowpart): Declare as pointer to function.
15203
15204 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15205
15206         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15207         * calls.c: Likewise.
15208         * emit-rtl.c: Likewise.
15209         * function.c: Likewise.
15210         * reload1.c: Likewise.
15211         * config/i386/cygming.h: Likewise.
15212         * config/i386/i386.c: Likewise.
15213         * config/i386/winnt.c: Likewise.
15214
15215 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15216
15217         PR bootstrap/9249
15218         * doc/install.texi: document --enable-__cxa_atexit option.
15219         * configure.ac: Disable __cxa_atexit if not supported.
15220         * configure: Regenerate.
15221
15222 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
15223
15224         * ggc-zone.c (ggc_free): New function.
15225
15226 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15227
15228         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15229         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15230         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15231         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15232         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15233         config/alpha/alpha.c, config/alpha/alpha.h,
15234         config/alpha/alpha.md, config/alpha/unicosmk.h,
15235         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15236         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15237         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15238         config/frv/frvend.c, config/i386/cygming.h,
15239         config/i386/djgpp.h, config/i386/emmintrin.h,
15240         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15241         config/i386/i386-protos.h, config/i386/openbsd.h,
15242         config/i386/winnt.c, config/i386/xm-mingw32.h,
15243         config/i386/xmmintrin.h, config/ia64/ia64.md,
15244         config/iq2000/iq2000.md, config/m32r/m32r.md,
15245         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15246         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15247         config/mips/iris5gas.h, config/mips/iris6.h,
15248         config/mips/iris6gas.h, config/mips/linux.h,
15249         config/mips/mips.md, config/mips/netbsd.h,
15250         config/mips/openbsd.h, config/mips/windiss.h,
15251         config/pa/fptr.c, config/rs6000/aix.h,
15252         config/rs6000/altivec.h, config/rs6000/darwin.h,
15253         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15254         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15255         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15256         config/sparc/sol2.h: Update copyright.
15257
15258 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15259
15260         * Makefile.in (abs_docdir, abs_srcdir): Define.
15261         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15262
15263 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15264
15265         * genconfig.c (main): Have CC0_P check its operand even on a
15266         target without cc0.
15267
15268 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15269
15270         * config/alpha/alpha.c: Remove mentions of deprecates macros
15271         in comments, remove some target-independent comments about target
15272         macros, and/or add minimal function comments for target hook
15273         implementations.
15274         * config/avr/avr.c: Likewise.
15275         * config/ia64/ia64.h: Likewise.
15276         * config/ip2k/ip2k.c: Likewise.
15277         * config/iq2000/iq2000.c: Likewise.
15278         * config/m32r/m32r.h: Likewise.
15279         * config/m68hc11/m68hc11.c: Likewise.
15280         * config/mcore/mcore.c: Likewise.
15281         * config/mmix/mmix.c: Likewise.
15282         * config/mn10300/mn10300.c: Likewise.
15283         * config/pa/pa.c: Likewise.
15284         * config/pdp11/pdp11.c: Likewise.
15285         * config/rs6000/rs6000.h: Likewise.
15286         * config/sh/sh.c: Likewise.
15287         * config/sh/sh.h: Likewise.
15288         * config/sparc/sparc.c: Likewise.
15289         * config/sparc/sparc.h: Likewise.
15290         * config/stormy16/stormy16.c: Likewise.
15291         * config/xtensa/xtensa.c: Likewise.
15292
15293 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15294
15295         PR optimization/12147
15296         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15297         RELOAD_FOR_OPADDR_ADDR.
15298         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15299         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15300
15301 2004-01-30  Jan Hubicka  <jh@suse.cz>
15302
15303         * reload.c (get_secondary_mem): Fix updating of
15304         secondary_memlocs_elim_used.
15305
15306 2004-01-30  Richard Henderson  <rth@redhat.com>
15307
15308         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15309         (MAX_RTX_HASH_TABLE): Remove.
15310         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15311         (first_pool, last_pool, pool_offset): Remove.
15312         (struct rtx_constant_pool): Split out from ...
15313         (struct varasm_status): ... here.  Reference one via pointer.
15314         (struct constant_descriptor_rtx): Merge struct pool_constant.
15315         (SYMHASH): Remove.
15316         (decode_rtx_const): Remove.
15317         (const_hash_rtx, compare_constant_rtx): Remove.
15318         (record_constant_rtx): Remove.
15319         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15320         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15321         (const_rtx_hash_1, const_rtx_hash): New.
15322         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15323         (simplify_subtraction): Use simplify_rtx.
15324         (force_const_mem): Rewrite to use new data structures.
15325         (find_pool_constant): Likewise.
15326         (get_pool_constant, get_pool_constant_mark,
15327         get_pool_constant_for_function, get_pool_mode,
15328         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15329         (output_constant_pool_2): Split out from output_constant_pool.
15330         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15331         (output_constant_pool): Zap entire pool datastructure.
15332         (mark_constant): Use new pool datastructures.
15333         (mark_constants): Use for_each_rtx.
15334         (mark_constant_pool): Use new pool datastructures.
15335
15336 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15337
15338         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15339         Copy operands[1] to pseudo for simplify_gen_subreg.
15340
15341 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15342
15343         * gcse.c (bypass_block): Fix a typo in the previous check-in
15344         to the file.
15345
15346 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15347
15348         * toplev.c: Include alloc-pool.h.
15349         * Makefile.in (toplev.c): Update dependencies.
15350
15351 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15352
15353         * combine.c (simplify_shift_const, case XOR): Be careful when
15354         commuting XOR with ASHIFTRT.
15355
15356 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15357             Eric Botcazou  <ebotcazou@libertysurf.fr>
15358
15359         * config/sparc/sparc-protos.h: Remove the prototype for
15360         sparc_builtin_saveregs.
15361         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15362         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15363         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15364         (TARGET_STRUCT_VALUE_RTX): Likewise.
15365         (TARGET_RETURN_IN_MEMORY): Likewise.
15366         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15367         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15368         (sparc_builtin_saveregs): Make it static.
15369         (sparc_promote_prototypes): New.
15370         (sparc_struct_value_rtx): Likewise.
15371         (sparc_return_in_memory): Likewise.
15372         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15373         (PROMOTE_FUNCTION_RETURN): Likewise.
15374         (RETURN_IN_MEMORY): Likewise.
15375         (STRUCT_VALUE): Likewise.
15376         (STRUCT_VALUE_INCOMING): Likewise.
15377         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15378         (STRICT_ARGUMENT_NAMING): Likewise.
15379         (PROMOTE_PROTOTYPES): Likewise.
15380
15381         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15382
15383 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15384
15385         PR c/12818
15386         * varasm.c (const_hash_1) <STRING_CST>: Use the
15387         address to compute the hash value if flag_writable_strings.
15388         (compare_constant) <STRING_CST>: Compare the addresses
15389         if flag_writable_strings.
15390         (build_constant_desc): Do not copy the expression for a
15391         STRING_CST if flag_writable_strings.
15392
15393 2004-01-30  Jan Hubicka  <jh@suse.cz>
15394
15395         * alloc-pool.c: Include hashtab.h
15396         (alloc_pool_descriptor): New structure
15397         (alloc_pool_hash): New global variable.
15398         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15399         (create_alloc_pool): Update statistics.
15400         (free_alloc_pool): Likewise.
15401         (pool_alloc): Likewise.
15402         (output_info): New structure
15403         (print_statistics, dump_alloc_pool_statistics): New function.
15404         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15405         (dump_alloc_pool_statistics): Declare.
15406         * toplev.c (finalize):  Dump statistics.
15407
15408         * reload.c (secondary_memlocs_elim_used): New static variable.
15409         (get_secondary_mem): Update it.
15410         (find_reloads): Use it.
15411
15412 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15413
15414         * toplev.c: Fix broken checkin of 2003-12-30, again.
15415
15416 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15417
15418         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15419         s390*-*-* targets by specifying a 'nop' insn.
15420         * configure: Regenerate.
15421
15422 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15423
15424         PR target/11475
15425         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15426
15427 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15428
15429         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15430         of addr when creating MEM copy.
15431
15432 2004-01-29  Devang Patel  <dpatel@apple.com>
15433
15434         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15435
15436 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15437
15438         PR inline-asm/6162
15439         * reload.c (find_reloads): Only support one pair of commutative
15440         operands.
15441
15442 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15443
15444         PR java/13824
15445         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15446         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15447         recursion.
15448
15449 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15450
15451         * config/frv/frv.c: Don't mention deprecated macros in
15452         comments.  Remove some target-independent comments about
15453         target macros.
15454         * config/frv/frv.h: Likewise.
15455
15456 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15457
15458         * cfghooks.c (split_block): Set probability and count of the
15459         new edge.
15460
15461 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
15462
15463         * dwarf2out.c (struct die_struct): Added field decl_id.
15464         (decl_die_table): Changed to hash table.
15465         (decl_die_table_allocated): Deleted.
15466         (decl_die_table_in_use): Deleted.
15467         (DECL_DIE_TABLE_INCREMENT): Deleted.
15468         (decl_die_table_hash): New function.
15469         (decl_die_table_eq): New function.
15470         (lookup_decl_die): Lookup in a hash table.
15471         (equate_decl_number_to_die): Insert into a hash table.
15472         (dwarf2out_init): Init hash table decl_die_table.
15473
15474 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15475
15476         PR optimization/13424
15477         * expr.c (store_constructor): Revert 2003-12-03 change.
15478
15479         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15480         expected before returning early.  Avoid sharing RTL if they
15481         need to be changed.
15482
15483         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15484         handling so that memory attributes are preserved.  Don't call
15485         ix86_set_move_mem_attrs.
15486         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15487         (ix86_expand_clrstr): Rename src argument to
15488         dst.  Rework rep_stos and strset handling so that memory attributes
15489         are preserved.
15490         (ix86_expand_strlen): Pass src argument to
15491         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15492         memory attributes are preserved.
15493         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15494         change_address instead of gen_rtx_MEM.
15495         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15496         expanders.
15497         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15498         strmovqi, strmovqi_rex64): Remove.
15499         (rep_mov*, strmov*): Prefix insn names with *.
15500         (strset, strset_singleop, rep_stos): New expanders.
15501         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15502         strsetqi, strsetqi_rex64): Remove.
15503         (rep_stos*, strset*): Prefix insn names with *.
15504         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15505         to SImode.
15506         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15507         are preserved.
15508         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15509         Prefix insn names with *.
15510         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15511         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15512         (strlenqi_1): New expander.
15513         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15514
15515 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15516
15517         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15518         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15519         verify_flow_info): Declaration removed.
15520         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15521         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15522         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15523         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15524         instead of delete_block.
15525         * cfghooks.c: Include timevar.h and toplev.h.
15526         (cfg_hooks): Define here.
15527         (verify_flow_info, dump_bb): Moved from cfg.c.
15528         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15529         split_block, split_block_after_labels, move_block_after,
15530         delete_basic_block, split_edge, create_basic_block,
15531         create_empty_bb, can_merge_blocks_p, merge_blocks,
15532         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15533         New functions.
15534         * cfghooks.h (struct cfg_hooks): Added fields name,
15535         make_forwarder_block, tidy_fallthru_edge and
15536         move_block_after. Changed type of verify_flow_info, dump_bb,
15537         split_block fields. Renamed cfgh_split_edge and delete_block
15538         fields.
15539         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15540         split_block, delete_block, split_edge, create_basic_block,
15541         can_merge_blocks_p, merge_blocks): Macros removed.
15542         (cfg_hooks): Do not export.
15543         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15544         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15545         move_block_after, delete_basic_block, split_edge, create_basic_block,
15546         create_empty_bb, can_merge_blocks_p, merge_blocks,
15547         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15548         Declare.
15549         (cfg_layout_rtl_cfg_hooks): Declare.
15550         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15551         New functions.
15552         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15553         (redirect_edge_with_latch_update): Removed.
15554         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15555         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15556         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15557         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15558         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15559         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15560         cfghooks.c.
15561         (rtl_create_basic_block): Coding style fix.
15562         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15563         rtl_make_forwarder_block): New functions.
15564         (update_cfg_after_block_merging): Removed.
15565         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15566         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15567         to dump_bb.
15568         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15569         find_if_case_2): Don't update dominators.
15570         * timevar.def (TV_CFG_VERIFY): New.
15571         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15572         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15573         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15574         (remove_bbs): Don't call remove_bbs.
15575         (create_preheader): Use make_forwarder_block.
15576         (mfb_keep_just, mfb_update_loops): New static functions.
15577
15578 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15579
15580         * config/avr/avr.h: Remove target-independent comments about
15581         target macros.
15582
15583 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15584
15585         * timevar.c (timevar_print): Mention when checking is enabled.
15586
15587 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15588
15589         * c-lex.c (c_lex): Rename to...
15590         (c_lex_with_flags): Add new parameter to get CPP flags.
15591         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15592         * c-pragma.h (c_lex_with_flags): Declare.
15593
15594 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15595
15596         * config/mcore/mcore.c (mcore_external_libcall): Add a
15597         comment.
15598         (mcore_return_in_memory): Likewise.
15599
15600 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15601
15602         * config/mcore/mcore-protos.h: Remove the prototype for
15603         mcore_setup_incoming_varargs.
15604         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15605         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15606         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15607         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15608         (TARGET_STRUCT_VALUE_RTX): Likewise.
15609         (TARGET_RETURN_IN_MEMORY): Likewise.
15610         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15611         (mcore_setup_incoming_varargs): Make it static.  Receive the
15612         first argument by reference.  Add argument second_time.
15613         (mcore_external_libcall): New.
15614         (mcore_return_in_memory): Likewise.
15615         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15616         (PROMOTE_FUNCTION_RETURN): Likewise.
15617         (STRUCT_VALUE): Likewise.
15618         (RETURN_IN_MEMORY): Likewise.
15619         (SETUP_INCOMING_VARARGS): Likewise.
15620         (PROMOTE_PROTOTYPES): Likewise.
15621         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15622
15623 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15624
15625         * config/m32r/m32r-protos.h: Remove the prototype for
15626         m32r_setup_incoming_varargs.
15627         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15628         (TARGET_STRUCT_VALUE_RTX): Likewise.
15629         (TARGET_RETURN_IN_MEMORY): Likewise.
15630         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15631         (m32r_return_in_memory): New.
15632         (m32r_setup_incoming_varargs): Make it static.
15633         * config/m32r/m32r.h: Remove #undef of
15634         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15635         definitions of PROMOTE_FUNCTION_ARGS and
15636         PROMOTE_FUNCTION_RETURN.
15637         (PROMOTE_PROTOTYPES): Remove.
15638         (RETURN_IN_MEMORY): Likewise.
15639         (STRUCT_VALUE): Likewise.
15640
15641 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15642
15643         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15644         (TARGET_STRUCT_VALUE_RTX): Likewise.
15645         (m68k_struct_value_rtx): Likewise.
15646         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15647         STRUCT_VALUE_REGNUM.
15648         (PROMOTE_PROTOTYPES): Remove.
15649         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15650         STRUCT_VALUE_REGNUM.
15651         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15652         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15653
15654 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15655
15656         * config/stormy16/stormy16.c
15657         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15658         TARGET_BUILD_BUILTIN_VA_LIST.
15659
15660 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15661
15662         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15663         (TARGET_STRUCT_VALUE_RTX): Likewise.
15664         (TARGET_RETURN_IN_MEMORY): Likewise.
15665         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15666         (v850_return_in_memory): Likewise.
15667         (v850_setup_incoming_varargs): Likewise.
15668         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15669         (SETUP_INCOMING_VARARGS): Likewise.
15670         (RETURN_IN_MEMORY): Likewise.
15671         (STRUCT_VALUE): Likewise.
15672
15673 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15674
15675         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15676         (fr30_setup_incoming_varargs): Don't use
15677         STRICT_ARGUMENT_NAMING.
15678         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15679         (STRICT_ARGUMENT_NAMING): Likewise.
15680
15681 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15682
15683         * config/frv/frv-protos.h: Remove the prototype for
15684         frv_expand_builtin_saveregs.
15685         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15686         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15687         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15688         STRUCT_VALUE_REGNUM.
15689         (frv_expand_builtin_saveregs): Make it static.
15690         (frv_struct_value_rtx): New.
15691         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15692
15693 2004-01-29  Jan Hubicka  <jh@suse.cz>
15694
15695         PR c++/12850
15696         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15697         initial pointers.
15698         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15699         for functions that will be only inlined.
15700         (cgraph_mark_function_to_output): Likewise.
15701         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15702         do not clear function body.
15703         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15704         (tree_rest_of_compilation): Reorganize the logic releasing function
15705         body to use callgraph datastructure.
15706
15707 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15708
15709         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15710         to register_operand.
15711
15712 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15713
15714         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15715         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15716         match_operand expressions so that all match_dups appear
15717         lexically after their corresponding match_operands.
15718
15719 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15720
15721         * config/h8300/h8300.c (WORD_REG_USED): Use
15722         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15723         (compute_saved_regs): Likewise.
15724         (h8300_expand_prologue): Likewise.  Allocate locals after
15725         saving registers.
15726         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15727         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15728         registers.
15729         (h8300_initial_elimination_offset): Adjust for the new frame
15730         layout, which swaps flips the order of locals and saved
15731         registers.
15732         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15733         (HARD_FRAME_POINTER_REGNUM): New.
15734         (ELIMINABLE_REGS): Add an elimination rule from
15735         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15736         (REGISTER_NAMES): Add fp.
15737         * config/h8300/h8300.md (FP_REG): Change to 11.
15738         (HFP_REG): New.
15739
15740 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15741
15742         * genrecog.c (write_node): Remove a useless local variable.
15743
15744 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15745
15746         * Makefile.in (options.c options.h): Use stamp file s-options to
15747         avoid unnecessary rebuilds.
15748         (options.o): New target listing dependencies.
15749         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15750         (STAGESTUFF): Add s-gtyp-gen.
15751
15752 2004-01-28  Richard Henderson  <rth@redhat.com>
15753
15754         * ggc.h (ggc_free): Declare.
15755         * ggc-common.c (ggc_realloc): Use it.
15756         * ggc-page.c: Remove lots of inline markers.
15757         (globals): Add free_object_list.
15758         (ggc_alloc): Tidy.
15759         (ggc_free, validate_free_objects): New.
15760         (poison_pages): Provide default.
15761         (ggc_collect): Call validate_free_objects; emit markers to
15762         the debug file.
15763
15764 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15765             Jim Wilson  <wilson@specifixinc.com>
15766
15767         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15768         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15769         scratch pointer.
15770         (ia64_secondary_reload_class): Delete case GR_REGS.
15771         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15772         Do not allocate a scratch register.
15773         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15774
15775 2004-01-28  Jan Hubicka  <jh@suse.cz>
15776
15777         * gcse.c (bypass_block): Prevent edges to be unified when we are
15778         about to emit compenstation code.
15779
15780 2004-01-28  Nick Clifton  <nickc@redhat.com>
15781
15782         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15783         the setcwx insn into a register.
15784
15785 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15786
15787         * config/fp-bit.c (pack_d): When using paired doubles to implement
15788         a long double, round the high part separately.
15789         (unpack_d): Fix the case in which the high part is a power of two
15790         and the low part is a nonzero value of the opposite sign.
15791
15792 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15793
15794         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15795         (TARGET_STRUCT_VALUE_RTX): Likewise.
15796         (c4x_external_libcall): Likewise.
15797         (c4x_struct_value_rtx): Likewise.
15798         * config/c4x/c4x.h: Remove.
15799         (STRUCT_VALUE_REGNUM): Likewise.
15800         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15801
15802 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15803
15804         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15805         (TARGET_STRUCT_VALUE_RTX): Likewise.
15806         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15807         (STRUCT_VALUE): Likewise.
15808         (PROMOTE_PROTOTYPES): Likewise.
15809
15810 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15811
15812         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15813         CONST_INT before using INTVAL.
15814
15815 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15816
15817         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15818         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15819         frame if !TARGET_BACKCHAIN.
15820         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15821         TARGET_BACKCHAIN.
15822         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15823
15824 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15825
15826         * ia64.c (ia64_function_arg): When placing HFAs in integer
15827         registers, do not special case the mode used for complex
15828         types.  Do not advance int_regs until the current register
15829         is full.
15830
15831 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15832
15833         PR target/7297
15834         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15835
15836 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15837
15838         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15839         slow, unaligned loads and stores while debugging.  Fix formatting.
15840
15841 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15842
15843         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15844         of computing wmode.
15845         (restore_stack_nonlocal): Same.
15846
15847 2004-01-27  Devang Patel <dpatel@apple.com>
15848
15849         * Makefile.in (dwarf2out.o): Depend on input.h
15850         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15851         imported_module_or_decl.
15852         (xcoff_debug_hooks): Same.
15853         * sdbout.c (sdb_debug_hooks): Same.
15854         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15855         * debug.c (do_nothing_debug_hooks): Same.
15856         (debug_nothing_tree_tree): New function.
15857         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15858         * dwarf2out.c: Include input.h.
15859         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15860         (remove_child_TAG): New function.
15861         (dwarf_tag_name): Handle DW_TAG_imported_module.
15862         (gen_subprogram_die): Equate decl number to declaration die. Do not
15863         remove all children dies while reusing declaration die for definition.
15864         Instead, selectively remove only formal parameters.
15865         (gen_variable_die): Equate variable decl to declaration die.
15866         (gen_field_die): Equate field decl to line number.
15867         (force_namespace_die): Replace it with ...
15868         (force_decl_die): ... this.
15869         (force_type_die): New function.
15870         (setup_namespace_context): Replace use of force_namespace_die() with
15871         force_decl_die().
15872         (gen_namespace_die): Same.
15873         (dwarf2out_imported_module_or_decl): New function.
15874
15875 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15876
15877         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15878         on CQImode and CHImode incoming arguments in register a7.
15879         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15880         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15881         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15882         xtensa_copy_incoming_a7 before reload.
15883
15884 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15885
15886         * coverage.c (get_coverage_counts): Give a different message
15887         if flag_guess_branch_prob is set.
15888         * predict.c (counts_to_freqs): Return an int.
15889         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15890         calculate estimates.
15891
15892 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15893
15894         * config/iq2000/iq2000-protos.h: Remove the prototype for
15895         iq2000_setup_incoming_varargs.
15896         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15897         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15898         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15899         (TARGET_STRUCT_VALUE_RTX): Likewise.
15900         (TARGET_RETURN_IN_MEMORY): Likewise.
15901         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15902         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15903         (iq2000_return_in_memory): Likewise.
15904         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15905         first argument by reference.
15906         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15907         (PROMOTE_FUNCTION_RETURN): Likewise.
15908         (PROMOTE_PROTOTYPES): Likewise.
15909         (RETURN_IN_MEMORY): Likewise.
15910         (STRUCT_VALUE): Likewise.
15911         (SETUP_INCOMING_VARARGS): Likewise.
15912         (STRICT_ARGUMENT_NAMING): Likewise.
15913
15914 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15915
15916         * fixinc/fixinc.c (test_test): Initialize res.
15917         (start_flexer): Initialize pz_cmd_save.
15918
15919 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15920
15921         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15922         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15923
15924 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15925
15926         PR 7198
15927         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15928         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15929         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15930         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15931         Possibly rename pattern for consistency.
15932         Remove ??? comments suggesting that this be done.
15933         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15934         New patterns.
15935         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15936         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15937         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15938         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15939         Update to match.
15940
15941 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15942
15943         * config/arm/arm.c (output_return_instruction): Only restore IP
15944         into SP if frame_pointer_needed.
15945
15946 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15947
15948         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15949         for SCmode and DCmode if ARCH32.
15950         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15951         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15952         if ARCH32.
15953         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15954         if ARCH32.
15955         (BASE_OUTGOING_VALUE_REG): Likewise.
15956
15957 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15958
15959         PR target/10904
15960         PR target/13058
15961         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15962         Forbid mode changes from SImode for lower FP regs if ARCH64.
15963
15964 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15965
15966         * Makefile.in (bt-load.o): Depend on except.h.
15967         * bt-load.c (except.h): #include.
15968         (compute_defs_uses_and_gen): If insn at end of BB can throw
15969         within this function, consider registers used by it unavailable for
15970         btr migration.
15971         (move_btr_def): If insn at end of BB can throw, insert before rather
15972         than after.
15973
15974         * flags.h (flag_btr_bb_exclusive): Declare.
15975         * toplev.c (flag_btr_bb_exclusive): New variable.
15976         (f_options): Add btr-bb-exclusive.
15977         * bt-load.c (augment_live_range): Restore old behaviour if
15978         flag_btr_bb_exclusive is set.
15979         * common.opt: Add entry for -fbtr-bb-exclusive.
15980         * opts.c (common_handle_options): Same.
15981         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15982
15983         * bt-load.c (btrs_live_at_end): New variable.
15984         (compute_defs_uses_and_gen): Compute its pointed-to array.
15985         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15986         (augment_live_range): When augmenting with a new dominator,
15987         use only its btrs_live_at_end set, but also add in the full set
15988         of the old dominator.
15989         (btr_def_live_range): Use btrs_live_at_end.
15990         (move_btr_def): Set other_btr_uses_before_def, and move new set
15991         to the end of the basic block, if appropriate.
15992         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15993
15994         * bt-load.c (basic_block_freq): Remove outdated comment.
15995
15996 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15997
15998         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15999         (PREDICATE_CODES): Remove duplicate.
16000         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16001         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16002         (MASK_PROFILE_KERNEL): Adjust define.
16003
16004 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
16005
16006         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16007         of long string literals from 32 bytes to sizeof (void *) when !-Os
16008         and to 1 with -Os.
16009
16010 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16011
16012         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16013         constant addresses in the normal mode.
16014
16015 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16016
16017         * system.h (CHAR_BITFIELD): Delete.
16018         (BOOL_BITFIELD): New.
16019         * c-decl.c (c_scope): Use BOOL_BITFIELD.
16020         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16021
16022 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16023
16024         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16025         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16026         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16027         (TARGET_STRUCT_VALUE_RTX): Likewise.
16028         (TARGET_RETURN_IN_MEMORY): Likewise.
16029         (arc_return_in_memory): Likewise.
16030         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16031         (PROMOTE_FUNCTION_RETURN): Likewise.
16032         (RETURN_IN_MEMORY): Likewise.
16033         (STRUCT_VALUE): Likewise.
16034
16035 2004-01-26  Richard Henderson  <rth@redhat.com>
16036
16037         * c-parse.in (extension): Use itype.
16038         (SAVE_EXT_FLAGS): Don't allocate a tree.
16039         (RESTORE_EXT_FLAGS): Don't read a tree.
16040
16041 2004-01-26  Jan Hubicka  <jh@suse.cz>
16042
16043         * cselib.c (discard_useless_values):  Clear out value pointer pointing
16044         to datastructure to be recycled.
16045
16046 2004-01-25  Jan Hubicka  <jh@suse.cz>
16047
16048         * genextract.c (main): Do not output the memset when not checking.
16049
16050 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16051
16052         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16053         switch statement instead of a chain of if statements.
16054
16055 2004-01-26  Jeff Law  <law@redhat.com>
16056
16057         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
16058         acute accents for Petur Runolfsson's entry.
16059
16060 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16061
16062         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16063         (TARGET_RETURN_IN_MEMORY): Likewise.
16064         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16065         (RETURN_IN_MEMORY): Likewise.
16066
16067 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16068
16069          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16070          unaligned load/store into smaller loads and stores.
16071
16072 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16073
16074         * function.c (assign_parms): Do not assign
16075         long long argument to memory in prologue if
16076         is it loaded into register.
16077
16078 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16079
16080          PR middle-end/13779
16081          * expr.c (emit_group_load): split constant
16082          correctly into register components of PARALLEL insn.
16083
16084 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16085
16086         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16087         Use adjust_address_nv directly with appropriate mode.
16088         (restore_stack_nonlocal): Ditto.
16089
16090 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16091
16092         * config/xtensa/xtensa-protos.h: Remove the prototype for
16093         xtensa_builtin_saveregs.
16094         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16095         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16096         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16097         (TARGET_STRUCT_VALUE_RTX): Likewise.
16098         (TARGET_RETURN_IN_MEMORY): Likewise.
16099         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16100         (xtensa_builtin_saveregs): Make it static.
16101         (xtensa_return_in_memory): New.
16102         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16103         (PROMOTE_FUNCTION_RETURN): Likewise.
16104         (PROMOTE_PROTOTYPES): Likewise.
16105         (STRUCT_VALUE): Likewise.
16106         (RETURN_IN_MEMORY): Likewise.
16107         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16108
16109 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16110
16111         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16112         (arm_setup_incoming_varargs): Likewise.
16113         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16114
16115 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16116
16117         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16118         (cris_setup_incoming_varargs): Likewise.
16119         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16120
16121 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16122
16123         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16124         (ns32k_struct_value_rtx): Likewise.
16125         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16126         NS32K_STRUCT_VALUE_REGNUM.
16127
16128 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16129
16130         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16131         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16132         (TARGET_STRUCT_VALUE_RTX): Likewise.
16133         (arm_struct_value_rtx): Likewise.
16134         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16135         (STRUCT_VALUE): Likewise.
16136         (STRUCT_VALUE_REGNUM): Likewise.
16137         (PROMOTE_PROTOTYPES): Likewise.
16138
16139 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16140
16141         * config/ia64/ia64-protos.h: Remove the prototype for
16142         ia64_setup_incoming_varargs and ia64_return_in_memory.
16143         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16144         (TARGET_RETURN_IN_MEMORY): Likewise.
16145         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16146         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16147         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16148         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16149         (ia64_return_in_memory): Make it static.  Change the return
16150         type to bool from int.  Add an argument.
16151         (ia64_struct_value_rtx): New.
16152         * config/ia64/ia64.h: Remove commented-out definitions of
16153         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16154         PROMOTE_PROTOTYPES.
16155         (RETURN_IN_MEMORY): Remove.
16156         (STRUCT_VALUE_REGNUM): Likewise.
16157         (STRICT_ARGUMENT_NAMING): Likewise.
16158
16159 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16160
16161         PR target/13666
16162         * config/sparc/sparc.c (function_arg_union_value): New function.
16163         (function_arg): Use it to deal with unions.
16164         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16165         Replace a conditional statement by a simpler one.
16166
16167 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16168
16169         * config/mips/mips.c (mips16_optimize_gp): Delete.
16170         (mips_reorg): Don't call it.
16171
16172 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16173
16174         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16175         (floatunsqihf2): Remove operand 6.
16176         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16177         fix patterns.
16178         (ldi_conditional, ldf_conditional): Validate operands.
16179
16180 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16181
16182         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16183         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16184
16185 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16186
16187         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16188         memory references if TARGET_EXPOSE_LDP nonzero.
16189
16190 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16191
16192         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16193
16194 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16195
16196         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16197         invalid operand combinations.
16198
16199 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16200
16201         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16202         c4x_legitimate_address_p.  Fix post_modify check.
16203
16204         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16205         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16206
16207 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16208
16209         * config/pa/pa-protos.h: Remove the prototype for
16210         hppa_builtin_saveregs.  Add a prototype for
16211         pa_return_in_memory.
16212         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16213         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16214         (TARGET_STRUCT_VALUE_RTX): Likewise.
16215         (TARGET_RETURN_IN_MEMORY): Likewise.
16216         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16217         (pa_struct_value_rtx): Likewise.
16218         (pa_return_in_memory): Likewise.
16219         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16220         PA_STRUCT_VALUE_REGNUM.
16221         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16222         (EXPAND_BUILTIN_SAVEREGS): Remove.
16223         (PROMOTE_PROTOTYPES): Likewise.
16224         (PROMOTE_FUNCTION_RETURN): Likewise.
16225
16226 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16227
16228         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16229         (TARGET_STRUCT_VALUE_RTX): Likewise.
16230         (vax_struct_value_rtx): Likewise.
16231         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16232         VAX_STRUCT_VALUE_REGNUM.
16233         (PROMOTE_PROTOTYPES): Remove.
16234
16235 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16236
16237         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16238
16239 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
16240
16241         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16242         and MIPS64 have HI/LO interlocks.  Update comment.
16243
16244 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16245
16246         * config/stormy16/stormy16-protos.h: Remove the prototype for
16247         xstormy16_setup_incoming_varargs.
16248         * config/stormy16/stormy16.c
16249         (xstormy16_setup_incoming_varargs): Remove.
16250         (xstormy16_return_in_memory): New.
16251         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16252         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16253         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16254         (TARGET_STRUCT_VALUE_RTX): Likewise.
16255         (TARGET_RETURN_IN_MEMORY): Likewise.
16256         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16257         (PROMOTE_FUNCTION_RETURN): Likewise
16258         (PROMOTE_PROTOTYPES): Likewise
16259         (RETURN_IN_MEMORY): Likewise
16260         (STRUCT_VALUE): Likewise
16261         (SETUP_INCOMING_VARARGS): Likewise
16262
16263 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16264
16265         * config/mips/mips.c (mips_offset_within_object_p): New function.
16266         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16267         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16268         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16269
16270 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16271
16272         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16273         (PROMOTE_FUNCTION_RETURN): Likewise.
16274
16275 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16276
16277         * config/mn10300/mn10300-protos.h: Remove the prototype for
16278         mn10300_builtin_saveregs.
16279         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16280         (TARGET_STRUCT_VALUE_RTX): Likewise.
16281         (TARGET_RETURN_IN_MEMORY): Likewise.
16282         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16283         (mn10300_return_in_memory): Likewise.
16284         (mn10300_builtin_saveregs): Make it static.
16285         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16286         (RETURN_IN_MEMORY): Likewise.
16287         (STRUCT_VALUE): Likewise.
16288         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16289
16290 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16291
16292         PR bootstrap/13853
16293         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16294
16295 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16296
16297         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16298         using ccr.
16299
16300 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16301
16302         * config/i860/i860-protos.h: Remove the prototype for
16303         i860_saveregs.
16304         * config/i860/i860.c (i860_saveregs): Make it static.
16305         (i860_struct_value_rtx): New.
16306         (TARGET_STRUCT_VALUE_RTX): Likewise.
16307         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16308         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16309         I860_STRUCT_VALUE_REGNUM.
16310         (EXPAND_BUILTIN_SAVEREGS): Remove.
16311
16312 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16313
16314         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16315         (TARGET_RETURN_IN_MEMORY): Likewise.
16316         (m68hc11_struct_value_rtx): Likewise.
16317         (m68hc11_return_in_memory): Likewise.
16318         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16319         of PROMOTE_PROTOTYPES.
16320         (RETURN_IN_MEMORY): Remove.
16321         (STRUCT_VALUE_REGNUM): Likewise.
16322
16323 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16324
16325         * config/mmix/mmix-protos.h: Remove the prototype for
16326         mmix_setup_incoming_varargs.
16327         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16328         (TARGET_STRUCT_VALUE_RTX): Likewise.
16329         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16330         (mmix_setup_incoming_varargs): Make it static.
16331         (mmix_struct_value_rtx): New.
16332         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16333         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16334         (STRUCT_VALUE_REGNUM): Remove.
16335         (SETUP_INCOMING_VARARGS): Likewise.
16336
16337 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16338
16339         * config/mips/mips-protos.h: Remove the prototypes for
16340         mips_setup_incoming_varargs and mips_return_in_memory.
16341         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16342         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16343         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16344         (TARGET_STRUCT_VALUE_RTX): Likewise.
16345         (TARGET_RETURN_IN_MEMORY): Likewise.
16346         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16347         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16348         (mips_setup_incoming_varargs): Match the prototype for
16349         TARGET_SETUP_INCOMING_VARARGS.
16350         (mips_return_in_memory): Make it static.  Add argument fntype.
16351         (mips_strict_argument_naming): New.
16352         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16353         (PROMOTE_FUNCTION_ARGS): Likewise.
16354         (PROMOTE_FUNCTION_RETURN): Likewise.
16355         (STRUCT_VALUE): Likewise.
16356         (RETURN_IN_MEMORY): Likewise.
16357         (SETUP_INCOMING_VARARGS): Likewise.
16358         (STRICT_ARGUMENT_NAMING): Likewise.
16359
16360 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16361
16362         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16363         (TARGET_RETURN_IN_MEMORY): Likewise.
16364         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16365         (ip2k_return_in_memory): Likewise.
16366         (ip2k_setup_incoming_varargs): Likewise.
16367         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16368         (STRUCT_VALUE): Likewise.
16369         (STRUCT_VALUE_INCOMING): Likewise.
16370         (SETUP_INCOMING_VARARGS): Likewise.
16371
16372 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16373
16374         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16375         (TARGET_RETURN_IN_MEMORY): Likewise.
16376         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16377         (avr_return_in_memory): Remove.
16378         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16379         (STRUCT_VALUE): Likewise.
16380         (STRUCT_VALUE_INCOMING): Likewise.
16381         (STRICT_ARGUMENT_NAMING): Likewise.
16382
16383 2004-01-25  Jan Hubicka  <jh@suse.cz>
16384
16385         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16386
16387 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16388
16389         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16390         (mips_regno_mode_ok_for_base_p): Declare.
16391         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16392         (FRAME_POINTER_REGNUM): Renumber to 78.
16393         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16394         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16395         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16396         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16397         (REG_MODE_OK_FOR_BASE_P): Likewise.
16398         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16399         entry for 77 to "$arg" and entry for 78 to "$frame".
16400         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16401         (mips_reg_mode_ok_for_base_p): Remove.
16402         (mips_regno_mode_ok_for_base_p): New function, derived from old
16403         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16404         restrictions unless we're being strict.
16405         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16406
16407 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16408
16409         * c-common.h: Fix comment typos.
16410         * c-decl.c: Likewise.
16411         * cgraphunit.c: Likewise.
16412         * combine.c: Likewise.
16413         * et-forest.c: Likewise.
16414         * flow.c: Likewise.
16415         * function.c: Likewise.
16416         * ifcvt.c: Likewise.
16417         * integrate.c: Likewise.
16418         * jump.c: Likewise.
16419         * postreload.c: Likewise.
16420         * varray.c: Likewise.
16421
16422 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16423
16424         * doc/frontends.texi: Update copyright.
16425         * doc/gcov.texi: Likewise.
16426         * doc/gty.texi: Likewise.
16427         * doc/sourcebuild.texi: Likewise.
16428         * doc/standards.texi: Likewise.
16429
16430 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16431
16432         PR target/12978
16433         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16434         Remove movstrqi_small because it conflicts with movstrqi_large.
16435
16436 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16437
16438         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16439         (TARGET_STRUCT_VALUE_RTX): Likewise.
16440         (cris_struct_value_rtx): Likewise.
16441         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16442         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16443         STRUCT_VALUE_REGNUM.
16444         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16445
16446 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16447
16448         PR bootstrap/13848
16449         * cse.c (cse_cc_succs): Change the mode of the source expression
16450         as soon as decide we need a new mode.  Don't permit changing modes
16451         if we found a match in a successor block.
16452         (cse_condition_code_reg): Save original mode of source expression
16453         so that we know whether we have to change the mode in other
16454         insns.
16455
16456 2004-01-24  Jan Hubicka  <jh@suse.cz>
16457
16458         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16459         widen_memory_access):  Return early when there is nothing to change.
16460
16461 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16462
16463         * simplify-rtx.c (simplify_relational_operation): Don't
16464         simplify address == constant into address + -constant == 0.
16465
16466 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16467
16468         * gcc.c (process_command): Don't internationalize the
16469         Copyright message.
16470         * mips-tfile.c (main): Likewise.
16471
16472 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16473
16474         * cse.c: (cse_cc_succs) Fix comparison warning.
16475
16476 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16477
16478         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16479
16480 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16481
16482         * config/h8300/h8300-protos.h: Provide prototypes for
16483         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16484         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16485         (h8300_rtx_ok_for_base_p): Likewise.
16486         (h8300_legitimate_address_p): Likewise.
16487         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16488         h8300_legitimate_constant_p.
16489         (RTX_OK_FOR_BASE_P): Remove.
16490         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16491
16492 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16493
16494         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16495         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16496         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16497         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16498         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16499         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16500         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16501         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16502
16503 2004-01-24  Jan Hubicka  <jh@suse.cz>
16504
16505         * cselib.c (remove_useless_values):  Do not access discarded values.
16506
16507 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16508
16509         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16510         arrays.
16511
16512 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16513
16514         * recog.c: Fix a typo in copyright.
16515
16516 2004-01-23  Andrew Pinski  <apinski@apple.com>
16517
16518         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16519         (call_value): Likewise.
16520
16521 2004-01-23  Richard Henderson  <rth@redhat.com>
16522
16523         PR opt/12941
16524         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16525         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16526         if SHIFT_COUNT_TRUNCATED is set.
16527
16528 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16529
16530         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16531         separate real and imaginary parts.
16532         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16533
16534 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16535
16536         PR target/13674
16537         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16538         loading into GPR.
16539
16540 2004-01-23  Jan Hubicka  <jh@suse.cz>
16541
16542         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16543         change.
16544
16545         * alloc-pool.c (align_four): Kill.
16546         (create_alloc_pool): Align size to eight.
16547         (free_alloc_pool, free_pool): Invalidate deallocated data.
16548
16549 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16550
16551         PR gcc/1532
16552         * cse.c (cse_change_cc_mode): New static function.
16553         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16554         (cse_condition_code_reg): New function.
16555         * rtl.h (cse_condition_code_reg): Declare.
16556         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16557         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16558         cc_modes_compatible.
16559         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16560         (TARGET_CC_MODES_COMPATIBLE): Define.
16561         (TARGET_INITIALIZER): Add new initializers.
16562         * targhooks.c (default_cc_modes_compatible): New function.
16563         * targhooks.c (default_cc_modes_compatible): Declare.
16564         * hooks.c (hook_bool_intp_intp_false): New function.
16565         * hooks.h (hook_bool_intp_intp_false): Declare.
16566         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16567         (TARGET_CC_MODES_COMPATIBLE): Define.
16568         (ix86_fixed_condition_code_regs): New static function.
16569         (ix86_cc_modes_compatible): Likewise.
16570         * doc/tm.texi (Condition Code): Document new hooks.
16571
16572 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16573
16574         * fixinc/inclhack.def (bad_lval): Renamed to ...
16575         (alpha_bad_lval): ... this.
16576         Removed file list.
16577         Restrict to alpha*-dec-osf*.
16578         * fixinc/fixincl.x: Regenerate.
16579         * fixinc/tests/base/dirent.h: Remove, moving test ...
16580         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16581
16582 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16583
16584         PR c/13814
16585         * c-decl.c (diagnose_mismatched_decls): Also discard a
16586         built-in if we encounter an old-style definition with the
16587         same name.
16588
16589 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16590
16591         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16592         set to default{32,64}.
16593
16594 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16595
16596         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16597         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16598
16599 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16600             Olivier Hainque  <hainque@act-europe.fr>
16601
16602         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16603         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16604
16605 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16606
16607         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16608         size for minipool references.
16609
16610 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16611
16612         * real.c (real_floor, real_ceil): Tweak to allow input and output
16613         arguments to overlap.
16614         (real_round): New function to implement round(3m) semantics.
16615         * real.h (real_round): Prototype here.
16616         * builtins.c (fold_builtin_round): New function to constant fold
16617         round, roundf and roundl.
16618         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16619
16620 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16621
16622         PR optimization/13819
16623         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16624         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16625         (sh_handle_sp_switch_attribute): Remove warning.
16626
16627 2004-01-23  Jan Hubicka  <jh@suse.cz>
16628
16629         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16630
16631 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16632
16633         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16634         may or may not return non-NIL.
16635         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16636         check CANNOT_CHANGE_MODE_CLASS
16637
16638 2004-01-23  Jan Hubicka  <jh@suse.cz>
16639
16640         * basic-block.h (PROP_POSTRELOAD): New macro.
16641         (CLEANUP_LOG_LINKS): New.
16642         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16643         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16644
16645         * cselib.c (value_pool): New.
16646         (new_cselib_val): Use pool.
16647         (cselib_init): Initialize value_pool
16648         (cselib_finish): Free pool.
16649
16650 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16651
16652         * config/sparc/sparc.c (scan_record_type): New function.
16653         (function_arg_slotno): Use it to determine which kinds of
16654         registers the record can be passed in.
16655
16656 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16657
16658         * config/pa/fptr.c: Fix old-style definition.
16659
16660 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16661
16662         PR optimization/13724
16663         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16664         represents the zero bits produced by a ZERO_EXTEND operation.
16665
16666 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16667
16668         PR optimization/13821
16669         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16670         correctly calculate the lowpart offset of the contracted subreg.
16671
16672 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16673
16674         * doc/invoke.texi (Optimize Options): Note that --param arguments
16675         are subject to change without notice.
16676
16677 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16678
16679         * config.gcc (mips-sgi-irix6*o32): Removed.
16680         * config/mips/iris6-o32-as.h: Likewise.
16681         * config/mips/iris6-o32-gas.h: Likewise.
16682         * config/mips/iris6-o32.h: Likewise.
16683
16684 2004-01-22  Jan Hubicka  <jh@suse.cz>
16685
16686         * cfgcleanup.c (first_pass): New static variable.
16687         (try_forward_edges):  Add work limiting check for threading.
16688         (try_crossjump_bb):  Add work limiting check for crossjumping.
16689         (try_optimize_cfg):  Maintain first pass variable.
16690
16691 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16692
16693         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16694         handles complex and vector modes.
16695
16696 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16697
16698         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16699         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16700         (STRICT): Likewise.
16701
16702 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16703
16704         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16705         (genrtl_for_stmt): Remove emit_nop calls.
16706
16707 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16708
16709         PR target/13713
16710         PR target/13324
16711         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16712         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16713         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16714
16715 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16716
16717         * config/arm/arm.c: Include "debug.h".
16718         (thumb_pushpop): Take two new arguments.  Add some commentary.
16719         Output frame information when pushing.
16720         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16721         thumb_pushpop.
16722         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16723         offset, and pass it to thumb_pushpop.  Output CFI information.
16724         (thumb_expand_prologue): Add some frame-related markers and notes.
16725
16726 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16727
16728         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16729         for TARGET_64BIT.
16730         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16731         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16732
16733 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16734             Paolo Bonzini  <bonzini@gnu.org>
16735
16736         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16737         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16738         * rtl.h (subreg_lsb_1): Prototype here.
16739         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16740         sign extensions.
16741
16742 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16743
16744         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16745         macro need not be defined if jump-tables should contain
16746         relative addresses only when -fPIC or -fPIC is in effect.
16747
16748 2004-01-22  Jan Hubicka  <jh@suse.cz>
16749
16750         * alias.c (reg_base_value): Turn into varray.
16751         (reg_base_value_size): Kill.
16752         (old_reg_base_value): New deletable varray.
16753         (alias_invariant_size): New variable.
16754         (REG_BASE_VALUE): Update to use varray.
16755         (find_base_value): Likewise.
16756         (record_set): Likewise.
16757         (record_base_value): Likewise.
16758         (memrefs_conflict_p): Likewise.
16759         (record_set): Likewise
16760         (record_base_value): Likewise.
16761         (memrefs_conflict_p): Use alias_invariant_size.
16762         (init_alias_analysis): Use varray; set alias_invariant_size;
16763         rescale other arrays to be sized by maxreg.
16764         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16765
16766 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16767
16768         * config/sparc/sparc.c (function_arg_slotno): Use
16769         FLOAT_TYPE_P to detect FP fields in structures.
16770         (function_arg_record_value_1): Likewise.
16771         (function_arg_record_value_2): Likewise.
16772
16773 2004-01-22  Jan Hubicka  <jh@suse.cz>
16774
16775         * function.c (allocate_struct_function): Do not initialize expr, emit
16776         and varasm.
16777         (prepare_function_start): Do it here.
16778         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16779
16780 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16781
16782         PR target/13559
16783         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16784         to 'word_mode' once the first slot has been filled.
16785
16786 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16787
16788         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16789         computation of the number of integer registers required.
16790
16791 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16792
16793         * config/i386/i386.md: Simplify certain comparisons of
16794         const_int.
16795
16796 2004-01-21  Andrew Pinski  <apinski@apple.com>
16797
16798         PR target/13785
16799         * config/rs6000/rs6000.md (call_value): Force operand
16800         1 not operand 0 into a register.
16801
16802 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16803
16804         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16805         unwind-dw2-fde.h: Update copyright.
16806
16807 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16808
16809         * pa-protos.h: Update copyright.
16810         * pa.h: Likewise.
16811         * pa.md: Likewise.
16812
16813 2004-01-21  Caroline Tice  <ctice@apple.com>
16814
16815         PR target/12308
16816         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16817         flags register.
16818         (fix_truncdfdi2): Likewise.
16819         (fix_truncsfdi2): Likewise.
16820         (*fix_truncdi_1): Likewise.
16821         (fix_truncxfsi2): Likewise.
16822         (fix_truncdfsi2): Likewise.
16823         (fix_truncsfsi2): Likewise.
16824         (*fix_truncsi_1): Likewise.
16825         (fix_truncxfhi2): Likewise.
16826         (fix_truncdfhi2): Likewise.
16827         (fix_truncsfhi2): Likewise.
16828         (*fix_trunchi_1): Likewise.
16829
16830 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16831
16832         * alias.c, basic-block.h, c-common.c, c-common.h,
16833         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16834         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16835         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16836         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16837         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16838         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16839         genautomata.c, genconditions.c, genemit.c, genflags.c,
16840         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16841         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16842         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16843         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16844         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16845         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16846         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16847         unwind.h, varray.c, varray.h: Update copyright.
16848
16849 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16850
16851         * config/h8300/coff.h: Update copyright.
16852         * config/h8300/elf.h: Likewise.
16853         * config/h8300/h8300-protos.h: Likewise.
16854         * config/h8300/h8300.c: Likewise.
16855         * config/h8300/h8300.h: Likewise.
16856         * config/h8300/h8300.md: Likewise.
16857
16858 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16859
16860         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16861         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16862         ultrix_unistd): New hacks.
16863         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16864         ULTRIX_CONST2_CHECK): Add checks.
16865         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16866         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16867         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16868         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16869         * fixinc/tests/base/locale.h: New file.
16870         * fixinc/fixincl.x: Rebuilt.
16871
16872 2004-01-21  Andreas Jaeger  <aj@suse.de>
16873             Michael Matz  <matz@suse.de>
16874
16875         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16876
16877 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16878
16879         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16880         _Jv_RegisterClasses through a function pointer.
16881
16882 2004-01-21  Falk Hueffner  <falk@debian.org>
16883
16884         PR target/12898
16885         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16886         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16887         which need multiple instructions to emit.
16888
16889 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16890
16891         * config/m32r/m32r.h (CPP_SPEC): Define.
16892
16893 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16894
16895         * c-decl.c (merge_decls): Kill different_binding_level and
16896         different_tu arguments; simplify throughout.
16897         (duplicate_decls): Likewise.
16898         (pushdecl, merge_translation_unit_decls): Update calls to
16899         duplicate_decls.
16900
16901 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16902
16903         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16904         $(SYSTEM_H).
16905         (print-rtl1.o): Depend on $(SYSTEM_H).
16906
16907 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16908
16909         PR bootstrap/12730
16910         * configure.ac: Delete definition and subsitution of docdir.
16911         Add info, man, srcman and srcinfo to target hooks. Create doc/
16912         directory.
16913         * configure: Regenerate.
16914         * Makefile.in: Don't substitute docdir and delete all references
16915         throughout.
16916         (MAKEINFOFLAGS): Define.
16917         (stmp-docobjdir): Delete.
16918         (INFOFILES, MANFILES): Define.
16919         (info): Call lang.info, srcinfo and lang.srcinfo.
16920         (generated-manpages): Call lang.man, srcman and lang.srcman.
16921         (srcinfo, srcman): New rules to copy back files to source directory.
16922         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16923         (install-man): Revamp rule.
16924         (clean): Update dvi directory.
16925         (distclean): Delete TAGS from front end directorys.
16926         (maintainer-clean): Delete all document files in source directory.
16927
16928         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16929         (objc.srcman, objc.srcinfo): Likewise.
16930
16931 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16932
16933         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16934         (matherr_decl): rename & relocate as exception_structure.
16935         This fix must precede the math_exception fix.
16936
16937 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16938
16939         * fold-const.c (fold_convert): Rename to fold_convert_const.
16940         (fold_convert_const): Change arguments to take a tree_code,
16941         a type and the operand/expression to be converted.  Return
16942         NULL_TREE if no simplification is possible.  Add support for
16943         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16944         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16945         Adjust call to fold_convert to match new fold_convert_const.
16946         Avoid modifying the tree passed to fold in-place.
16947
16948 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16949
16950         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16951         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16952         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16953
16954 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16955
16956         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16957         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16958         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16959         (emit_move_sequence): Check scratch_reg first in various if statements.
16960         Extend source simplification to handle all 64-bit CONST_INTs.
16961         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16962         frame size.
16963         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16964         frame offset calculations.
16965         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16966         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16967         LEGITIMATE_64BIT_CONST_INT_P): Define.
16968         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16969         any CONST_INT as legitimate during and after reload.
16970         (VAL_32_BITS_P, INT_32_BITS): Define.
16971         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16972
16973 2004-01-20  Jan Hubicka  <jh@suse.cz>
16974
16975         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16976         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16977         containing hard regs are shared.
16978         (gen_hard_reg_clobber): New function.
16979         (hard_reg_clobbers): New array.
16980         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16981         (copy_rtx): Do not copy clobbers containing hard regs.
16982         * rtl.h (gen_hard_reg_clobber): Declare.
16983
16984 2004-01-20  Jan Hubicka  <jh@suse.cz>
16985
16986         * varray.c:  Include hashtab.h
16987         (varray_descriptor): New structure.
16988         (hash_descriptor, eq_descriptor, varray_descriptor,
16989         print_statistics): New static functions
16990         (varray_init, varray_grow): Update statistics
16991         (dump_varray_statistics): New function.
16992         * varray.h (dump_varray_statistics): Declare.
16993         * toplev.c (finalize): Call it.
16994         * Makefile.in (varray.o): Add dependency.
16995
16996 2004-01-20  Jan Hubicka  <jh@suse.cz>
16997
16998         * cselib.c: Include alloc-pool.h
16999         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17000         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17001         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17002         unchain_one_elt_loc_list_pool, unchain_one_value,
17003         new_cselib_val): Simplify using allocpool.
17004         (cselib_init): Initialize allocpools.
17005         (cselib_finish): Finish allocpools.
17006         * Makefile.in (cselib.o): Depend on alloc-pool.h
17007
17008 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
17009
17010         * config/mips/mips.c (mips_load_call_address): Make the call insn
17011         use $gp if it could be calling a lazy binding stub.
17012
17013 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17014
17015         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17016         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17017         (TARGET_STRUCT_VALUE_RTX): Likewise.
17018         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17019         (PROMOTE_FUNCTION_RETURN): Remove.
17020         (STRUCT_VALUE): Remove.
17021
17022 2004-01-20  Denis Chertykov  <denisc@overta.ru>
17023
17024         PR bootstrap/13735
17025         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17026         register as pointer after reload.
17027
17028 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17029
17030         PR optimization/12440
17031         * loop.c: Include ggc.h.
17032         (loop_optimize): Run garbage collector between optimization of loops.
17033         * Makefile.in (loop.o): Add GGC_H dependency.
17034
17035 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
17036
17037         * gcc/config/rs6000/rs6000.c (function_arg) Handle
17038         vector register special in function without prototype.
17039         (function_arg_advance): Vector parameters get always
17040         GPRs allocated for the linux64 target.
17041
17042 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17043
17044         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17045         not TARGET_M32RX_MASK.
17046
17047 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
17048
17049         PR target/13557
17050         * config/sparc/sparc.c (function_arg): Reorder the cases.
17051
17052 2004-01-19  Per Bothner  <per@bothner.com>
17053
17054         Move cpp_reader's line_maps field to a shared global.
17055         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
17056         and change the type to a pointer rather than a struct.
17057         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
17058         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17059         Likewise.
17060         * cppfiles.c (validate_pch):  Likewise.
17061         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17062         Likewise.
17063         * cpperror.c (print_location):  Likewise.
17064         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
17065         * cppinit.c (cpp_create_reader):  Handle new parameter.
17066         (cpp_destroy):  Don't free line_maps - that's no longer our job.
17067         * input.h (line_table):  New variable.
17068         * toplev.c (line_table):  Declare variable.
17069         (general_init):  Initialize line_table.
17070         * c-opts.c (c_common_init_options):  Pass line_table to
17071         cpp_create_reader.
17072         * fix-header.c (read_scan_file):  New local variable line_table.
17073         Initialize, and pass it to cpp_create_reader.
17074         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
17075         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
17076
17077 2004-01-19  Per Bothner  <per@bothner.com>
17078
17079         Implement a cache for linemap_lookup.
17080         * line-map.h (struct_line_maps):  Add cache field.
17081         * line-map.c (linemap_init):  Zero cache field.
17082         (linemap_add):  Set cache field to offset of newly allocated map.
17083         (linemap_lookup):  Use and set cache field.
17084
17085 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17086
17087         PR optimization/13567
17088         * cse.c (cse_basic_block): Call cse_insn with a non-null
17089         libcall_insn for the last SET insn of a no-confilict block.
17090
17091 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17092
17093         * Makefile.in (target_noncanonical, program_transform_name): Use
17094         immediate define instead of deferred.
17095         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17096         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17097         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17098         deferred backquote.
17099
17100 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
17101
17102         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17103         true unconditionally.
17104         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17105         Remove.
17106         (build_unary_op, build_modify_expr): Don't handle extended
17107         lvalues.
17108         (build_component_ref, build_conditional_expr): Call non_lvalue
17109         instead of pedantic_non_lvalue.
17110         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17111         * fold-const.c (fold): Don't check pedantic directly for
17112         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17113         passed to pedantic_non_lvalue.
17114         * doc/extend.texi: Remove documentation of extended lvalues.
17115
17116 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17117
17118         PR optimization/5263
17119         * simplify-rtx.c (associative_constant_p): Delete.
17120         (simplify_associative_operation): Rewrite to linearize terms, and
17121         attempt to simplify new term against both left and right subterms.
17122         (simplify_binary_operation): Call swap_commutative_operands_p on
17123         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17124         trueop0 and trueop1 down to where first needed.
17125         (simplify_relational_operation): Likewise.
17126         * rtlanal.c (commutative_operand_precedence): Also order constant
17127         operands using avoid_constant_pool_reference.
17128
17129 2004-01-19  Richard Henderson  <rth@redhat.com>
17130
17131         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17132         don't check memory mode.
17133         (unaligned_memory_operand): Likewise.
17134         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17135         abort for op0 not MEM.
17136
17137         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17138         is not a reg, copy to a scratch first.
17139         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17140         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17141         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17142         (reload_inqi, reload_inhi): Fix mode of op0.
17143         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17144         reload_outhi_help): Likewise.  Use define_insn_and_split.
17145
17146         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17147         as well as $29 dead.
17148
17149 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17150
17151         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17152         "tls_object" for thread-local objects.
17153         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17154         "#tls" for thread-local sections.
17155         * configure.ac (thread-local checks): Specify --fatal-warnings in
17156         every binutils-specific checks.  For sparc*-*-*, test whether the
17157         OS is Solaris and the tools are native and act accordingly.
17158         * configure: Rebuild.
17159
17160 2004-01-19  Jeff Law  <law@redhat.com>
17161
17162         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17163         Jerry Quinn and Petur Runolfsson.
17164
17165 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17166
17167         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17168         size, don't use the larger zero-extending loads.
17169
17170 2004-01-19  Richard Henderson  <rth@redhat.com>
17171
17172         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17173         * alpha.md (UNSPEC_NT_LDA): Remove.
17174         (UNSPEC_CVTLQ, cvtlq): New.
17175         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17176         (extendsidi2_fix): Remove.
17177         (extendsidi2 splitter): Use cvtlq.
17178         (extendsidi2 fp peepholes): Remove.
17179         (cvtql): Use SFmode instead of SImode.
17180         (fix_trunc?fsi): Update to match.
17181         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17182         (movsi): Rename from movsi_nofix, remove f alternatives.
17183         (movsi_nt_vms): Similarly.
17184         (movsi_fix, movsi_nt_vms_fix): Remove.
17185         (nt_lda): Remove.
17186         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17187
17188 2004-01-19  Jan Hubicka  <jh@suse.cz>
17189
17190         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17191         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17192         list.
17193         (cgraph_remove_unreachable_nodes): New function
17194         (cgraph_decide_inlining_of_small_function): Fix pasto.
17195         (cgraph_decide_inlining_incrementally): Fix pasto.
17196         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17197
17198 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17199
17200         * gengtype.c (header_file): Make it static.
17201         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17202         * gengtype.h (header_file): No longer extern.
17203
17204 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17205
17206         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17207         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17208         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17209
17210 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17211
17212         * stmt.c (HAVE_casesi): Define it not already defined.
17213         (HAVE_tablejump): Likewise.
17214         (expand_end_case_type): Resort to the binary tree method if
17215         neither casesi or tablejump is available.
17216
17217 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17218
17219         * final.c (final_scan_insn): Make non-static again.
17220         * output.h (final_scan_insn): Re-add prototype.
17221         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17222         to final_scan_insn call.
17223         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17224         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17225         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17226         * config/sh/sh.c (print_slot): Likewise.
17227         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17228         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17229
17230 2004-01-18  Jan Hubicka  <jh@suse.cz>
17231
17232         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17233         * cfgcleanup.c (try_optimize_cfg): Use it.
17234         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17235         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17236         Kill hack.
17237         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17238
17239         Revert:
17240         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17241
17242                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17243                 even after reload, just don't remove the actual jump tables.
17244
17245 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17246
17247         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17248
17249 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17250
17251         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17252         the size of a pointer in bytes.
17253
17254 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17255
17256         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17257         live "next" variable, which could lead to an infinite loop.
17258
17259 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17260
17261         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17262         block.
17263
17264         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17265         Check for NULL in the chain and remove repeated code.
17266
17267 2004-01-18  Jan Hubicka  <jh@suse.cz>
17268
17269         * coverage.c (checksum_string): Rename to ...
17270         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17271         names containing random number and zero the number out in order to get
17272         match.
17273
17274 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17275
17276         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17277
17278 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17279
17280         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17281         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17282         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17283         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17284         doc/trouble.texi: Remove trailing whitespace.
17285
17286 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17287
17288         PR target/7618
17289         * config/mips/mips.c: Include cfglayout.h.
17290         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17291         (mips_unspec_offset_high): Add temporary register argument.
17292         (mips_load_call_address): New function, split out from...
17293         (mips_expand_call): ...here.
17294         (mips_output_cplocal): New function.
17295         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17296         (mips_emit_loadgp): New function, split out from...
17297         (mips_expand_prologue): ...here.
17298         (mips_output_mi_thunk): New function.
17299
17300 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17301
17302         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17303         mcpu32): Remove redundant checks for implied target predefines.
17304
17305 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17306
17307         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17308         Return type is unsigned int not int.
17309         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17310         Likewise.
17311
17312 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17313
17314         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17315         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17316         "GNU/Linux" and "Microsoft Windows" terminology.
17317
17318 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17319
17320         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17321         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17322         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17323         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17324         @smallexample instead of @example.
17325
17326 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17327
17328         * objc/objc-act.c (build_objc_method_call): Use target
17329         hooks instead of macros to determine if ..._stret
17330         dispatchers should be used (NeXT runtime only).
17331
17332 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17333
17334         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17335         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17336
17337 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17338
17339         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17340         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17341         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17342         macros.
17343         * reload1.c (emit_reload_insns): Use them.
17344         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17345         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17346         for NULL PATTERN.
17347
17348 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17349
17350         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17351         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17352         a line note after the prologue.  Make static.
17353         (line_note_exists): Remove.
17354         (final): Don't initialize line_note_exists.  Update call to
17355         final_scan_insn.
17356         * output.h (final_scan_insn): Remove prologue.
17357         * function.c (set_insn_locators): Update comment.
17358         (thread_prologue_and_epilogue_insns): Add a comment.
17359
17360 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17361
17362         PR target/10781
17363         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17364         Prototype.
17365         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17366         New function.
17367         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17368         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17369         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17370
17371 2004-01-17  Jan Hubicka  <jh@suse.cz>
17372
17373         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17374         commit.
17375
17376         * toplev.c (HAVE_conditional_execution): Provide default.
17377         (rest_of_handle_reorder_blocks): For conditional_execution target
17378         update liveness once after all transformations
17379         (rest_of_compilation): Do crossjumping before ce3.
17380
17381 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17382
17383         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17384         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17385         for PCH.
17386         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17387         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17388         (get_TOC_alias_set): Mark 'set' for PCH.
17389
17390 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17391
17392         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17393         even after reload, just don't remove the actual jump tables.
17394
17395 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17396
17397         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17398         Remove checks for is_ada() and TREE_UNSIGNED.
17399         (subrange_type_die): Emit a byte_size attribute if the subrange
17400         type size is different from the base type size.
17401         (modified_type_die): Replace call to is_ada_subrange_type() by
17402         call to is_subrange_type().
17403
17404 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17405
17406         * config/sh/sh.c: Include ggc.h.
17407
17408 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17409
17410         * Makefile.in (MD5_H): New.
17411         (fold-const.o): Depend on md5.h.
17412         (dwarf2out.o): Likewise.
17413         (cppfiles.o): Likewise.
17414         * cppfiles.c: Include md5.h.
17415         (should_stack_file): Check against list read from PCH file.
17416         (struct pchf_data): New.
17417         (pchf): New variable.
17418         (struct pchf_adder_info): New.
17419         (pchf_adder): New.
17420         (pchf_save_compare): New.
17421         (_cpp_save_file_entries): New.
17422         (_cpp_read_file_entries): New.
17423         (struct pchf_compare_data): New.
17424         (pchf_compare): New.
17425         (check_file_against_entries): New.
17426         * cpphash.h (_cpp_save_file_entries): Prototype.
17427         (_cpp_read_file_entries): Prototype.
17428         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17429         (cpp_read_state): Read the list of headers.
17430
17431 2004-01-17  Jan Hubicka  <jh@suse.cz>
17432
17433         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17434         builtin_expect specially.
17435         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17436         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17437         * invoke.texi (max-inline-insns-single): Set to 100.
17438         (large-function-insns): Set to 3000.
17439
17440 2004-01-16  Eric Christopher  <echristo@redhat.com>
17441             Chandrakala Chavva <cchavva@redhat.com>
17442
17443         * cppcharset.c (one_iso88591_to_utf8): New function.
17444         (convert_iso88591_utf8): Ditto. Use.
17445         (conversion_tab): Use.
17446         (_cpp_input_to_utf8): New function.
17447         (_cpp_init_iconv_buffer): Ditto.
17448         (_cpp_close_iconv_buffer): Ditto.
17449         * cpphash.h: Prototype new functions.
17450         (cpp_buffer): Add input_cset_desc.
17451         * cppinit.c: Add input_charset default.
17452         * cpplib.c (cpp_push_buffer): Support init and
17453         close of iconv.
17454         * cpplib.h (cpp_options): Add input_charset.
17455
17456 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17457
17458         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17459         * config/alpha/unicosmk.h: Remove a commented-out definition
17460         of ASM_OUTPUT_SECTION_NAME.
17461         * config/stormy16/stormy16.h: Likewise.
17462
17463 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17464
17465         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17466         (alpha___extern_prefix_sys_stat): ... this.
17467         Apply to <sys/mount.h>, too.
17468         Tweak to match more variations.
17469         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17470
17471         * fixinc/inclhack.def (alpha___extern_prefix,
17472         alpha___extern_prefix_standards): New hacks to obey
17473         __PRAGMA_EXTERN_PREFIX.
17474         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17475         test.
17476         * fixinc/tests/base/standards.h: Likewise.
17477
17478         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17479         variations.
17480         New testcase.
17481         * fixinc/tests/base/pthread.h: Handle it.
17482
17483         * fixincl/inclhack.def (bad_lval): Sort file list.
17484         Add many missing files up to Tru64 UNIX V5.1B.
17485         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17486         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17487         order.
17488
17489         * fixinc/fixincl.x: Regenerate.
17490
17491 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17492
17493         * version.c (version_string): Change to 3.5.0.
17494         * doc/include/gcc-common.texi (version-GCC): Likewise.
17495
17496 2004-01-16  Jan Hubicka  <jh@suse.cz>
17497
17498         * i386.md (load_tp_di): Fix pasto.
17499
17500         PR opt/13608
17501         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17502
17503         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17504         pp_c_character_constant, pp_c_floating_constant,
17505         pp_c_additive_expression, pp_c_shift_expression,
17506         pp_c_equality_expression, pp_c_and_expression,
17507         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17508         pp_c_logical_and_expression): Remove inline modifier.
17509         * dwarf2out.c (get_AT): Likewise.
17510         * et-forest.c (et_splay): Likewise.
17511         * ra.h (ra_alloc, ra_calloc): Likewise
17512
17513 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17514
17515         * config/frv/frv-protos.h: Fix comment formatting.
17516         * config/frv/frv.c: Likewise.
17517         * config/frv/frv.h: Likewise.
17518         * config/frv/frv.md: Likewise.
17519         * config/frv/frvbegin.c: Likewise.
17520         * config/frv/frvend.c: Likewise.
17521
17522 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17523
17524         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17525         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17526         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17527         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17528
17529 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17530
17531         PR 11864
17532         * postreload.c (reload_cse_simplify_operands): Don't remove
17533         implicit extension from LOAD_EXTEND_OP.
17534
17535 2004-01-16  Jan Hubicka  <jh@suse.cz>
17536
17537         PR opt/11350
17538         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17539         after reload.
17540         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17541         rtl_try_redirect_by_replacing_branch): Likewise.
17542
17543 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17544
17545         PR pch/13689
17546         * alias.c (struct alias_set_entry): Mark for GC.
17547         (alias_sets): Make static, mark for GC.
17548         (record_alias_subset): Use GC to allocate alias structures.
17549         * varray.c (element): Make generic varrays GCed.
17550
17551         PR pch/13361
17552         * c-typeck.c (constructor_asmspec): Delete.
17553         (struct initializer_stack): Delete field 'asmspec'.
17554         (start_init): Delete saving of asmspec.
17555         (finish_init): Don't update constructor_asmspec.
17556         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17557         * stmt.c (expand_asm): Duplicate strings from tree.
17558         (expand_asm_operands): Likewise.
17559         * tree.c (tree_size): Update computation of size of STRING_CST.
17560         (make_node): Don't make STRING_CST nodes.
17561         (build_string): Allocate string with tree node.
17562         * tree.def (STRING_CST): Update comment.
17563         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17564         (tree_string): Place contents of string in tree node.
17565         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17566         from tree.
17567
17568         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17569         altivec operands.
17570
17571 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17572
17573         * c-common.h: Fix comment formatting.
17574         * c-cppbuiltin.c: Likewise.
17575         * c-pragma.c: Likewise.
17576         * calls.c: Likewise.
17577         * collect2.c: Likewise.
17578         * cppcharset.c: Likewise.
17579         * cpptrad.c: Likewise.
17580         * dbxout.c: Likewise.
17581         * defaults.h: Likewise.
17582         * dwarf2out.c: Likewise.
17583         * fold-const.c: Likewise.
17584         * genautomata.c: Likewise.
17585         * genconditions.c: Likewise.
17586         * genflags.c: Likewise.
17587         * gengtype.c: Likewise.
17588         * integrate.c: Likewise.
17589         * loop.c: Likewise.
17590         * predict.c: Likewise.
17591         * sdbout.c: Likewise.
17592
17593 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17594
17595         * config/ia64/ia64.md (*movti_internal): C output template
17596         extracted to ia64.c.
17597         (*movti_internal_reg): Delete.
17598         (reload_inti, reload_outti): Use the correct mode on operand 2
17599         in the first place, don't fix it up in the output template.
17600         (movtf, reload_ointf, reload_outtf): New expanders.
17601         (*movtf_internal): New define_insn_and_split.
17602         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17603         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17604         (ia64_split_tmode_move): New function, body mostly pulled
17605         from ia64.md:*movti_internal.
17606         (ia64_function_arg_words): New function, extracted common
17607         logic from ia64_function_arg et seq.
17608         (ia64_function_arg_offset): Likewise.  Handle correctly the
17609         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17610         (ia64_function_arg, ia64_function_arg_partial_nregs)
17611         (ia64_function_arg_advance): Use ia64_function_arg_words and
17612         ia64_function_arg_offset.
17613         (ia64_function_value): TCmode does not go in float regs.
17614         (ia64_secondary_reload_class): Also handle TFmode.
17615         * config/ia64/ia64-protos.h: Remove prototype for
17616         ia64_split_timode; add prototype for ia64_split_tmode_move.
17617
17618 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17619
17620         * Makefile.in (MAINT): Make it an immediate assignment.
17621
17622 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17623
17624         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17625
17626 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17627
17628         * config/h8300/coff.h: Replace Hitachi with Renesas.
17629         * config/h8300/elf.h: Likewise.
17630         * config/h8300/h8300-protos.h: Likewise.
17631         * config/h8300/h8300.c: Likewise.
17632         * config/h8300/h8300.h: Likewise.
17633         * config/h8300/h8300.md: Likewise.
17634         * config/h8300/lib1funcs.asm: Likewise.
17635
17636 2004-01-15  Andrew Pinski  <apinski@apple.com>
17637
17638         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17639         around it.
17640
17641 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17642
17643         * config/h8300/h8300.c (h8300_return_in_memory): New.
17644         (TARGET_STRUCT_VALUE_RTX): Likewise.
17645         (TARGET_RETURN_IN_MEMORY): Likewise.
17646         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17647         (RETURN_IN_MEMORY): Likewise.
17648
17649 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17650
17651         PR optimization/13375
17652         * gcse.c (handle_avail_expr): Just return if the source is not a
17653         single set.
17654
17655 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17656             Daniel Jacobowitz  <drow@mvista.com>
17657
17658         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17659         (EQUIV): Define.
17660         (ARM_FUNC_ALIAS): New macro.
17661         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17662         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17663
17664 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17665
17666         PR optimization/12372
17667         * calls.c (expand_call): Add call_fusage data for stack arguments in
17668         constant calls.
17669
17670 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17671
17672         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17673         (rs6000_elf_declare_function_name): Formatting.
17674         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17675
17676 2004-01-15  Jan Hubicka  <jh@suse.cz>
17677
17678         PR bootstrap/13692
17679         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17680         previous patch.
17681
17682 2004-01-15  Richard Henderson  <rth@redhat.com>
17683
17684         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17685         integer regs of the same call-savedness.
17686
17687 2004-01-15  Andreas Schwab  <schwab@suse.de>
17688
17689         PR bootstrap/13562
17690         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17691         status for NOTB/NOTW/NEGW methods.
17692
17693 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17694
17695         * doc/invoke.texi: Update dump file names.  Fix a typo.
17696
17697 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17698
17699         * builtins.c (expand_builtin_va_end): Don't use
17700         EXPAND_BUILTIN_VA_END.
17701         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17702         * config/d30v/d30v.h: Remove a commented-out definition of
17703         EXPAND_BUILTIN_VA_END.
17704         * config/stormy16/stormy16.h: Likewise.
17705
17706 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17707
17708         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17709         * targhooks.c (default_struct_value_rtx): Don't use
17710         STRUCT_VALUE_INCOMING_REGNUM.
17711
17712 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17713
17714         PR bootstrap/12744
17715         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17716         GENINSRC and not parsedir.  Define srcextra as a langhook.
17717         * configure: Regenerate.
17718         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17719         parsedir and delete all references throughout.  Conditionally define
17720         rule for srcextra dependent on GENINSRC.
17721         (stmp-docobjdir): Delete.
17722         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17723         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17724         and gengtype-yacc.h back to source directory.
17725         (maintainer-clean): Delete all parse files in source directory.
17726         (distclean): Delete generated files.
17727
17728         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17729         (objc-parse.c, objc-parse.y): Don't use parsedir.
17730         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17731         directory if requested.
17732         (po-generated): Don't use parsedir.
17733         (objc.maintainer-clean): Delete above files from source directory.
17734
17735 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17736
17737         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17738
17739 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17740
17741         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17742         TARGET_RETURN_IN_MEMORY.
17743
17744 2004-01-15  Jan Hubicka  <jh@suse.cz>
17745
17746         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17747         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17748         functions accepting SSE arguments
17749         (function_arg): Warn only when asked to warn.
17750         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17751
17752 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17753
17754         * c-parse.in (stmts_and_decls): Make label at end of compound
17755         statement a hard error.
17756
17757 2004-01-14  Jan Hubicka  <jh@suse.cz>
17758
17759         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17760         * cgraph.h (cgraph_local_info): Sort fields by size; add
17761         redefined_extern_inline
17762         (cgraph_global_info): Sort fields by size.
17763         (cgraph_node): Likewise.
17764         * cgraphunit.c (cgraph_finalize_function): Se
17765         local.redefined_extern_inline on redefinition.
17766         (cgraph_analyze_function): Use it; fix formating.
17767
17768 2004-01-14  Jan Hubicka  <jh@suse.cz>
17769
17770         PR c++/10776
17771         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17772         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17773         bitmaps
17774         (cache_size): New variable
17775         (add_dependence): Update use; canonize early memory locations
17776         (sched_analyze_1): Likewise.
17777         (sched_analyze_2): Likewise.
17778         (init_dependency_caches): Initialize bitmaps.
17779         (free_dependency_caches): Free bitmaps
17780
17781 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17782
17783         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17784         targetm.calls.strict_argument_naming().
17785         * target.h: Likewise.
17786
17787 2004-01-14  Richard Henderson  <rth@redhat.com>
17788
17789         PR debug/13231
17790         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17791         instructions.
17792
17793 2004-01-14  Richard Henderson  <rth@redhat.com>
17794
17795         PR c++/12491
17796         * except.c (struct eh_region): Add u.fixup.resolved.
17797         (resolve_one_fixup_region): Split out from ...
17798         (resolve_fixup_regions): ... here.
17799
17800 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17801
17802         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17803
17804 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17805
17806         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17807         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17808         (STRUCT_VALUE): Remove.
17809
17810 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17811
17812         * system.h: Poison PROMOTED_MODE
17813         * integrate.c (expand_inline_function): Don't mention the
17814         PROMOTED_MODE.
17815         * loop.c (update_giv_derive): Same.
17816         * tree.h (DECL_RTL): Same.
17817
17818 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17819
17820         PR target/9365
17821         * sh.c (gen_block_redirect): Add special handling of RETURN.
17822         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17823         far branch target (i.e. it's a return).
17824
17825 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17826
17827         * regrename.c (find_oldest_value_reg): Fix a warning.
17828
17829 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17830
17831         PR bootstrap/12527
17832         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17833         Move linux-gas.h and linux-elf.h before aout.h.
17834         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17835         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17836
17837 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17838
17839         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17840         (CONST_INT, VOIDmode, ...).
17841
17842 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17843
17844         * regrename.c (find_oldest_value_reg): If the replacement uses
17845         multiple hard registers, check that all of them are in CLASS.
17846
17847 2004-01-14  Jan Hubicka  <jh@suse.cz>
17848
17849         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17850         impossible.
17851
17852 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17853
17854         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17855
17856 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17857
17858         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17859         Calculate always vrsave_mask if TARGET_ALTIVEC.
17860         (rs6000_emit_prologue): Emit code for vrsave
17861         only if TARGET_ALTIVEC_VRSAVE.
17862         (rs6000_emit_epilogue): Likewise.
17863
17864 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17865
17866         * config/sparc/sparc.md (tie_add32): Fix pasto.
17867         (tie_add64): Likewise.
17868
17869 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17870
17871         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17872
17873 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17874
17875         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17876         * config/iq2000/iq2000.c: Likewise.
17877         * config/iq2000/iq2000.md: Likewise.
17878
17879 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17880
17881         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17882         (subrange_type_die): Add handle for nameless subrange types.
17883
17884 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17885
17886         * config/h8300/h8300-protos.h: Replace do_movsi with
17887         h8300_expand_movsi.
17888         * config/h8300/h8300.c (do_movsi): Change to
17889         h8300_expand_movsi.
17890         * config/h8300/h8300.md (movsi): Replace do_movsi with
17891         h8300_expand_movsi.
17892         (movsf): Likewise.
17893
17894 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17895
17896         * config/h8300/h8300.c (dosize): Change to
17897         h8300_emit_stack_adjustment.  Update callers.
17898
17899 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17900
17901         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17902         the source being post_inc.  Tighten the predicate for the
17903         destination to register_operand.
17904         (movstricthi): Likewise.
17905
17906 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17907
17908         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17909         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17910         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17911
17912 2004-01-14  Jan Hubicka  <jh@suse.cz>
17913
17914         Partial fix PR c++/12850
17915         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17916         at zero nest level.
17917
17918 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17919
17920         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17921         pseudo-register.
17922
17923 2004-01-13  Devang Patel <dpatel@apple.com
17924
17925         PR debug/7078
17926         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17927         NAMESPACE_DECL memebers.
17928
17929 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17930
17931         PR c++/12709
17932         * c-common.c (finish_fname_decls): Use the chain only if the
17933         tree is an expr_stmt.
17934
17935 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17936
17937         * rtl.def: Add comment about new option in automata_option.
17938
17939         * genautomata.c (PROGRESS_OPTION): New macro.
17940         (progress_flag): New global variable.
17941         (gen_automata_option): Process `progress'.
17942         (transform_insn_regexps, check_unit_distributions_to_automata,
17943         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17944         expand_automata, write_automata): Print about the progress only if
17945         progress_flag.  Remove fflush.
17946         (initiate_automaton_gen): Process command line flag `-progress'.
17947
17948         * doc/md.texi: Describe the new option.
17949
17950 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17951
17952         * cfg.c (dump_bb): Dump entry edges.
17953
17954 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17955
17956         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17957         references from SImode.
17958         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17959
17960 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17961
17962         * system.h (TEXT_SECTION): Poison.
17963         * varasm.c (text_section): Don't use TEXT_SECTION.
17964         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17965         * doc/tm.texi (TEXT_SECTION): Remove.
17966
17967 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17968
17969         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17970
17971 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17972
17973         * unwind-libunwind.c: Delete.
17974
17975 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17976
17977         PR 13656
17978         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17979         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17980         them at the very end.
17981         (validate_proto_after_old_defn): Restructure for comprehensibility;
17982         make error messages clearer.
17983
17984 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17985
17986         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17987         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17988         * varray.c: No need to prototype error.
17989         (varray_check_failed): Wrap long string onto two lines.
17990         (varray_underflow): New function.
17991
17992 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17993
17994         PR c++/13376
17995         * function.h (struct function): Kill `name' field.
17996         (current_function_name): Make it an extern function.
17997         * function.c (current_function_name): New function.
17998         * graph.c: Update all uses of current_function_name.
17999         * gcse.c: Likewise.
18000         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18001         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18002         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18003         instead of a strcmp with "main".
18004
18005 2004-01-13  Jan Hubicka  <jh@suse.cz>
18006
18007         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
18008
18009         * cgraphunit.c (cgraph_optimize_function):  Always do
18010         optimize_inline_calls when there is always_inline callee.
18011         (cgraph_decide_inlining): Fix formating.
18012         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18013         functions.
18014         (expand_call_inline): Likewise.
18015         * toplev.h (sorry): Fix prototype.
18016
18017 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18018
18019         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18020         conditional jumps that drop through to unconditional jumps or the
18021         end of the sequence.
18022
18023 2004-01-13  Jan Hubicka  <jh@suse.cz>
18024
18025         * alias.c (new_alias_set): Construct the alias_set varray.
18026         (init_alias_once): Don't do it here.
18027
18028 2004-01-12  Marc Espie <espie@openbsd.org>
18029
18030         * system.h: handle YYBYACC like YYBISON.
18031
18032 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
18033
18034         PR target/10847
18035         * config.gcc: No longer includes conflicting header sparc/sol2.h when
18036         building on sparc64-*-openbsd*.
18037
18038 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
18039
18040         PR debug/13539
18041         * dbxout.c (dbxout_type): Protected inheritance is not
18042         private but protected.
18043
18044 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18045
18046         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18047
18048 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
18049
18050         PR optimization/12508.
18051         * combine.c (try_combine): Remove a dead set in a parallel
18052         even if its destination is a subreg.
18053
18054         Revert:
18055         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
18056         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18057         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18058
18059 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
18060
18061         * real.c: Update copyright date.
18062         * emit-rtl.c: Likewise.
18063         * rtl.h: Likewise.
18064         * dwarf2out.c: Likewise.
18065         * config/rs6000/darwin-ldouble.c: Likewise.
18066         * config/rs6000/rs6000.md: Likewise.
18067
18068 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18069
18070         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18071         TFmode to SImode libfuncs.
18072
18073 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18074
18075         PR middle-end/11397
18076         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18077
18078 2004-01-12  Jan Hubicka  <jh@suse.cz>
18079
18080         PR opt/12826
18081         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18082         stored.
18083
18084         PR opt/12863
18085         * cfgcleanup.c (label_is_jump_target_p): Move to...
18086         * rtlanal.c (label_is_jump_target_p): ... here.
18087         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
18088         edges unified with branch edges.
18089
18090 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
18091
18092         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18093         high word of an integral CONST_DOUBLE.
18094
18095 2004-01-12  Paul Brook  <paul@codesourcery.com>
18096
18097         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18098
18099 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
18100
18101         PR target/13585
18102         * sh-protos.h (check_use_sfunc_addr): Declare.
18103         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18104         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18105
18106 2004-01-12  Jan Hubicka  <jh@suse.cz>
18107
18108         * alias.c:  Invlude varray.h
18109         (alias_sets): Turn into varray.
18110         (get_alias_set_entry): Use VARRAY; mark inline.
18111         (mems_in_disjoint_alias_sets_p): Mark inline.
18112         (record_alias_subset): Use varray.
18113         (init_alias_once): Initialize varray.
18114         (new_alias_set): Grow array.
18115         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18116
18117 2004-01-12  Jan Hubicka  <jh@suse.cz>
18118
18119         Partial fix for PR opt/10776 II
18120         * cselib.c: Include params.h
18121         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18122         locations.
18123         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18124         * Makefile.in (cselib.o): Depend on params.h
18125
18126 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18127
18128         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18129         simplify_unary_operation if the operand has a known mode.
18130
18131 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18132
18133         PR target/13534
18134         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18135         predicate to handle 'ld' conform addresses.
18136         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18137         contraint.
18138         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18139         are memory contraints.
18140         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18141         New prototype.
18142         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18143         Change 'o' to 'Y' constraint.
18144         (*movdf_softfloat64): Ditto.
18145
18146 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18147
18148         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18149         brace-enclosed syntax in all C output statements.
18150
18151 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18152
18153         PR target/13401
18154         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18155         Objective-C language type value is 14.
18156
18157 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18158
18159         PR c/12148
18160         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18161         `int' in a number of places to make sure we always have a SImode
18162         and not a HImode.  Add a 'L' suffix to a number of constants.
18163
18164 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18165
18166         * pa.c: Don't include obstack.h.
18167
18168         * pa.md: Correct constraint in pattern for loading PIC label address.
18169
18170 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18171
18172         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18173          before defining.
18174
18175 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18176
18177         PR fortran/9972
18178         * toplev.c (rest_of_handle_inline): Also consider functions
18179         for deferral if the language is GNU F77.
18180
18181 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18182
18183         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18184         diagnostic messages.
18185
18186 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18187
18188         PR middle-end/13392
18189         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18190         to drop through label.  Don't fall back to SCC even when conditional
18191         jump has not been found.
18192
18193 2004-01-11  Jan Hubicka  <jh@suse.cz>
18194
18195         * invoke.texi: Fix syntax error in previous patch.
18196
18197         Partial fix for PR opt/10776
18198         * Makefile.in (reload.o): Include param.h
18199         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18200         * reload.c: Include params.h.
18201         (find_equiv_reg): Work limiting check.
18202         * invoke.texi: Document.
18203
18204 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18205
18206         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18207         out-of-bounds accesses to string constants.  Simplify mips16
18208         case accordingly.
18209
18210 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18211
18212         PR optimization/13469
18213         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18214         reload_cse_regs (-fnon-call-exceptions only).
18215
18216 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18217
18218         * config/mcore/lib1.asm: Fix comment formatting.
18219         * config/mcore/mcore-elf.h: Likewise.
18220         * config/mcore/mcore.c: Likewise.
18221         * config/mcore/mcore.h: Likewise.
18222         * config/mcore/mcore.md: Likewise.
18223
18224 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18225
18226         * c-decl.c (duplicate_decls): Break apart into...
18227         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18228         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18229         ... these new functions.  Restructure for comprehensibility.
18230         Remove various archaic special cases.  Always report the
18231         location of the previous declaration when a diagnostic is issued.
18232         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18233         (match_builtin_function_types): Delete unnecessary forward declaration.
18234
18235 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18236
18237         * genautomata.c (make_automaton, NDFA_to_DFA):
18238         Print progress bars with '.' characters instead of '*'.
18239         (build_automaton): Change notes to match.
18240
18241 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18242
18243         * config/m32r/m32r.md: Use define_constants for unspec and
18244         unspec_volatile.
18245
18246 2004-01-10  Jan Hubicka  <jh@suse.cz>
18247
18248         PR opt/11635
18249         * expr.c (expand_expr_real):  More curefully expand union casts.
18250
18251 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18252
18253         * config/m32r/m32r.md (flush_icache): Use 1 for
18254         unspec_volatile.
18255
18256 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18257             James E Wilson  <wilson@specifixinc.com>
18258
18259         PR debug/12860
18260         * dbxout.c (dbxout_symbol): Remove initialization of
18261         current_sym_code, current_sym_value, and current_sym_addr.
18262         (dbxout_symbol_location): Same.
18263         (dbxout_prepare_symbol): Zero current_sym_code,
18264         current_sym_value, and current_sym_addr.
18265
18266 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18267
18268         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18269         check is done first.
18270
18271 2004-01-09  Eric Christopher  <echristo@redhat.com>
18272
18273         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18274         if we're running mark_constant_function.
18275
18276 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18277
18278         PR target/12561
18279         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18280
18281 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18282
18283         PR debug/11231
18284         * dbxout.c (dbxout_type_fields): Return if any item is
18285         error_mark_node or the type is error_mark_node.
18286
18287 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18288
18289         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18290         exactly what is expected as a 'long double'.
18291         (_xlqadd): When a value to be returned is representable as a
18292         'double', just return it directly, do not construct it using a union.
18293         Also, correct final fixup.
18294         (_xlqmul): Likewise.
18295         (_xlqdiv): Likewise.
18296         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18297
18298         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18299
18300 2004-01-09  Richard Henderson  <rth@redhat.com>
18301
18302         * recog.c (constrain_operands): Validate mem operands.
18303
18304 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18305
18306         * gcc.c (init_spec): Remove -lunwind from shared case.
18307         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18308
18309 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18310
18311         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18312         * configure: Regenerate
18313
18314 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18315
18316         PR c/11234
18317         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18318         between function and object pointers.
18319         (digest_init): When comparing a pointer to function type to the
18320         target type, only apply TREE_TYPE once to the pointer to function
18321         type.
18322         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18323         function pointer rather than casting it to a function pointer.
18324         (for_each_eh_label): Update caller.
18325         * recog.h (struct insn_data): Use a struct or union for output.
18326         * genoutput.c (output_insn_data): Update.
18327         * final.c (get_insn_template): Update.
18328
18329 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18330
18331         * expr.h (expand_expr): Make it a macro, not a function.
18332         (expand_expr_real): New function.
18333         * expr.c (store_expr): Adjust logic for deciding whether or not to
18334         copy the value returned by expand_expr.
18335         (expand_expr): Rename to ...
18336         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18337         calls to language hooks.
18338         * c-common.h (c_expand_expr): Adjust prototype.
18339         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18340         * langhooks-def.h (lhd_expand_expr): Change prototype.
18341         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18342         * langhooks.h (lang_hooks): Change type of expand_expr.
18343         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18344         (last_expr_alt_rtl): Likewise.
18345         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18346         (clear_last_expr): Clear it.
18347         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18348         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18349         * tree.def (RTL_EXPR): Give it an additional operand.
18350         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18351
18352 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18353
18354         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18355         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18356
18357 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18358
18359         PR target/13380.
18360         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18361         or (ne:SI (reg:CC 17) (const_int 0)).
18362         Be specific about modes wherever possible.
18363
18364 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18365
18366         * config/m32r/m32r.c (m32r_expand_block_move): Call
18367         gen_movestrsi_internal with two more arguments.
18368         (m32r_output_block_move): Adjust operand numbers.
18369         Properly update the source and destination pointers.
18370         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18371         'r+'.  Change the set detinations to match_operand.
18372
18373 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18374
18375         * final.c (FIRST_INSN_ADDRESS): Remove.
18376         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18377         * system.h (FIRST_INSN_ADDRESS): Poison.
18378         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18379         * config/m32r/m32r-protos.h: Remove the prototype for
18380         m32r_first_insn_address.
18381         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18382         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18383         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18384
18385 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18386
18387         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18388         we just created.
18389         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18390         emitted as subrange types too.
18391         (subrange_type_die): Add handling of enumeration subtypes.
18392
18393 2004-01-08  Richard Henderson  <rth@redhat.com>
18394
18395         PR opt/12441
18396         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18397         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18398         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18399         (ix86_address_cost): Be prepared for SUBREGed registers.
18400         (legitimate_address_p): Accept SUBREGed registers.
18401
18402 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18403
18404         * Makefile.in: Rename configure.in to configure.ac
18405         * doc/sourcebuild.texi: Likewise.
18406         * configure: Regenerate.
18407         * config.in: Regenerate.
18408
18409 2004-01-08  Stuart Hastings  <stuart@apple.com>
18410
18411         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18412
18413 2004-01-08  Jan Hubicka  <jh@suse.cz>
18414
18415         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18416
18417 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18418
18419         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18420         (UNSPEC_FIX_TRUNC_TF): New constant.
18421         (movtf_internal): Make splitter active only when insn is active.
18422         (extenddftf2): Rewrite to properly load zero into low part.
18423         (extenddftf2_internal): New.
18424         (extendsftf2): Rewrite.
18425         (truncdftf2): Correct length.
18426         (floatditf2): Delete.
18427         (fix_trunc_helper): New.
18428         (fix_trunctfdi2): Use fix_trunc_helper.
18429         (fix_trunctfsi2): Likewise.fix_trunc
18430         (fix_trunctfsi2_internal): New.
18431
18432         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18433         addresses are legitimate on Darwin even when flag_pic.
18434         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18435         non-offsettable addresses for loads of TFmode constants.
18436
18437 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18438
18439         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18440         variables in the appropriate bss section.
18441
18442 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18443
18444         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18445         target_flags has MASK_POWERPC64 when -m64.
18446         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18447         to 620, 630, power3, power4 and rs64a entries.
18448         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18449
18450 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18451
18452         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18453         floating-point constants.
18454
18455 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18456
18457         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18458         Create the subrange_type DIE using the given context DIE.
18459         (modified_type_die): Update call to subrange_type_die.
18460
18461 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18462
18463         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18464         Add multiple-include guard.
18465
18466 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18467
18468         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18469         all vector constant loadable by vsplt*.
18470         (output_vec_const_move): Likewise.
18471
18472 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18473
18474         PR c/6024
18475         * c-typeck.c (comptypes): Only treat enumerated types in the same
18476         translation unit as compatible with each other when they are the
18477         same type.
18478         * doc/extend.texi: Update.
18479
18480 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18481
18482         PR c/12165
18483         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18484         array type from the array element type.
18485
18486 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18487
18488         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18489         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18490         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18491         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18492         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18493
18494 2004-01-06  Eric Christopher  <echristo@redhat.com>
18495
18496         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18497         (DWARF2_DEBUGGING_INFO): Define.
18498         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18499         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18500         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18501         for irix as.
18502         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18503         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18504         * config/mips/iris5gas.h: Ditto.
18505         (DBX_DEBUGGING_INFO): Remove.
18506         (DWARF2_DEBUGGING_INFO): Ditto.
18507         (MIPS_DEBUGGING_INFO): Ditto.
18508         (PREFERRED_DEBUGGING_TYPE): Ditto.
18509         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18510         (PREFERRED_DEBUGGING_TYPE): Ditto.
18511         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18512         * config/mips/elf64.h: Ditto.
18513
18514 2004-01-06  Jan Hubicka  <jh@suse.cz>
18515
18516         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18517         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18518
18519 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18520
18521         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18522         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18523         * config/rs6000/darwin-ldouble.c: New.
18524
18525         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18526         for constants.
18527         (constant_subword): Delete.
18528         * rtl.h (constant_subword): Delete prototype.
18529         (immed_double_const): Is not in varasm.c.
18530         * simplify-rtx.c (simplify_immed_subreg): New.
18531         (simplify_subreg): Use simplify_immed_subreg.
18532
18533         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18534         than trying to generate RTL directly.
18535         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18536         RTL directly.
18537
18538         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18539
18540 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18541
18542         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18543         function into a separate macro.
18544         (read_only_data_section): Add void argument.
18545         (private_data_section): Same.
18546         (read_only_private_data_section): Same.
18547         (toc_section): Same.
18548
18549 2004-01-06  Jan Hubicka  <jh@suse.cz>
18550
18551         * invoke.texi:  Remove typo in last change.
18552
18553         PR target/10301
18554         * config.gcc: Accept opteron and athlon-64 as variants
18555         of k8.
18556         * i386.c (override_options): Likewise.
18557         * invoke.texi (i386 -mtune): Expand documentation.
18558
18559 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18560
18561         * alias.c: Fix comment typos.
18562         * builtins.c: Likewise.
18563         * cfg.c: Likewise.
18564         * df.c: Likewise.
18565         * dominance.c: Likewise.
18566         * dwarf2out.c: Likewise.
18567         * emit-rtl.c: Likewise.
18568         * expr.c: Likewise.
18569         * final.c: Likewise.
18570         * fold-const.c: Likewise.
18571         * gcse.c: Likewise.
18572         * genattrtab.c: Likewise.
18573         * genrecog.c: Likewise.
18574         * gensupport.c: Likewise.
18575         * ggc-zone.c: Likewise.
18576         * integrate.c: Likewise.
18577         * local-alloc.c: Likewise.
18578         * loop.c: Likewise.
18579         * recog.c: Likewise.
18580         * regmove.c: Likewise.
18581         * reg-stack.c: Likewise.
18582         * reorg.c: Likewise.
18583         * rtlanal.c: Likewise.
18584         * rtl.h: Likewise.
18585         * sched-ebb.c: Likewise.
18586         * simplify-rtx.c: Likewise.
18587         * toplev.c: Likewise.
18588         * varasm.c: Likewise.
18589
18590 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18591
18592         * doc/install.texi: Fix typos.
18593         * doc/invoke.texi: Likewise.
18594         * doc/md.texi: Likewise.
18595
18596 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18597
18598         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18599
18600 2004-01-06  Jan Hubicka  <jh@suse.cz>
18601
18602         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18603         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18604         of MMX_REGPARM.
18605         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18606         add MMX_REGPARM.
18607         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18608         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18609         (MMX_REGPARM_MAX): Similarly for -mmmx.
18610
18611 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18612
18613         * config/sh/linux.h: Fix comment formatting.
18614         * config/sh/netbsd-elf.h: Likewise.
18615         * config/sh/sh.c: Likewise.
18616         * config/sh/sh.h: Likewise.
18617         * config/sh/vxworks.h: Likewise.
18618
18619 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18620
18621         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18622         * toplev.c (output_file_directive): Don't use
18623         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18624
18625 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18626
18627         * toplev.c: Fix broken checkin of 2003-12-30.
18628
18629 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18630
18631         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18632         (USING_MMAP): We don't support non-mmap.
18633         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18634         large objects.
18635         (struct page_entry): Remove bytes_free.
18636         (struct page_table_chain): Remove.
18637         (struct globals): Remove page_table member.
18638         (loookup_page_table_entry): Function deleted.
18639         (set_page_table_entry): Ditto.
18640         (ggc_allocated_p): No longer need page table lookups.
18641         (ggc_marked_p): Ditto.
18642         (alloc_small_page): Don't care about bytes_free anymore.
18643         (alloc_large_page): Round up size.
18644         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18645         their size the new way.
18646         Remove page table lookups and setting.
18647         (ggc_get_size): Calculate large object size the new way.
18648         (sweep_pages): Redo to account for fact that we no longer have
18649         bytes_free.
18650         (ggc_collect): No longer need to reincrement bytes_free.
18651         (ggc_pch_alloc_object): Handle new large objects properly.
18652         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18653
18654 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18655
18656         * doc/invoke.texi: Remove a page break.
18657
18658 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18659
18660         * config/avr/avr.c (avr_output_function_prologue): Remove an
18661         extra pair of curly braces.
18662
18663 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18664
18665         * config/mn10300/mn10300.c: Fix comment formatting.
18666         * config/mn10300/mn10300.h: Likewise.
18667
18668 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18669
18670         * tree.h: Update documentation on nothrow_flag.
18671         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18672         types.
18673
18674 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18675
18676         * doc/invoke.texi: Remove traces of dead ports.
18677
18678 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18679
18680         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18681         option.
18682
18683 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18684
18685         PR target/12945
18686         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18687         counter labels.
18688         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18689         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18690         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18691         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18692         (mips_symbol_insns): Don't trust the local/global classification.
18693         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18694         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18695         -mno-explicit-relocs.
18696         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18697         between local and global symbols.
18698
18699 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18700
18701         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18702         (mips_preferred_reload_class): Declare.
18703         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18704         (EXTRA_CONSTRAINT): Update accordingly.
18705         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18706         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18707         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18708         mips_dangerous_for_la25_p.
18709         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18710         if mips_dangerous_for_la25_p.
18711
18712 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18713
18714         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18715         warning.
18716
18717 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18718
18719         * configure.ac: Use AC_PROG_CPP_WERROR.
18720         * configure: Regenerate.
18721
18722 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18723
18724         * .cvsignore: Add autom4te.cache.
18725
18726 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18727
18728         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18729         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18730         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18731         then architecture options, then ABI options.  General rewording.
18732
18733 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18734
18735         PR c/3414
18736         * doc/extend.texi: Clarify definition of malloc attribute.
18737
18738 2004-01-04  Jan Hubicka  <jh@suse.cz>
18739
18740         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18741         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18742         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18743         (cgraph_inline_p): Add extra argument reason.
18744         * cgraphunit.c: Minor formating fixes.
18745         cgraph_first_inlined_callee): New functions.
18746         (record_call_1): Record builtins too.
18747         (cgraph_analyze_function): Update inline_failed messages.
18748         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18749         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18750         (cgraph_check_inline_limits): Likewise; Add argument reason.
18751         (cgraph_set_inline_failed): New static function.
18752         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18753         reasons.
18754         (cgraph_inline_p): Add new argument reason.
18755         * tree-inline.c (expand_call_inline):  Update warning.
18756
18757 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18758
18759         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18760         with modern equivalents.
18761         * configure: Regenerate.
18762
18763         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18764         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18765         * configure: Regenerate.
18766
18767         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18768
18769         * configure.in: Rename to configure.ac.
18770         * configure.ac: Renamed from configure.in; make minimum necessary
18771         changes for autoconf 2.5x.
18772         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18773         * configure: Regenerate with autoconf 2.57.
18774
18775 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18776
18777         * config/mips/linux.h: Fix comment formatting.
18778         * config/mips/mips.c: Likewise.
18779         * config/mips/mips.h: Likewise.
18780         * config/mips/mips.md: Likewise.
18781         * config/mips/netbsd.h: Likewise.
18782         * config/mips/windiss.h: Likewise.
18783
18784 2004-01-02  Richard Henderson  <rth@redhat.com>
18785
18786         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18787         for sse and 387; add suppression for mmx.
18788
18789 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18790
18791         * loop.c (loop_optimize): Free all loops_info's mems.
18792
18793         * c-typeck.c (finish_init): Free spelling_base before
18794         setting it again.
18795
18796         * cfgloop.c (flow_loops_find): Always free the sbitmap
18797         headers.
18798
18799         * predict.c (estimate_probability): Free bbs after being
18800         done with it.
18801
18802 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18803
18804         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18805         const_8bit_operand and call_address_operand.
18806
18807 2004-01-02  Jan Hubicka  <jh@suse.cz>
18808
18809         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18810         when there is nothing to inline but warnings are requested.
18811         (cgraph_decide_inlining):  Fix memory leak.
18812
18813 2004-01-02  Jan Hubicka  <jh@suse.cz>
18814
18815         * expr.c (store_constructor):  Fix pasto in previous patch.
18816
18817 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18818
18819         * config/i386/cygming.h: Fix comment formatting.
18820         * config/i386/djgpp.h: Likewise.
18821         * config/i386/gthr-win32.c: Likewise.
18822         * config/i386/i386-interix.h: Likewise.
18823         * config/i386/i386.c: Likewise.
18824         * config/i386/i386.h: Likewise.
18825         * config/i386/openbsd.h: Likewise.
18826         * config/i386/winnt.c: Likewise.
18827         * config/i386/xm-mingw32.h: Likewise.
18828
18829 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18830
18831         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18832         copyright and last modification dates.
18833
18834 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18835
18836         * doc/install.texi (Specific): Mention x86_64.
18837
18838 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18839
18840         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18841         Call force_operand on plus_constant result.
18842
18843 2004-01-01  Jan Hubicka  <jh@suse.cz>
18844
18845         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18846         * expr.c (store_constructor): Use vec_init pattern.
18847         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18848         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18849         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18850         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18851         New patterns.
18852         (sse2_unpc?pd): Fix pattern.
18853         (sse2_movlpd): Kill.
18854         (sse2_movsd): Deal with movlpd too.
18855         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18856         (ix86_expand_vector_init): New.
18857         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18858         * md.texi (vec_set, vec_extract): Document
18859
18860 2003-12-31  Jan Hubicka  <jh@suse.cz>
18861
18862         PR opt/13473
18863         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18864         ASM input operands
18865
18866         PR opt/12617
18867         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18868         (dump_file): Likewise.
18869         (rest_of_compilation): Likewise.
18870
18871         PR debug/13367
18872         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18873         flag_really_no_inline we inline always_inline functions.
18874         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18875         for non-always_inline functions when there is flag_really_no_inline.
18876         (cgraph_decide_inlining): Limit work done when not inlining.
18877         (cgraph_decide_inlining_incrementally): Likewise.
18878         (cgraph_optimize_function): Check whether something got inlined.
18879         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18880         extern inline functions when not inlining.
18881
18882         * opts.c (decode_options):  Disable crossjumping at -O1
18883         * invoke.texi (-O1): Document change.
18884
18885 See ChangeLog.10 for earlier changes.