OSDN Git Service

* fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-18  Roger Sayle  <roger@eyesopen.com>
2
3         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
4         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
5         constant folding for unordered comparison tree nodes.  If both
6         operands are real constants, call fold_relational_const.  If either
7         operand is a NaN, evaluate the other for side-effects and return a
8         constant.  Optimize (double)float1 CMP (double)float2 into the
9         equivalent float1 CMP float2.
10         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
11         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
12         LTGT_EXPR>: Call fold_relational_const for constant operands.
13         (fold_relational_const): Add support for unordered comparison tree
14         nodes.  Don't constant fold "ordered" floating point comparisons
15         against NaN if when flag_trapping_math is set.
16
17 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
18
19         * fold-const.c (build_range_check): If !in_p and recursive call
20         fails, exit immediately.  If high - low overflows and etype is
21         a signed type, retry with unsigned etype.
22         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
23         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
24
25 2004-06-18  Richard Henderson  <rth@redhat.com>
26
27         * c-gimplify.c (gimplify_condition): Remove.
28         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
29         call it.
30
31 2004-06-18  Richard Henderson  <rth@redhat.com>
32
33         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
34         switch estimates.
35
36 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
37
38         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
39         (NORMAL_TEXT_SECTION_NAME): Define.
40         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
41         (SECTION_FORMAT_STRING): Define.
42
43 2004-06-18  Steven Bosscher  <stevenb@suse.de>
44
45         * config/xtensa/xtensa.c
46         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
47         * xtensa.md: Replace the old pipeline description with a DFA model.
48
49 2004-06-18  Steven Bosscher  <stevenb@suse.de>
50             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
51
52         * config/s390/s390.md: Remove the generic pipeline description.
53         * config/s390/2064.md: Make all insn reservations apply to
54         the z900, g5 and g6.
55         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
56         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
57         Define to hook_int_void_1.
58         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
59         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
60
61 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
62                         Diego Novillo  <dnovillo@redhat.com>
63
64         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
65         (create_stmt_ann): Ditto.
66         (create_tree_ann): New function.
67         (create_cst_ann): Remove.
68         (create_expr_ann): Ditto.
69
70         * tree-flow-inline.h (cst_ann): Remove.
71         (get_cst_ann): Ditto.
72         (get_expr_ann): Ditto.
73         (expr_ann): Ditto.
74         (get_tree_ann): New function.
75         (tree_ann): Ditto.
76         (ann_type): tree_ann -> tree_ann_t.
77         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
78         (struct cst_ann_d): Removed.
79         (struct expr_ann_d): Ditto.
80         (union tree_ann_d): Removed cst and expr.
81         (tree_ann): Renamed to tree_ann_t.
82         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
83         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
84         annotation.
85         (set_value_handle): Ditto.
86         (phi_translate): Ditto.
87         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
88
89 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
90
91         * config/sh/t-linux64: New file.
92         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
93
94 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
95
96         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
97         (unshare_all_rtl_again): Call unshare_all_rtl_1.
98         (unshare_all_rtl): New.
99         * function.c (instantiate_virtual_regs): Remove parameters.
100         * function.h (instantiate_virtual_regs): Add prototype.
101         * rtl.h (unshare_all_rtl): Add prototype.
102         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
103         prototype.
104         * passes.c: Remove assertions on the parameters to
105         rest_of_handle_* functions.  Remove the parameters to
106         the functions, replacing decl with current_function_decl
107         and insns with get_insns ().
108
109 2004-06-17  Roger Sayle  <roger@eyesopen.com>
110
111         * fold-const.c (constant_boolean_node): Handle boolean_type_node
112         directly, return either boolean_true_node or boolean_false_node.
113
114 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
115
116         * opts.sh: Delete.  Break out generated code to next four files.
117         * opt-gather.awk: New file.
118         * optc-gen.awk: New file.
119         * opth-gen.awk: New file.
120         * opt-functions.awk: New common file.
121         * Makefile.in: Update for above.
122         * configure.ac: Update comment.
123         * configure: Regenerate.
124
125 2004-06-17  Richard Henderson  <rth@redhat.com>
126
127         * c-common.c (flag_objc_sjlj_exceptions): New.
128         * c-common.h (flag_objc_sjlj_exceptions): Declare.
129         * c-opts.c (c_common_handle_option): Set it.
130         (c_common_post_options): Handle interation of different
131         objective-c exception and runtime switches.
132         * c-decl.c (c_eh_initialized_p): New.
133         (finish_decl): Use it instead of local eh_initialized_p.
134         * c-parse.in (nested_function, notype_nested_function): Record
135         the result of compstmt.
136         (compstmt_or_error): Likewise.
137         (compstmt): Don't add_stmt the result.
138         (stmt): Don't return anything.  Rewrite objc try and sync rules.
139         (objc_try_stmt, objc_catch_list): Remove.
140         (objc_catch_block, objc_finally_block): Remove.
141         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
142         (objc_try_catch_clause, objc_finally_clause): New.
143         (objc_try_catch_stmt): Rewrite.
144         * c-tree.h (c_eh_initialized_p): Declare.
145         * c-opt (fobjc-sjlj-exceptions): New.
146         * except.c (output_function_exception_table): Don't call cgraph
147         on non-decls.
148         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
149         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
150         catch_count_stack, exc_binding_stack, if_nesting_count,
151         blk_nesting_count, objc_enter_block, objc_exit_block,
152         objc_declare_variable, val_stack_push, val_stack_pop, 
153         objc_build_try_enter_fragment, objc_build_extract_expr,
154         objc_build_try_exit_fragment, objc_build_extract_fragment,
155         objc_build_try_prologue, objc_build_try_epilogue, 
156         objc_build_catch_stmt, objc_build_catch_epilogue,
157         objc_build_finally_prologue, objc_build_finally_epilogue,
158         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
159         objc_build_synchronized_epilogue): Remove.
160         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
161         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
162         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
163         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
164         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
165         objc_begin_catch_clause, objc_finish_catch_clause,
166         objc_build_finally_clause, objc_finish_try_stmt,
167         objc_build_synchronized): New.
168         (objc_is_object_id, objc_is_class_id): New.
169         (objc_comptypes): Use them.
170         (build_next_objc_exception_stuff): Break NeXT sjlj out from
171         build_objc_exception_stuff.
172         (synth_module_prologue): Update to match.
173         (objc_build_throw_stmt): Use cur_try_context to decide if
174         we're in a @catch.
175         * objc/objc-act.h: Update prototypes.
176         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
177
178 2004-06-17  Andrew Pinski <apinski@apple.com>
179
180         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
181         Use TYPE_FIELDS instead of TYPE_VALUES.
182
183 2004-06-17  Jason Merrill  <jason@redhat.com>
184
185         PR c++/16015
186         * gimplify.c (gimplify_target_expr): Handle void initializer.
187         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
188         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
189         and AGGR_INIT_EXPR.
190
191 2004-06-17  Roger Sayle  <roger@eyesopen.com>
192
193         * fold-const.c (fold_relational_const): Use constant_boolean_node.
194
195 2004-06-17  Jan Hubicka  <jh@suse.cz>
196
197         PR target/15433
198         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
199         operand numbering in the output template.
200         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
201
202 2004-06-17  Jan Hubicka  <jh@suse.cz>
203
204         * except.c (can_throw_internal): Recognize RESX expresisons.
205
206 2004-06-17  Jan Hubicka  <jh@suse.cz>
207
208         * cfgbuild.c (make_edges): Do not use label_value_list.
209         (find_basic_blocks_1): Do not collect label_value_list.
210         (find_sub_basic_blocks): Update call of make_edges.
211
212 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
213
214         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
215         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
216         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
217         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
218         (get_v_may_def_result_ptr):  Return a def_operand_p.
219         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
220         (get_v_must_def_op_ptr):  Return a def_operand_p.
221         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
222         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
223         (phi_element_for_edge):  Remove.
224         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
225         (propagate_tree_value):  Add new prototype.
226         (phi_element_for_edge):  Remove prototype.
227         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
228         (prepare_operand_for_rename):  Split into two functions.
229         (prepare_use_operand_for_rename):  Prepare use operands.
230         (prepare_def_operand_for_rename):  Prepare def operands.
231         (rewrite_stmt):  Use new operand types.
232         (rewrite_operand):  Use new operand types, change parameter type.
233         * tree-outof-ssa.c (replace_variable):  Split into two functions.
234         (replace_use_variable):  Rewrite uses.
235         (replace_def_variable):  Rewrite defs.
236         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
237         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
238         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
239         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
240         (ccp_fold, replace_uses_in):  Use new operand types.
241         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
242         and no longer set the value, change parameter type.
243         (replace_exp_1):  Use new operand types.
244         (propagate_value):  Change parameter type, use new operand types.
245         (propagate_tree_value):  Propagate_value without SSA operands.
246         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
247         (cprop_into_successor_phis):  Use new operand types.
248         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
249         (eliminate_redundant_computations):  Use new operand types.
250         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
251         (fix_stmt_v_may_defs):  Use new operand_types.
252         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
253         (build_tree_conflict_graph):  Use new operand_types.
254         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
255         * tree-ssa-operands.c (struct freelist_d):  Remove.
256         (check_optype_freelist, add_optype_freelist):  Remove.
257         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
258         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
259         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
260         Call ggc_free instead of add_optype_freelist.
261         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
262         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
263         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
264         (struct use_optype_d):  Change underlying type.
265         (def_operand_p, use_operand_p):  New types for pointers to operands.
266         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
267         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
268         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
269         pointer types.
270         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
271         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
272         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
273         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
274         PHI result as an operand.
275         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
276         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
277         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
278         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
279         PHI_ARG_DEF_FROM_EDGE.
280         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
281         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
282
283 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
284
285         PR tree-optimization/15991
286         * tree-cfg.c (tree_block_label): Export.
287         * tree-flow-inline.h (bsi_after_labels): New function.
288         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
289         * tree-ssa.c (propagate_into_addr): New function.
290         (replace_immediate_uses): Handle propagation of pointer constants.
291         (raise_value): Do not restrict propagation of pointer constants.
292         * tree-ssanames.c (duplicate_ssa_name): New function.
293         * tree.h (duplicate_ssa_name): Declare.
294
295 2004-06-17  David Ayers  <d.ayers@inode.at>
296  
297         * c-parse.in: Unify Objective-C token names.
298
299 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
300
301         Bug 14610
302         * Makefile.in (min-insn-modes.o): Correct dependencies.
303         * real.c (encode_ieee_extended, decode_ieee_extended): Always
304         produce/consume 12-byte little-endian Intel format.
305         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
306         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
307         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
308         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
309         New functions which convert between 12-byte little-endian Intel
310         format and the desired format.
311         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
312         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
313         Update.
314
315 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
316
317         * expmed.c (expand_mult_const): In sanity check, compare only
318         the bits of val and val_so_far that are significant in the
319         result mode.
320
321 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
322
323         * tree-ssa-pre.c:  Update comments.
324         (val_expr_pair_eq): Factor code from here.
325         (expr_pred_trans_eq): and here.
326         (expressions_equal_p): To here.
327         (print_value_set): Print value for expression.
328         (phi_trans_lookup): Rename some variables.
329         (lookup): Ditto.
330         (value_exists_in_set_bitmap): Ditto.
331         (value_remove_from_set_bitmap): Ditto.
332         (value_insert_into_set_bitmap): Ditto.
333
334 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
335
336         * config/s390/s390-modes.def (CCL3mode): New machine mode.
337         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
338         (s390_alc_comparison, s390_slb_comparison): Likewise.
339         (s390_branch_condition_mask): Likewise.
340         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
341         ("*subsi3_cc2", "*subsi3_cconly2"): New.
342
343         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
344         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
345         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
346         Handle SIGN_EXTEND and ZERO_EXTEND.
347
348         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
349         * config/s390/s390.c (s390_expand_addcc): New function.
350         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
351         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
352         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
353
354 2004-06-17  Ben Elliston  <bje@au.ibm.com>
355
356         * tree-alias-common.c: Add whitespace.
357         * tree-inline.c: Correct comment about this file's purpose.
358         * tree-optimize.c: Likewise.
359         * tree-tailcall.c: Likewise.
360
361         * tree-alias-ander.h: Add standard top-of-file comment.
362         * tree-alias-common.h: Likewise.
363         * tree-alias-type.h: Likewise.
364
365 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
366
367         * tree-ssa-pre.c (compute_avail): Value number uses as well.
368         Strip useless type conversions.
369         Casts have to be treated slightly different than normal unaries.
370
371 2004-06-16  Richard Henderson  <rth@redhat.com>
372
373         * c-common.def (COMPOUND_STMT): Remove.
374         * c-common.c (finish_fname_decls): Don't look through it.
375         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
376         * c-common.h (COMPOUND_BODY): Remove.
377         (c_common_stmt_codes): Remove COMPOUND_STMT.
378         * c-dump.c (c_dump_tree): Likewise.
379         * c-gimplify.c (c_gimplify_stmt): Likewise.
380         * c-pretty-print.c (pp_c_statement): Likewise.
381         * tree.h (DECL_SAVED_TREE): Update commentary.
382         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
383         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
384         (GOTO_EXPR): Rename from GOTO_STMT.
385         (GOTO_FAKE_P): Remove.
386         (COMPOUND_STMT): Remove.
387         (HANDLER): Update wrt COMPOUND_STMT.
388         (STMT_EXPR): Likewise.
389         (LABEL_EXPR): Rename from LABEL_STMT.
390         (SCOPE_STMT): Remove.
391         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
392         through COMPOUND_STMT.
393
394 2004-06-16  Richard Henderson  <rth@redhat.com>
395
396         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
397         c_finish_while_stmt_cond): Remove decls.
398         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
399         * c-typeck.c (c_begin_if_stmt): Return void.
400         (c_begin_else): Tidy.  Save stmt_count.
401         * c-tree.h (c_begin_if_stmt): Update decl.
402
403         * objc/objc-act.c (objc_build_try_enter_fragment,
404         objc_build_extract_fragment, objc_build_try_epilogue,
405         objc_build_catch_stmt, objc_build_catch_epilogue,
406         objc_build_finally_prologue, objc_build_finally_epilogue): Update
407         for if builder function changes.
408
409 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
410
411         * config/s390/s390.c (struct machine_function):  New member
412         last_restore_gpr.
413         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
414         Do not modify machine->save_return_addr_p or regs_ever_live.
415         Fill in machine->last_restore_gpr.
416         (s390_optimize_prolog): Use s390_frame_info to compute registers
417         to save/restore, remove duplicated code.
418         (s390_arg_frame_offset): Use s390_frame_info to compute frame
419         size, remove duplicated code.
420         (s390_emit_prologue): Adapt s390_frame_info call.  Update
421         machine->save_return_addr_p and regs_ever_live.
422         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
423         machine->last_save_gpr.
424
425 2004-06-16  Richard Henderson  <rth@redhat.com>
426
427         * c-parse.in (if_stmt_locus): Remove.
428         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
429         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
430         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
431         empty_locus.  Add stmt_count, saw_else.
432         (c_begin_if_stmt): Push if_stack here.
433         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
434         (c_finish_then, c_finish_else): Record empty_locus.
435         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
436         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
437         if or else body.
438         * c-tree.h: Update prototypes.
439
440 2004-06-16  Steven Bosscher  <stevenb@suse.de>
441
442         * tree.h (PHI_CHAIN): New.
443         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
444         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
445         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
446         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
447         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
448         when traversing a list of PHI_NODEs.
449
450 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
451
452         PR target/13292
453         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
454         on -msoft-float.
455         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
456         68040 and soft-float.
457         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
458         in the TARGET_68040_ONLY case.
459
460 2004-06-16 Peter Barada  <peter@the-baradas.com>
461
462         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
463         (movsi_cf): Make named, don't match TARGET_CFV4.
464         (pushexthisi_const): Use mov3q if possible.
465         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
466         to special case mvz.w for ColdFire V4.
467         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
468         to special case mvz.b for ColdFire V4.
469         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
470         divide.
471         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
472         * config/m68k/m68k.c(valid_mov3q_const):  New function.
473         (const_method): SWAP is valid for ColdFire.
474         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
475         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
476
477 2004-06-16  Richard Henderson  <rth@redhat.com>
478
479         * c-common.def (CASE_LABEL): Remove.
480         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
481         (match_case_to_enum_1): Likewise.
482         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
483         * c-dump.c (c_dump_tree): Likewise.
484         * c-gimplify.c (c_gimplify_stmt): Likewise.
485         * c-pretty-print.c (pp_c_statement): Likewise.
486         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
487         * tree.h (CASE_LOW): Update commentary.
488
489 2004-06-16  Richard Henderson  <rth@redhat.com>
490
491         * c-common.def (ASM_STMT): Remove.
492         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
493         * c-dump.c (c_dump_tree): Likewise.
494         * c-gimplify.c (c_gimplify_stmt): Likewise.
495         * c-pretty-print.c (pp_c_statement): Likewise.
496         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
497         * tree.h: Fix commentary.
498
499 2004-06-16  Richard Henderson  <rth@redhat.com>
500
501         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
502         * c-common.c (c_add_case_label): Use LABEL_EXPR.
503         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
504         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
505         * c-dump.c (c_dump_tree): Likewise.
506         * c-gimplify.c (c_gimplify_stmt): Likewise.
507         * c-pretty-print.c (pp_c_statement): Likewise.
508         * c-parse.in (stmt): Use GOTO_EXPR.
509         (label): Use LABEL_EXPR.
510         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
511         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
512
513 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
514
515         * cfgcleanup.c (try_simplify_condjump): Update test to make
516         sure we have a conditional branch around am unconditional branch.
517
518 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
519
520         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
521
522 2004-06-16  Dale Johannesen  <dalej@apple.com>
523
524         * loop.c (loop_givs_reduce): Avoid miscompilation of
525         loops entered at bottom.
526
527 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
528
529         * cfglayout.c (fixup_reorder_chain): Handle case where the
530         destination of E_FALL is EXIT_BLOCK_PTR.
531
532 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
533
534         PR target/15653
535         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
536         after shifts before asm.
537
538 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
539
540         PR tree-optimization/15993
541         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
542         destination is unchanged.
543
544 2004-06-16  Andreas Jaeger  <aj@suse.de>
545
546         * doc/install.texi (Configuration): Update description for
547         --enable-version-specific-runtime-libs.
548
549 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
550
551         * doc/install.texi: boehm-gc now uses automake 1.8.5.
552
553 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
554
555         * toplev.h (rest_of_compilation): Adjust prototype.
556
557 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
558
559         * coverage.c: Remove argument to rest_of_compilation.
560         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
561         * passes.c (rest_of_compilation): Remove argument.
562         (pass_rest_of_compilation): New.
563         (rest_of_handle_final, rest_of_handle_delay_slots,
564         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
565         rest_of_handle_machine_reorg, rest_of_handle_regrename
566         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
567         rest_of_handle_regmove, rest_of_handle_tracer
568         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
569         rest_of_handle_web, rest_of_handle_branch_prob
570         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
571         rest_of_handle_addressof, rest_of_handle_jump_bypass
572         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
573         Check that the two arguments are actually superfluous.
574         * tree-optimize.c (register_dump_files): Add properties argument.
575         Track validity of passes.  Only initialize dump files for
576         tree-based passes.  Store the full set of provided passes in
577         the pass.
578         (init_tree_optimization_passes): Register pass_expand and
579         pass_rest_of_compilation.
580         (execute_one_pass): Do not track the presence of required properties
581         here.  Set in_gimple_form.  Do not update current_properties.
582         (current_properties): Remove.
583         (set_save_expr_context): Remove.
584         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
585         expand to RTL here, and do not call rest_of_compilation.  Push
586         GGC context even before gimplification.
587         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
588         (pass_expand, pass_rest_of_compilation): Declare.
589
590 2004-06-15  Jeff Law  <law@redhat.com>
591
592         * fold-const.c (swap_tree_comparison): No longer static.
593         (tree_swap_operands_p): Similarly.  Return true if both operands
594         are SSA_NAMEs and the first operand has a higher version number than
595         the second operand.
596         * tree.h (swap_tree_comparison): Prototype.
597         (tree_swap_operands_p): Prototype.
598         * tree-ssa-operands.c (get_expr_operands): For commutative
599         operators and relational comparisons, canonicalize the
600         order of the operands.
601
602 2004-06-15  Richard Henderson  <rth@redhat.com>
603
604         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
605         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
606         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
607         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
608         (finish_fname_decls, fname_decl): Use statement_lists.
609         (c_expand_expr_stmt): Don't set last_expr_type.
610         (c_type_hash): Fix indentation.
611         (c_safe_from_p): Don't follow TREE_CHAIN.
612         (c_tree_chain_matters_p): Remove.
613         * c-common.def (SCOPE_STMT): Remove.
614         (CLEANUP_STMT): Redefine to contain its own body.
615         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
616         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
617         Add x_cur_stmt_list.
618         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
619         (cur_stmt_list): New.
620         (STATEMENT_LIST_STMT_EXPR): New.
621         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
622         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
623         (CLEANUP_BODY): New.
624         (CLEANUP_DECL): Move to operand 2.
625         (c_common_stmt_codes): Remove SCOPE_STMT.
626         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
627         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
628         (c_push_function_context, c_pop_function_context): Don't save it.
629         (finish_decl): Set TREE_USED on the decl for a cleanup.
630         Use push_cleanup.
631         (store_parm_decls): Use statement lists.
632         (finish_function): Remove compstmt rule workaround.  Use statement
633         lists.  Call finish_fname_decls after finalizing the body.
634         (c_begin_compound_stmt): Move to c-typeck.c.
635         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
636         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
637         (c_genericize): Invoke them.
638         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
639         (c_build_bind_expr): Export.
640         (gimplify_block, gimplify_cleanup): Remove.
641         (gimplify_condition): Use gimplify_stmt.
642         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
643         (gimplify_if_stmt): Remove recursion hack.
644         (c_gimplify_expr): Remove STMT_EXPR handling.
645         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
646         (is_last_stmt_of_scope): Remove.
647         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
648         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
649         c_end_compound_stmt.
650         * c-objc-common.c (build_cdtor): Likewise.
651         * c-parse.in (primary): Use c_finish_stmt_expr.
652         (push_scope, pop_scope): Remove.
653         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
654         (c99_block_end, compstmt): Use c_end_compound_stmt.
655         (c99_block_lineno_labeled_stmt): Likewise.
656         (compstmt_primary_start): Use c_begin_stmt_expr.
657         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
658         (do_stmt_start): Fill in body directly.
659         (lineno_stmt): Avoid setting lineno on constants.
660         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
661         Remove SCOPE_STMT.
662         * c-semantics.c (begin_stmt_tree): Remove.
663         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
664         (add_stmt): Use statement lists.
665         (add_scope_stmt, finish_stmt_tree): Remove.
666         (push_cleanup): New.
667         * c-tree.h: Move some decls from c-common.h.
668         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
669         (do_case, c_finish_case): Likewise.
670         (c_finish_then): Take body for then as argument.
671         (c_finish_else): Similarly.
672         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
673         c_finish_for_stmt_incr, c_finish_for_stmt): New.
674         (c_begin_stmt_expr, c_finish_stmt_expr): New.
675         (c_begin_compound_stmt): Do scope management.
676         (c_end_compound_stmt): New.
677         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
678         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
679         Look through exception handling constructs.
680         (gimplify_bind_expr): Accept temporary argument.
681         (gimplify_target_expr): Special case BIND_EXPR bodies.
682         (gimplify_expr): Handle fallback == fb_none like a statement.
683         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
684         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
685         * langhooks.h (tree_chain_matters_p): Remove.
686         * stub-objc.c (objc_clear_super_receiver): New.
687         * tree-gimple.h (voidify_wrapper_expr): Update decl.
688         (append_to_statement_list, append_to_statement_list_force): Move
689         to tree-iterator.h.
690         * tree-inline.c (expand_call_inline): Update call.
691         (clone_body): Use statement lists.
692         (walk_tree): Don't check tree_chain_matters_p.
693         (copy_tree_r): Likewise.
694         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
695         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
696         * tree-iterator.h (append_to_statement_list,
697         append_to_statement_list_force): Moved from tree-gimple.h.
698         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
699         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
700         (objc_enter_block): Likewise.
701         (objc_exit_block): Use c_end_compound_stmt.
702         (objc_build_try_enter_fragment): Add #error and comment for
703         rewriting for OBJCPLUS.
704         (objc_build_extract_fragment, objc_build_try_epilogue,
705         objc_build_catch_stmt, objc_build_finally_prologue,
706         objc_build_finally_epilogue): Update for C statement builders.
707         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
708         Remove.
709
710 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
711
712         * df.c (df_reg_clobber_gen): Removed.
713         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
714         Make more effective for hard regs.
715         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
716
717 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
718
719         * c-pragma.h (c_lex_string_translate): Change type to int.
720         * c-parse.in: Change all assignments of c_lex_string_translate
721         to true and false to 1 and 0.
722         * c-lex.c (c_lex_string_translate): Likewise.
723         (lex_string): Convert string without translation in the -1
724         case.
725
726 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
727
728         * convert.h: Add include guards
729
730 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
731
732         * tree-flow-inline.h: Document all functions.
733
734 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
735
736         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
737         * tree-dfa.c (create_stmt_ann): Ditto.
738         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
739         * tree-inline.c (estimate_num_insns_1): Ditto.
740         * tree.c (tree_size): Ditto.
741         (make_node_stat): Ditto.
742         (tree_node_structure): Ditto.
743         (ephi_node_elt_check_failed): Remove.
744         (is_essa_node): Ditto.
745         * tree.def (EPHI_NODE): Ditto.
746         (EEXIT_NODE): Ditto.
747         (EUSE_NODE): Ditto.
748         (EKILL_NODE): Ditto.
749         * tree.h (EREF_NODE_CHECK): Remove.
750         (EPHI_NODE_ELT_CHECK): Ditto.
751         (struct tree_eref_common): Ditto.
752         (struct tree_euse_node): Ditto.
753         (struct ephi_arg_d): Ditto.
754         (struct tree_ephi_node): Ditto.
755         (ephi_node_elt_check_failed): Remove prototype.
756         (is_essa_node): Ditto.
757         (enum tree_node_structure_enum): Remove TS_E*_NODE.
758         (union tree_node): Remove E*_NODE uses.
759
760 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
761
762         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
763         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
764         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
765         Likewise.
766         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
767         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
768         expand_builtin_strcmp, expand_builtin_strncmp,
769         expand_builtin_frame_address): Likewise.
770         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
771         insert_one_insn): Likewise.
772         * calls.c (prepare_call_address, precompute_register_parameters,
773         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
774         * cfganal.c (flow_active_insn_p): Likewise.
775         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
776         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
777         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
778         make_extraction, recog_for_combine, gen_lowpart_for_combine,
779         simplify_comparison, record_dead_and_set_regs_1,
780         record_dead_and_set_regs, record_promoted_value,
781         check_promoted_subreg, get_last_value_validate, get_last_value,
782         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
783         unmentioned_reg_p_1): Likewise.
784         * conflict.c (mark_reg): Likewise.
785         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
786         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
787         merge_equiv_classes, flush_hash_table, invalidate,
788         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
789         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
790         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
791         record_jump_cond, cse_insn, addr_affects_sp_p,
792         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
793         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
794         cse_cc_succs, cse_condition_code_reg): Likewise.
795         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
796         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
797         cselib_record_set, cselib_record_sets): Likewise.
798         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
799         dbxout_block): Likewise.
800         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
801         * dojump.c (do_jump): Likewise.
802         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
803         is_based_loc, rtl_for_decl_location): Likewise.
804         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
805         set_decl_incoming_rtl, mark_user_reg): Likewise.
806         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
807         copy_to_suggested_reg, allocate_dynamic_stack_space,
808         probe_stack_range, hard_function_value): Likewise.
809         * expmed.c (store_bit_field, store_fixed_bit_field,
810         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
811         extract_split_bit_field, expand_divmod, emit_store_flag_force):
812         Likewise.
813         * expr.c (convert_move, convert_modes,
814         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
815         use_group_regs, emit_move_insn, emit_move_insn_1,
816         compress_float_constant, push_block, emit_single_push_insn,
817         emit_push_insn, get_subtarget, expand_assignment, store_expr,
818         store_constructor, store_field, force_operand, safe_from_p,
819         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
820         Likewise.
821         * final.c (profile_function, final_scan_insn, alter_subreg,
822         get_mem_expr_from_op, output_asm_operand_names, output_operand,
823         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
824         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
825         find_regno_partial, propagate_one_insn, init_propagate_block_info,
826         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
827         attempt_auto_inc, find_auto_inc, mark_used_regs,
828         count_or_remove_death_notes_bb): Likewise.
829         * function.c (find_temp_slot_from_address, update_temp_slot_address,
830         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
831         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
832         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
833         purge_single_hard_subreg_set, instantiate_decl,
834         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
835         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
836         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
837         expand_function_start, diddle_return_value, clobber_return_register,
838         expand_function_end, keep_stack_depressed, handle_epilogue_set,
839         update_epilogue_consts): Likewise.
840         * genemit.c (gen_exp, gen_insn): Likewise.
841         * genrecog.c (make_insn_sequence): Likewise.
842         * global.c (global_conflicts, expand_preferences, mark_reg_store,
843         mark_reg_conflicts, set_preference, reg_becomes_live,
844         build_insn_chain, mark_reg_change): Likewise.
845         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
846         Likewise.
847         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
848         Likewise.
849         * integrate.c (copy_rtx_and_substitute, try_constants,
850         subst_constants, mark_stores, allocate_initial_values): Likewise.
851         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
852         delete_computation, rtx_renumbered_equal_p, true_regnum,
853         reg_or_subregno): Likewise.
854         * lcm.c (reg_dies, reg_becomes_live): Likewise.
855         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
856         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
857         wipe_dead_reg, no_conflict_p): Likewise.
858         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
859         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
860         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
861         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
862         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
863         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
864         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
865         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
866         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
867         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
868         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
869         try_swap_copy_prop): Likewise.
870         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
871         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
872         Likewise.
873         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
874         reload_cse_simplify_operands, reload_combine,
875         reload_combine_note_store, reload_combine_note_use,
876         reload_cse_move2add, move2add_note_store): Likewise.
877         * print-rtl.c (print_rtx): Likewise.
878         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
879         contains_pseudo, handle_asm_insn): Likewise.
880         * ra-debug.c (ra_print_rtx_object, dump_constraints,
881         dump_static_insn_cost): Likewise.
882         * ra-rewrite.c (slots_overlap_p, emit_colors,
883         remove_suspicious_death_notes): Likewise.
884         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
885         register_operand, scratch_operand, nonmemory_operand,
886         constrain_operands): Likewise.
887         * reg-stack (check_asm_stack_operands, remove_regno_note,
888         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
889         subst_asm_stack_regs): Likewise.
890         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
891         record_address_regs, reg_scan_mark_refs): Likewise.
892         * regmove.c (discover_flags_reg, replacement_quality,
893         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
894         fixup_match_1): Likewise.
895         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
896         kill_set_value, copyprop_hardreg_forward_1): Likewise.
897         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
898         reload_inner_reg_of_subreg, can_reload_into, push_reload,
899         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
900         operands_match_p, decompose, find_reloads, find_reloads_toplev,
901         find_reloads_address, subst_indexed_address, find_reloads_address_1,
902         find_reloads_subreg_address, find_replacement,
903         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
904         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
905         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
906         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
907         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
908         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
909         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
910         do_output_reload, emit_reload_insns, gen_reload,
911         delete_address_reloads_1, inc_for_reload): Likewise.
912         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
913         update_reg_unused_notes, fill_slots_from_thread): Likewise.
914         * resource.c (update_live_status, mark_referenced_resources,
915         mark_set_resources, mark_target_live_regs): Likewise.
916         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
917         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
918         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
919         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
920         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
921         parms_set, find_first_parameter_load, keep_with_call_p,
922         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
923         num_sign_bit_copies1): Likewise.
924         * rtlhooks.c (gen_lowpart_general): Likewise.
925         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
926         sched_analyze): Likewise.
927         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
928         Likewise.
929         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
930         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
931         simplify_binary_operation, simplify_const_relational_operation,
932         simplify_subreg): Likewise.
933         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
934         expand_end_stmt_expr, expand_return, expand_decl,
935         expand_anon_union_decl): Likewise.
936         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
937         find_splittable_regs, find_splittable_givs, find_common_reg_term,
938         loop_iterations): Likewise.
939         * var-tracking.c (variable_union, variable_part_different_p,
940         variable_different_p, count_uses, add_uses, add_stores,
941         compute_bb_dataflow, set_variable_part, delete_variable_part,
942         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
943         Likewise.
944         * varasm.c (assemble_variable): Likewise.
945
946 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
947
948         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
949         definition.
950         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
951         #undef and #if 0'd definition.
952
953 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
954
955         * combine.c (distribute_notes): Comment typo fix.
956
957 2004-06-15  Roger Sayle  <roger@eyesopen.com>
958
959         * expmed.c (synth_mult): Mask bits of the multiplier to the
960         machine mode of the multiplication.  Don't consider shifts
961         by more than (or equal to) the width of the operation's mode.
962
963 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
964
965         * doc/install.texi: Yet another update for autoconf
966         and automake versions.
967
968 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
969
970         * function.h (struct function): Remove cannot_inline field.
971         (current_function_cannot_inline): Remove.
972         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
973         Simplify conditionals to ignore warn_return_type.
974         * tree-optimize.c (tree_rest_of_compilation): Do not reset
975         DECL_DEFER_OUTPUT.
976         * objc/objc-act.c (build_module_descriptor, finish_method_def):
977         Do not set current_function_cannot_inline.
978
979 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
980
981         * cfglayout.c (fixup_reorder_chain): Handle case where the
982         destination of E_TAKEN is EXIT_BLOCK_PTR.
983
984 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
985
986         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
987
988 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
989
990         * fold-const.c (operand_equal_p): Update comment.
991
992 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
993
994         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
995         (INCOMING_RETURN_ADDR_RTX): Define.
996         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
997         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
998         __builtin_return_address(0).
999         (m32r_return_addr): Added for __builtin_return_address(0).
1000         (m32r_reload_lr): Ditto.
1001
1002         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1003
1004 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1005
1006         * doc/install.texi (Prerequisites): Update libbanshee,
1007         fastjar, libcpp, libjava/libltdl entries to
1008         automake 1.8.5.
1009
1010 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1011             Olivier Hainque  <hainque@act-europe.fr>
1012
1013         * function.c (fixup_var_refs): Also adjust the start of sequence
1014         after fixing up the insns.
1015
1016 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1017
1018         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1019
1020 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1021
1022         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1023         automake 1.8.5.
1024
1025 2004-06-14  Eric Christopher  <echristo@redhat.com>
1026
1027         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1028         to -mtpf-trace (-mno-tpf-trace).
1029         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1030         documentation.
1031
1032 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1033
1034         * real.c: Fix bit count in head comment.
1035
1036 2004-06-14  Jeff Law  <law@redhat.com>
1037
1038         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1039         PHIs where the destination or an argument is marked with
1040         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1041
1042 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1043
1044         PR middle-end/15945
1045         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1046         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1047
1048 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1049
1050         * opts.sh (var_args): Fix regexp.
1051
1052 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1053
1054         PR target/15178
1055         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1056
1057 2004-06-14  Paul Brook  <paul@codesourcery.com>
1058
1059         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1060
1061 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1062
1063         * Makefile.in (FLAGS_H): New.
1064         (flags.h): Replace by FLAGS_H.
1065         * c.opt: Document Var, VarExists, Init and Report attributes.
1066         * common.opt: Fill the values of the attributes.
1067         * diagnostic.c (flag_fatal_errors): Do not define.
1068         * except.c (flag_non_call_exceptions): Do not define.
1069         * flags.h: Include options.h.  Remove declarations conflicting with
1070         the automatically defined ones.
1071         * opts.c: Remove automatically defined variables.
1072         (handle_option): Perform default initialization.
1073         (common_handle_option): Do not handle options covered by the
1074         default initialization.
1075         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1076         fields.
1077         (CL_REPORT): New.
1078         * opts.sh: Generate variable declarations, handle CL_REPORT.
1079         * toplev.c: Remove automatically defined variables.
1080         (f_options): Removed.
1081         (print_switch_values): Use cl_options instead of f_options.
1082         * toplev.h (version_flag): Declaration removed.
1083
1084 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1085
1086         * config/sparc/sparc.h: Correct comment about availability of
1087         little endian option.
1088
1089         * config.gcc: Remove sparc64-*-aout*.
1090         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1091         * config/sparc/sp64-aout.h: Remove.
1092         * config/sparc/aout.h: Remove.
1093
1094 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1095
1096         * config/s390/s390.c: Include "tree-gimple.h".
1097         (s390_gimplify_va_arg): New function.
1098         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1099         (s390_va_arg): Remove.
1100         * config/s390/s390-protos.h (s390_va_arg): Remove.
1101         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1102
1103 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1104
1105         * basic-block.h (could_fall_through): Declare.
1106         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1107         Fail if the source already has a fallthrough edge to the exit
1108         block pointer.
1109         (could_fall_through): New function.
1110         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1111         edge to the exit block pointer.
1112         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1113         not called before reload has completed.
1114         Handle special case of first block having a fall-through exit edge.
1115         (cfg_layout_finalize): Don't call it before reload or if we have
1116         rtl epilogues.
1117         (fixup_reorder_chain): A fall through to the exit block does not
1118         require the block to come last.  Add sanity checks.
1119         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1120         edges to the exit block.
1121         * function.c (cfglayout.h): #include.
1122         (thread_prologue_and_epilogue_insns): If we have neither return nor
1123         epilogue, but a fall through to the exit block from mid-function,
1124         force a non-fall-through exit.
1125         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1126
1127 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1128
1129         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1130         for power5 and rs64a.  Correct condition for default.  Correct power3,
1131         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1132
1133 2004-06-13  Steven Bosscher <stevenb@suse.de>
1134
1135         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1136         Revert previous change, don't use CALL_P.
1137
1138 2004-06-13  Jason Merrill  <jason@redhat.com>
1139
1140         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1141         * tree-gimple.h: From here.
1142
1143 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1144
1145         Fix PR tree-optimization/15979
1146         Fix PR tree-optimization/15981
1147         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1148         try to insert values undefined along some path.
1149
1150 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1151
1152         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1153         are available everywhere too.
1154
1155 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1156
1157         * fold-const.c (fold_checksum_tree <case 't'>): Only
1158         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1159         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1160         EXPR is an INTEGERAL_TYPE or a scalar float type.
1161
1162 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1163
1164         * tree-sra.c (tree_sra): Update documentation.
1165
1166 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1167
1168         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1169         function_types_compatible_p, type_lists_compatible_p): Remove
1170         flags parameter.
1171         * c-tree.h (comptypes): Likewise.
1172         (COMPARE_STRICT): Remove.
1173         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1174         callers changed.
1175
1176 2004-06-13  Eric Christopher  <echristo@redhat.com>
1177
1178         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1179         Remove unused code.
1180         * c-typeck.c (comptypes): Add location in standard we're checking.
1181
1182 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1183
1184         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1185         version 3.3.4.
1186
1187 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1188
1189         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1190         index by machine mode.
1191         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1192         tables inside the loop over machine modes.
1193         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1194         expand_divmod): Index shift*_cost by the appropriate machine mode.
1195
1196 2004-06-12  Eric Christopher  <echristo@redhat.com>
1197
1198         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1199         * config/s390/s390.md: Ditto.
1200         * config/s390/s390.c: Ditto.
1201         (s390_frame_info): Conditionalize frame and setup info on
1202         TARGET_TPF_PROFILING.
1203         (s390_arg_frame_offset): Ditto.
1204
1205 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1206
1207         * fold-const.c (omit_two_operands): New function.
1208         * tree.h (omit_two_operands): Prototype here.
1209         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1210         C99 unordered comparison builtins to the appropriate tree nodes.
1211         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1212         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1213         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1214         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1215         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1216         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1217         omit_two_operands function to build the required COMPOUND_EXPRs.
1218
1219 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1220             Andreas Jaeger  <aj@suse.de>
1221
1222         * gcse.c (record_set_info): Use predicates like REG_P.
1223         (mems_conflict_for_gcse_p): Likewise.
1224         (load_killed_in_block_p): Likewise.
1225         (hash_expr_1): Likewise.
1226         (insert_set_in_table): Likewise.
1227         (gcse_constant_p): Likewise.
1228         (hash_scan_set): Likewise.
1229         (hash_scan_insn): Likewise.
1230         (canon_list_insert): Likewise.
1231         (record_last_mem_set_info): Likewise.
1232         (record_last_set_info): Likewise.
1233         (compute_hash_table_work): Likewise.
1234         (mark_set): Likewise.
1235         (mark_clobber): Likewise.
1236         (mark_oprs_set): Likewise.
1237         (compute_transp): Likewise.
1238         (find_avail_set): Likewise.
1239         (cprop_insn): Likewise.
1240         (do_local_cprop): Likewise.
1241         (cprop): Likewise.
1242         (find_implicit_sets): Likewise.
1243         (find_bypass_set): Likewise.
1244         (bypass_conditional_jumps): Likewise.
1245         (insert_insn_end_bb): Likewise.
1246         (pre_insert_copy_insn): Likewise.
1247         (compute_transpout): Likewise.
1248         (next_ls_expr): Likewise.
1249         (invalidate_any_buried_refs): Likewise.
1250         (compute_ld_motion_mems): Likewise.
1251         (reg_set_info): Likewise.
1252         (reg_clear_last_set): Likewise.
1253         (find_moveable_store): Likewise.
1254         (compute_store_table): Likewise.
1255         (find_loads): Likewise.
1256         (store_killed_in_insn): Likewise.
1257         (insert_insn_start_bb): Likewise.
1258         (reg_set_between_after_reload_p): Likewise.
1259         (reg_used_between_after_reload_p): Likewise.
1260         (is_jump_table_basic_block): Likewise.
1261         (gcse_after_reload): Likewise.
1262         (hash_scan_set_after_reload): Likewise.
1263         (compute_hash_table_after_reload): Likewise.
1264
1265 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1266
1267         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1268         (INSN_P): Don't look at the rtx code class, just explicitly
1269         check for one of the tree RTX_INSN codes.
1270
1271 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1272
1273         * c-typeck.c (default_function_array_conversion): Use
1274         build_pointer_type not TYPE_POINTER_TO.
1275
1276 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1277
1278         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1279         * configure, config.in: Regenerate.
1280         * system.h: Unconditionally define bool as unsigned char,
1281         BOOL_BITFIELD as unsigned int.
1282         * domwalk.h: Use BOOL_BITFIELD.
1283
1284 2004-06-12  Andreas Jaeger  <aj@suse.de>
1285
1286         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1287         * libgcc-darwin.ver: Likewise.
1288
1289 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1290
1291         * reload.c (find_reloads): Force reload for pseudo registers on big
1292         endian machines.
1293
1294 2004-06-11  Steven Bosscher <stevenb@suse.de>
1295
1296         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1297         Don't try to mark anything control dependent on the entry or
1298         exit blocks.
1299
1300 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1301
1302         Fix Bug 15899
1303         Fix Bug 15460
1304         * tree.h (SSA_NAME_VALUE): New macro.
1305         (struct tree_ssa_name): Add value_handle member.
1306         * tree-ssa-pre.c: Replaced.
1307         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1308         (struct cst_ann_d): New.
1309         (struct expr_ann_d): New.
1310         (union tree_ann_d): Add cst_ann, expr_ann.
1311         * tree-dfa.c (create_cst_ann): New function.
1312         (create_expr_ann): Ditto.
1313         * tree-flow-inline.h (cst_ann): New function.
1314         (expr_ann): Ditto.
1315         (get_cst_ann): Ditto.
1316         (get_expr_ann): Ditto..
1317
1318 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1319
1320         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1321         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1322         _U_Qfcmp library function.
1323         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1324         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1325
1326         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1327         unspec used for loading address from DLT.
1328         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1329         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1330         Don't use short code sequence when loading the address of a nonlocal
1331         label.
1332         (nonlocal_goto): New expander.
1333         (indirect_goto): New jump pattern for nonlocal gotos.
1334         (short_jump): Remove extra whitespace.
1335         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1336         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1337         pattern.
1338
1339 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1340
1341         * expmed.c (synth_mult): Add an additional MODE argument for the
1342         machine mode of the multiplication.  Update recursive calls.  Use
1343         mode instead of word_mode for determining operation costs.
1344         (choose_mult_variant): Update calls to synth_mult with "mode".
1345
1346 2004-06-11  Richard Henderson  <rth@redhat.com>
1347
1348         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1349         and makes_aliased_stores.
1350
1351 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1352
1353         * doc/install.text (--enable-shared): Fix typo.
1354
1355 2004-06-11  Richard Henderson  <rth@redhat.com>
1356
1357         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1358         argument.  Use internal post for call to gimplify_expr.  Tidy
1359         rounded type size computation.
1360         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1361         get_initialized_tmp_var.
1362
1363 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1364
1365         * doc/install.texi (--enable-shared): Update libobjc's shared library
1366         status.  Remove reference to libf2c.
1367
1368 2004-06-11  Jason Merrill  <jason@redhat.com>
1369
1370         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1371         * config/i386/i386.c (ix86_va_arg): Remove.
1372         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1373         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1374         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1375         * config/alpha/alpha.c (alpha_va_arg): Remove.
1376         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1377         * config/sparc/sparc.c (sparc_va_arg): Remove.
1378
1379         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1380         assignment might throw.
1381         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1382         expressions.
1383
1384 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1385
1386         PR 15886:
1387         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1388
1389 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1390
1391         * doc/install.texi (Prerequisites): Update documentation of
1392         required versions of autoconf and automake.  Remove mention of
1393         libf2c.
1394
1395 2004-06-11  Jason Merrill  <jason@redhat.com>
1396
1397         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1398         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1399
1400 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1401
1402         * typeclass.h: Add GPL plus exception license.  Add include
1403         guard.
1404
1405 2004-06-10  Jason Merrill  <jason@redhat.com>
1406
1407         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1408         of an aggregate_value_p type.
1409
1410 2004-06-10  Jeff Law  <law@redhat.com>
1411
1412         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1413         code when we are in gimple form.
1414
1415 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1416
1417         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1418         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1419         (highest_ssa_version): Remove.
1420         * tree-outof-ssa.c (new_temp_expr_table): Replace
1421         highest_ssa_version with num_ssa_names.
1422         (dump_replaceable_exprs): Likewise.
1423         (rewrite_vars_out_of_ssa): Likewise.
1424         * tree-ssa-ccp.c (initialize): Likewise
1425         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1426         * tree-ssa-dce.c (tree_dce_init): Likewise.
1427         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1428         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1429         (dump_var_map): Likewise.
1430         * tree-ssa.c (verify_ssa): Likewise.
1431         (kill_redundant_phi_nodes): Likewise.
1432         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1433         * tree-ssanames.c: Include tree-flow.h
1434         (ssa_names): New varray.
1435         (init_ssa_names): Initialize ssa_names.
1436         Reserve the first slot of the ssa_names table.
1437         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1438         Assign version numbers using num_ssa_names.
1439
1440 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1441
1442         * doc/sourcebuild.texi (Front End): Add details of more
1443         installation documentation required.
1444
1445 2004-06-10  Brian Booth  <bbooth@redhat.com>
1446
1447         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1448         of V_MAY_DEF and V_MUST_DEF.
1449         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1450         num_vdefs to num_v_may_defs.
1451         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1452         to v_may_def.
1453         (redirect_immediate_uses): Ditto.
1454         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1455         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1456         Also add code to sum up the number of v_must_defs.
1457         (vdefs_disappeared_p): Replace with...
1458         (v_may_defs_disappeared_p): This.
1459         (v_must_defs_disappeared_p): New function.
1460         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1461         Also add code to mark new variables found in V_MUST_DEFs for
1462         renameing.
1463         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1464         vdef_ops to v_may_def_ops.
1465         (get_vdef_ops): Replace with...
1466         (get_v_may_def_ops): This.
1467         * tree-flow-inline.h (get_vdef_ops): Replace with...
1468         (get_v_may_def_ops): This.
1469         (get_v_must_def_ops): New function.
1470         (get_vdef_result_ptr): Replace with...
1471         (get_v_may_def_result_ptr): This.
1472         (get_vdef_op_ptr): Ditto with...
1473         (get_v_may_def_op_ptr); This.
1474         (get_v_must_def_op_ptr): New function.
1475         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1476         to v_may_def. Also add code to mark statements with
1477         V_MUST_DEFs as definition sites.
1478         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1479         add code to register new V_MUST_DEFs made by the statement.
1480         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1481         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1482         add check for V_MUST_DEFs.
1483         (find_replaceable_in_bb): Ditto.
1484         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1485         to v_may_def. Also add code to dump V_MUST_DEFs.
1486         * tree-sra.c (mark_all_vdefs): Replace with...
1487         (mark_all_v_may_defs): This.
1488         (mark_all_v_must_defs): New function.
1489         (create_scalar_copies): Replace call to mark_all_vdefs with
1490         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1491         (scalarize_structures): Rename occurences of vdef to v_may_def.
1492         Also add a check for V_MUST_DEFs.
1493         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1494         * tree-ssa-alias.c (global_var): Update comment.
1495         (compute_may_aliases): Ditto.
1496         (compute_points_to_and_addr_escape): Rename occurences of vdef
1497         to v_may_def. Also add code to mark variables in V_MUST_DEF
1498         operands as being written to.
1499         (group_aliases): Update comment.
1500         (maybe_create_global_var): Ditto.
1501         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1502         Also add a check for V_MUST_DEFs on GIMPLE registers.
1503         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1504         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1505         to v_may_def. Also add code to mark all V_MUST_DEF operands
1506         VARYING.
1507         (initialize): Ditto.
1508         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1509         code to update SSA_NAMEs in V_MUST_DEFs.
1510         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1511         to v_may_def.
1512         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1513         occurences of vdef to v_may_def. Also add code to mark statements
1514         with V_MUST_DEFs as necessary.
1515         (propagate_necessity): Rename occurences of vdef to v_may_def.
1516         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1517         occurences of vdef to v_may_def. Also add code to mark operands
1518         in V_MUST_DEFs for renaming.
1519         (eliminate_redundant_computations): Rename occurences of vdef
1520         to v_may_def.
1521         (record_equivalences_from_stmt): Rename occurences of vdef
1522         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1523         (optimize_stmt): Remove unnesessary variable vdefs. Update
1524         comment.
1525         (register_definitions_for_stmt): Rename occurences of vdef
1526         to v_may_def. Also add code to register definitions made with
1527         V_MUST_DEFs.
1528         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1529         (fix_stmt_v_may_defs): This.
1530         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1531         (dse_optimize_stmt): Ditto.
1532         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1533         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1534         used in virtual operators.
1535         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1536         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1537         renaming.
1538         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1539         definitions.
1540         (build_vdefs): Renamed to...
1541         (build_v_may_defs): This.
1542         (build_v_must_defs): New variable.
1543         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1544         v_may_def_ops.
1545         (append_vdef): Replace with...
1546         (append_v_may_def): This.
1547         (append_v_must_def): New function.
1548         (NUM_FREE): Increment for V_MUST_DEF
1549         (optype_freelist): Increment its size for V_MUST_DEF
1550         (allocate_vdef_optype): Replace with...
1551         (allocate_v_may_def_optype): This.
1552         (allocate_v_must_def_optype): New function.
1553         (free_vdefs): Replace with...
1554         (free_v_may_defs): This.
1555         (free_v_must_defs): New function.
1556         (remove_vdefs): Replace with...
1557         (remove_v_may_defs): This.
1558         (remove_v_must_defs): New function.
1559         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1560         add code to initialize build_v_must_defs.
1561         (finalize_ssa_vdefs): Replace with...
1562         (finalize_ssa_v_may_defs): This.
1563         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1564         (finalize_ssa_v_must_defs): New function.
1565         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1566         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1567         (verify_start_operands): Rename occurences of vdef to v_may_def.
1568         Also add check for build_v_must_defs.
1569         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1570         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1571         killing definitions.
1572         (get_expr_operands): Update comment and use opf_kill_def for
1573         killing definitions.
1574         (add_stmt_operand): Replace code that appends VDEFs with code
1575         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1576         otherwise.
1577         (add_call_clobber_ops): Update comments.
1578         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1579         (v_may_def_optype_d): This.
1580         (v_must_def_optype_d): New structure.
1581         (VDEF_OPS): Replace with...
1582         (V_MAY_DEF_OPS): This.
1583         (STMT_VDEF_OPS): Same with...
1584         (STMT_V_MAY_DEF_OPS): This.
1585         (NUM_VDEFS): And...
1586         (NUM_V_MAY_DEFS): This.
1587         (VDEF_RESULT_PTR): As well as...
1588         (V_MAY_DEF_RESULT_PTR): This.
1589         (VDEF_RESULT): Same goes for...
1590         (V_MAY_DEF_RESULT): This.
1591         (VDEF_OP_PTR): And...
1592         (V_MAY_DEF_OP_PTR): This.
1593         (VDEF_OP): And...
1594         (V_MAY_DEF_OP): This.
1595         (V_MUST_DEF_OPS): New macro.
1596         (STMT_V_MUST_DEF_OPS): Ditto.
1597         (NUM_V_MUST_DEFS): Ditto.
1598         (V_MUST_DEF_OP_PTR): Ditto.
1599         (V_MUST_DEF_OP): Ditto.
1600         (remove_vdefs): Replace signature with...
1601         (remove_v_may_defs): This.
1602         (remove_v_must_defs): New function signature.
1603         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1604         with calls to remove_v_may_defs and remove_v_must_defs.
1605         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1606         Also add code that marks left occurences of operands in V_MUST_DEFs.
1607         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1608         to v_may_def. Also add check for V_MUST_DEFs.
1609         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1610
1611 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1612
1613         PR target/15653
1614         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1615         insn.
1616
1617 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1618
1619         PR web/15263
1620         * doc/install.texi: Remove superfluous linebreak.
1621
1622 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1623
1624         * builtins.c (expand_builtin): Fall back to library function call for
1625         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1626         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1627         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1628         IMAGPART_EXPR respectively.
1629
1630 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1631
1632         * sh.c (dump_table): New argument start.  Changed caller.
1633         (fixup_mova): New function.
1634         (find_barrier): Use it.
1635         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1636         If the label a mova refers to is above the mova itself, change
1637         the mova into a load.
1638         * sh.md (*casesi_worker): Rename to:
1639         (casesi_worker_1).
1640         (casesi_worker_2): New insn.
1641
1642 2004-06-10  Jason Merrill  <jason@redhat.com>
1643
1644         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1645         hook signature.
1646         * tree-gimple.h: Adjust.
1647         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1648         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1649         Use fold_convert.
1650         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1651         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1652         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1653         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1654         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1655         Gimplify valist rather than calling stabilize_va_list.
1656
1657 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1658
1659         * Makefile.in (df.o): Remove fibheap dependency.
1660         * df.h: Do not include sbitmap.h.
1661         (struct ref): New field "data".
1662         (DF_REF_DATA): New accessor macro.
1663         (struct df): Field "dom" removed.
1664         (df_analyze_subcfg): New function.
1665         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1666         (transfer_function): ... new type.
1667         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1668         (iterative_dataflow): ... new function.
1669         (enum set_representation, struct dataflow): New.
1670         * df.c: Do not include fibheap.h.
1671
1672         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1673         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1674         prune_to_subcfg, df_bb_modify): New functions.
1675         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1676         df_refs_update, df_reg_table_realloc, df_ref_create,
1677         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1678         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1679         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1680
1681         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1682         (df_rd_transfer_function, df_ru_transfer_function,
1683         df_lr_transfer_function): Type of bitmaps changed to void *.
1684         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1685         (hybrid_search): ... new function.
1686         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1687         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1688         a worklist.  Do not process basic blocks unnecessarily.
1689
1690 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1691
1692         * fold-const.c (fold_abs_const): Make extern.
1693         * tree.h (fold_abs_const): Prototype here.
1694         * builtins.c (fold_builtin_fabs): New function to transform
1695         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1696         (fold_builtin_abs): New function to transform abs, labs, llabs
1697         and imaxabs builtins into ABS_EXPR tree nodes.
1698         (expand_builtin): Fall back to a function call for abs, labs,
1699         llabs and imaxabs builtins that survive constant folding.
1700         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1701         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1702
1703 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1704
1705         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1706         leaf function without unwind info at RP 0.
1707
1708 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1709
1710         PR c++/14791
1711         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1712         (fileptr_type_node): Define.
1713         * tree.c (build_common_tree_nodes_2): Initialize
1714         fileptr_type_node to ptr_type_node.
1715         * c-common.c (c_common_nodes_and_builtins): For C++, make
1716         fileptr_type_node a distinct type copy.
1717         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1718         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1719         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1720         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1721         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1722         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1723         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1724         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1725         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1726         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1727         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1728         the above *FILEPTR* types instead of *PTR*.
1729
1730 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1731
1732         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1733         match.
1734
1735 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1736
1737         * fold-const.c (fold_not_const): New function.
1738         (fold) <ABS_EXPR>: Don't bother testing wins.
1739         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1740         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1741
1742 2004-06-09  Richard Henderson  <rth@redhat.com>
1743
1744         PR middle-end/15228
1745         * function.c (assign_parms): Always set_mem_align with the computed
1746         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1747
1748 2004-06-09  Richard Henderson  <rth@redhat.com>
1749
1750         PR opt/15108
1751         * tree-tailcall.c (find_tail_calls): Don't check early for
1752         tail_recursion failure.
1753
1754 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1755
1756         Move SSA_NAME annotations into tree_ssa_name.
1757
1758         * tree-dfa.c (create_ssa_name_ann): Remove.
1759         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1760         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1761         (struct ssa_name_ann_d): Remove.
1762         (union tree_ann_d): Update.
1763         (ssa_name_ann_t): Remove.
1764         * tree-ssa-alias.c: (get_ptr_info): New local function.
1765         Replace references to ssa_name_ann_t with struct ptr_info_def.
1766         * tree-ssa-operands.c (get_expr_operands): Likewise.
1767         * tree.h (SSA_NAME_PTR_INFO): Define.
1768         (struct ptr_info_def): Declare.
1769         (struct tree_ssa_name): Add field 'ptr_info'.
1770
1771 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1772
1773         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1774         misplaced ')'.
1775
1776 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1777
1778         * config/i386/k6.md: Rewrite using the DFA model.
1779         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1780         cost of load-operation insns for the K6.
1781         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1782         (ia32_multipass_dfa_lookahead): Likewise.
1783
1784 2004-06-09  Richard Henderson  <rth@redhat.com>
1785
1786         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1787         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1788
1789 2004-06-09  Richard Henderson  <rth@redhat.com>
1790
1791         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1792
1793 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1794
1795         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1796         (CPP_ID_DATA_H): New.
1797         (gtype-desc.o): Update dependencies.
1798         (GTFILES): Use CPP_ID_DATA_H.
1799
1800 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1801
1802         Revert:
1803         PR c++/15815
1804         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1805         * doc/extend.texi: Deprecate #pragma interface and #pragma
1806         implementation.
1807
1808 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1809
1810         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1811
1812 2004-06-09  Richard Henderson  <rth@redhat.com>
1813
1814         * basic-block.h (struct edge_def): Add goto_locus.
1815         * tree-cfg.c (make_goto_expr_edges): Set it.
1816         (disband_implicit_edges): Use it.
1817         * tree-pretty-print.c (dump_implicit_edges): Print it.
1818
1819 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1820
1821         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1822
1823 2004-06-08  Jason Merrill  <jason@redhat.com>
1824
1825         Gimplify VA_ARG_EXPR into simpler forms.
1826         * target.h: Add gimplify_va_arg_expr hook.
1827         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1828         * fold-const.c (build_fold_addr_expr)
1829         (build_fold_addr_expr_with_type): Move from gimplify.c.
1830         * tree.h: Declare them.
1831         * gimplify.c (gimplify_and_add): New fn.
1832         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1833         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1834         (gimplify_expr): Use build_fold_*.
1835         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1836         don't know how to gimplify it.
1837         * builtins.c (std_gimplify_va_arg_expr): New fn.
1838         (dummy_object): New static fn.
1839         (gimplify_va_arg_expr): New fn.
1840         (stabilize_va_list): Use build_fold_*.
1841         * tree-gimple.h: Declare new fns.
1842         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1843         (ix86_gimplify_va_arg): New fn.
1844         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1845         (ia64_gimplify_va_arg): New fn.
1846         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1847         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1848         * alias.c (get_varargs_alias_set): Just return 0 for now.
1849
1850         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1851
1852 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1853
1854         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1855         of convert.
1856         * tree-inline.c (setup_one_parameter): Likewise.
1857         * tree-sra.c (csc_build_component_ref): Likewise.
1858         * tree-ssa-ccp.c (ccp_fold): Likewise.
1859         * tree-ssa-copy.c (cprop_operand): Likewise.
1860         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1861         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1862
1863 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1864
1865         PR rtl-optimization/15521:
1866         * sched-int.h (in_post_call_group_p): Change type to enum.
1867         * sched-deps.c (sched_analyze_insn):
1868         (sched_analyze): When in_post_call_group_p is post_call_initial,
1869         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1870         and also reset in_post_call_group_p to post_call.
1871         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1872         initialize in_post_call_group_p as post_call_initial.
1873         (init_deps): initialize in_post_call_group_p to not_post_call.
1874
1875 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1876
1877         PR ada/6637
1878         * doc/install.texi: List ada, libada as options to --enable-shared
1879
1880 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1881
1882         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1883         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1884         config.in entries.
1885         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1886         if hard links are not available.
1887         * configure: Regenerate.
1888         * config.in: Regenerate.
1889
1890 2004-06-08  Per Bothner  <per@bothner.com>
1891
1892         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1893
1894 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1895
1896         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1897         Correct formatting.
1898
1899 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1900
1901         PR target/15790
1902         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1903
1904 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1905
1906         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1907         POINTER_TYPE and INTEGER_TYPE.
1908
1909 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1910
1911         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1912         defined.
1913
1914 2004-06-08  Jeff Law  <law@redhat.com>
1915
1916         * doc/contrib.texi: Add entries for Stefan Olsson and
1917         Ola Ronnerup.
1918
1919 2004-06-08  DJ Delorie  <dj@redhat.com>
1920
1921         * toplev.c (floor_log2_wide): Replace loop with faster bit
1922         operations.
1923         (exact_log2_wide): Define in terms of the above.
1924         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1925         available.
1926
1927 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1928
1929         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1930         Make sure that we are in INDIRECT mode when getting the
1931         stub name.
1932
1933 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1934
1935         * h8300.md (extendqisi2_h8300): Add constraints.
1936         (ldm_h8300s_4_normal): Fix typo.
1937
1938 2004-06-08  Richard Henderson  <rth@redhat.com>
1939
1940         * gimple-low.c (struct lower_data): Replace the_return_label and
1941         one_return_stmt with return_statements.
1942         (lower_function_body): Process the entire list of return_statements.
1943         (lower_return_expr): Check source value before unifying return_exprs.
1944         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1945         for !aggregate_value_p.
1946         * tree-gimple.c: Update RETURN_EXPR grammer.
1947
1948 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1949
1950         PR target/15598
1951         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1952
1953 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1954
1955         PR rtl-optimization/15717
1956         * config/i386/i386.c (legitimate_constant_p): Do not allow
1957         x - symbol_ref.
1958
1959 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1960
1961         * gimplify.c (copy_if_shared_r): Revert:
1962         2004-05-21  Richard Henderson  <rth@redhat.com>
1963         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1964
1965 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1966
1967         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1968         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1969         (init_expmed): Initialize these cost arrays as appropriate.
1970         (store_bit_field, extract_bit_field): Correct whitespace.
1971         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1972         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1973         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1974         word_mode or compute_mode as appropriate.
1975
1976 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1977
1978         PR target/15783
1979         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1980         parameter.  Enumerate the registers inside the PARALLEL.
1981         (function_arg): Adjust call to function_arg_union_value.
1982         (function_value): Likewise.
1983
1984         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1985
1986 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1987
1988         * real.c (real_copysign): New function to implement libm's copysign.
1989         * real.h (real_copysign): Prototype here.
1990         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1991         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1992         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1993         fold_builtin_isdigit): Add function prototypes.
1994         (fold_builtin_copysign): New function to fold copysign, copysignf
1995         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1996         constant arguments at compile-time using real_copysign.  Fold
1997         copysign(X,Y) as fabs(X) if Y is always non-negative.
1998         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1999         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2000
2001 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2002
2003         * tree.c (iterative_hash_expr): Use real_hash.
2004
2005 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2006
2007         PR c/14765
2008         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2009         NULL_TREE.
2010
2011 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2012
2013         PR c++/15815
2014         * doc/extend.texi: Deprecate #pragma interface and #pragma
2015         implementation.
2016
2017 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2018
2019         PR middle-end/15666
2020         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2021         builtin decl as well.
2022
2023 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2024
2025         PR c/14649
2026         * c-typeck.c (require_constant_value, require_constant_elements):
2027         Move declarations to the top of the file.
2028         (build_function_call): If we require a constant value, fold with
2029         fold_initializer.  If the result is a constant, and the function
2030         wasn't called using __builtin_foo, issue a pedantic warning.
2031         (build_unary_op): If we require a constant value, fold tree with
2032         fold_initializer.
2033         (build_binary_op): Use require_constant_value to determine whether
2034         to call fold or fold_initializer.
2035
2036 2004-06-07  Richard Henderson  <rth@redhat.com>
2037
2038         * gimple-low.c (struct lower_data): Add the_return_label and
2039         one_return_stmt.
2040         (lower_function_body): Initialize and use them.
2041         (lower_return_expr): New.
2042         (lower_stmt): Call it.
2043         * gimplify.c (gimplify_return_expr): Force the argument to be either
2044         null or a result_decl.
2045         * tree-gimple.c: Update gimple grammer to match.
2046         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2047         coalescing of result_decls.
2048
2049 2004-06-07  Richard Henderson  <rth@redhat.com>
2050
2051         PR rtl-opt/15193
2052         * expmed.c (extract_bit_field): Fix vector_extract return.
2053
2054         * config/i386/i386.md (negv4sf2): New pattern.
2055
2056 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2057
2058         PR c++/15337
2059         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2060         message.
2061
2062 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2063
2064         * config.in: Regenerate.
2065
2066 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2067
2068         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2069         SWITCH_LABELS are always sorted.
2070
2071 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2072
2073         * hooks.c (hook_int_void_1): New generic hook.
2074         * hooks.h (hook_int_void_1): Add prototype.
2075         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2076         Define to hook_int_void_1.
2077         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2078         with dummies for the new one.
2079
2080 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2081
2082         * tree.h (lvalue_or_else): Delete function prototype.
2083         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2084
2085 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2086
2087         PR target/14542
2088         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2089         a live change of a register after peephole replacement.
2090
2091 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2092
2093         PR c/13519
2094         * c-typeck.c (composite_type, common_pointer_type): New functions.
2095         (common_type): Split parts into composite_type and
2096         common_pointer_type.  Ensure that arithmetic operations return
2097         unqualified types without attributes.  Don't make composite type
2098         of signed enum and compatible integer be unsigned.
2099         (build_conditional_expr, build_binary_op): Use
2100         common_pointer_type.
2101         * c-decl.c (merge_decls): Use composite_type.
2102         * c-tree.h (composite_type): Declare.
2103
2104 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2105
2106         PR target/14457
2107         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2108         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2109         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2110         (inhibit_libc): Must define.
2111         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2112         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2113         ("xorhi3"): Likewise.
2114
2115 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2116
2117         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2118         always_inline pass.
2119
2120 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2121
2122         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2123         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2124
2125 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2126
2127         * regclass.c (init_reg_sets): Check for missing registers in target
2128         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2129
2130 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2131
2132         * Makefile.in (MKDEPS_H): New shorthand.
2133         (c-opts.o): Update dependencies.
2134         * c-opts.c: Include mkdeps.h.
2135         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2136         not cpp_add_dependency_target.
2137
2138 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2139
2140         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2141         * config/v850/v850.md: Convert to DFA scheduler description.
2142
2143 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2144
2145         PR fortran/15478
2146         * doc/install.texi: Document GMP as prerequisite. Document
2147         --with-gmp and --with-gmp-dir configure options.
2148         * fortran/gfortran.texi: Remove section "Compiling and testing",
2149         remove TOC reference to it.
2150
2151 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2152
2153         * combine.c(simplify_shift_const): Check shift amount is a
2154         CONST_INT.
2155
2156 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2157
2158         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2159         opening asm_out_file.
2160         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2161         reading asm_out_file. Replace fflush after reading asm_out_file
2162         with fseek.
2163         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2164         default and add to HOST_HOOKS_INITIALIZER.
2165         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2166         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2167         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2168         to set mmi.offset padding.
2169          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2170         $(srcdir)/config/i386/winnt.c.
2171         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2172         (i[34567]86-*-uwin*): Likewise.
2173         *i[34567]86-*-interix3*): Likewise.
2174         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2175         * config/i386/host-mingw32.c: New file.
2176         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2177         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2178         (extern_head): Likewise.
2179         (struct export_list) Likewise.
2180         (export_head): Likewise.
2181         (i386_pe_record_external_function): Use ggc_alloc.
2182         (i386_pe_record_exported_symbol): Likewise.
2183         Include "gt-winnt.h" at end.
2184         * doc/hostconfig.texi: Document
2185         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2186
2187 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2188
2189         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2190         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2191         trailing whitespace before EOLs and before TABs.
2192         (MAX_CODE_ALIGN): Remove unused macro.
2193         (CALL_USED_REGISTERS): Reformat and add comments.
2194
2195 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2196
2197         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2198         to enumerate -lmudflap* and dependencies when linking.
2199
2200 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2201
2202         PR target/15822
2203         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2204
2205 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2206
2207         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2208         * genconditions.c (write_header): Back out removal of reload.h.
2209
2210 2004-06-04  Jan Hubicka  <jh@suse.cz>
2211
2212         Re-apply hopefully fixed patch:
2213         * i386.md (UNSPECV_EH_RETURN): Kill.
2214         (eh_return): Use jump_insn.
2215         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2216
2217 2004-06-04  Jeff Law  <law@redhat.com>
2218
2219         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2220
2221 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2222
2223         * except.c (for_each_eh_region): New function.
2224         * except.h (for_each_eh_region): Add a prototype for it.
2225         * tree-cfg.c (update_eh_labels): New function, callback for
2226         for_each_eh_region.
2227         (label_for_bb): Make global static, unfortunately.
2228         (cleanup_dead_labels): Also update label references for
2229         exception regions.
2230
2231 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2232
2233         * config/mips/mips.c (struct irix_section_align_entry): Fix
2234         GTY marker.
2235
2236 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2237
2238         * toplev.c (check_global_declarations): Don't ask for
2239         DECL_ASSEMBLER_NAME unless the function really is declared
2240         static and not defined.
2241
2242 2004-06-03  Matt Austern  <austern@apple.com>
2243
2244         PR c++/15428
2245         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2246         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2247         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2248         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2249         documentation to reflect the new macro name and to clarify its
2250         meaning.
2251
2252 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2253
2254         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2255
2256 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2257
2258         * config/darwin.c (machopic_indirect_data_reference): Copy
2259         the SYMBOL_REF_DECL from the original RTX for the new
2260         non-lazy pointer RTX.
2261
2262 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2263
2264         * tree.h: Remove include of version.h
2265         * c-cppbuiltin.c: Include version.h
2266         * diagnostic.c: Include version.h
2267         * dwarf2out.c: Include version.h
2268         * toplev.c: Include version.h
2269         * vmsdbgout.c: Include version.h
2270         * Makefile.in: Remove dependency on version.h from TREE_H, and
2271         add dependencies to required .o targets
2272
2273 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2274
2275         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2276         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2277         (TARGET_H): Add insn-modes.h.
2278         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2279         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2280         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2281         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2282         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2283         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2284         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2285         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2286         CFGLAYOUT_H.
2287         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2288         Replace ra.h with RA_H.
2289         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2290         insn-recog.o): Replace resource.h with RESOURCE_H.
2291         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2292         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2293         with SCHED_INT_H.
2294         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2295         ra-rewrite.o): Replace df.h with DF_H.
2296         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2297         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2298         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2299         (insn-conditions.o): Remove unused reload.h.
2300         * cfglayout.h: Add include guard.  Include basic-block.h.
2301         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2302         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2303         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2304         basic-block.h.
2305         * genconditions.c:  Remove reload.h.
2306         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2307         hard-reg-set.h, insn-modes.h.
2308         * resource.h: Add include guard.  Include hard-reg-set.h.
2309         * sched-int.h:  Add include guard.  Include insn-attr.h,
2310         basic-block.h, rtl.h.
2311         * target.h: Add include guard.  Include insn-modes.h.
2312         * tree-ssa-live.h: Include partition.h.
2313
2314 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2315                 Kenneth Zadeck <zadeck@naturalbridge.com>
2316
2317         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2318         (add_var_to_ssa_edges_worklist): Add value argument.
2319         Update callers.
2320         Use new worklist.
2321         (process_ssa_edge_worklist): New function.
2322         (tree_ssa_ccp): Move worklist processing core to
2323         process_ssa_edge_worklist, and just call that for the two worklists.
2324
2325 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2326
2327         * basic-block.c (tail_recursion_label_list): Don't declare.
2328         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2329         accordingly.
2330         * cfgbuild.c (find_label_refs): Remove.
2331         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2332         * cfgcleanup.c (tail_recursion_label_p): Remove.
2333         (merge_blocks_move): Do not check for tail recursion.
2334         (try_optimize_cfg): Likewise.
2335         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2336         * cfgrtl.c (tail_recursion_label_list): Remove.
2337         * except.c (remove_unreachable_regions): Don't handle
2338         CALL_PLACEHOLDER insns.
2339         (convert_from_eh_region_ranges_1, can_throw_internal,
2340         can_throw_external): Likewise.
2341         * function.c (free_after_compilation): Don't clear
2342         x_tail_recursion_label.
2343         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2344         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2345         (reorder_blocks_1): Likewise.
2346         * function.h (struct function): Remove x_tail_recursion_label
2347         member.  Don't define tail_recursion_label.
2348         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2349         * print-rtl.c (print_rtx): Likewise.
2350         * rtl.def (CALL_PLACEHOLDER): Remove.
2351         * rtl.h (sibcall_use_t): Remove enum.
2352         (optimize_sibling_and_tail_recursive_calls,
2353         replace_call_placeholder): Remove function prototypes.
2354         * stmt.c (tail_recursion_args): Remove.
2355         (optimize_tail_recursion): Remove.
2356         (expand_return): Don't check for possible tail recursion.
2357         * tree.h (optimize_tail_recursion): Remove prototype.
2358
2359 2004-06-02  Jan Hubicka  <jh@suse.cz>
2360
2361         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2362         return_stmt.
2363
2364 2004-06-02  Jason Merrill  <jason@redhat.com>
2365
2366         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2367         Do include c-parse.in.
2368
2369 2004-06-02  Eric Christopher  <echristo@redhat.com>
2370
2371         * c-typeck.c (common_type): Don't lose type qualifiers
2372         when creating new variants.
2373
2374 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2375
2376         PR tree-optimization/14042
2377         PR tree-optimization/14729
2378         PR tree-optimization/14736
2379         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2380         Check the type which the pointer points to
2381         instead of the pointer types.
2382
2383 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2384
2385         PR tree-optimization/15738.
2386         * builtins.c (fold_builtin_strchr): Transform
2387         strrchr (s, '\0') to strchr (s, '\0').
2388
2389 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2390
2391         * i386.c (ix86_adjust_cost): Don't increase the cost for
2392         load+operation for PROCESSOR_PENTIUMPRO, it is already
2393         modelled in the DFA description
2394
2395 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2396
2397         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2398         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2399         (ALIAS_H, EMIT_RTL_H): New.
2400         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2401         (cfgcleanup.o): Add EMIT_RTL_H.
2402         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2403         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2404         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2405         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2406         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2407         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2408         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2409         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2410         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2411         set_mem_size): Move to emit-rtl.h.
2412         * emit-rtl.h: New.
2413         * alias.h: New.
2414
2415 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2416
2417         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2418         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2419         Adjust recursive calls to self.
2420         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2421
2422 2004-06-01  Richard Henderson  <rth@redhat.com>
2423             Andrew Pinski  <pinskia@physics.uc.edu>
2424
2425         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2426         (primary): Handle offsetof.  Add error productions for faux functions.
2427         Move component_ref objc checking to build_component_ref.
2428         (reswords): Add offsetof.
2429         (rid_to_yy): Add offsetof.
2430         * c-tree.h (build_offsetof): Declare.
2431         * c-common.h (objc_is_public): Declare.
2432         * c-typeck.c (build_component_ref): Check objc_is_public.
2433         (build_offsetof): New.
2434         * stub-objc.c (objc_is_public): New.
2435         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2436         from is_public.
2437         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2438         * doc/extend.texi (Offsetof): Move from C++ section to C section
2439         and rewrite for __builtin_offsetof.
2440
2441 2004-06-01  Peter Barada  <peter@the-baradas.com>
2442             Peter Jakubek  <peter@laseranimation.com>
2443
2444         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2445         a scratch to perform an add to memory.
2446
2447 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2448
2449         PR target/14018
2450         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2451         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2452         m68k_align_funcs): Remove.
2453         (override_options): Remove code to handle -malign-* options.
2454         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2455         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2456         (m68k_align_loops_string, m68k_align_jumps_string,
2457         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2458         m68k_align_funcs): Remove definitions.
2459
2460 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2461
2462         PR target/15626
2463         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2464         by the Sun linker in conjunction with the Sun assembler.
2465         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2466
2467 2004-06-01  Jeff Law  <law@redhat.com>
2468
2469         * stmt.c (expand_decl): Be more selective about calling
2470         mark_reg_pointer.
2471
2472 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2473
2474         PR objc/7993
2475         * objc-act.c (is_private): Do not emit the 'instance variable %s
2476         is declared private' error.
2477         (is_public): Emit the error after calling is_private.
2478         (lookup_objc_ivar): If the instance variable is private, return 0
2479         - the instance variable is invisible here.
2480
2481 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2482
2483         * doc/invoke.texi (-static-libgcc): Explicitly mention
2484         non-GNU linkers.
2485
2486 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2487
2488         PR target/12968
2489         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2490
2491 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2492
2493         PR c/15749
2494         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2495         misuses of structures with flexible array members if
2496         in_system_header.
2497
2498 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2499
2500         PR target/15693
2501         * config/sparc/sparc.c (compare_operand): New predicate.
2502         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2503         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2504         operand is a ZERO_EXTRACT and the second operand is not zero,
2505         force the former to a register.
2506         (cmpdi expander): Likewise.
2507
2508 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2509
2510         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2511         looks at.
2512         * alias.c (alias_invariant_size): Make alias_invariant_size
2513         static, fix GTY marker.
2514
2515 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2516
2517         PR tree-optimization/15743.
2518         * builtins.c (fold_builtin_1): Fold index() and rindex().
2519
2520 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2521
2522         PR middle-end/15069
2523         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2524         into "X < 0" (where C is the signbit) if X's type is a full mode.
2525
2526 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2527
2528         * pa.md: Disable the peephole2 patterns that generate indexed
2529         floating-point stores when indexing is disabled.
2530
2531 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2532
2533         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2534         (pp_c_right_bracket): Likewise.
2535         (pp_c_star): Likewise.
2536         (pp_c_ampersand): Define.
2537         * c-pretty-print.h (pp_c_left_bracket): Declare.
2538         (pp_c_right_bracket): Likewise.
2539         (pp_c_star): Likewise.
2540         (pp_c_ampersand): Likewise.
2541
2542 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2543
2544         * config/sol2.h (__enable_execute_stack): ANSIfy function
2545         definition.
2546
2547 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2548
2549         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2550         HAVE_DOS_BASED_FILESYSTEM.
2551
2552 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2553
2554         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2555         Only look at case labels if the immediate dominator is also
2556         the only predecessor.  Don't look for more case labels if the
2557         first seen is a case range.
2558
2559 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2560
2561         * builtins.c: Add a prototype for fold_builtin_strchr().
2562
2563 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2564
2565         Revert this patch:
2566         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2567
2568         * combine.c (gen_binary): Remove.
2569         (known_cond, simplify_shift_const
2570         find_split_point, combine_simplify_rtx,
2571         simplify_if_then_else, simplify_set,
2572         simplify_logical, expand_field_assignment,
2573         extract_left_shift, force_to_mode,
2574         if_then_else_cond, apply_distributive_law,
2575         simplify_and_const_int, simplify_shift_const,
2576         gen_lowpart_for_combine, simplify_comparison,
2577         reversed_comparison): Replace with
2578         simplify_gen_binary, simplify_gen_relational or
2579         distribute_and_simplify_rtx.
2580         (distribute_and_simplify_rtx): New function.
2581
2582 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2583
2584         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2585         when generating PIC code.
2586
2587 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2588
2589         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2590         (c_expand_body): here.
2591         (c_expand_decl): Move to ...
2592         * c-common.c (c_expand_decl): Here and remove check for nested
2593         functions.
2594         * c-common.h (c_expand_decl): Add prototype.
2595         * c-tree.h (c_expand_decl): Remove.
2596
2597 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2598
2599         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2600         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2601         fold_mathfn_compare, fold_inf_compare, fold,
2602         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2603         Use constant_boolean_node where appropriate.  Don't bother using
2604         fold_convert on the second argument to omit_one_operand.
2605
2606 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2607
2608         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2609         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2610         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2611         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2612         Add missing (but documented) tree nodes to the index.
2613
2614 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2615
2616         PR tree-optimization/14819
2617         * builtins.c (fold_builtin_strchr): New.
2618         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2619         with fold_builtin_strchr().
2620
2621 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2622
2623         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2624         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2625         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2626         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2627         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2628         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2629         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2630         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2631         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2632         formatting.
2633
2634 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2635
2636         * gimplify.c (sort_case_labels): New.  Split out from...
2637         (gimplify_switch_expr): ...here.  Use it.
2638         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2639         the SWITCH_EXPR created here before leaving the function.
2640         * tree.c (sort_case_labels): Add prototype.
2641
2642 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2643
2644         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2645         of BOOLEAN_TYPE.
2646
2647 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2648
2649         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2650         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2651         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2652         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2653         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2654         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2655         comment typos.  Follow spelling conventions.
2656
2657 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2658
2659         * gengtype-yacc.y: Add NESTED_PTR token.
2660         (option): Record `nested_ptr' option.
2661         * gengtype-lex.l: Handle `nested_ptr' keyword.
2662         * gengtype.c (walk_type): Process `nested_ptr' option.
2663         * gengtype.h (struct nested_ptr_data): New.
2664         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2665         * stringpool.c (struct string_pool_data): Make 'entries' point to
2666         ht_identifier instead of tree.
2667         (gt_pch_save_stringpool): Don't adjust pointers.
2668         (gt_pch_restore_stringpool): Call ht_load.
2669
2670 2004-05-29  Jason Merrill  <jason@redhat.com>
2671
2672         * gimplify.c (gimplify_expr): Don't build a statement list
2673         if no gimplification was necessary.
2674
2675 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2676
2677         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2678         and %> as well as %'.
2679         * c-format.c: Use %< and %>.
2680         (gcc_diag_char_table, gcc_cdiag_char_table,
2681         gcc_cxxdiag_char_table): Update.
2682
2683 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2684
2685         * c-typeck.c (common_type): Correct comment.
2686
2687 2004-05-29  Peter Barada  <peter@the-baradas.com>
2688
2689         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2690         * config/m68k/m68k.c (const_method): Likewise.
2691         * config/m68k/m68k.c (const_int_cost): Likewise.
2692         * config/m68k/m68k.c (const_int_cost): Likewise.
2693         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2694
2695 2004-05-29  Peter Barada  <peter@the-baradas.com>
2696
2697         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2698         addressing.
2699         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2700         movsi,movhi,movqi insn patterns.
2701
2702 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2703
2704         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2705
2706         PR target/15720
2707         * config/darwin.c (machopic_indirect_call_target): Copy
2708         the SYMBOL_REF_DECL from the original RTX for the new
2709         stub RTX.
2710
2711 2004-05-28  DJ Delorie  <dj@redhat.com>
2712
2713         * stor-layout.c (place_field): Revert erroneous commit.
2714
2715 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2716
2717         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2718         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2719         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2720         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2721         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2722         vec_ste): Remove type checks for integral parameters and literals
2723         from '..._args_eq' macros.
2724
2725 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2726
2727         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2728
2729 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2730
2731         * testsuite/g++.dg/charset/function.cc: New.
2732
2733         * testsuite/gcc.dg/charset/function.c: New.
2734
2735         * c-decl.c (c_make_fname_decl): Free return value from
2736         fname_as_string.
2737
2738         * cp/decl.c (cp_make_fname_decl): Free return value from
2739         fname_as_string.
2740
2741         * c-common.c (fname_as_string): Translate if necessary.
2742
2743 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2744
2745         * stringpool.c: Add comments to PCH saving/restoring routines.
2746
2747 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2748
2749         * c-common.c (c_estimate_num_insns_1): Kill.
2750         (c_estimate_num_insns): Kill.
2751         * c-common.h (c_estimate_num_insns): Kill.
2752
2753         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2754         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2755         Remove comment about not checking for
2756         _POSIX_PRIORITY_SCHEDULING.
2757         * gthr-posix.c: Likewise.
2758
2759 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2760             Roger Sayle  <roger@eyesopen.com>
2761
2762         PR rtl-optimization/15649
2763         Add LTGT_EXPR and improve pretty-printing of unordered
2764         comparisons.
2765         * c-common.c (c_common_truthvalue_conversion):
2766         Handle LTGT_EXPR.
2767         * c-typeck.c (build_binary_op): Likewise.
2768         * dojump.c (do_jump): Likewise.
2769         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2770         * predict.c (tree_predict_by_opcode): Likewise.
2771         * real.c (real_compare): Likewise.
2772         * tree-cfg.c (verify_expr): Likewise.
2773         * tree-inline.c (estimate_num_insns_1): Likewise.
2774         * tree-pretty-print.c (dump_generic_node): Likewise.
2775         Handle ORDERED_EXPR, UNORDERED_EXPR.
2776         (op_symbol): Print unordered comparisons differently
2777         than ordered ones.
2778         * tree.def (LTGT_EXPR): New '<' tree code.
2779         * doc/c-tree.texi (Expressions): Document floating-point
2780         comparison nodes.
2781
2782         Fold comparisons between floating point values.
2783         * fold-const.c (enum comparison_code): New, from
2784         #define'd constants.  Define compcodes for unordered
2785         comparisons and for invalid transformations.
2786         (invert_tree_comparison): Add "honor_nans" parameter.
2787         (fold_truthop): Revamp to work on floating-point types too.
2788         (comparison_to_compcode): Support unordered comparisons.
2789         Use new enum comparison_code.
2790         (compcode_to_comparison): Likewise.
2791         (combine_compcodes): New function.
2792         (invert_truthvalue): Let invert_tree_comparison decide
2793         whether it is valid to fold the comparison.  Fold ORDERED
2794         and UNORDERED even if flag_unsafe_math_optimizations is off,
2795         and the remaining even if flag_unsafe_math_optimizations
2796         is off but we are under -fno-trapping-math.
2797         (fold_relational_const): Integer modes do not honor NaNs.
2798
2799 2004-05-28  Paul Brook  <paul@codesourcery.com>
2800
2801         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2802
2803 2004-05-28  Paul Brook  <paul@codesourcery.com>
2804
2805         * config/arm/arm.c (thumb_force_lr_save): New function.
2806         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2807         thumb_output_function_prologue): Use it.
2808         (thumb_expand_prologue): Set lr_save_eliminated.
2809
2810 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2811
2812         * config/mips/mips.md (extendsidi2): Tie the source and destination
2813         of the register alternative.  Split it into nothing.
2814
2815 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2816
2817         * rtl.h (skip_consecutive_labels): Declare.
2818         * emit-rtl.c (skip_consecutive_labels): New function.
2819         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2820         * jump.c (follow_jumps): Say what null return values mean.
2821
2822 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2823
2824         PR target/13250
2825         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2826
2827 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2828
2829         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2830         libgcc-std.ver.
2831         * config/sh/libgcc-std.ver: New file.
2832
2833 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2834
2835         * except.c: Revert change of 2004-05-26.
2836         * config/i386/i386.md: Revert change of 2004-05-27.
2837
2838 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2839
2840         * configure.ac: Remove --enable-tree-browser option.
2841         Define TREEBROWSER when ac_tree_checking is defined.
2842         * configure: Rebuilt.
2843
2844 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2845
2846         * expr.c (store_constructor): Restore sanity check on
2847         the size of the type before clearing.
2848
2849 2004-05-27  Jan Hubicka  <jh@suse.cz>
2850
2851         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2852
2853 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2854
2855         * combine.c (gen_binary): Remove.
2856         (known_cond, simplify_shift_const
2857         find_split_point, combine_simplify_rtx,
2858         simplify_if_then_else, simplify_set,
2859         simplify_logical, expand_field_assignment,
2860         extract_left_shift, force_to_mode,
2861         if_then_else_cond, apply_distributive_law,
2862         simplify_and_const_int, simplify_shift_const,
2863         gen_lowpart_for_combine, simplify_comparison,
2864         reversed_comparison): Replace with
2865         simplify_gen_binary, simplify_gen_relational or
2866         distribute_and_simplify_rtx.
2867         (distribute_and_simplify_rtx): New function.
2868         * simplify-rtx.c (simplify_binary_operation):
2869         Use nonzero_bits to simplify ANDs where we are
2870         turning off bits already known to be off in OP0.
2871
2872 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2873
2874         PR target/14478
2875         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2876
2877 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2878
2879         PR middle-end/14084
2880         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2881         to size of decl.
2882
2883 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2884
2885         PR/14924
2886         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2887
2888 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2889
2890         * tree.h: Fix comment typo.
2891
2892 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2893
2894         * gimplify.c (compare_case_labels): New function.
2895         (gimplify_switch_expr): Sort case labels, and make sure the
2896         last label in the label vector is the default case.
2897         * tree-cfg.c (group_case_labels): New function.
2898         (build_tree_cfg): Cleanup redundant labels and group case labels
2899         before creating edges.
2900         (cleanup_dead_labels): Handle GOTO_EXPRs.
2901         (find_case_label_for_value): Use a binary search to find the
2902         case label for the given value.
2903         * tree-gimple.c: Mention that labels are sorted, and that the
2904         last label must be the default.
2905
2906 2004-05-27  Jan Hubicka  <jh@suse.cz>
2907
2908         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2909
2910 2004-05-27  Jan Hubicka  <jh@suse.cz>
2911
2912         * i386.md (UNSPECV_EH_RETURN): Kill.
2913         (eh_return): Use jump_insn.
2914         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2915
2916 2004-05-26  Jan Hubicka  <jh@suse.cz>
2917
2918         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2919         not loop optimizing.
2920
2921 2004-05-26  Jan Hubicka  <jh@suse.cz>
2922
2923         * except.c (can_throw_internal):  Notice RESX instructions.
2924
2925 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2926
2927         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2928         of the two sizes to assemble_integer.
2929
2930 2004-05-25  Paul Brook  <paul@codesourcery.com>
2931
2932         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2933         pointless #ifdef.
2934
2935 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2936
2937         * Makefile.in (top_builddir): Define to .
2938
2939 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2940
2941         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2942         top-level detects, except when in-tree ld is being cross-built.
2943         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2944         then AS only if target is host.
2945         * configure: Rebuilt.
2946
2947 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2948
2949         * global.c (global_alloc): Call make_accurate_live_analysis.
2950         (record_one_conflict): Remove dead code.
2951         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2952         (bb_info): New structure.
2953         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2954         (allocate_bb_info, free_bb_info, mark_reg_change,
2955         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2956         modify_bb_reg_pav, calculate_reg_pav,
2957         make_accurate_live_analysis): New functions.
2958
2959 2004-05-25  Devang Patel  <dpatel@apple.com>
2960
2961         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2962         xrealloc.
2963         (end_alias_analysis): Use ggc_free instead fo free.
2964
2965 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2966
2967         PR target/15546
2968         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2969         as needed to be outputted.
2970
2971 2004-05-25  Jan Hubicka  <jh@suse.cz>
2972
2973         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2974
2975 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2976         Mostafa Hagog  <mustafa@il.ibm.com>
2977
2978         * Makefile.in (modulo-sched.o, ddg.o): New.
2979         * ddg.h, ddg.c, modulo-sched.c: New files.
2980         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2981         internals to "dupicate_insn".
2982         (duplicate_insn): New function.
2983         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2984         declarations.
2985         * common.opt (fmodulo-sched): New flag.
2986         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2987         Remove static and forward declaration.
2988         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2989         functions.
2990         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2991         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2992         declarations.
2993         * flags.h (flag_modulo_sched): New flag.
2994         * opts.c (common_handle_option): Handle modulo-sched flag.
2995         * params.def (max-sms-loop-number, sms-max-ii-factor,
2996         sms-dfa-history, sms-loop-average-count-threshold): New
2997         parameters.
2998         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2999         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3000         parameters.
3001         * passes.c ("sms", "sms-vcg"): New dumps.
3002         (rest_of_handle_sched): Call sms_schedule.
3003         * rtl.h (sms_schedule): New declaration.
3004         * timevar.def (TV_SMS): New.
3005         * toplev.c (flag_modulo_sched): Initialize.
3006         (f_options): Handle -fmodulo-sched option.
3007         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3008         * docs/passes.texi: Document new SMS pass.
3009
3010 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3011
3012         * Makefile.in (OBJS): Add rtlhooks.o.
3013         (rtlanal.o): Depend on function.h.
3014         (cse.o): Depend on rtlhooks-def.h.
3015         (combine.o): Depend on rtlhooks-def.h.
3016         (rtlhooks.o): New rule.
3017         * combine.c: Include rtlhooks-def.h.
3018         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3019         num_sign_bit_copies, cached_num_sign_bit_copies,
3020         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3021         (reg_nonzero_bits_for_combine,
3022         reg_num_sign_bit_copies_for_combine): New functions holding
3023         the remnants of the above.
3024         (combine_rtl_hooks): New.
3025         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3026         * cse.c: Include rtlhooks-def.h.
3027         (cse_rtl_hooks): New.
3028         (cse_main): Set rtl_hooks instead of gen_lowpart.
3029         * emit-rtl.c (gen_lowpart): Remove.
3030         (gen_lowpart_general): Move to rtlhooks.c.
3031         * rtl.h (nonzero_bits, num_sign_bit_copies,
3032         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3033         (gen_lowpart_general): Remove.
3034         (gen_lowpart): Temporarily redefine as a macro.
3035         * rtlanal.c: Include function.h.
3036         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3037         num_sign_bit_copies, cached_num_sign_bit_copies,
3038         num_sign_bit_copies1): New, from combine.c.
3039         * rtlhooks.c: New file.
3040         * rtlhooks-def.h: New file.
3041
3042 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3043
3044         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3045         to support 32-bit -mint8 mode.
3046
3047         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3048         option in the AVR architecture.
3049
3050 2004-05-24  Mike Stump  <mrs@apple.com>
3051
3052         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3053
3054 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3055
3056         * intl.h (open_quote, close_quote): New.
3057         * intl.c (open_quote, close_quote): New.
3058         (gcc_init_libintl): Set them.
3059         * pretty-print.c: Include "intl.h".
3060         (pp_base_format_text): Support 'q' format flag and %` and %'
3061         formats.  Use ' instead of ` in comments.
3062         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3063         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3064         foramt_types_orig): Describe these new formats.
3065         (decode_format_attr, check_function_format,
3066         check_format_info_main): Use these new formats.
3067         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3068         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3069         check these formats to 3.5.
3070
3071 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3072
3073         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3074         (BACKEND): Reflect this.
3075         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3076         (LIBS): Likewise.
3077
3078 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3079
3080         PR tree-optimization/14197
3081         * builtins.c: Include "tree-gimple.h"
3082         (readonly_data_expr): Use get_base_address.  Make sure to call
3083         decl_readonly_section only on trees it can handle.
3084         * tree-gimple.c (get_base_address): Accept STRING_CST and
3085         CONSTRUCTOR expressions.
3086         * Makefile.in: Update dependencies.
3087
3088 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3089
3090         Move libcpp to the toplevel.
3091         * Makefile.in: Remove references to libcpp files,
3092         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3093         and change hashtable.h to that.
3094         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3095         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3096         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3097         * configure: Regenerate.
3098         * config.in: Regenerate.
3099         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3100         * cppcharset.c: Removed.
3101         * cpperror.c: Removed.
3102         * cppexp.c: Removed.
3103         * cppfiles.c: Removed.
3104         * cpphash.c: Removed.
3105         * cpphash.h: Removed.
3106         * cppinit.c: Removed.
3107         * cpplex.c: Removed.
3108         * cpplib.c: Removed.
3109         * cpplib.h: Removed.
3110         * cppmacro.c: Removed.
3111         * cpppch.c: Removed.
3112         * cpptrad.c: Removed.
3113         * cppucnid.h: Removed.
3114         * cppucnid.pl: Removed.
3115         * cppucnid.tab: Removed.
3116         * hashtable.c: Removed.
3117         * hashtable.h: Removed.
3118         * line-map.c: Removed.
3119         * line-map.h: Removed.
3120         * mkdeps.c: Removed.
3121         * mkdeps.h: Removed.
3122         * stringpool.h: Include symtab.h instead of hashtable.h.
3123         * tree.h: Include symtab.h instead of hashtable.h.
3124         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3125
3126 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3127
3128         * gcc.c (struct prefix_list): Add forward declaration.
3129         (do_spec_path): New function, extracted from...
3130         (do_spec_1) <'D'>: ... here.  Drop support for
3131         SPACE_AFTER_L_OPTION.
3132         (do_spec_1) <'I'>: Use do_spec_path.
3133         (process_command): Do not store the 'include' suffix
3134         in include_prefixes.
3135         * system.h: Poison SPACE_AFTER_L_OPTION.
3136
3137 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3138
3139         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3140         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3141
3142 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3143
3144         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3145         Update based on printed manual.  Enable setting of offsets for
3146         FSFPRINT and move it to gcc-common.texi.
3147         * doc/gcc.texi: Update FSF printing details.
3148         * doc/gccint.texi: Remove FSF printing details.
3149
3150 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3151
3152         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3153
3154 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3155
3156         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3157         expand_builtin_strrchr, expand_builtin_strpbrk,
3158         expand_builtin_mempcpy, expand_builtin_memcmp,
3159         expand_builtin_strcmp, expand_builtin_strncmp,
3160         expand_builtin_strcat, std_expand_builtin_va_start,
3161         std_expand_builtin_va_arg, expand_builtin_va_copy,
3162         expand_builtin_signbit, fold_builtin_cabs,
3163         fold_builtin_logarithm, fold_builtin_mempcpy,
3164         fold_builtin_signbit, fold_builtin_isascii,
3165         fold_builtin_toascii, fold_builtin_isdigit,
3166         fold_builtin_1, build_function_call_expr,
3167         simplify_builtin_strchr, simplify_builtin_strrchr,
3168         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3169         simplify_builtin_memcmp, simplify_builtin_strcmp,
3170         simplify_builtin_strncmp, simplify_builtin_strncat,
3171         simplify_builtin_strspn, simplify_builtin_strcspn,
3172         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3173         to build with calls to build2, build3 or omit_one_operand.
3174
3175 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3176
3177         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3178         section when generating EABI code.
3179
3180 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3181
3182         PR 15546
3183         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3184         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3185
3186 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3187
3188         * c-common.c (c_common_truthvalue_conversion): Handle
3189         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3190         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3191         i.e. set the type to truthvalue_type_node and return.
3192
3193 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3194
3195        * tree.h (struct tree_decl): Add possibly_inlined bit.
3196         (DECL_POSSIBLY_INLINED): New accessor macro.
3197         * cgraph.h: Remove declaration of cgraph_inline_hash.
3198         * cgraph.c: Remove definition of cgraph_inline_hash.
3199         (hash_node): Revert to hashing DECL_UID.
3200         (eq_node): Take two pointers to cgraph_node structures.
3201         Compare DECL_UIDs.
3202         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3203         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3204         hash on DECL_UID.
3205         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3206         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3207         (cgraph_node): Allocate a temporary node on the stack, fill in
3208         its DECL field, and pass that to htab_find_slot.
3209         (cgraph_varpool_node): Likewise.
3210         (cgraph_function_possibly_inlined_p): If global info is ready,
3211         return the DECL_POSSIBLY_INLINED bit.
3212         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3213         instead of mucking with cgraph_inline_hash.
3214
3215 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3216
3217         * doc/contrib.texi: Add g77 contributors.
3218
3219 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3220
3221         * calls.c (initialize_argument_information): Forbid sibcalls if a
3222         callee-copied argument is stored in the current function's frame.
3223
3224 2004-05-22  Eric Christopher  <echristo@redhat.com>
3225
3226         * fix-header.c (read_scan_file): Update for add_path change.
3227
3228 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3229
3230         * c.opt (Wmissing-include-dirs): New.
3231         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3232         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3233         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3234         * c-incpath.h (add_path): Add fourth (bool) argument.
3235         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3236         (add_standard_paths): Likewise.
3237         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3238         is used and the directory was user-supplied via -I.
3239         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3240         using add_cpp_dir_path ().
3241         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3242         (struct cpp_dir): Add user_supplied_p.
3243         * doc/invoke.texi (Warning Options): Document new option.
3244
3245 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3246
3247         * fold-const.c (fold_read_from_constant_string): Convert result to
3248         requested type.
3249
3250 2004-05-21  Richard Henderson  <rth@redhat.com>
3251
3252         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3253         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3254         Don't mark VA_ARG_EXPRs volatile here.
3255         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3256
3257 2004-05-21  Richard Henderson  <rth@redhat.com>
3258
3259         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3260         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3261
3262 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3263
3264         * fold-const.c (fold, fold_relational_hi_lo,
3265         nondestructive_fold_binary_to_constant,
3266         fold_read_from_constant_string): Use fold_convert instead of convert.
3267         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3268         simplify_builtin_strchr, simplify_builtin_strrchr,
3269         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3270
3271 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3272
3273         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3274         is NULL.
3275
3276 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3277
3278         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3279         override sparc.h definition.
3280
3281 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3282
3283         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3284         get_unwidened, get_narrower): Replace build with build2.
3285         * fold-const.c (negate_expr, associate_trees, size_binop,
3286         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3287         pedantic_omit_one_operand, distribute_bit_expr,
3288         make_bit_field_ref, optimize_bit_field_compare,
3289         decode_field_reference, range_binop, make_range,
3290         build_range_check, fold_range_test, fold_truthop,
3291         optimize_minmax_comparison, extract_muldiv_1,
3292         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3293         fold_inf_compare, fold_single_bit_test, fold,
3294         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3295         Likewise replace build with either build2 or build3.
3296
3297 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3298
3299         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3300         * calls.c (prepare_call_address): Don't test
3301         NO_RECURSIVE_FUNCTION_CSE.
3302         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3303         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3304         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3305         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3306         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3307         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3308         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3309         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3310         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3311         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3312         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3313         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3314         Likewise.
3315         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3316         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3317         * doc/tm.texi (Costs): Remove documentation for
3318         NO_RECURSIVE_FUNCTION_CSE.
3319
3320 2004-05-20  Paul Brook  <paul@codesourcery.com>
3321
3322         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3323         * unwind-dw2.c (extract_cie_info): Ditto.
3324         (_Unwind_FrameState): Change retaddr_column to word type.
3325
3326 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3327
3328         PR middle-end/3074
3329         * fold-const.c (strip_compound_expr): Delete function.
3330         (count_cond): Delete function.
3331         (fold_binary_op_with_conditional_arg): Only perform transformations
3332         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3333         when a is constant.  This greatly simplifies this routine.
3334
3335         * tree.c (saved_expr_p): Delete function.
3336         * tree.h (saved_expr_p): Delete function prototype.
3337
3338 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3339
3340         * common.opt (ftree-loop-optimize): Remove.
3341
3342 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3343
3344         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3345         (NM_FOR_TARGET): Use := and $(shell).
3346         (mainversion): Remove unused variable.
3347
3348 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3349
3350         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3351         sequence containing the insn to be deleted, always reemit it.
3352
3353 2004-05-20  Richard Henderson  <rth@redhat.com>
3354
3355         PR 15454
3356         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3357         * function.c (expand_function_start): Expand static_chain_decl by hand.
3358         * gimplify.c (create_tmp_var_name): Export.
3359         * tree-gimple.h (create_tmp_var_name): Declare.
3360
3361 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3362
3363         * rs6000.c (print_operand) <case 'z'>: Call
3364         mark_decl_referenced before assemble_name.
3365
3366 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3367
3368         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3369         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3370         (cgraph_varpool_node): Hash on the pointer to the decl, not
3371         the DECL_UID.  Fixes 64-bit bootstrap failure.
3372
3373 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3374
3375         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3376         we don't earlyclobber operands used in the second insn.
3377
3378 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3379
3380         * tree-mudflap.c: Formatting fixes.
3381
3382 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3383
3384         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3385         * gengtype.c (open_base_files): Include reload.h in ifiles.
3386         * reload.h (reg_equiv_memory_loc_varray): Declare.
3387         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3388         (init_reload): Initialize it.
3389         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3390         reg_equiv_memory_loc_varray to size 0.
3391         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3392         growing reg_equiv_memory_loc_varray to the desired size.
3393         * passes.c (rest_of_handle_old_regalloc): Likewise.
3394         * reload.c: Amend comment on calling init_reload.
3395
3396 2004-05-20  Nick Clifton  <nickc@redhat.com>
3397
3398         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3399         with 'TRAMP' in the body of the macro definition.
3400
3401 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3402
3403         PR target/15383
3404         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3405         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3406         cmptf_libfunc isn't set.
3407         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3408         conventions.
3409         (ia64_sysv4_init_libfuncs): New.
3410
3411         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3412         ia64_sysv4_init_libfuncs.
3413
3414 2004-05-20  Falk Hueffner  <falk@debian.org>
3415
3416         PR other/15526
3417         * libgcc2.c (__mulvsi3): Fix overflow test.
3418
3419 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3420
3421         PR c/14171
3422         * reg-stack.c (nan): Rename to ...
3423         (not_a_num): Here.
3424         (reg_to_stack): Rename nan to not_a_num.
3425         (subst_stack_regs_pat): Likewise.
3426         (convert_regs_entry): Likewise.
3427         (convert_regs_1): Likewise.
3428
3429         * tree-cfg.c (find_case_label_for_value): Replace call to
3430         simple_cst_equal with tree_int_cst_equal.
3431
3432 2004-05-19  Jeff Law <law@redhat.com>
3433
3434         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3435         If the operand is for a use, then strip away the SSA_NAME, do not
3436         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3437         (mark_def_sites): Appropriately pass additional argument to
3438         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3439         then set the VDEF_RESULT to the VDEF_OP.
3440         (set_def_block): Strip away any SSA_NAME to get to the real
3441         underlying variable.
3442
3443         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3444         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3445         BB directly.
3446
3447 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3448
3449         PR c++/15463
3450         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3451         result of inverse.
3452
3453         PR rtl-optimization/15274
3454         * loop-iv.c (determine_max_iter, shorten_into_mode,
3455         iv_number_of_iterations): Handle constants correctly.
3456         * rtl.h (get_mode_bounds): Declaration changed.
3457         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3458         the target mode.
3459
3460         PR rtl-optimization/14692
3461         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3462         (unswitch_single_loop): Work correctly when may_unswitch_on
3463         returns a folded constant.
3464
3465         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3466         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3467         comparisons with mode bounds.
3468
3469         * function.c (struct temp_slot): Add new field prev.
3470         (free_after_compilation, init_temp_slots): Free new fields.
3471         (cut_slot_from_list, insert_slot_to_list,
3472         temp_slots_at_level, max_slot_level, move_slot_to_level,
3473         make_slot_available): New functions.
3474         (assign_stack_temp_for_type, combine_temp_slots,
3475         find_temp_slot_from_address, preserve_temp_slots,
3476         preserve_rtl_expr_result, free_temp_slots,
3477         free_temps_for_rtl_expr, pop_temp_slots): Work with
3478         the new structure of lists.
3479         (mark_all_temps_used): Removed.
3480         * function.h (struct function): Field x_temp_slots
3481         replaced by x_used_temp_slots and x_avail_temp_slots.
3482         (temp_slots): Replaced by ...
3483         (used_temp_slots, avail_temp_slots): New.
3484         * tree.h (mark_all_temps_used): Declaration removed.
3485
3486         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3487         simplify_using_assignment): Take the expression out of
3488         the expr_list wrapper.
3489
3490         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3491         infinite loops.
3492
3493 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3494
3495         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3496         costs should be based on code size when optimizing for size.
3497
3498 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3499
3500         * fold-const.c: Remove non-printable character 160.
3501
3502 2004-05-19  Nick Clifton  <nickc@redhat.com>
3503
3504         * doc/invoke.texi (ARM Options): Fix typo.
3505         Remove descrption of -mshort-load-bytes and
3506         -mno-short-load-bytes.
3507
3508         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3509         missing parenthesis.
3510         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3511         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3512
3513 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3514
3515         * expr.c (store_constructor): Build loop start and end by hand
3516         instead of via loop functions from stmt.c.
3517         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3518         Remove the code to expand them.
3519
3520         * stmt.c (loop_stack): Remove this and everything related.
3521         (struct nesting, enum nesting_desc): Update.
3522         (expand_fixup): Likewise.
3523         (expand_loop_start, expand_start_loop_continue_elsewhere,
3524         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3525         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3526         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3527         expand_exit_something): Remove.
3528         * tree.h: Remove prototypes.
3529
3530 2004-05-18  Mike Stump  <mrs@apple.com>
3531             Devang Patel  <dpatel@apple.com>
3532
3533         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3534         if this label is for eh.
3535         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3536         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3537         * dwarf2out.c (output_call_frame_info): Likewise.
3538         * output.h (default_emit_unwind_label): Likewise.
3539         * target.h (unwind_label): Likewise.
3540         * varasm.c (default_emit_unwind_label): Likewise.
3541
3542         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3543         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3544         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3545         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3546         DEBUG_RANGES_SECTION): Define.
3547
3548 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3549
3550         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3551         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3552         (cgraph_varpool_node):
3553         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3554         (cgraph_function_possibly_inlined_p): Use the decl itself for
3555         the key, not DECL_ASSEMBLER_NAME.
3556         (change_decl_assembler_name): No need to muck with the hash tables.
3557         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3558         Delete.
3559         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3560         for the key, not DECL_ASSEMBLER_NAME.
3561         * cgraph.h: Remove prototypes of deleted functions.
3562         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3563         (mark_decl_referenced): New function.
3564         * tree.h: Prototype mark_decl_referenced.
3565         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3566         mark_decl_referenced before assemble_name.
3567         * c-decl.c (finish_decl): Use mark_decl_referenced.
3568
3569 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3570             Jeff Law <law@redhat.com>
3571
3572         * tree-ssa-phiopt.c (abs_replacement): New function.
3573         (empty_block_p): New function extracted from...
3574         (candidate_bb_for_phi_optimization): Break out empty block test.
3575         (conditional_replacement): Use empty_block_p.
3576         (value_replacement): Similarly.
3577
3578         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3579         * tree-ssa-phiopt.c: Include flags.h.
3580         (conditional_replacement): Remove argument names from prototype.
3581         Minor formatting and comment fixes.
3582         (tree_ssa_phiopt): If conditional_replacement returns false, then
3583         call value_replacement.
3584         (value_replacement): New function.
3585
3586 2004-05-18  Jeff Law  <law@redhat.com>
3587
3588         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3589         from conditional_replacement.
3590         (candidate_bb_for_phi_optimization): Similarly.
3591         (conditional_replacement): Use replace_phi_with_stmt and
3592         candidate_bb_for_phi_optimization.
3593
3594         * tree-ssa-phiopt.c: Fix various formatting issues.
3595
3596 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3597
3598         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3599         s390_expand_cmpmem): Do not use expand_start_loop and
3600         expand_end_loop, instead build the loop manually.
3601
3602 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3603
3604         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3605         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3606
3607 2004-05-17  Jeff Law  <law@redhat.com>
3608
3609         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3610         * flags.h (flag_delete_null_pointer_checks): Here.
3611         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3612         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3613         (add_phi_arg, remove_phi_arg_num): Similarly.
3614         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3615         property into PHI nodes.
3616         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3617         (record_equivalences_from_phis): If all PHI arguments are known to be
3618         nonzero, then the result must be nonzero as well.
3619         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3620         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3621         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3622         as appropriate.
3623         * tree.h (PHI_ARG_NONZERO): Define.
3624         (phi_arg_d): Add nonzero flag.
3625
3626 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3627
3628         * f: Entire directory removed
3629
3630         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3631         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3632         (g77_integer_type_node, g77_uinteger_type_node)
3633         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3634         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3635         the above set of variables.
3636
3637         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3638         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3639         to g77 manual.
3640
3641 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3642
3643         PR tree-optimization/15438
3644         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3645         attributed functions as pure or const.
3646
3647 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3648
3649         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3650         from source code with errors.
3651
3652 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3653
3654         Enable tree browser for all front ends.
3655         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3656         (BACKEND): ...to here.
3657
3658 2004-05-17  Jan Hubicka  <jh@suse.cz>
3659
3660         * i386.c (construct_container): Do not produce BLKmode registers.
3661         (classify_argument): Properly compute alignment of complex types.
3662
3663 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3664
3665         PR target/15084
3666         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3667         and renamed to movdi_insv_1_rex64.
3668         (insv): Support SImode for 32bit and DImode for 64bit.
3669
3670 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3671
3672         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3673         (TARGET_SWITCHES): Remove debugg.
3674         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3675         TARGET_64BIT.
3676         (subdi3): Replace the define_expand with a define_insn, the latter
3677         renamed from subdi3_internal_3.
3678         (negdi2): Likewise negdi2_internal_2.
3679         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3680         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3681         and associated define_splits.
3682         (adddi3_internal): Renamed from adddi3_internal_3.
3683         (ashldi3_internal): Likewise ashldi3_internal4.
3684         (ashrdi3_internal): Likewise ashrdi3_internal4.
3685         (lshrdi3_internal): Likewise lshrdi3_internal4.
3686
3687 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3688
3689         * optabs.c (expand_unop): Try implementing negation using subtraction
3690         from zero.
3691
3692 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3693
3694         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3695         SAR register.
3696
3697 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3698
3699         PR target/10982
3700         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3701         (ne_zeroextractsi_shifted): New pattern.
3702         (ite_ne_zeroextractsi): New pattern.
3703         (ite_ne_zeroextractsi_shifted): New pattern.
3704
3705 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3706
3707         * c-gimplify.c (c_genericize):
3708         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3709         * c-parse.in <expr_no_commas>: Likewise.
3710         <if_prefix>: Likewise.
3711         <select_or_iter_stmt>: Likewise.
3712         * expr.c (expand_var, expand_expr_real_1): Likewise.
3713         * expr.h (expand_expr): Make it a static inline function.
3714         Move prototype for expand_expr_real up before this.
3715         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3716         Likewise.
3717         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3718         gimplify_asm_expr, gimplify_expr): Likewise.
3719         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3720         dump_function_to_file): Likewise.
3721         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3722         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3723         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3724         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3725         Likewise.
3726         * tree-optimize.c (execute_one_pass): Likewise.
3727         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3728         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3729
3730         * objc/objc-act.c (objc_build_try_enter_fragment,
3731         objc_build_try_epilogue, objc_build_catch_stmt,
3732         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3733         with lang_hooks.foo ().
3734
3735 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3736
3737         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3738         that simplify_builtin doesn't destructively modify its argument.
3739
3740 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3741
3742         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3743         implementations for ARM and Thumb.
3744         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3745
3746 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3747
3748         * prefix.c (update_path): Replace PREFIX with KEY only
3749         when it matches a full directory name in PATH.
3750
3751 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3752
3753         * arm.h (TARGET_APCS_32): Delete.
3754         (TARGET_MMU_TRAPS): Delete.
3755         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3756         define __APCS_26__.
3757         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3758         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3759         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3760         (prog_mode_type): Delete.
3761         (PROMOTE_MODE): Always promote unsigned for HImode.
3762         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3763         (MASK_RETURN_ADDR): Simplify.
3764         * arm.c (arm_prgmode): Delete.
3765         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3766         (print_multi_reg, output_return_instruction): Simplify.
3767         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3768         (arm_return_addr): Simplify.
3769         * arm.md (prog_mode): Delete.
3770         (conds): Simplify.
3771         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3772         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3773         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3774         (loadhi_shiftpredec): Delete.
3775         (peephole for post-increment on HImode load): Delete.
3776         * arm/crtn.asm: (FUNC_END): Simplify.
3777         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3778         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3779         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3780         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3781         MULTILIB_DEFAULTS as required.
3782         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3783         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3784         variables as required.
3785         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3786
3787 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3788
3789         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3790         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3791         count to 8 to handle n_reg > 2.
3792
3793 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3794
3795         * doc/extend.texi: Update WG14 URL.
3796
3797 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3798
3799         * basic-block.h (life_analysis, delete_noop_moves):
3800         Update prototypes.
3801         * bt-load.c (branch_target_load_optimize): Don't take the
3802         insns stream as an argument.  Update the life_analysis calls.
3803         * combine.c (combine_instructions): Update delete_noop_moves
3804         calls.
3805         * flow.c (notice_stack_pointer_modification): Don't take the
3806         insns stream as an argument.  Work on the flow graph.
3807         (life_analysis): Likewise.
3808         (delete_noop_moves): Likewise.
3809         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3810         (rest_of_handle_life): Update life_analysis call.
3811         (rest_of_compilation): Likewise, and also update
3812         branch_target_load_optimize call.
3813         * ra.c (reg_alloc): Update life_analysis call.
3814         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3815         the insns stream as an argument.
3816         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3817         call.
3818         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3819         prototypes.
3820         * value-profile.c (branch_prob): Update life_analysis call.
3821         * web.c (web_main): Work on the CFG, not on the insns stream.
3822
3823         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3824         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3825         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3826
3827 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3828
3829         PR c/15444
3830         * c-format.c (avoid_dollar_number): New function.
3831         (check_format_info_main): Call avoid_dollar_number when operand
3832         numbers might occur but has_operand_number == 0.
3833
3834 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3835
3836         * arm.md (all peephole2 patterns): Use predicates that validate
3837         register classes as appropriate.
3838
3839 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3840
3841         PR opt/14472
3842         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3843         ignore type conversions that do not inhibit tail calling.
3844         (find_tail_calls): Likewise.
3845
3846 2004-05-14  Jeff Law  <law@redhat.com>
3847
3848         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3849         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3850         bypassed virtuals into vars_to_rename just before into-ssa pass.
3851
3852         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3853         so that it picks up more opportunities to eliminate ABS expressions
3854         or turn them into negations.
3855
3856 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3857
3858         * passes.c (rest_of_handle_null_pointer): Remove.
3859         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3860         (rest_of_compilation): Likewise.
3861         * rtl.h (delete_null_pointer_checks): Remove prototype.
3862         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3863         Remove declarations.
3864         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3865         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3866         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3867         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3868         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3869         one_classic_gcse_pass, invalidate_nonnull_info,
3870         delete_null_pointer_checks_1, delete_null_pointer_checks,
3871         expr_reached_here_p_work): Remove.
3872         (gcse_main): Do not perform classic GCSE when optimizing for size.
3873         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3874         are never used.
3875
3876 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3877
3878         PR optimization/14466
3879         * tree-complex.c (make_temp): Remove.
3880         (gimplify_val): Replace make_temp with make_rename_temp
3881         and add NULL as the second argument.
3882         (expand_complex_div_wide): Likewise.
3883         * tree-dfa.c (make_rename_temp): New function.
3884         * tree-flow.h (make_rename_temp): Declare.
3885         * tree-sra.c (make_temp): Remove.
3886         (lookup_scalar): Replace make_temp with make_rename_temp.
3887         (create_scalar_copies): Likewise.
3888         * tree-ssa-phiopt.c (conditional_replacement): When we
3889         get non gimple create a temporary variable to hold the
3890         casted expression.
3891
3892 2004-05-14  Paul Brook  <paul@codesourcery.com>
3893
3894         * stor-layout.c (update_alignment_for_field): Use
3895         targetm.align_anon_bitfield.
3896         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3897         (TARGET_INITIALIZER): Use it.
3898         * target.h (struct gcc_target): Add align_anon_bitfield.
3899         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3900         (TARGET_ALIGN_ANON_BITFIELD): Define.
3901         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3902
3903 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3904
3905         * tree.def (documentation): Remove mention of class 'b'.
3906         (BLOCK): Now in class 'x'.
3907         * c-common.c (verify_tree): Remove case 'b'.
3908         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3909         * calls.c (calls_function_1): Control cannot get past the switch
3910         when exp is a BLOCK.
3911         * print-tree.c (print_node): Move code for class 'b' to the class
3912         'c'/'x' switch, as case BLOCK.
3913         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3914         (unsafe_for_reeval, substitute_placeholder_in_expr)
3915         (stabilize_reference_1): Remove case 'b'.
3916         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3917         of something being 'b' to tests for TREE_CODE of something being
3918         BLOCK.
3919         * tree-ssa-operands.c (get_expr_operands): Likewise.
3920
3921 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3922
3923         * tree-gimple.c: Rename from tree-simple.c.
3924         * tree-gimple.h: Rename from tree-simple.h.
3925         * c-gimplify.c: Rename from c-simplify.c
3926         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3927         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3928         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3929         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3930         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3931         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3932         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3933         Update.
3934
3935 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3936
3937         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3938
3939 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3940
3941         * tree-ssa.c (delete_tree_ssa): XFREE
3942         bitmaps allocated with BITMAP_XMALLOC.
3943
3944         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3945         idfs_cache at the end of the function.
3946
3947         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3948         at the end of the function.
3949
3950         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3951         el at the end of the function.
3952
3953         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3954         bitmaps allocated with BITMAP_XMALLOC.
3955
3956         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3957         the end.
3958
3959         * final.c (shorten_branches): Free uid_shuid before
3960         reallocating it.
3961
3962         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3963
3964 2004-05-13  Jeff Law  <law@redhat.com>
3965
3966         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3967         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3968         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3969
3970         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3971         rather than iterating through the blocks testing each bit in
3972         livein to initialize the worklist.
3973         (mark_def_sites): Remove useless checks of KILLS for virtual
3974         operands.
3975
3976         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3977         new parameters for the statement and variable worklist as well
3978         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3979         worklist recording interesting variables in the variable worklist
3980         and bitmap.  Handle casts between integral and boolean types.
3981         (substitute_single_use_vars): Accept new parameters for the statement
3982         and variable worklist.  When a substitution is made add a new
3983         entry to the statement worklist.  Handle casts between integral
3984         and boolean types.
3985         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3986         worklists to children.  Iterate until the statement worklist
3987         is empty.
3988
3989 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3990
3991         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3992         the end of the block.
3993
3994         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3995         with BITMAP_XMALLOC.
3996
3997         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3998         with BITMAP_XMALLOC.
3999
4000         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4001         Free nonzero_vars at the end of the function.
4002
4003         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4004         need to generate code instead of a NOP_EXPR.
4005
4006 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
4007
4008         * gcc.c (default_compilers): Fill out initializers for new Fortran
4009         entries.
4010
4011 2004-05-13  Paul Brook  <paul@codesourcery.com>
4012
4013         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4014
4015 2004-05-13  Paul Brook  <paul@codesourcery.com>
4016
4017         * config/arm/arm.c (arm_default_short_enums): New function.
4018         (TARGET_DEFAULT_SHORT_ENUMS): Define.
4019
4020 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4021
4022         Merge from tree-ssa-20020619-branch.
4023
4024         * Makefile.in (reload1.o-warn): Add.
4025         (tree-alias-ander.o-warn): Add.
4026         (GMPLIBS): Define.
4027         (GMPINC): Define.
4028         (BANSHEELIB): Define.
4029         (BANSHEEINC): Define.
4030         (TREE_DUMP_H): Define.
4031         (TREE_SIMPLE_H): Define.
4032         (TREE_FLOW_H): Define.
4033         (LIBDEPS): Add BANSHEELIB.
4034         (INCLUDES): Add BANSHEEINC and GMPINC.
4035         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4036         c-mudflap.o and c-pretty-print.o.
4037         (C_OBJS): Remove c-pretty-print.o.
4038         (OBJS-common): Remove sibcall.o.
4039         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4040         tree-ssa.o, tree-optimize.o, tree-simple.o,
4041         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4042         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4043         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4044         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4045         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4046         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4047         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4048         tree-tailcall.o, gimple-low.o, tree-iterator.o,
4049         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4050         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4051         tree-profile.o.
4052         (OBJC-archive): Add tree-nomudflap.o.
4053         (cc1): Add dependency on @TREEBROWSER@.
4054         (c-decl.o): Add dependency on TREE_DUMP_H.
4055         (c-dump.o): Likewise.
4056         (c-common.o): Add dependency on tree-iterator.h
4057         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4058         (gtype-desc.o): Add dependency on TREE_FLOW_H.
4059         (tree.o): Add dependency on tree-iterator.h,
4060         BASIC_BLOCK_H and TREE_FLOW_H.
4061         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4062         (langhooks.o): Add dependency on TREE_SIMPLE_H.
4063         (tree-alias-type.o, tree-alias-ander.o,
4064         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4065         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4066         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4067         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4068         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4069         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4070         tree-nested.o, tree-iterator.o, tree-dfa.o,
4071         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4072         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4073         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4074         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4075         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4076         tree-sra.o, tree-complex.o, tree-profile.o,
4077         rtl-profile.o): New rules.
4078         (function.o): Add dependency on basic-block.h
4079         (expr.o): Add dependency on tree-iterator.h.
4080         (sibcall.o): Remove.
4081         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4082         (cfg.o): Add dependency on TIMEVAR_H.
4083         (cfghooks.o): Add dependency on TREE_FLOW_H.
4084         (reg-stack.o): Add dependency on basic-block.h.
4085         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4086         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4087         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4088         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4089         tree-alias-type.h, tree-alias-common.h,
4090         tree-alias-type.c, tree-alias-common.c,
4091         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4092         rtl-profile.c and tree-nested.c.
4093         (gt-tree-alias-common.h, gt-tree-mudflap.h,
4094         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4095         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4096         gt-tree-cfg.h, gt-tree-nested.h): New rules.
4097         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4098         * basic-block.h: Include predict.h
4099         (struct edge_def): Add GTY marker.
4100         Change field 'insns' to be a union of tree and rtx.
4101         (EDGE_TRUE_VALUE): Define.
4102         (EDGE_FALSE_VALUE): Define.
4103         (EDGE_EXECUTABLE): Define.
4104         (struct bb_ann_d): Forward declare.
4105         (struct basic_block_def): Add GTY marker.
4106         Remove fields head_tree and end_tree.
4107         Add fields stmt_list, rbi and tree_annotations.
4108         (struct reorder_block_def): Define.
4109         (basic_block_info): Add GTY marker.
4110         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4111         variables instead of macros.
4112         (flow_call_edges_add): Remove declaration.
4113         (make_eh_edge): Remove declaration.
4114         (brief_dump_cfg, find_edge, tree_predicted_by_p,
4115         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4116         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4117         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4118         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4119         (try_redirect_by_replacing_jump): Modfiy return type to
4120         edge instead of bool.
4121         * bb-reorder.c (copy_bb): Call duplicate_block
4122         instead of cfg_layout_duplicate_bb.
4123         (copy_bb_p): Call can_duplicate_block_p instead of
4124         cfg_layout_can_duplicate_bb_p.
4125         * bitmap.c (bitmap_first_set_bit): Abort if word
4126         wasn't found.
4127         (bitmap_last_set_bit): Likewise.
4128         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4129         (DEF_FUNCTION_TYPE_3): Add.
4130         * builtins.c (c_strlen): Make extern.
4131         (builtin_save_expr): New.
4132         (expand_builtin_nonlocal_goto): New.
4133         (expand_builtin_constant_p): Remove.
4134         (expand_builtin_mathfn): Call builtin_save_expr instead
4135         of save_expr.
4136         (expand_builtin_mathfn_2): Likewise.
4137         (expand_builtin_strcmp): Likewise.
4138         (expand_builtin_strncmp): Likewise.
4139         (expand_builtin_strcat): Likewise.
4140         (fold_builtin_cabs): Likewise.
4141         (expand_builtin_alloca): Don't trigger if -fmudflap is
4142         given.
4143         (build_string_literal): Set TREE_INVARIANT on new node.
4144         (expand_builtin_profile_fun): New.
4145         (round_trampoline_addr): New.
4146         (expand_builtin_init_trampoline): New.
4147         (expand_builtin_adjust_trampoline): New.
4148         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4149         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4150         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4151         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4152         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4153         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4154         Handle.
4155         (fold_builtin_expect): New.
4156         (fold_builtin_isascii): Don't return non-constant results
4157         in GIMPLE form.
4158         (fold_builtin_isdigit): Likewise.
4159         (fold_builtin_1): New.
4160         (fold_builtin): Call it.
4161         (build_function_call_expr): Update call to build a new
4162         CALL_EXPR.
4163         (purge_builtin_constant_p): Remove.
4164         (simplify_builtin, simplify_builtin_memcmp,
4165         simplify_builtin_strcmp, simplify_builtin_strncmp,
4166         simplify_builtin_strpbrk, simplify_builtin_strstr,
4167         simplify_builtin_strchr, simplify_builtin_strrchr,
4168         simplify_builtin_strcat, simplify_builtin_strncat,
4169         simplify_builtin_strspn, simplify_builtin_strcspn,
4170         simplify_builtin_next_arg, simplify_builtin_va_start,
4171         simplify_builtin_sprintf): New.
4172         * builtins.def (BUILT_IN_STACK_ALLOC,
4173         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4174         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4175         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4176         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4177         * c-common.c: Include tree-iterator.h and hashtab.h.
4178         (lang_statement_code_p): Declare.
4179         (lang_gimplify_stmt): Declare.
4180         (fix_string_type): Set TREE_INVARIANT for value.
4181         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4182         (c_type_hash): New.
4183         (c_common_get_alias_set): Handle multiple type nodes
4184         referring to "the same" type, currently for C90 only.
4185         (c_add_case_label): Use create_artificial_label.
4186         (finish_label_address_expr): Don't set TREE_CONSTANT on
4187         result.
4188         (c_expand_expr): Don't handle STMT_EXPR.
4189         (handle_alias_attribute): Marke aliased variables to be
4190         TREE_STATIC.
4191         (handle_nonnull_attribute): Initialize arg_num.
4192         (check_function_nonnull): Likewise.
4193         (c_walk_subtrees): New.
4194         (c_estimate_num_insns_1): Don't handle
4195         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4196         (c_decl_uninit_1): Remove.
4197         (c_decl_uninit): Remove.
4198         (c_warn_unused_result): New.
4199         * c-common.def (ASM_STMT): Change number of operands
4200         to 4.
4201         (FILE_STMT): Remove.
4202         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4203         Remove.
4204         (lang_gimplify_stmt): Add.
4205         (expand_stmt): Remove.
4206         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4207         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4208         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4209         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4210         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4211         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4212         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4213         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4214         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4215         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4216         genrtl_compound_stmt, genrtl_asm_stmt,
4217         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4218         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4219         c_tree_chain_matters_p, c_warn_unused_result,
4220         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4221         Declare.
4222         * c-convert.c (convert): Make convert work when
4223         converting to compatible types across translation unit.
4224         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4225         tree-simple.h, diagnostic.h and tree-dump.h
4226         (merge_decls): Initialize oldtype to NULL.
4227         (finish_decl): Use DECL_HARD_REGISTER instead of
4228         DECL_C_HARD_REGISTER.
4229         (check_bitfield_type_and_width): Check for null
4230         lang_type_specific when check the precision of an enum.
4231         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4232         in a pointer-to-array declarator.
4233         (finish_struct): Clear allocated struct lang_type.
4234         (finish_enum): Set enum_min and enum_max.  Set
4235         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4236         not to the enumerators.
4237         (set_decl_nonlocal): New.
4238         (store_parm_decls): Use it via walk_tree.
4239         (c_finalize): New.
4240         (finish_function): When !targetm.have_ctors_dtors,
4241         record static constructors and destructors here...
4242         (c_expand_body_1): ... not here.
4243         (c_expand_decl): Rename from c_expand_decl_stmt.
4244         Handle all C-specific expansion semantics.
4245         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4246         STMT_LINENO.
4247         * c-format.c (handle_format_arg_attribute): Initialize
4248         format_num.
4249         * c-lang.c: Include tree-inline.h
4250         (LANG_HOOKS_EXPAND_DECL,
4251         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4252         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4253         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4254         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4255         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4256         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4257         (c_types_compatible_p): New.
4258         * c-mudflap.c: New file.
4259         * c-objc-common.c: Include tree-mudflap.h
4260         (start_cdtor, finish_cdtor): Collapse
4261         together into
4262         (build_cdtor): ...here.  Update to construct a complete tree
4263         for the function.  No need to call push_scope, pop_scope, or
4264         clear_last_expr, or set current_function_cannot_inline.
4265         (c_missing_noreturn_ok_p): Change prototype to return
4266         bool.
4267         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4268         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4269         opts.c.
4270         (c_common_post_options): Don't ever use rtl inlining.
4271         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4272         * c-pragma.c (handle_pragma_redefine_extname): Define
4273         always.
4274         (init_pragma): Activate #pragma redefine_extname for mudflap.
4275         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4276         (pp_c_initializer): Accept any type CONSTRUCTOR.
4277         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4278         COMPLEX_TYPE.
4279         (decl_name_str): New local function.
4280         (pp_c_direct_declarator): Call it.
4281         (pp_c_primary_expression): Call it.
4282         (pp_c_id_expression): Call it.
4283         (pp_c_statement): Call it.
4284         (print_c_tree): Create new pp object.
4285         * c-pretty-print.h (pp_c_tree_decl_identifier,
4286         print_c_tree): Declare.
4287         * c-semantics.c: Include langhooks.h
4288         (lang_expand_stmt, lang_expand_decl_stmt,
4289         find_reachable_label_1, find_reachable_label,
4290         expand_unreachable_if_stmt, expand_unreachable_stmt,
4291         genrtl_do_stmt_1): Remove.
4292         (begin_stmt_tree): Don't check for changed filename.
4293         Call annotate_with_locus.
4294         (finish_stmt_tree): Don't set line for end of function.
4295         (build_stmt): Don't check type nodes for
4296         side effects.
4297         (build_stmt): Set TREE_SIDE_EFFECTS.
4298         Set EXPR_LOCUS instead of STMT_LINENO.
4299         (lang_expand_stmt, lang_expand_decl_stmt,
4300         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4301         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4302         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4303         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4304         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4305         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4306         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4307         find_reachable_label_1, expand_unreachable_if_stmt,
4308         expand_unreachable_stmt): Remove.
4309         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4310         * c-simplify.c: New file.
4311         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4312         (struct lang_type): Add fields enum_min and enum_max.
4313         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4314         (c_expand_decl, c_missing_noreturn_ok_p,
4315         c_types_compatible_p): Declare.
4316         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4317         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4318         (default_function_array_conversion): Rely on build to
4319         set TREE_CONSTANT.
4320         (parser_build_binary_op, pointer_diff): Likewise.
4321         (build_unary_op, build_binary_op): Likewise.
4322         (build_array_ref):
4323         (build_external_ref): Set TREE_INVARIANT.
4324         (build_c_cast, pop_init_level): Likewise.
4325         (process_init_element): Use ASM_VOLATILE_P.
4326         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4327         (c_finish_case): Call c_do_switch_warnings.
4328         * c.opt (fdump-): Remove.
4329         * calls.c (try_to_integrate): Remove.
4330         (prepare_call_address): Replace fndecl arg with a
4331         precomputed static chain value.
4332         (emit_call_1): New argument for full call expr.
4333         (flags_from_decl_or_type): Call special_function_p.
4334         (initialize_argument_information): Add argument
4335         may_tailcall.
4336         (purge_reg_equiv_notes): New.
4337         (expand_call): Do not try to expand calls inline.
4338         (fixup_tail_calls): New.
4339         * cfg.c: Include timevar.h and ggc.h.
4340         (bb_pool, edge_pool): Remove.
4341         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4342         (entry_exit_blocks): Remove.
4343         (rbi_pool): Declare.
4344         (init_flow): Do not create pools.
4345         Allocate entry/exit block.
4346         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4347         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4348         (unlink_block): Clear b->prev_bb and b->next_bb.
4349         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4350         (dump_flow_info): Work on trees too.
4351         (dump_cfg_bb_info): New.
4352         (brief_dump_cfg): New.
4353         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4354         (find_edge): New.
4355         * cfgbuild.c (rtl_make_eh_edge): Rename from
4356         make_eh_edge.  Update all users.
4357         (find_basic_blocks): Don't call VARRAY_FREE on
4358         basic_block_info.
4359         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4360         and newpos2.
4361         (delete_unreachable_blocks): Return changed status.
4362         (merge_seq_blocks): New.
4363         * cfghooks.c: Include tree-flow.h
4364         (tree_register_cfg_hooks, ir_type): New.
4365         (redirect_edge_and_branch): Change return type to edge.
4366         (predict_edge, predicted_by_p, can_duplicate_block_p,
4367         duplicate_block, block_ends_with_call_p,
4368         block_ends_with_condjump_p, flow_call_edges_add): New.
4369         * cfghooks.h (redirect_edge_and_branch): Change return
4370         type to edge.
4371         (predict_edge, predicted_by_p, can_duplicate_block_p,
4372         duplicate_block, block_ends_with_call_p,
4373         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4374         (redirect_edge_and_branch): Change return type to edge.
4375         (struct cfg_hooks): Add fields block_ends_with_call_p,
4376         block_ends_with_condjump_p, flow_call_edges_add,
4377         predict_edge, predicted_by_p, can_duplicate_block_p and
4378         duplicate_block.
4379         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4380         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4381         (fixup_reorder_chain): Use initialize_bb_rbi.
4382         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4383         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4384         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4385         (insn_locators_initialize): Use new info about blocks.
4386         * cfglayout.h (typedef struct reorder_block_def): Moved to
4387         basic_block.h.
4388         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4389         removed.
4390         * cfgloop.c: Include tree.h and tree-flow.h.
4391         * cfgloop.h (create_loop_notes): Declare.
4392         * cfgloopmanip.c (create_loop_notes): New.
4393         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4394         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4395         and duplicate_block fields.
4396         (create_basic_block_structure): Don't look at
4397         RTX_INTEGRATED_P.
4398         (rtl_block_ends_with_call_p): New.
4399         (rtl_block_ends_with_condjump_p): New.
4400         (need_fake_edge_p): Moved from cfganal.c.
4401         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4402         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4403         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4404         (cfg_layout_rtl_cfg_hooks): Ditto.
4405         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4406         functions to be reachable.
4407         * cgraphunit.c (decide_is_function_needed):
4408         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4409         inline functions don't need to be output.
4410         (cgraph_assemble_pending_functions): Don't do anything
4411         special for nested functions.
4412         (cgraph_mark_functions_to_output): Likewise.
4413         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4414         (cgraph_analyze_function): Use estimate_num_insns.
4415         (cgraph_mark_functions_to_output): Likewise.
4416         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4417         (cgraph_expand_function): Allow functions to not be
4418         emitted.
4419         (cgraph_remove_unreachable_nodes):
4420         (cgraph_recursive_inlining_p): Simplify.
4421         (lookup_recursive_calls,
4422         cgraph_decide_recursive_inlining): New.
4423         (cgraph_decide_inlining_*): Update calls of
4424         cgraph_mark_inline.
4425         * combine.c (get_pos_from_mask): Always set *plen.
4426         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4427         ftree-based-profiling, ftree-ccp, ftree-ch,
4428         ftree-combine-temps, ftree-copyrename, ftree-dce,
4429         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4430         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4431         ftree-lrs): Add.
4432         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4433         Undefine.
4434         * configure.ac: Add --enable-tree-browser option.
4435         Add --with-libbanshee option.
4436         Add GMPLIBS and GMPINC.
4437         * configure: Regenerate.
4438         * coverage.c (tree_ctr_tables): New.
4439         (coverage_counter_alloc): Use it.
4440         (build_ctr_info_value): Ditto.
4441         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4442         (tree_coverage_counter_ref): New.
4443         * coverage.h (coverage_counter_ref): Remove declaration.
4444         (rtl_coverage_counter_ref): Declare.
4445         (tree_coverage_counter_ref): Declare.
4446         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4447         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4448         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4449         (struct cse_basic_block_data): Rename enum values to not
4450         conflict with profile.h; update all uses.
4451         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4452         in comments.
4453         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4454         * diagnostic.h (debug_output_buffer, dump_generic_node,
4455         print_generic_stmt, print_generic_stmt_indented,
4456         print_generic_expr, print_generic_decl,
4457         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4458         Declare.
4459         * dominance.c: Cache immediate dominators.
4460         * domwalk.c: New file.
4461         * domwalk.h: New file.
4462         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4463         (gen_subprogram_die): Generate a DIE for a named
4464         return value.
4465         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4466         (add_location_or_const_value_attribute): Likewise.
4467         (add_bound_info): Likewise.
4468         (gen_decl_die): Likewise.
4469         * emit-rtl.c (maybe_set_first_label_num): New.
4470         (copy_most_rtx): Don't copy the integrated flag.
4471         Copy the new return_val flag.
4472         * et-forest.c (MAX_NODES): Define.
4473         (record_path_before_1): Abort if len is greater than
4474         MAX_NODES.
4475         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4476         gen_eh_region_catch, gen_eh_region_allowed,
4477         gen_eh_region_must_not_throw, get_eh_region_number,
4478         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4479         set_eh_region_tree_label, expand_resx_expr): New.
4480         (expand_eh_region_start, expand_start_catch): Use them.
4481         (expand_end_catch): Tidy.
4482         (note_eh_region_may_contain_throw): Take region argument.
4483         (note_current_region_may_contain_throw): New.
4484         (get_exception_filter): Export.
4485         (collect_eh_region_array): Export.
4486         (remove_unreachable_regions): Check ERT_TRY based on reachability
4487         of catches, not reachability of continue_label.  Never remove
4488         ERT_MUST_NOT_THROW regions.
4489         (collect_rtl_labels_from_trees): New.
4490         (convert_from_eh_region_ranges): Use it.
4491         (connect_post_landing_pads): Handle dying cleanups.
4492         (struct reachable_info): Add callback data.
4493         (add_reachable_handler): Invoke the callback.
4494         (foreach_reachable_handler): New.
4495         (reachable_handlers): Use it.
4496         (arh_to_landing_pad, arh_to_label): New.
4497         (can_throw_internal_1): Split out from can_throw_internal.
4498         (can_throw_external_1): Similarly.
4499         * except.h: Update.
4500         * explow.c (emit_stack_save): Remove savearea mode check.
4501         (update_nonlocal_goto_save_area): New.
4502         (allocate_dynamic_stack_space): Use it.
4503         (probe_stack_range): Never emit loop notes.
4504         * expmed.c (extract_fixed_bit_field): Always propagate the
4505         target for the shift if it is a REG.
4506         * expr.c: Include tree-iterator.h
4507         (is_zeros_p): Remove.
4508         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4509         (count_type_elements): New.
4510         (mostly_zeros_p): Use them.
4511         (expr_wfl_stack): Remove.
4512         (convert_move): Do nothing if to and from are the same.
4513         (emit_block_move_via_loop): Don't emit LOOP notes.
4514         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4515         (emit_move_insn_1): Don't generate inline warnings.
4516         (expand_vars, expand_var): Split from ...
4517         (expand_expr_1): ... here.
4518         (expand_expr_real, expand_expr_real_1):  Use new macros
4519         EXPR_LOCATION and EXPR_HAS_LOCATION.
4520         * expr.h (simplify_builtin_fputs,
4521         simplify_builtin_strcpy, simplify_builtin_strncpy,
4522         expand_var, fixup_tail_calls,
4523         update_nonlocal_goto_save_area): Declare.
4524         (lookup_static_chain, expand_inline_function,
4525         mark_seen_cases): Remove.
4526         (prepare_call_address): Change type of 2nd argument to
4527         rtx.
4528         * final.c (profile_function): Update static chain test.
4529         (final): Don't look at RTX_INTEGRATED_P.
4530         * flags.h (flag_mudflap, flag_mudflap_threads,
4531         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4532         flag_tree_dce, flag_tree_combine_temps,
4533         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4534         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4535         flag_tree_points_to): Declare.
4536         (enum pta_type): Declare.
4537         * flow.c (lang_missing_noreturn_ok_p): Remove.
4538         (check_function_return_warnings): Remove.
4539         (update_life_info): Update comments.
4540         (free_basic_block_vars): Don't call VARRAY_FREE for
4541         basic_block_info.
4542         (regno_uninitialized): Remove.
4543         * fold-const.c (int_const_binop): Make extern.
4544         (non_lvalue): Rely on build to set TREE_CONSTANT.
4545         (operand_equal_p): Replace only_const argument with
4546         flags.  Allow pure functions if OEP_PURE_SAME.
4547         (fold): Use OEP_ONLY_CONST.
4548         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4549         boolean type.
4550         (fold_relational_hi_lo,
4551         nondestructive_fold_binary_to_constant,
4552         nondestructive_fold_unary_to_constant,
4553         fold_read_from_constant_string): New.
4554         * function.c (struct function): Remove calls_constant_p.
4555         (current_function_calls_constant_p): Remove.
4556         (inline_function_decl): Remove.
4557         (put_var_into_stack): Don't use it.
4558         (fix_lexical_addr): Likewise.
4559         (inline_function_decl): Remove extern declaration.
4560         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4561         (trampolines_created): Move to varasm.c.
4562         (free_after_compilation): Update for removed fields.
4563         (allocate_struct_function): Likewise.
4564         (delete_handlers, lookup_static_chain): Remove.
4565         (fix_lexical_addr): Don't consider non-local variable refs.
4566         (trampoline_address): Remove.
4567         (round_trampoline_addr): Move to builtins.c.
4568         (adjust_trampoline_addr): Remove.
4569         (expand_function_start): Update for changes to static chain
4570         and nonlocal goto handling.
4571         (initial_trampoline): Move to varasm.c.
4572         (expand_function_end): Don't build trampolines or kill
4573         unreferenced nonlocal goto labels.
4574         (free_after_compilation): Don't set it.
4575         (expand_function_end): Likewise.
4576         (setjmp_vars_warning): Rename from
4577         uninitialized_vars_warning, remove uninitialized vars warning.
4578         (uninitialized_vars_warning): Remove old comment
4579         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4580         and do not call the langhook.
4581         (expand_function_start, expand_function_end): Don't do
4582         function instrumentation here.
4583         (clear_block_marks): Rename from reorder_blocks_0, export.
4584         (blocks_nreverse): Export.
4585         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4586         of rtl.
4587         (reset_block_changes, record_block_change, finalize_block_changes,
4588         check_block_change, free_block_changes): New functions.
4589         (assign_parms): Setting of current_function_stdarg
4590         moved ...
4591         (allocate_struct_function): ... here.
4592         * function.h (struct function): Remove x_nonlocal_labels,
4593         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4594         x_context_display, x_trampoline_list, needs_context.
4595         Add static_chain_decl, nonlocal_goto_save_area.
4596         (struct function): Remove x_clobber_return_insn.
4597         Add tail_call_emit field, last_label_uid,
4598         unexpanded_var_list, dont_emit_block_notes,
4599         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4600         (clear_block_marks): Declare.
4601         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4602         (mfwrap_spec, mflib_spec): Declare.
4603         (cpp_unique_options, cc1_options): Ditto.
4604         (default_compilers): Add .F and .f90.
4605         (static_specs): Add mfwrap and mflib.
4606         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4607         CONSTANT_RTX_P.
4608         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4609         Update to match insns field in struct edge_def.
4610         * gdbinit.in (pgs, pge): Define.
4611         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4612         instead of the integrated flag.
4613         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4614         * gengtype-yacc.y (bitfieldlen): Add empty action.
4615         (struct_fields): Accept unnamed bitfields.
4616         (bitfieldlen): Split from ...
4617         (bitfieldopt): ... here.
4618         * gengtype.c (ifiles): Add tree-alias-type.h and
4619         tree-flow.h.
4620         * genrecog.c (validate_pattern): Do not handle
4621         CONSTANT_P_RTX.
4622         * gimple-low.c: New file.
4623         * gimplify.c: New file.
4624         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4625         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4626         * ifcvt.c (dead_or_predicable): Initialize local variable
4627         'earliest'.
4628         * input.h (expr_wfl_stack): Remove.
4629         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4630         (setup_initial_hard_reg_value_integration): Likewise.
4631         (initialize_for_inline): Likewise.
4632         (note_modified_parmregs): Likewise.
4633         (integrate_parm_decls): Likewise.
4634         (process_reg_param): Likewise.
4635         (save_parm_insns): Likewise.
4636         (copy_insn_list): Likewise.
4637         (copy_insn_notes): Likewise.
4638         (compare_blocks): Likewise.
4639         (find_block): Likewise.
4640         (inlining): Likewise.
4641         (function_cannot_inline_p): Likewise.
4642         (parmdecl_map): Likewise.
4643         (in_nonparam_insns): Likewise.
4644         (save_for_inline): Likewise.
4645         (FIXED_BASE_PLUS): Likewise.
4646         (expand_inline_function): Likewise.
4647         (copy_rtx_and_substitute): Don't look at map->integrating,
4648         map->inline_target, and inlining, since we are never copying
4649         for integrating.
4650         Don't abort on RTX_INTEGRATED_P.
4651         (old_fun): Remove.
4652         (output_inline_function): Remove.
4653         * integrate.h (struct inline_map): Remove fields integrating,
4654         block_map, leaf_reg_map, inline_target, and local_return_label.
4655         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4656         copy_loop_headers, never_reached_warning): Removed.
4657         (any_uncondjump_p): Reject nonlocal goto.
4658         * langhooks-def.h (lhd_types_compatible_p,
4659         lhd_expand_decl, lhd_gimplify_expr): Declare.
4660         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4661         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4662         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4663         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4664         LANG_HOOKS_GIMPLIFY_EXPR,
4665         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4666         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4667         LANG_HOOKS_GIMPLIFY_EXPR,
4668         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4669         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4670         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4671         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4672         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4673         LANG_HOOKS_DECL_UNINIT,
4674         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4675         * langhooks.c: Include tree-simple.h.
4676         (lhd_expand_decl): New.
4677         (lhd_types_compatible_p): New.
4678         (lhd_decl_uninit): Remove.
4679         (lhd_gimplify_expr): New.
4680         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4681         Remove.
4682         (struct lang_hooks_for_functions): Add field
4683         missing_noreturn_ok_p.
4684         (struct lang_hooks): Add field expand_decl,
4685         types_compatible_p, gimplify_expr and
4686         gimple_before_inlining.
4687         Remove fields decl_uninit and rtl_expand
4688         * opts.c (decode_options): Set flag_tree_ccp,
4689         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4690         flag_tree_pre, flag_tree_ter,
4691         flag_tree_live_range_split, flag_tree_sra,
4692         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4693         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4694         OPT_fmudflapth, OPT_fmudflapir,
4695         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4696         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4697         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4698         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4699         OPT_ftree_points_to_ and OPT_ftree_pre.
4700         * output.h (regno_uninitialized, find_basic_blocks,
4701         cleanup_cfg, delete_unreachable_blocks,
4702         check_function_return_warnings): Remove.
4703         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4704         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4705         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4706         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4707         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4708         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4709         Define.
4710         * passes.c (rest_of_decl_compilation):
4711         (rest_of_handle_sibling_calls): Remove.
4712         (rest_of_handle_inlining): Remove.
4713         (rest_of_handle_gcse): Do not run
4714         purge_builtin_constant_p.
4715         (rest_of_compilation): Update.
4716         Do not call copy_loop_headers.
4717         Do rtl-based profiling only when
4718         !flag_tree_based_profiling.  Register rtl-based profiling
4719         hooks.
4720         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4721         (predicted_by_p): Rename to ...
4722         (rtl_predicted_by_p): .. this one; make global
4723         (tree_predicted_by_p): New.
4724         (dump_prediction): Add FILE argument.
4725         (predict_edge): Rename to ...
4726         (rtl_predict_edge): .. this one.
4727         (tree_predict_edge): New.
4728         (combine_predictions_for_insn): Update calls of predict_edge.
4729         (predict_loops): Break out from ...
4730         (estimate_probability): ... here; update comments; move updating
4731         of unknown probabilities from ...
4732         (estimate_bb_frequencies): ... here.
4733         (combine_predictions_for_bb): New.
4734         (tree_predict_by_opcode): New.
4735         (tree_estimate_probability): New.
4736         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4737         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4738         * predict.h: Add include guard.
4739         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4740         * pretty-print.c (pp_write_text_to_stream): Make extern.
4741         * pretty-print.h (pp_write_text_to_stream): Declare.
4742         * print-rtl.c (print_rtx): Don't print the integrated flag.
4743         Print the return_val flag.
4744         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4745         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4746         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4747         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4748         * profile.c: Include cfghooks.h, tree-flow.h.
4749         (profile_hooks): New.
4750         (profile_dump_file): New.
4751         (instrument_edges): Use hooks instead of RTL-specific code.
4752         (instrument_values): Ditto.
4753         (get_exec_counts): Ditto.
4754         (compute_branch_probabilities): Ditto.
4755         (compute_value_histograms): Ditto.
4756         (branch_prob): Ditto.
4757         (find_spanning_tree): Ditto.
4758         (end_branch_prob): Ditto.
4759         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4760         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4761         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4762         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4763         (tree_register_profile_hooks): New.
4764         (rtl_register_profile_hooks): New.
4765         * ra-rewrite.c (rewrite_program): Clear variable info.
4766         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4767         * regs.h: Add include guards.
4768         * reload.c (decompose): Clear val using memset.
4769         * rtl.def (CONSTANT_P_RTX): Remove.
4770         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4771         (copy_loop_headers): Remove.
4772         (struct rtx_def): Replace the integrated flag with the
4773         return_val flag.
4774         (maybe_set_first_label_num): Declare.
4775         (init_branch_prob): Move declaration to value-prof.h.
4776         (end_branch_prob): Ditto.
4777         (branch_prob): Ditto.
4778         (never_reached_warning): Don't declare it.
4779         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4780         (hoist_insn_to_edge): Update to match field insns in
4781         struct edge_def.
4782         * sbitmap.c (sbitmap_realloc): New.
4783         * sbitmap.h (sbitmap_realloc): Declare.
4784         * sibcall.c: Remove file.
4785         * simplify-rtx.c (simplify_rtx): Do not handle
4786         CONSTANT_P_RTX.
4787         * stmt.c (parse_output_constraint): Don't warn for read-write
4788         memory operand.
4789         (tail_recursion_args): Use types_compatible_p langhook.
4790         (force_label_rtx): Don't look at inline_function_decl.
4791         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4792         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4793         (declare_nonlocal_label): Remove.
4794         (expand_goto): Don't handle nonlocal gotos.
4795         (expand_nl_handler_label): Remove.
4796         (expand_nl_goto_receivers): Remove.
4797         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4798         update_nonlocal_goto_save_area.
4799         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4800         (warn_if_unused_value): Likewise.
4801         (expand_start_loop, expand_loop_continue_here,
4802         expand_end_loop): Don't create loop notes.
4803         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4804         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4805         (expand_end_case_type): Don't do warn_switch handling.
4806         (pushcase, pushcase_range) Update add_case_node calls.
4807         (add_case_node): Add dont_expand_label argument.
4808         (same_case_target_p): Don't search rtl.
4809         (expand_start_bindings_and_block, expand_end_bindings):
4810         Don't emit block notes when dont_emit_block_notes.
4811         (using_eh_for_cleanups_p): Export.
4812         (expand_return): Allow any typed rhs.
4813         (expand_stack_alloc): New.
4814         (expand_stack_save, expand_stack_restore): New.
4815         (containing_blocks_have_cleanups_or_stack_level): New
4816         function.
4817         (asm_op_is_mem_input): New fn.
4818         (expand_asm_expr): New fn.
4819         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4820         nodes.
4821         * stor-layout.c (layout_type): Just return if type is
4822         error_mark_node.
4823         (update_alignment_for_field): Export.
4824         (variable_size): We don't care about global_bindings_p if
4825         the frontend doesn't want a list of the expressions.
4826         * system.h: Poison INTEGRATE_THRESHOLD.
4827         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4828         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4829         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4830         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4831         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4832         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4833         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4834         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4835         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4836         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4837         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4838         TV_CONTROL_DEPENDENCES): Define.
4839         * toplev.c: Include tree-alias-common.h
4840         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4841         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4842         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4843         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4844         flag_tree_combine_temps, flag_tree_ter,
4845         flag_tree_live_range_split, flag_tree_dom,
4846         flag_tree_copyrename, flag_tree_dse): Declare.
4847         (f_options): Add tree-based-profiling, tree-gvn,
4848         tree-pre, tree-ccp, tree-dce,
4849         tree-dominator-opts, tree-copyrename, tree-dse,
4850         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4851         (wrapup_global_declarations): Don't output nested inlined functions.
4852         (general_init): Call init_tree_optimization_passes.
4853         (process_options): Sorry for -ftree-based-profiling plus
4854         -ftest-coverage or -fprofile-values.
4855         * toplev.h (init_tree_optimization_passes,
4856         flag_tree_based_profiling): Declare.
4857         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4858         * tree-alias-ander.c: New file.
4859         * tree-alias-ander.h: New file.
4860         * tree-alias-common.c: New file.
4861         * tree-alias-common.h: New file.
4862         * tree-alias-type.c: New file.
4863         * tree-alias-type.h: New file.
4864         * tree-browser.c: New file.
4865         * tree-browser.def: New file.
4866         * tree-cfg.c: New file.
4867         * tree-complex.c: New file.
4868         * tree-dfa.c: New file.
4869         * tree-dump.c (dump_enable_all): New.
4870         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4871         (dump_node): Remove const from field suffix and swtch.
4872         (dump_files): Add null entry, .generic, .nested, .vcg,
4873         .xml and a match-all entry.
4874         (extra_dump_files, extra_dump_files_in_use,
4875         extra_dump_files_alloced): Declare
4876         (dump_option_value_info): Add raw, details, stats,
4877         blocks, vops, lineno, uid and all.
4878         (dump_register): New.
4879         (get_dump_file_info): New.
4880         (dump_begin): Call it.
4881         Do nothing for TDI_none.
4882         (dump_begin): Include phase number in dump filename.
4883         (dump_enable_all): New.
4884         (dump_switch_p_1): Split out from dump_switch_p.
4885         (dump_switch_p): Handle extra_dump_files.
4886         Start our scan at TDI_none + 1.
4887         If -fdump-tree-all was given, call dump_enable_all.
4888         * tree-dump.h: Include splay-tree.h.
4889         (dump_function, dump_function_to_file, dump_register):
4890         Declare.
4891         * tree-eh.c: New file.
4892         * tree-flow-inline.h: New file.
4893         * tree-flow.h: New file.
4894         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4895         * tree-inline.h (walk_tree,
4896         walk_tree_without_duplicates): Move to tree.h.
4897         (estimate_num_insns): Declare.
4898         * tree-into-ssa.c: New file.
4899         * tree-iterator.c: New file.
4900         * tree-iterator.h: New file.
4901         * tree-mudflap.c: New file.
4902         * tree-mudflap.h: New file.
4903         * tree-nested.c: New file.
4904         * tree-nomudflap.c: New file.
4905         * tree-nrv.c: New file.
4906         * tree-optimize.c (dump_flags, vars_to_rename,
4907         in_gimple_form, all_passes, pass_gimple,
4908         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4909         (execute_gimple, execute_rebuild_bind,
4910         gate_all_optimizations, execute_del_cfg,
4911         register_one_dump_file, register_dump_files, dup_pass_1,
4912         init_tree_optimization_passes, execute_todo,
4913         execute_one_pass, execute_pass_list): New.
4914         (clear_decl_rtl): Remove.
4915         (tree_rest_of_compilation): Update to use tree
4916         optimizers.
4917         * tree-outof-ssa.c: New file.
4918         * tree-pass.h: New file.
4919         * tree-phinodes.c: New file.
4920         * tree-pretty-print.c: New file.
4921         * tree-profile.c: New file.
4922         * tree-simple.c: New file.
4923         * tree-simple.h: New file.
4924         * tree-sra.c: New file.
4925         * tree-ssa-alias.c: New file.
4926         * tree-ssa-ccp.c: New file.
4927         * tree-ssa-copy.c: New file.
4928         * tree-ssa-copyrename.c: New file.
4929         * tree-ssa-dce.c: New file.
4930         * tree-ssa-dom.c: New file.
4931         * tree-ssa-dse.c: New file.
4932         * tree-ssa-forwprop.c: New file.
4933         * tree-ssa-live.c: New file.
4934         * tree-ssa-live.h: New file.
4935         * tree-ssa-loop.c: New file.
4936         * tree-ssa-operands.c: New file.
4937         * tree-ssa-operands.h: New file.
4938         * tree-ssa-phiopt.c: New file.
4939         * tree-ssa-pre.c: New file.
4940         * tree-ssa.c: New file.
4941         * tree-ssanames.c: New file.
4942         * tree-tailcall.c: New file.
4943         * tree.c: Include tree-iterator.h, basic-block.h and
4944         tree-flow.h.
4945         (tree_node_kind): Add phi_nodes and ssa names.
4946         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4947         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4948         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4949         <'c'> Set TREE_INVARIANT.
4950         (copy_node_stat): Abort if trying to copy a
4951         STATEMENT_LIST.
4952         Clear TREE_VISITED.
4953         Clear annotation field.
4954         (build_constructor): Copy TREE_INVARIANT from vals.
4955         Don't clear TREE_CONSTANT.
4956         (expr_first, expr_last, expr_length): Remove.
4957         (staticp): Pass unknown component references to the language.
4958         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4959         (skip_simple_arithmetic): Likewise.
4960         (stabilize_reference_1): Likewise.
4961         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4962         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4963         STATEMENT_LIST.
4964         (lhd_unsave_expr_now): Remove.
4965         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4966         (recompute_tree_invarant_for_addr_expr): New.
4967         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4968         Call recompute_tree_invarant_for_addr_expr.
4969         Set TREE_INVARIANT accordingly.
4970         (build2_stat): Don't handle CALL_EXPR.
4971         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4972         (build_expr_wfl): Remove.
4973         (annotate_with_file_line, annotate_with_locus): New.
4974         (simple_cst_equal): Call simple_cst_list_equal to compare
4975         CONSTRUCTOR_ELTS pointers.
4976         (iterative_hash_expr): Don't hash types associated
4977         with conversions.  Instead hash on the signedness of the
4978         toplevel object and the operand of the conversion.
4979         (dump_tree_statistics): Call ssanames_print_statistics
4980         and phinodes_print_statistics.
4981         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4982         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4983         needs_to_live_in_memory): New.
4984         (initializer_zerop): Handle VECTOR_CST.  Don't check
4985         AGGREGATE_TYPE_P for CONSTRUCTOR.
4986         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4987         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4988         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4989         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4990         (CALL_EXPR): Add another operand.
4991         (EXPR_WITH_FILE_LOCATION): Remove.
4992         (SWITCH_EXPR): Add another operand.
4993         * tree.h: Update various comments.
4994         (union tree_ann_d): Forward declare.
4995         (struct tree_common): Add fields nowarning_flag,
4996         invariant_flag and visited.
4997         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4998         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4999         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5000         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5001         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5002         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5003         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5004         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5005         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5006         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5007         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5008         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5009         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5010         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5011         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5012         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5013         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5014         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5015         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5016         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5017         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5018         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5019         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5020         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5021         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5022         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5023         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5024         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5025         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5026         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5027         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5028         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5029         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5030         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5031         TDF_UID,): Define.
5032         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5033         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5034         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5035         EXPR_WFL_SET_LINECOL): Remove.
5036         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5037         make_phi_node, init_phinodes, fini_phinodes,
5038         release_phi_node, phinodes_print_statistics,
5039         init_ssanames, fini_ssanames, make_ssa_name,
5040         release_ssa_name, ssanames_print_statistics,
5041         annotate_with_file_line, build_empty_stmt,
5042         annotate_with_locus, expr_only, categorize_ctor_elements,
5043         count_type_elements, add_var_to_bind_expr, is_essa_node,
5044         expand_stack_alloc, expand_stack_save,
5045         expand_stack_restore, add_case_node, operand_equal_p,
5046         nondestructive_fold_unary_to_constant,
5047         nondestructive_fold_binary_to_constant,
5048         fold_read_from_constant_string, int_const_binop,
5049         strip_float_extensions, simplify_builtin, c_strlen,
5050         recompute_tree_invarant_for_addr_expr,
5051         needs_to_live_in_memory, make_vector,
5052         setjmp_vars_warning, update_alignment_for_field,
5053         expand_asm_expr, asm_op_is_mem_input,
5054         containing_blocks_have_cleanups_or_stack_level,
5055         create_artificial_label, gimplify_function_tree,
5056         get_name, unshare_expr, walk_tree,
5057         walk_tree_without_duplicates, in_gimple_form): Declare.
5058         (struct tree_exp): Add fields locus and block.
5059         (struct tree_ssa_name, struct edge_def, struct
5060         tree_phi_node, struct tree_eref_common, struct
5061         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5062         union alias_var_def, struct tree_statement_list_node,
5063         struct tree_statement_list, enum operand_equal_flag): Declare.
5064         (enum tree_node_structure_enum): Add TS_SSA_NAME,
5065         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5066         TS_STATEMENT_LIST.
5067         (union tree_node): Add fields ssa_name, phi, eref, ephi,
5068         euse and stmt_list.
5069         (function_cannot_inline_p, uninitialized_vars_warning,
5070         save_for_inline, output_inline_function, all_cases_count,
5071         check_for_full_enumeration_handling,
5072         declare_nonlocal_label): Remove.
5073         (enum tree_dump_index): Add TDI_none, TDI_tu,
5074         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5075         * unroll.c (unroll_loop): Don't clear map->inline_target.
5076         * unwind-sjlj.c (uw_install_context): Make a proper static inline
5077         function.
5078         * value-prof.c (value_prof_hooks): New.
5079         (find_values_to_profile): Rename to rtl_find_values_to_profile.
5080         Move rtl-specific bits in from branch_prob.
5081         (value_profile_transformations): Rename to
5082         rtl_value_profile_transformations.
5083         (struct value_prof_hooks): New.
5084         (rtl_value_prof_hooks): New.
5085         (rtl_register_value_prof_hooks): New.
5086         (tree_find_values_to_profile): New stub.
5087         (tree_value_profile_transformations): New stub.
5088         (tree_value_prof_hooks): New stub.
5089         (tree_register_value_prof_hooks): New stub.
5090         (find_values_to_profile): New.
5091         (value_profile_transformations): New.
5092         * value-prof.h: Add multiple inclusion guard.
5093         (struct histogram_value): Change rtx fields to void *.
5094         (rtl_register_value_prof_hooks): New declaration.
5095         (tree_register_value_prof_hooks): New declaration.
5096         (find_values_to_profile): New declaration.
5097         (free_profiled_values): New declaration.
5098         (value_profile_transformations): New declaration.
5099         (struct profile_hooks): New declaration.
5100         (init_branch_prob): Declaration moved from rtl.h.
5101         (branch_prob): Declaration moved from rtl.h.
5102         (end_branch_prob): Declaration mooved from rtl.h.
5103         (tree_register_profile_hooks): New declaration.
5104         (rtl_register_profile_hooks): New declaration.
5105         (tree_profile_hooks): New declaration.
5106         (rtl_profile_hooks): New declaration.
5107         * varasm.c: Include tree-mudflap.h.
5108         (TRAMPOLINE_ALIGNMENT): Remove.
5109         (make_decl_rtl): Call mudflap_enqueue_decl.
5110         (assemble_static_space):
5111         (assemble_trampoline_template): Set and return
5112         TRAMPOLINE_ALIGNMENT.
5113         * varray.c (element): Add GENERIC_PTR_NOGC entry.
5114         Add entry for 'tree *'.
5115         Add entry for struct edge_def *.
5116         (varray_copy): New.
5117         * varray.h (enum varray_data_enum): Add
5118         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5119         VARRAY_DATA_TREE_PTR.
5120         (union varray_data_tag): Corresponding changes.
5121         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5122         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5123         VARRAY_EDGE, VARRAY_TREE_PTR,
5124         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5125         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5126         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5127
5128         * config/*/*: Various updates for changed macros, tree
5129         codes, etc.  Check ChangeLog.tree-ssa.
5130
5131         * doc/cfg.texi: New file.
5132         * doc/tree-ssa.texi: New file.
5133         * doc/c-tree.texi: Document new codes.
5134         * doc/gccint.texi: Include new files.
5135         * doc/install.texi: Document new features.
5136         * doc/invoke.texi: Document new switches.
5137         * doc/passes.texi: Document new passes.
5138         * doc/rtl.texi: Update changed RTL codes.
5139         * doc/sourcebuild.texi: Update build instructions.
5140         * doc/standards.texi: Document Fortran changes.
5141         * doc/tm.texi: Update.
5142
5143 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5144
5145         Replace several arrays with a struct of arrays.
5146         * combine.c (struct reg_stat): New.
5147         (init_reg_last_arrays): Renamed to...
5148         (init_reg_last): ...this.  Callers adjusted.
5149         (reg_stat): New.
5150         (combine_instructions): Allocate it and use it.
5151         (reg_last_death, reg_last_set, reg_last_set_value,
5152         reg_last_set_label, reg_last_set_table_tick,
5153         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5154         reg_last_set_mode, reg_last_set_nonzero_bits,
5155         reg_last_set_sign_bit_copies): Replace throughout
5156         with items of reg_stat.
5157
5158 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5159
5160         PR optimization/15100
5161         * combine.c (distribute_notes): Don't create a dangling
5162         REG_LIBCALL/REG_RETVAL note.
5163
5164 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5165
5166         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5167
5168         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5169         negv2si2.
5170
5171 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5172
5173         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5174
5175 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5176
5177         * doc/gty.texi (GTY Options): Clarify example.
5178
5179 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5180
5181         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5182         Add const qualifier to altivec vector type if one is needed.
5183
5184 2004-05-11  Paul Brook  <paul@codesourcery.com>
5185
5186         * flags.h (flag_short_enums): Update comment.
5187         * opts.c (decode_options): Set flag_short_enums to 2.
5188         * toplev.c (flag_short_enums): Update comment.
5189         (process_options): Call default_short_enums target hook.
5190
5191 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5192
5193         PR target/14063
5194         * config/rs6000/altivec.md (altivec_dssall):
5195         Change to unspec_volatile.
5196         (altivec_dss): Likewise.
5197
5198 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5199
5200         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5201         vnor.
5202         ("one_cmplv8hi2"): Same.
5203         ("one_cmplv4si2"): Same.
5204
5205 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5206
5207         PR target/15130
5208         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5209         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5210         into account.  Compute the correct number of general registers
5211         for the return value.  Generate a special push/pop sequence when
5212         failing to get a temporary register for non SHmedia epilogue.
5213         (sh_expand_epilogue): Add an argument to show whether it's for
5214         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5215         -1 if needed.
5216         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5217         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5218         with 1.
5219         (epilogue): Call sh_expand_epilogue with 0.
5220
5221 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5222
5223         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5224         goto a cleanup label.  After the cleanup, free the allocated memory.
5225
5226 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5227
5228         * config/rs6000/altivec.h (vec_sld): Add overloads for
5229         argument/return types of 'vector bool int', 'vector bool short'
5230         and 'vector bool char'.
5231
5232 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5233
5234         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5235         nested function.
5236
5237 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5238
5239         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5240         treating missing ones as "".
5241         * config/mips/mips.md: Remove constraints from match_operands and
5242         match_scratches if they appear in define_expands (except reload*),
5243         define_peephole2s, define_splits or attribute specifications.
5244         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5245         constraint strings.
5246
5247 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5248
5249         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5250         AltiVec vectors.
5251         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5252         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5253         byte boundary.  Remove useless code.  Add function comment.
5254         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5255         call to where it belongs.
5256         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5257         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5258         (rs6000_va_arg): Adjust for AltiVec change.
5259
5260 2004-05-10  Paul Brook  <paul@codesourcery.com>
5261
5262         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5263         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5264         (TARGET_DOUBLEWORD_ALIGN): Use it.
5265         (WCHAR_TYPE): Define.
5266         (WCHAR_SIZE_TYPE): Define.
5267         (SIZE_TYPE): Define.
5268
5269 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5270
5271         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5272         when size is 8 bytes.
5273         (function_arg_advance): Account for stack space used by AltiVec
5274         args when -mabi=altivec.  Simplify alignment calculations.  For
5275         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5276         (function_arg): Similarly.
5277         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5278         not AltiVec ABI.
5279         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5280         Correct alignment, and align before testing reg count.  Remove
5281         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5282         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5283         TARGET_FPRS here..
5284         (rs6000_function_value): .. not here before call.
5285
5286 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5287
5288         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5289
5290 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5291
5292         PR 15007
5293         * c-decl.c (current_file_decl): Rename to all_translation_units,
5294         adjust comment.
5295         (pop_scope): If popping file_scope, construct a
5296         TRANSLATION_UNIT_DECL and make it the context of all the
5297         symbols in the scope.
5298         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5299         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5300         anything to current_file_decl.
5301         (pushdecl_top_level): Likewise.
5302         (store_parm_decls_newstyle): Adjust check for nested function.
5303         (c_write_global_declarations): Update for renamed variable.
5304
5305 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5306
5307         * config/rs6000/rs6000-protos.h
5308         (rs6000_conditional_register_usage): Protoize.
5309
5310         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5311
5312         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5313         function.
5314
5315 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5316
5317         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5318         where op is a comparison operator and C1 and C2 are integer constants
5319         into a range check.
5320         (fold): Call fold_div_compare.
5321
5322 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5323
5324         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5325         problems with earlier versions of the GNU compiler.
5326
5327 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5328
5329         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5330         Declare.
5331
5332         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5333         (rs6000_hard_regno_mode_ok): New.
5334         (rs6000_init_hard_regno_mode_ok): New.
5335         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5336
5337         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5338         result.
5339
5340 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5341
5342         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5343         define as macros #ifdef __APPLE_ALTIVEC__.
5344
5345 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5346
5347         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5348         Generate appropriate parallels for vector arguments
5349         passed to vararg functions. (function_arg): make the call
5350         to rs6000_mixed_function_arg for vector args as needed.
5351
5352 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5353
5354         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5355         EABI_FLOAT_VARARGS_P.
5356
5357 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5358
5359         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5360         * config/mips/mips.c (override_options): Disable branch likely
5361         instructions if TUNE_MIPS5500.
5362
5363 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5364
5365         * config/mips/mips.c (override_options): Allow the hi and lo registers
5366         to store any integral mode, not just MODE_INTs.
5367
5368 2004-05-07  Paul Brook  <paul@codesourcery.com>
5369
5370         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5371         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5372         (TARGET_DOUBLEWORD_ALIGN): Use it.
5373         (WCHAR_TYPE): Define.
5374         (WCHAR_SIZE_TYPE): Define.
5375         (SIZE_TYPE): Define.
5376
5377 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5378
5379         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5380         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5381
5382 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5383
5384         * loop-doloop.c (doloop_valid_p): Make sure that body
5385         gets freed.
5386
5387 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5388
5389         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5390         declaration.
5391         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5392         (sparc_skip_caller_unimp): New global variable.
5393         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5394         Use it instead of SKIP_CALLERS_UNIMP_P.
5395         * config/sparc/sparc.md (call expander): Add sanity check.
5396         (call_address_struct_value_sp32): Re-sync with expander.
5397         (call_symbolic_struct_value_sp32): Likewise.
5398         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5399         of custom predicate.
5400
5401 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5402
5403         PR c++/14962
5404         * c-pragma.c (handle_pragma_redefine_extname): Only change
5405         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5406
5407 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5408
5409         * optabs.h (enum optab_index): Add new OTI_log1p.
5410         (log1p_optab): Define corresponding macro.
5411         * optabs.c (init_optabs): Initialize log1p_optab.
5412         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5413         patterns.
5414         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5415         using log1p_optab.
5416         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5417         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5418
5419         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5420
5421         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5422         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5423         Prototype here.
5424         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5425         x87's fyl2xp1 instruction.
5426         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5427         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5428         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5429         log1p  and log1pl built-ins as inline x87 intrinsics.
5430
5431 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5432
5433         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5434         * config/arm/freebsd.h: Likewise.
5435         * config/ia64/freebsd.h: Likewise.
5436         * config/sparc/freebsd.h: Likewise.
5437
5438 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5439
5440         PR optimization/15296
5441         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5442         getting last consecutive label at a branch.
5443         (relax_delay_slots): Similar, near top of loop.
5444
5445 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5446
5447         PR target/15202
5448         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5449         register to general register.
5450
5451 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5452
5453         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5454         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5455         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5456         (STACK_BOUNDARY): Delete.
5457
5458 2004-05-06  Stuart Hastings  <stuart@apple.com>
5459
5460         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5461         mistakenly clobbered by 1.423.
5462
5463 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5464
5465         * doc/invoke.texi: Document -mvr4130-align.
5466         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5467         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5468         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5469         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5470         * config/mips/mips.md: Include sched-int.h.
5471         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5472         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5473         (override_options): Enable -mvr4130-align at -O3 and above.
5474         (mips_sim_insn): New variable.
5475         (mips_sim): New structure.
5476         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5477         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5478         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5479         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5480         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5481         (mips_reorg): Call vr4130_align_insns.
5482         (vr4130_last_insn): New variable.
5483         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5484         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5485         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5486         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5487         (mips_use_dfa_pipeline_interface): Return true for the same.
5488         * config/mips/4130.md: New file.
5489         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5490         "mult;mflo" into "mtlo;macc".
5491         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5492         target of maccs.
5493         (*msac_using_macc): New pattern.
5494
5495 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5496
5497         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5498         (ir_vr55_hilo): Split into...
5499         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5500         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5501         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5502         Add various multiplication bypasses.
5503         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5504         multiplication.
5505
5506 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5507
5508         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5509         attribute to "XF".
5510
5511 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5512
5513         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5514         (fmod_optab, drem_optab): Define corresponding macros.
5515         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5516         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5517         using fmod?f3 and drem?f3 patterns.
5518         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5519         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5520         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5521         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5522         flag_unsafe_math_optimizations is set.
5523
5524         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5525         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5526
5527         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5528         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5529         Prototype here.
5530         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5531         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5532         fprem and fprem1 instructions.
5533         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5534         Rename insn definition to x86_fnstsw_1.
5535         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5536         x87 instructions.
5537         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5538         and fmodl built-ins as inline x87 intrinsics.
5539         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5540         and dreml built-ins as inline x87 intrinsics.
5541
5542 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5543
5544         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5545
5546 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5547
5548         PR driver/9822
5549         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5550
5551 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5552
5553         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5554         representation.
5555
5556 2004-05-06  Paul Brook  <paul@codesourcery.com>
5557
5558         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5559         (arm_coproc_mem_operand): ... To this.
5560         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5561         (arm_legitimate_index_p): Ditto.
5562         (vfp_mem_operand): Rename ...
5563         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5564         (vfp_secondary_reload_class): Use it.
5565         (output_move_double): Use doubleword load/store instructions.
5566         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5567         * config/arm/arm.h (TARGET_LDRD): Define.
5568         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5569         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5570         New splitter for invalid doubleword loads.
5571         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5572         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5573         * doc/md.texi: Document Uy constraint.
5574
5575 2004-05-05  Jan Hubicka  <jh@suse.cz>
5576
5577         PR opt/14980
5578         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5579         inline clones.
5580
5581 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5582
5583         PR target/15290
5584         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5585         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5586
5587 2004-05-05  Mike Stump  <mrs@apple.com>
5588
5589         * config/darwin-c.c (add_framework): Copy the directory name as it
5590         can be freed later.  Also, ensure we always allocate enough room
5591         for the cached framework information.
5592         (find_subframework_header): Keep track of the directory where the
5593         subframework header was found.
5594         (framework_construct_pathname): Speed up by not trying to re-add a
5595         framework.
5596         * cppfiles.c (search_path_exhausted): Arrange for the missing
5597         header callback to be able to set the directory where the header
5598         was found.
5599         (cpp_get_dir): Add.
5600         * cpplib.h (missing_header_cb): Add a parameter.
5601         (cpp_get_dir): Add.
5602
5603 2004-05-03  Mike Stump  <mrs@apple.com>
5604
5605         * doc/invoke.texi (Directory Options): Document -iquote.
5606         * doc/cpp.texi: Likewise.
5607         * doc/cppopts.texi: Likewise.
5608         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5609         (c_common_handle_option): Likewise.
5610         * c.opt (iquote): Add.
5611         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5612         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5613
5614         * c-opts.c (case OPT_I): Deprecate -I- support.
5615         * doc/invoke.texi: Likewise.
5616         * doc/cpp.texi: Likewise.
5617         * doc/cppopts.texi: Likewise.
5618
5619 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5620
5621         * basic-block.h (free_basic_block_vars): Update prototype.
5622         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5623         argument.
5624         (life_analysis): Update call.
5625         * ifcvt.c (if_convert): Likewise.
5626         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5627         * passes.c (rest_of_handle_final): Likewise.
5628         (rest_of_compilation): Likewise.
5629         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5630
5631         * emit-rtl.c (next_real_insn): Use INSN_P.
5632         (prev_real_insn): Likewise.
5633
5634 2004-05-05  Eric Christopher  <echristo@redhat.com>
5635
5636         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5637         representation.
5638
5639 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5640
5641         * config/rs6000/rs6000.c (build_opaque_vector_type):
5642         New function.
5643         (rs6000_init_builtins): Use it.
5644
5645 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5646
5647         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5648         (func_table): Change type from char ** to vms_func_ref.
5649         (write_rtnbeg):  Update to reflect func_table change.  Use
5650         fde->funcdef_number instead of rtnnum in output.
5651         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5652
5653 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5654             Richard Henderson  <rth@redhat.com>
5655
5656         PR target/14899
5657
5658         * c-common.c (vector_types_convertible_p): New function.
5659         * c-typeck.c (comptypes): Recurse on vector types.
5660         (convert_for_assignment): Use vector_types_convertible_p.
5661         (digest_init): Use vector_types_convertible_p to check
5662         validness of constant vector initializers; otherwise treat
5663         them as scalars.
5664         * tree.c (make_or_reuse_type): New.
5665         (build_common_tree_nodes): Use it.
5666         * cp/call.c (standard_conversion): Likewise.
5667         * cp/typeck.c (comptypes): Recurse on vector types.
5668         (convert_for_assignment): Use vector_types_convertible_p.
5669
5670 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5671
5672         * config/mips/mips.c (override_options): Default to no
5673         generation of branch-likely operations when tuning for
5674         CPUs where they tend to have a negative performance impact
5675         (e.g., SB-1).
5676
5677 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5678
5679         * expr.c (store_constructor_field): Don't call store_constructor
5680         if bitsize is not a multiple of a byte.
5681
5682 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5683
5684         * reload1.c (inherit_piecemeal_p): New function.
5685         (emit_reload_insns): When reloading a group of hard registers, use
5686         inherit_piecemeal_p to decide whether the values of individual hard
5687         registers can be inherited.
5688
5689 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5690
5691         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5692         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5693         * config/t-linux (LIB2ADDEHDEP): Likewise.
5694
5695 2004-05-04  Paul Brook  <paul@codesourcery.com>
5696
5697         * config/arm/crti.asm: Push an even number of registers.
5698         * config/arm/crtn.asm: And restore them.  Load via sp.
5699
5700 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5701
5702         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5703         Collect overhead information.
5704         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5705         parameter and pass it through.
5706         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5707         MEM_STAT_DECL parameter and pass it through.
5708         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5709         MEM_STAT_DECL parameter and pass it through.
5710
5711 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5712
5713         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5714
5715         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5716
5717         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5718         rs6000_hard_regno_nregs.
5719
5720 2004-05-03  Eric Christopher  <echristo@redhat.com>
5721
5722         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5723         prologue insn instead of setting up call.
5724         (s390_emit_epilogue): Ditto.
5725         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5726         (define_constants): Add numbers for above patterns.
5727
5728 2004-05-03  Eric Christopher  <echristo@redhat.com>
5729
5730         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5731         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5732         * config/s390/s390-protos.h: Prototype.
5733
5734 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5735
5736         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5737         assignment.
5738
5739 2004-05-03  Eric Christopher  <echristo@redhat.com>
5740
5741         * config/mips/mips.md: Fix branch length attribute definition.
5742
5743 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5744
5745         * config.gcc: Remove --enable-altivec support.
5746
5747         * config/rs6000/altivec-defs.h: Remove.
5748
5749 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5750
5751         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5752         * fixinc/fixincl.x: Regenerate.
5753
5754 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5755
5756         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5757         definition.
5758         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5759         float_truncate insn.
5760         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5761         (logb?f2): Reimplement expanders with float_truncate insn.
5762
5763 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5764
5765         PR 14718
5766         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5767         force_type_die for CONST_DECL.
5768
5769 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5770             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5771
5772         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5773         tm-dwarf2.h to tm_file.
5774         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5775         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5776         (ASM_DEBUG_SPEC): Delete.
5777
5778 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5779
5780         * optabs.h (enum optab_index): Add new OTI_expm1.
5781         (expm1_optab): Define corresponding macro.
5782         * optabs.c (init_optabs): Initialize expm1_optab.
5783         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5784         patterns.
5785         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5786         using expm1_optab.
5787         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5788         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5789
5790         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5791         to implement expm1, expm1f and expm1l built-ins as inline x87
5792         intrinsics.
5793
5794 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5795
5796         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5797         * config/frv/frv.md (*return_true, *return_false): New patterns.
5798
5799 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5800
5801         * rtl.h (PHI_NODE_P): Remove.
5802
5803 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5804
5805         PR middle-end/14988
5806         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5807         when passed -2 as 'align'.
5808         (put_var_into_stack): Use 'bool' as the type for the three local
5809         predicates.  Adjust calls to put_reg_into_stack.
5810         When passed a CONCAT, instruct put_reg_into_stack to use
5811         a consecutive stack slot for the second part.
5812         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5813         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5814         parameters.  Retrieve the register mode from 'reg'.
5815         When consecutive_p is true, instruct assign_stack_local_1 to use
5816         BITS_PER_UNIT alignment.
5817         (put_addressof_into_stack): Use 'bool' as the type for the two
5818         local predicates. Adjust call to put_reg_into_stack.
5819
5820 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5821
5822         * fold-const.c (fold_convert_const, fold): Add missing
5823         FIX_ROUND_EXPR case.
5824
5825 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5826
5827         * configure.ac (FLEX, BISON): Only use tools from the build tree
5828         if build equals host.
5829         * configure: Rebuilt.
5830
5831         * config/frv/frv-protos.h (frv_expand_epilogue,
5832         frv_expand_fdpic_call): Add bool argument.
5833         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5834         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5835         (frv_expand_epilogue): Use new argument to decide whether to emit
5836         return instruction or copy the return address to LR.
5837         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5838         sibcalls.
5839         (sibcall_operand): New.
5840         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5841         PLUS nor LABEL_REF.  Add sibcall_operand.
5842         * config/frv/frv.md (call, call_value): Pass false to
5843         frv_expand_fdpic_call.
5844         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5845         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5846         sibcall_value_internal, sibcall_value_fdpicdi): New.
5847         (return_unsigned_true, return_unsigned_false): New.
5848         (epilogue): Adjust call to frv_expand_epilogue.
5849         (sibcall_epilogue): New.
5850
5851         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5852         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5853         before redefining them.
5854
5855 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5856
5857         * builtins.c (fold_fixed_mathfn): New function.
5858         (fold_builtin_lround, fold_builtin): Use it.
5859
5860 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5861
5862         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5863         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5864
5865 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5866
5867         * config/cris/cris.h: Revert my "fix comment typos" patch.
5868
5869 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5870
5871         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5872
5873 2004-05-01  Falk Hueffner  <falk@debian.org>
5874
5875         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5876         builtin_insll): Disallow 0 as first input operand.
5877
5878 2004-05-01  Falk Hueffner  <falk@debian.org>
5879
5880         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5881
5882 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5883
5884         PR middle-end/15054
5885         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5886         on a TARGET_EXPR temp.
5887         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5888         TARGET_EXPR temp slots.
5889
5890 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5891
5892         * simplify-rtx.c (simplify_ternary_operation): When
5893         converting an IF_THEN_ELSE to a relational op, return
5894         correct mode.
5895
5896 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5897
5898         * builtins.c (fold_builtin_round): Fix comment typo.
5899         (fold_builtin_lround): New function.
5900         (fold_builtin): Use it.
5901
5902 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5903
5904         PR target/11608
5905         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5906         more like the one in config/dbxelf.h.
5907
5908 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5909
5910         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5911         and adjust definition accordingly.
5912         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5913         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5914         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5915         VECTOR_TYPE.
5916
5917 2004-04-30  Jason Merrill  <jason@redhat.com>
5918
5919         PR c++/14587
5920         * config/i386/winnt.c (associated_type): Look for attributes on
5921         the TYPE_MAIN_VARIANT of *this.
5922         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5923         apply the attributes to the variants.
5924
5925 2004-04-30  Paul Brook  <paul@codesourcery.com>
5926
5927         * config.gcc: Simplify arm --with-{cpu,tune} test.
5928         * config/arm/arm-cores.def: Document whitespace restrictions.
5929
5930 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5931
5932         PR other/1963
5933         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5934
5935 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5936             DJ Delorie  <dj@redhat.com>
5937
5938         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5939         (DWARF2_DEBUGGING_INFO): Define to enable.
5940         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5941         DWARF2.
5942         * configure.ac (Target-specific assembler checks)
5943         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5944         relocs.
5945         * configure: Regenerate.
5946         * config.in: Likewise.
5947
5948         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5949         (ASM_OUPUT_DWARF_OFFSET): Define.
5950
5951 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5952
5953         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5954         (s390_emit_call): New function prototype added.
5955         (s390_tls_get_offset): Function removed.
5956         * config/s390/s390.c (s390_function_ok_for_sibcall,
5957         s390_call_saved_register_used_p): New functions.
5958         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5959         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5960         (s390_emit_tls_call_insn): New function.
5961         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5962         emit_call_insn.
5963         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5964         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5965         added.
5966         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5967         register number used to hold the target address for sibcalls.
5968         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5969         New expanders.
5970         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5971         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5972         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5973         Expanders removed.
5974         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5975         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5976         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5977         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5978         new parameter.
5979
5980 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5981
5982         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5983         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5984         reg-stack.c, varasm.c, config/alpha/ev4.md,
5985         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5986         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5987         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5988         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5989         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5990         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5991         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5992         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5993         comment typos.
5994
5995 2004-04-30  Paul Brook  <paul@codesourcery.com>
5996
5997         * config.gcc: Default ep9312 to hard-float.
5998         * config/arm/arm-cores.def: Add ARCH field.
5999         * config/arm/arm.c (FL_FOR_ARCH*): Define.
6000         (arm_arch_cirrus): New variable.
6001         (all_cores): Set and use arch.
6002         (all_architectures): Ditto.
6003         (arm_arch_name): New variable.
6004         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6005         Set and use arm_arch_cirrus.
6006         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6007         (enum processor_type): Update ARM_CORE define.
6008         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
6009         (CPP_SPEC): Remove %(cpp_cpu_arch).
6010         (CPP_ARCH_DEFAULT_SPEC): Remove.
6011         (CPP_CPU_ARCH_SPEC): Remove.
6012         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6013         (FPUTYPE_DEFAULT): Don't define here.
6014
6015 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
6016
6017         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6018         updates too.
6019
6020 2004-04-30  Paul Brook  <paul@codesourcery.com>
6021
6022         * arm.c (arm_needs_doubleword_align): Use mode alignment.
6023
6024 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
6025
6026         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6027         vec_sububs.
6028         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6029         duplicates.
6030
6031 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6032
6033         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6034         atan2?f3 expanders.
6035
6036 2004-04-29  Nick Clifton  <nickc@redhat.com>
6037
6038         Bug 14093
6039         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6040         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6041         Delete static from definition.
6042         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6043
6044 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6045
6046         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6047         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6048         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6049         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6050
6051 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
6052
6053         * commom.opt (Wfatal-errors): Add it.
6054         * diagnostic.c (flag_fatal_errors): Define it.
6055         (diagnostic_action_after_output): Check for flag_fatal_errors.
6056         * flags.h (flag_fatal_errors): Declare it.
6057         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6058         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6059
6060 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
6061
6062         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6063         blocks which have kill flag set.
6064
6065 2004-04-29  Ben Elliston  <bje@au.ibm.com>
6066
6067         * configure.ac (--with-as): Abort if user-supplied assembler
6068         cannot be executed.
6069         (--with-ld): Likewise for the linker.
6070         * configure: Regenerate.
6071
6072 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6073
6074         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6075         isn't NULL before using it.
6076
6077 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
6078
6079         PR target/15189
6080         * config/mips/mips.md (load_df_low): Use default length.
6081         (load_df_high, store_df_high): Likewise.
6082
6083 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6084
6085         * config/mips/mips.md, config/mips/sb1.md,
6086         config/rs6000/rs6000.c: Fix comment typos.
6087
6088 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6089
6090         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6091         Fix comment typos.
6092
6093 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
6094
6095         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6096         (delete_if_ordinary): Use above macro.
6097         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6098         Update copyright.
6099         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6100
6101 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
6102
6103         * c-decl.c (get_parm_info): Use the correct tag keywords when
6104         warning about type declarations in prototypes.
6105
6106 2004-04-29  Paul Brook  <paul@codesourcery.com>
6107
6108         * config.gcc: Pull list of cores from arm-cores.def.
6109
6110 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6111
6112         * combine.c (combine_simplify_rtx): Adjust call to use
6113         simplify_relational_operation.  Do not use SELECT_CC_MODE
6114         when a comparison already has a MODE_CC mode.
6115
6116 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6117
6118         (simplify_set): simplify_relational_operation may now
6119         return another relational expression.
6120         * cse.c (fold_rtx): simplify_relational_operation now
6121         takes of computing the comparison mode.
6122         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6123         remove dead code.
6124         (do_compare_rtx_and_jump): Likewise.
6125         * integrate.c (subst_constants): simplify_relational_operation
6126         may now return another relational expression.
6127         * simplify-rtx.c (simplify_gen_relational): Move most code to
6128         the new simplify_relational_operation and
6129         simplify_relational_operation_1 functions.
6130         (simplify_relational_operation): Rewritten.
6131         (simplify_relational_operation_1): New function.
6132         (simplify_ternary_operation): simplify_relational_operation
6133         may now return another relational expression.
6134         (simplify_rtx): Remove unnecessary temp variable.
6135
6136 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6137
6138         * reg-stack.c (swap_to_top): New function.
6139         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6140         swap_to_top().
6141         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6142         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6143         UNSPEC_FSCALE_EXP.
6144
6145         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6146         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6147         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6148         x87's fscale insn.
6149         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6150         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6151         patterns.
6152
6153 2004-04-28  Serge Belyshev  <1319@bot.ru>
6154
6155         PR 14944
6156         * coverage.c (read_counts_file): Fix usage of warning () call.
6157         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6158
6159 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6160
6161         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6162         options with "-" in the option index.
6163         (SPARC Options): Likewise.
6164         (M32R/D Options): Likewise.
6165
6166 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6167
6168         * convert.c (convert_to_integer): Convert (long)round -> lround,
6169         etc.
6170
6171 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6172
6173         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6174         Return false if we do not have fp register.
6175         (addrs_ok_for_quad_peep): Rename to ...
6176         (mems_ok_for_quad_peep): this.
6177         Add check for volatile memory.
6178         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6179         Rename to ...
6180         (mems_ok_for_quad_peep): this.
6181         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6182         to peephole2's.
6183         (lfq_power2): New instruction.
6184         (stfq_power2): Likewise.
6185
6186 2004-04-28  Jan Hubicka  <jh@suse.cz>
6187
6188         PR c/15004
6189         * function.c (do_warn_unused_parameter): Break out form ...
6190         (expand_function_end): ... here; warn only when not using cgraphunit.
6191         * function.h (do_warn_unused_parameter): Declare.
6192         * cgraphunit.c: Include function.h.
6193         (cgraph_finalize_function): Do unused parameter warning.
6194         * Makefile.in (cgraphunit.o): Depend on function.h
6195
6196 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6197
6198         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6199         calling install-info on $(DESTDIR)$(infodir)/dir already being
6200         present.
6201
6202 2004-04-28  Paul Brook  <paul@codesourcery.com>
6203
6204         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6205
6206 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6207
6208         * gcse.c (find_moveable_store): Do not accept store insns with
6209         REG_EH_REGION note.
6210
6211 2004-04-28  Paul Brook  <paul@codesourcery.com>
6212
6213         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6214         * function.c (assign_temp): Ditto.
6215         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6216
6217 2004-04-28  Paul Brook  <paul@codesourcery.com>
6218
6219         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6220
6221 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6222
6223         * var-tracking.c (variable_different_p): Add a parameter
6224         compare_current_location, compare current location of variable parts
6225         if it is true.
6226         (dataflow_set_different_1): Pass compare_current_location == false.
6227         (dataflow_set_different_2): Pass compare_current_location == false.
6228         (emit_notes_for_differences_1): Pass compare_current_location == true.
6229
6230 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6231
6232         * config/s390/s390.md ("casesi"): Mark jump table access as
6233         non-trapping and unchanging.
6234
6235 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6236
6237         PR debug/14829
6238         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6239         callers.
6240         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6241         number for indexing hard_regno_nregs array.
6242
6243 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6244
6245         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6246         * config/darwin-crt2.c: Only have contents on __ppc__.
6247
6248 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6249
6250         * config/xtensa/xtensa.c (call_insn_operand): Check
6251         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6252         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6253         * config/xtensa/xtensa.md (call, call_value): Likewise.
6254
6255 2004-04-27  Wu Yongwei  <adah@sh163.net>
6256
6257         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6258         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6259         (__gthread_mutex_init_function): Replace CreateMutex with
6260         initialization of custom mutex using CreateSemaphore.
6261         (__gthread_mutex_lock): Use InterlockedIncrement.
6262         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6263         (__gthread_mutex_unlock): Use InterlockedDecrement and
6264         ReleaseSemaphore to unlock
6265         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6266         __gthread_mutex_lock, __gthread_mutex_trylock,
6267         __gthread_mutex_unlock): Adjust to match inline versions in
6268         gthr-win32.h.
6269
6270 2004-04-27  Paul Brook  <paul@codesourcery.com>
6271
6272         * config/arm/arm.c (arm_promote_prototypes): New function.
6273         (TARGET_PROMOTE_PROTOTYPES): Use it.
6274
6275 2004-04-27  Paul Brook  <paul@codesourcery.com>
6276
6277         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6278
6279 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6280
6281         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6282         correctly output .pdesc directive before .end.
6283
6284 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6285
6286         Bug 14927
6287         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6288         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6289
6290 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6291
6292         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6293         * config/pa/pa-hpux10.h: Likewise.
6294         * config/pa/pa-hpux11.h: Likewise.
6295
6296 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6297
6298         * doc/invoke.texi (Overall Options): Document default for -o
6299         for PCH files.
6300
6301 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6302
6303         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6304         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6305         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6306
6307 2004-04-26  Paul Brook  <paul@codesourcery.com>
6308
6309         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6310
6311 2004-04-26  Paul Brook  <paul@codesourcery.com>
6312
6313         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6314
6315 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6316
6317         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6318         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6319         X % -1 as 0.
6320
6321 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6322
6323         PR bootstrap/15141
6324         * except.c (connect_post_landing_pads): Delete insns after the
6325         barrier when generating a unwind_resume_libfunc call.
6326
6327 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6328
6329         PR/c++ 15119
6330         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6331         for TARGET_EXPR.
6332
6333 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6334
6335         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6336         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6337         inhibit_libc is defined.
6338
6339 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6340
6341         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6342         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6343         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6344         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6345         (mips_adjust_cost): Move later in file, next to other sched hooks.
6346         (mips_macc_chains_last_hilo): New variable.
6347         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6348         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6349         * config/mips/mips.md (may_clobber_hilo): New attribute.
6350
6351 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6352             Bruce Korb  <bkorb@gnu.org>
6353
6354         * fixinc/inclhack.def (aix_syswait_2): New fix.
6355         * fixinc/fixincl.x: Regenerate.
6356         * fixinc/tests/base/sys/wait.h: Update for new test.
6357
6358 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6359
6360         PR target/14960
6361         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6362         to non_fixed_size, and leave out fixed_size from the sum.
6363         (generate_set_vrsave): Correct clobbers.
6364         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6365         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6366         (rs6000_libcall_value): Likewise.
6367         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6368         (FUNCTION_ARG_REGNO_P): Likewise.
6369
6370 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6371
6372         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6373         is a CONST_INT.
6374         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6375         with NARROW_OP1 instead of OP1.
6376
6377 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6378
6379         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6380         and __s390x__ hosts.
6381
6382 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6383
6384         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6385         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6386         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6387         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6388         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6389         * builtins.c (expand_builtin_fork_or_exec): New.
6390         (expand_builtin): Call it.
6391         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6392         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6393         * c-common.c (PID_TYPE): New macro.
6394         (c_common_nodes_and_builtins): Initialize pid_type_node.
6395         * calls.c (special_function_p): Do not handle fork and exec.
6396         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6397         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6398         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6399         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6400         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6401         * tree.h (enum tree_index): Add TI_PID_TYPE.
6402         (pid_type_node): New macro.
6403         (ECF_FORK_OR_EXEC): Removed.
6404
6405 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6406
6407         PR optimization/13985
6408         * cfgloopmanip.c (fix_loop_placements): New prototype.
6409         Call fix_bb_placements on the preheader of loops that have
6410         been reparented.
6411         (remove_path): Adjust call to fix_loop_placements.
6412
6413 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6414
6415         * config/darwin7.h: New file.
6416         * config.gcc (*-*-darwin*): Add darwin7.h if the
6417         version is greater than 6.
6418         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6419         (MATH_LIBRARY): Wrap in ifdefs.
6420
6421 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6422
6423         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6424         loading iWMMXt registers with a frame pointer.  Use post-increment
6425         without a frame pointer.
6426         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6427
6428 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6429
6430         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6431         mode" rather than "-funit-at-a-time" since -O2 enables it
6432         without requiring -f* options.  Refer to -fprofile-generate and
6433         -fprofile-use correctly.  Move -funit-at-a-time among options
6434         enabled by -O.  Add information about unit-at-a-time caveats.
6435
6436 2004-04-22  Per Bothner  <per@bothner.com>
6437
6438         * line-map.h (struct line_maps):  New field highest_line.
6439         (linemap_position_for_column):  Make non-inline function.
6440         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6441         * line-map.c (linemap_init):  Clear highest_line field.
6442         (linemap_add):  Set highest_line field.
6443         (linemap_line_start):  Minor optimization - use highest_line field.
6444         Reduce maximum column hint to 10000.  Update highest_line field.
6445         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6446         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6447         line_table->highest_line.
6448         (saved_line):  Remove unused field.
6449         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6450         Use  line_table's highest_line field instead of cpp_reader's line.
6451         * cpplib.c (start_directive):  Likewise use highest_line field.
6452         (do_line, do_linemarker):  Likewise just use newest map.
6453         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6454         * cpperror.c (cpp_error):  Likewise use highest_line field.
6455         * cppfiles.c (open_file_failed:  Likewise.
6456         (cpp_make_system_header):  Likewise use newest map and highest_line.
6457         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6458         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6459         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6460         _cpp_lex_direct):  Likewise use highest_line.
6461         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6462         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6463         and use newest map.
6464         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6465         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6466         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6467
6468 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6469
6470         PR bootstrap/14992
6471         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6472         * config/linux.h (USE_LD_AS_NEEDED): Define.
6473         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6474         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6475         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6476         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6477         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6478         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6479         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6480
6481 2004-04-22  Per Bothner  <per@bothner.com>
6482
6483         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6484         Fixes PR preprocessor/15067.
6485
6486 2004-04-23  Andreas Schwab  <schwab@suse.de>
6487
6488         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6489         avoid aliasing warning.
6490
6491 2004-04-22  Jan Hubicka  <jh@suse.cz>
6492             Mostafa Hagog <mustafa@il.ibm.com>
6493
6494       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6495       * cfgloopanal.c (expected_loop_iterations): Change the return value
6496
6497 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6498
6499         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6500         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6501         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6502         traces.
6503
6504 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6505
6506         Revert
6507         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6508
6509                 * var-tracking.c (variable_part_different_p): Variable parts
6510                 differ when the most recent locations differ.
6511
6512 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6513
6514         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6515         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6516         (embedded_pic_offset): Delete.
6517         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6518         MASK_* constants.
6519         (TARGET_EMBEDDED_PIC): Delete.
6520         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6521         (ASM_SPEC): Remove -membedded-pic.
6522         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6523         (ASM_OUTPUT_CASE_LABEL): Likewise.
6524         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6525         * config/mips/windiss.h (ASM_SPEC): Likewise.
6526         * config/mips/mips.c (struct machine_function): Remove
6527         embedded_pic_fnaddr_rtx.
6528         (TARGET_ENCODE_SECTION_INFO): Remove override.
6529         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6530         (override_options): Remove -membedded-pic handling.
6531         (print_operand): Remove handling of '%S'.
6532         (mips_select_section: Remove -membedded-pic handling.
6533         (mips_encode_section_info): Delete.
6534         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6535         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6536         -membedded-pic handling.
6537         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6538
6539 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6540
6541         * var-tracking.c (frame_base_decl): Remove useless GTY.
6542
6543 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6544
6545         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6546         user wants altivec and e500 instructions.
6547
6548 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6549
6550         PR target/14813
6551         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6552         in .init_array section to ...
6553         * config/ia64/crtbegin.asm: Here.
6554
6555         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6556         and hidden if HAVE_INITFINI_ARRAY is defined.
6557
6558 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6559
6560         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6561         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6562         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6563         (fp_register_operand, lo_operand): New.
6564         (mips_rtx_costs): Add TUNE_SB1 support.
6565         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6566         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6567         (mips_multipass_dfa_lookahead): New.
6568         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6569         TUNE_SB1): New.
6570         (TARGET_SWITCHES): Add -mfp-exceptions support.
6571         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6572         (BRANCH_COST): Fix whitespace.
6573         * config/mips/mips.md: Include sb1.md.
6574         * config/mips/sb1.md: New file.
6575         * doc/invoke.texi: Document -mfp-exceptions.
6576
6577         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6578         comment.
6579         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6580         (fixincl.o-warn): Delete.
6581
6582 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6583
6584         * config/rs6000/rs6000 (print_operand) ['z']:
6585         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6586
6587 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6588
6589         * config.gcc: Support --with-arch=iwmmxt for ARM.
6590
6591 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6592
6593         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6594         in two more places; remove unneeded force_reg
6595
6596 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6597
6598         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6599         for TARGET_MACHO.
6600         (print_operand): For TARGET_MACHO check to see if we need a stub
6601         and output one if we need it.
6602
6603         PR debug/15033
6604         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6605         rtl.
6606
6607 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6608
6609         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6610         (vall_value_gp): Likewise.
6611
6612 2004-04-20  DJ Delorie  <dj@redhat.com>
6613
6614         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6615         variables stored in word registers, then in memory.
6616
6617 2004-04-20  Eric Christopher  <echristo@redhat.com>
6618
6619         * cp/parser.c (cp_parser_declaration): Move translate
6620         up before tokens are lexed.
6621
6622 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6623
6624         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6625         (asin_optab, acos_optab): Define corresponding macros.
6626         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6627         * genopinit.c (optabs): Implement asin_optab and acos_optab
6628         using asin?f2 and acos?f2 patterns.
6629         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6630         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6631         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6632         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6633
6634         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6635         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6636         acos, acosf and acosl built-ins as inline x87 intrinsics.
6637
6638 2004-04-20  Paul Brook  <paul@codesourcery.com>
6639
6640         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6641
6642 2004-04-20  Paul Brook  <paul@codesourcery.com>
6643
6644         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6645
6646 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6647
6648         Revert part of 2004-04-17 change that moved -frename-registers
6649         to -O1.  -frename-registers is buggy.
6650
6651         * toplev.c (flag_rename_registers): Initialize to 0.
6652         * doc/invoke.texi (Optimize options): Move -frename-registers
6653         to "Not triggered by any -O level" section.  Adjust commentary
6654         accordingly.
6655
6656 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6657
6658         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6659
6660 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6661
6662         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6663         for mflo and mfhi instructions.
6664         (mips_output_move): Remove mflo and mfhi handling.
6665         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6666         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6667         Likewise various define_peephole2s.
6668         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6669         alternatives.
6670         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6671         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6672         (mfhilo_di, mfhilo_si): New patterns.
6673
6674 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6675
6676         * function.c (assign_parms): Force
6677         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6678
6679 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6680
6681         * var-tracking.c (variable_part_different_p): Variable parts differ
6682         when the most recent locations differ.
6683
6684 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6685
6686         * rtl.h (reg_set_last): Delete declaration.
6687         * rtlanal.c (reg_set_last): Delete.
6688
6689 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6690
6691         * fold-const.c (fold_convert): Make function extern/public.
6692         * tree.h (fold_convert): Prototype here.
6693         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6694         expand_builtin_strrchr, expand_builtin_strpbrk,
6695         expand_builtin_mempcpy, expand_builtin_bcopy,
6696         expand_builtin_bzero, expand_builtin_memcmp,
6697         expand_builtin_strcmp, expand_builtin_strncmp,
6698         stabilize_va_list, expand_builtin_sprintf,
6699         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6700         fold_builtin_exponent, fold_builtin_mempcpy,
6701         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6702         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6703         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6704
6705 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6706
6707         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6708         (move_from_CR_gt_bit): New.
6709         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6710         E500.
6711         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6712         E500.
6713
6714         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6715         (tstsfeq_gpr): Same.
6716         (cmpsfgt_gpr): Same.
6717         (tstsfgt_gpr): Same.
6718         (cmpsflt_gpr): Same.
6719         (tstsflt_gpr): Same.
6720         (e500_cceq_ior_compare): New.
6721         (e500_flip_gt_bit): New.
6722
6723         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6724         (print_operand): Add 'c' and 'D'.
6725         (rs6000_generate_compare): Rewrite to generate correct rtl.
6726         (rs6000_emit_sCOND): Handle E500.
6727         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6728         (output_e500_flip_gt_bit): New.
6729
6730         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6731         Protoize.
6732
6733 2004-04-19  Eric Christopher  <echristo@redhat.com>
6734
6735         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6736
6737 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6738
6739         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6740         fix information.
6741
6742 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6743
6744         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6745         download URL.
6746
6747 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6748
6749         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6750         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6751
6752 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6753
6754         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6755         (fold_builtin): Update caller to match.
6756
6757         PR bootstrap/15009
6758         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6759
6760         PR bootstrap/14999
6761         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6762
6763 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6764
6765         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6766
6767         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6768         (expand_mult_highpart_optab): Likewise.
6769         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6770
6771 2004-04-19  Paul Brook  <paul@codesourcery.com>
6772
6773         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6774         floatunssisf2, floatunssidf2): New patterns.
6775
6776 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6777
6778         PR other/14918
6779         * doc/invoke.texi (-fprofile-generate): Document requirement to
6780         use -fprofile-generate when linking.
6781
6782         * doc/extend.texi (Strong Using): Warn users against using this
6783         feature.
6784
6785 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6786
6787         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6788         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6789         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6790         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6791         constant.  Propogate change throughout file.
6792         (struct machine_function): Remove insns_len.
6793         (mips_string_length, mips16_strings, string_constants): Delete.
6794         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6795         when generating mips16 code.  Remove special mips16 treatment of
6796         string constants.
6797         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6798         to have the form LABEL+CONSTANT.
6799         (mips_symbolic_address_p): Fix comment.
6800         (m16_usym8_4, m16_usym5_4): Delete.
6801         (mips_output_function_epilogue): Remove mips16 string handling.
6802         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6803         (mips_select_section, mips_encode_section_info): Remove mips16
6804         string handling.
6805         (struct mips16_constant_pool): New.
6806         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6807         sorted into order of ascending mode size.  Keep track of the highest
6808         possible start address, taking padding and the masking of the base PC
6809         value into account.
6810         (dump_constants_1): New function, split out from dump_constants.
6811         Handle vector constants.  Use gen_consttable_{int,float} rather than
6812         separate functions for each mode.
6813         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6814         rather than separate functions for each alignment.
6815         (mips_find_symbol): Delete.
6816         (mips16_insn_length): New function, split out from
6817         mips16_lay_out_constants.
6818         (mips16_rewrite_pool_refs): New function.
6819         (mips16_lay_out_constants): Rework. Remove string handling.
6820         Always create an inline constant pool.
6821         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6822         (UNSPEC_ALIGN): New constants.
6823         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6824         (UNSPEC_ALIGN_[248]): Delete.
6825         (consttable_int, consttable_float, align): New patterns.
6826         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6827
6828 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6829
6830         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6831         __unn_args_eq.
6832
6833 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6834
6835         PR target/14715
6836         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6837         with STARTING_FRAME_OFFSET.
6838
6839 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6840
6841         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6842         * config/mips/mips.c (macc_msac_operand): New function.
6843         * config/mips/mips.md (*msac): Move after *macc.
6844         (*msac2): New.  Generalize macc-related peepholes so that they apply
6845         to msac too.
6846
6847 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6848
6849         * opts.c (decode_options): Do not enable flag_rename_registers
6850         and flag_web at -O3.
6851         * toplev.c (flag_rename_registers): Initialize
6852         flag_rename_registers and flag_web to
6853         AUTODETECT_FLAG_VAR_TRACKING.
6854         (default_debug_hooks): New global.
6855         (process_options): Initialize default_debug_hooks.  Warn if
6856         -fvar-tracking specified but not supported by the current
6857         debug format.  Do not run var tracking at -O0 or if not
6858         supported by the current debug format, even if
6859         -fvar-tracking was given.  If -fno-rename-registers
6860         is not specified, always run register renaming if var
6861         tracking is supported by the default debugging information
6862         format for the target, and we are at -O1 or higher; similarly
6863         for -fweb, but only at -O2 or higher.
6864         * doc/invoke.texi (Optimize Options): Document this.
6865
6866 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6867
6868         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6869         * configure: Regenerate.
6870
6871 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6872
6873         * gcc.c (used_arg): Check whether an option has been removed.
6874
6875 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6876
6877         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6878         debugging on Solaris 7 and up.
6879
6880 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6881
6882         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6883         IRIX 5 port.
6884         Remove -save-temps workaround, handled automatically.
6885         Require GNU binutils 2.15 for debugging.
6886         Remove SGI make warnings since GNU make is now required.
6887         (Specific, mips-sgi-irix6): Some markup fixes.
6888         Describe MIPSpro C problems and workarounds.
6889         Mention working O32 ABI support.
6890         Recommend GNU as 2.15 for O32 with debugging.
6891         Remove description of fixed structure pass/return bug.
6892
6893 2004-04-16  DJ Delorie  <dj@redhat.com>
6894
6895         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6896         TYPE_FIELDS.
6897         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6898
6899 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6900
6901         * pa.md: Remove unnecessary declarations for asm_out_file.
6902
6903         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6904         SAR register.  Fix comment.
6905         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6906         (%cr11).
6907
6908         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6909
6910 2004-04-16  Nick Clifton  <nickc@redhat.com>
6911
6912         * config/arm/arm.c (arm_override_options): Revert previous patch.
6913         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6914         be safely built.
6915
6916 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6917
6918         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6919         bug.
6920         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6921         TARGET_DEFAULT): Changed. Ditto.
6922         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6923         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6924         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6925         (TARGET_ENDIAN_DEFAULT): Added.
6926
6927 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6928
6929         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6930         ATTR_CONST_NOTHROW_LIST.
6931
6932 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6933
6934         PR/middle-end 14915
6935         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6936         BITS_BIG_ENDIAN.
6937
6938 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6939
6940         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6941
6942 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6943
6944         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6945
6946 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6947
6948         * libada-mk.in: New file.
6949         * configure.ac: Create libada-mk from libada-mk.in.
6950         * configure: Regenerate.
6951
6952 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6953
6954         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6955         (logb_optab, ilogb_optab): Define corresponding macros.
6956         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6957         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6958         using logb?f2 and ilogb?i2 patterns.
6959         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6960         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6961         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6962         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6963
6964         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6965         and UNSPEC_XTRACT_EXP.
6966
6967         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6968         patterns to implement fxtract x87 instruction.
6969         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6970         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6971         intrinsics.
6972         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6973         x87's fxtract insn.
6974
6975 2004-04-14  Eric Christopher  <echristo@redhat.com>
6976
6977         * config/mips/t-elf: Enable multilibs by default.
6978
6979 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6980
6981         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6982         previous fix to check HAVE_return at runtime too.
6983
6984 2004-04-14  Nick Clifton  <nickc@redhat.com>
6985
6986         * config/arm/arm.c (arm_override_options): If the user has not
6987         specified an ABI, then default to AAPCS for the iWMMXt processor.
6988         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6989         * config/arm/t-xscale-coff: Likewise.
6990
6991 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6992
6993         * builtins.c (fold_builtin_isdigit): New.
6994         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6995         * defaults.h: Add TARGET_DIGIT0 and sort.
6996         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6997
6998 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6999
7000         * builtins.c (fold_builtin_cabs, fold_builtin): Use
7001         `mathfn_built_in' to determine the new builtin.
7002         * fold-const.c (fold): Likewise.
7003
7004 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
7005
7006         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7007         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7008         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7009         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7010         (ASM_SPEC): Update accordingly.
7011         * config/mips/mips.c: Update after above renaming.
7012         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7013         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7014
7015 2004-04-13  James E Wilson  <wilson@specifixinc.com>
7016
7017         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7018         increment errorcount and return false instead of true.
7019
7020 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
7021
7022         * optabs.c (expand_twoval_unop): Reorder function arguments.
7023         * builtins.c (expand_builtin_mathfn_3): Update calls to
7024         expand_twoval_unop.
7025
7026         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7027         and UNSPEC_TAN_TAN. Add missing comment.
7028
7029         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7030         patterns to implement fptan x87 instruction.
7031         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7032         and tanl built-ins as inline x87 intrinsics. Define corresponding
7033         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7034         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7035         x87's fptan insn.
7036
7037 2004-03-13  Richard Henderson  <rth@redhat.com>
7038
7039         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7040         for LABEL_REFs.
7041
7042         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7043         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7044         * doc/invoke.texi: Update to match.
7045
7046         * varasm.c (unlikely_text_section): Use assemble_align instead of
7047         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
7048         correct alignment argument.
7049
7050 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7051
7052         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7053         after setting reg_last_reload_reg for optional output reloads.
7054
7055 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7056
7057         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7058         Definition of these two macros are corrected by adding
7059         matchine right paren.
7060
7061 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
7062
7063         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7064
7065 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7066
7067         * config/i386/i386.c (output_387_reg_move): New function.
7068         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7069         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7070         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7071         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7072         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7073
7074 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7075
7076         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7077         TYPE_DECL.
7078         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7079         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7080         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7081         Use skip_simple_arithmetic to find SAVE_EXPR.
7082         (force_type_save_exprs, force_type_save_exprs_1): New functions.
7083         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7084         Properly chain multiple pointers.
7085         (copy_tree_r): Copy a TYPE_DECL.
7086         * tree.c (variably_modified_type_p): Add some missing tests and
7087         make some other minor changes.
7088         * tree.h (force_type_save_exprs): New declaration.
7089
7090 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7091
7092         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7093         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
7094         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
7095         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
7096         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
7097         x%-1 into 0 (or x&0 if x has side-effects).
7098
7099 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7100
7101         * config/rs6000/rs6000.md: Document why a pattern is not
7102         available.
7103
7104         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7105         of floats on the E500.
7106         (branch_positive_comparison_operator): Do not allow NE even on the
7107         E500.
7108
7109 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7110
7111         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7112         in_text_unlikely_section to in_unlikely_text_section.
7113
7114 2004-04-11  Roger Sayle  <roger@eyesopen.com>
7115
7116         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
7117         calling convention to allow a NULL_TREE to be returned.  Factor
7118         sanity checks from callers, return NULL_TREE when appropriate.
7119         (fold): Handle COMPOUND_EXPR operands of binary expressions
7120         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
7121         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
7122         calls to fold_binary_op_with_conditional_arg.
7123
7124 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7125
7126         * config/mips/iris5.h (current_section_flags):  Add
7127         in_unlikely_executed_text and default case.
7128
7129 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7130
7131         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7132         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7133         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7134         HAVE_return and place it around the place where it is needed.
7135
7136 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7137
7138         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7139         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7140         and NORMAL_TEXT_SECTION_NAME.
7141         (unlikely_text_section): Check targetm.have_named_sections
7142         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7143         instead of SECTION_FORMAT_STRING.
7144         * config/mips/iris5.h (current_section_name): Add
7145         in_unlikely_executed_text case and move the abort into the switch.
7146         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7147         (NORMAL_TEXT_SECTION_NAME): Remove.
7148         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7149         (SECTION_FORMAT_STRING): Remove.
7150         * defaults.h (SECTION_FORMAT_STRING): Remove.
7151         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7152         (SECTION_FORMAT_STRING): Remove.
7153
7154 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7155
7156         * c-typeck.c (common_type): Prefer long long to long when same
7157         precision.
7158
7159 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7160
7161         PR 14887
7162         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7163         mode argument.
7164         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7165         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7166
7167 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7168
7169         * simplify-rtx.c (mode_signbit_p): New function to check whether
7170         an RTX is an immediate constant that represents the most significant
7171         bit of a given machine mode.
7172         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7173         C is the sign bit.
7174         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7175         when C2 is the sign bit.
7176         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7177         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7178         sign bit.
7179
7180 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7181
7182         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7183         TYPE_MODE.
7184
7185 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7186
7187         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7188         of TREE_READONLY for types.
7189
7190 2004-04-09  Caroline Tice  <ctice@apple.com>
7191
7192         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7193         (struct basic_block_def):  Add new field, partition.
7194         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7195         definitions.
7196         (partition_hot_cold_basic_blocks): Add extern function
7197         declaration.
7198         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7199         include statements.
7200         (N_ROUNDS): Increase the maximum number of rounds by 1.
7201         (branch_threshold): Add array value for new round.
7202         (exec_threshold): Add array value for new round.
7203         (push_to_next_round_p): New function.
7204         (add_unlikely_executed_notes): New function.
7205         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7206         (mark_bb_for_unlikely_executed_section): New function.
7207         (add_labels_and_missing_jumps): New function.
7208         (add_reg_crossing_jump_notes): New function.
7209         (fix_up_fall_thru_edges): New function.
7210         (find_jump_block): New function.
7211         (fix_crossing_conditional_branches): New function.
7212         (fix_crossing_unconditional_branches): New function.
7213         (fix_edges_for_rarely_executed_code): New function.
7214         (partition_hot_cold_basic_blocks): New function.
7215         (find_traces):  Add an extra round for partitioning hot/cold
7216         basic blocks.
7217         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7218         and only cold blocks, into the last (extra) round of collecting traces.
7219         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7220         over crossing edges.
7221         (bb_to_key):  Add code to correctly identify cold blocks when
7222         doing partitioning.
7223         (connect_traces): Modify to connect all the non-cold traces first, then
7224         go back and connect up all the cold traces.
7225         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7226         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7227         entry and exit blocks.
7228         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7229         if we are doing hot/cold partitioning.
7230         * cfgcleanup.c (cfglayout.h): Add new include statement.
7231         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7232         that cross section boundaries.
7233         (try_forward_edges): Likewise.
7234         (merge_blocks_move_predecessor_nojumps): Likewise.
7235         (merge_blocks_move_successor_nojumps): Likewise.
7236         (merge_blocks_move): Likewise.
7237         (try_crossjump_to_edge): Modify to not attempt after we have done
7238         the block partitioning.
7239         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7240         cross section boundaries.
7241         (try_optimize_cfg): Likewise.
7242         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7243         jumps that cross section boundaries.
7244         * cfglayout.c (flags.h): Add new include statement.
7245         (update_unlikely_executed_notes):  New function.
7246         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7247         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7248         updated appropriately.
7249         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7250         introduced by this optimization.
7251         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7252         extern function declaration.
7253         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7254         list of notes that can be deleted.
7255         (create_basic_block_structure):  Add initialization for partition field.
7256         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7257         section boundaries.
7258         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7259         cross section boundaries.
7260         (commit_one_edge_insertion): Add code so newly created basic block
7261         ends up in correct (hot or cold) section.  Modify to disallow
7262         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7263         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7264         crosses section boundaries.
7265         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7266         cross section boundaries.
7267         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7268         ends up in correct section, with correct notes attached.
7269         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7270         optimization.
7271         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7272         the end of functions are written into the correct (hot or cold)
7273         section.
7274         (dbx_source_file): Add code so writing debug file information
7275         doesn't incorrectly change sections.
7276         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7277         in partitioning hot/cold basic blocks into separate sections.
7278         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7279         section partitioning.
7280         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7281         conditional branches can span all of memory.
7282         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7283         unconditional branches can span all of memory.
7284         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7285         (final_scan_insn):  Add code to check for NOTE instruction indicating
7286         whether basic block belongs in hot or cold section, and to make sure
7287         the current basic block is being written to the appropriate section.
7288         Also added code to ensure that jump table basic blocks end up in the
7289         correct section.
7290         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7291         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7292         one of the branches has a jump that crosses between sections.
7293         (find_if_case_2): Likewise.
7294         (ifcvt): Modify to not attempt to mark loop exit edges after
7295         hot/cold partitioning has occurred.
7296         * opts.c (decode_options): Code to handle new flag,
7297         flag_reorder_blocks_and_partition; also to turn it off if
7298         flag_exceptions is on.
7299         (common_handle_option): Code to handle new flag,
7300         flag_reorder_blocks_and_partition.
7301         * output.h (unlikely_text_section): New extern function declaration.
7302         (in_unlikely_text_section): New extern function declaration.
7303         * passes.c (rest_of_handle_stack_regs):  Add
7304         flag_reorder_blocks_and_partition as an 'or' condition for calling
7305         reorder_basic_blocks.
7306         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7307         as an 'or' condition for calling reorder_basic_blocks.
7308         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7309         * print-rtl.c (print_rtx): Add code for handling new note,
7310         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7311         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7312         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7313         cross between section boundaries.
7314         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7315         indicating the basic block containing it belongs in the cold section.
7316         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7317         between hot and cold sections.
7318         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7319         initialize this flag, and to tie it to the command-line option
7320         freorder-blocks-and-partition.
7321         * varasm.c (cfglayout.h):  Add new include statement.
7322         (unlikely_section_label_printed):  New global variable, used for
7323         determining when to output section name labels for cold sections.
7324         (in_section):  Add in_unlikely_executed_text to enum data structure.
7325         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7326         NORMAL_TEXT_SECTION_NAME macros.
7327         (unlikely_text_section):  New function.
7328         (in_unlikely_text_section):  New function.
7329         (function_section):  Add code to make sure beginning of function is
7330         written into correct section (hot or cold).
7331         (assemble_start_function):  Add code to make sure stuff is written to
7332         the correct section.
7333         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7334         to an if statement that was checking 'in_text_section'.
7335         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7336         condition to an if statement that was checking 'in_text_section'.
7337         (default_section_type_flags_1):  Add check: if in cold section
7338         flags = SECTION_CODE.
7339         * config/darwin.c (darwin_asm_named_section):  Modify to use
7340         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7341         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7342         specifically for the i386.
7343         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7344         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7345         text string to something more informative.
7346         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7347         (SECTION_FORMAT_STRING):  Add new definition.
7348         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7349         '!in_unlikely_text_section' as an 'and' condition to an if statement
7350         that was already checking '!in_text_section'.
7351         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7352         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7353         sure these are properly defined for linux on ppc.
7354         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7355         for this new flag.
7356         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7357         reg_note.
7358         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7359         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7360         these new macros.
7361
7362 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7363
7364         * function.c (gen_mem_addressof): When changing the RTX from a REG
7365         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7366
7367 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7368
7369         PR target/14888
7370         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7371         truncxfdf2_noop): Provide dummy "fmov" implementations.
7372
7373 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7374
7375         * gcc.c (default_compilers): Add missing initializers.
7376
7377         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7378         Return 1 if file was successfully mapped.
7379
7380 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7381
7382         PR pch/13419
7383         PR pch/14137
7384         Radar #: 3315288
7385         * doc/invoke.texi (Precompiled Headers): Suggest -o
7386         to put an output file in a particular place.  Be more detailed
7387         about which options affect PCH validity and which options
7388         might not work.
7389         * c-pch.c (pch_matching): New.
7390         (MATCH_SIZE): New.
7391         (struct c_pch_validity): New field 'match'.
7392         (pch_init): Handle pch_matching.
7393         (c_common_valid_pch): Check pch_matching.
7394
7395         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7396
7397 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7398
7399         * doc/invoke.texi (Precompiled Headers): Warn about known
7400         problems.
7401
7402 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7403
7404         PR c++/14808
7405         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7406         to 1 if ASM_OUTPUT_DEF is defined.
7407         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7408         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7409         Set to non-zero iff not a one_only decl.
7410
7411 2004-04-08  Paul Brook  <paul@codesourcery.com>
7412
7413         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7414
7415 2004-04-08  Paul Brook  <paul@codesourcery.com>
7416
7417         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7418         PROMOTE_FOR_CALL_ONLY.
7419         * config/arm/arm-protos.h (arm_function_value): Declare.
7420         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7421         (TARGET_PROMOTE_PROTOTYPES): Return false.
7422         (arm_function_value): New function.
7423         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7424         (FUNCTION_VALUE): Call arm_function_value.
7425         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7426         (PROMOTE_FUNCTION_MODE): ... to this.
7427         (PROMOTE_FOR_CALL_ONLY): Remove.
7428         * config/mmix/mmix.h: Likewise.
7429         * config/s390/s390.h: Likewise.
7430         * config/sparc/sparc.h: Likewise.
7431         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7432         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7433         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7434         (PROMOTE_FOR_CALL_ONLY): Remove.
7435
7436 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7437
7438         PR ada/14538
7439         * ada/5rosinte.adb: Remove fake mprotect() body.
7440         * ada/5rosinte.ads: Add SA_SIGINFO.
7441         * ada/5rtpopsp.adb: Rewrite to use new interface.
7442         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7443         is tested before more complex ones which mix UNIX and embedded
7444         systems in the conditional.
7445
7446 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7447
7448         PR ada/14665
7449         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7450         filenames which end in .exe or have versioning suffixes like VMS.
7451
7452 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7453
7454         PR target/10129
7455         * config/darwin.c (darwin_encode_section_info): When the decl has
7456         a DECL_INITIAL, it is only defined also when it is not a common.
7457
7458 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7459
7460         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7461         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7462
7463 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7464
7465         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7466         global register variables.
7467
7468 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7469
7470         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7471         rpc_xdr_lvalue_cast_b): New fixes.
7472         * fixinc/fixincl.x: Regenerate.
7473         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7474
7475 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7476
7477         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7478         to power4 and power5 entries.
7479
7480 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7481
7482         * c-common.h (pending_lang_change): Mark for PCH.
7483
7484 2004-04-07  Caroline Tice  <ctice@apple.com>
7485
7486         * gcc.c (main): Move 'break' in main loops (on an error)
7487         to wait until error processing has occurred.
7488
7489 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7490
7491         * config.gcc: Stop changing enable_threads midstream.
7492         Replace uses of enable_threads_flag with enable_threads.
7493         * configure.ac: Replace uses of enable_threads_flag with
7494         enable_threads.  Improve autoconf quotation in one place.
7495         * configure: Regenerate.
7496
7497 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7498
7499         * builtins.c: Implement support for sincos function.
7500         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7501         BUILT_IN_COS{,F,L}.
7502         (expand_builtin_mathfn_3): New function.
7503         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7504         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7505         flag_unsafe_math_optimization is set.
7506
7507         * optabs.h (enum optab_index): Add new OTI_sincos.
7508         (sincos_optab): Define corresponding macro.
7509
7510         * optabs.c (init_optabs): Initialize sincos_optab.
7511         (expand_twoval_unop): New function.
7512
7513         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7514         patterns.
7515
7516         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7517         and UNSPEC_SINCOS_SIN.
7518
7519         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7520         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7521         built-ins as inline x87 intrinsics. Define splits for
7522         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7523         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7524         sincos patterns.
7525         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7526         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7527
7528         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7529         x87's fsincos insn.
7530
7531 2004-04-06  Devang Patel  <dpatel@apple.com>
7532
7533         PR 14467
7534         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7535
7536 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7537
7538         * doc/install.texi: Update HP-UX 11 installation procedure.
7539
7540 2004-04-06  Paul Brook  <paul@codesourcery.com>
7541
7542         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7543
7544 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7545
7546         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7547         when the TLS address is generated by a function call.
7548         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7549         (tls_local_dynamic): Likewise.
7550
7551 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7552
7553         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7554         and TYPE_VOLATILE.
7555
7556 2004-04-05  Caroline Tice  <ctice@apple.com>
7557
7558         * gcc.c (combine_flag): New global variable, for new driver option.
7559         (struct compiler): Add two new fields, to be used when
7560         combining multiple input files in a single pass (IMA).
7561         (default_compilers):  Add values for the new fields to all
7562         compiler entries. Modify the "@c" compiler entry for doing IMA
7563         properly with "-save-temps" and the "combine" flag.
7564         (option_map):  Add new driver option, "--combine", to tell driver
7565         to pass multiple input files to compiler at one time.
7566         (have_o_argbuf_index): New global variable.
7567         (store_arg): Modify to assign value to have_o_argbuf_index.
7568         (struct infile):  Add three new fields, to help with IMA.
7569         (display_help): Add help for new "combine" option.
7570         (process_command): Remove local variable have_o; add code to check
7571         for new "combine" option; remove assignment to combine_inputs.
7572         (do_spec_1):  Modify to deal with IMA better.
7573         (main): Make variable 'lang_n_infiles' local to entire function
7574         rather than to a single block.  Use flag combine_flag to
7575         determine whether to do IMA or not; Modify loop initializing
7576         infiles to deal properly with linker files.
7577         Add code for doing preprocessing in presence of
7578         IMA with "-save-temps" flag.  Modify "main" loop to handle
7579         multiple input files, in multiple languages, with or without
7580         preprocessing,  gracefully.
7581         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7582         re-set it to same directory it's previously been set to (avoid
7583         irritating, meaningless warning messages when doing IMA with
7584         save-temps).
7585         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7586         remove documentation about IMA that is no longer accurate; Add
7587         documentation explaining what "-combine" does.
7588         * ada/lang-specs.h: Add initialization values for new fields in
7589         "struct compiler".
7590         * cp/lang-specs.h: Likewise.
7591         * f/lang-specs.h: Likewise.
7592         * java/lang-specs.h: Likewise.
7593         * objc/lang-specs.h: Likewise.
7594         * treelang/lang-specs.h: Likewise.
7595
7596 2004-04-05  David Edelsohn
7597
7598         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7599         symbol handling.
7600
7601 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7602             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7603
7604         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7605         * pa.md: Use replace_equiv_address to retain the attributes of the
7606         memory operands used in the split and peephole2 patterns for optimizing
7607         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7608
7609 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7610
7611         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7612         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7613         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7614         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7615         PARM_DECL.
7616         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7617         for a type.
7618         * print-tree.c (print_node): Properly handle side-effects, readonly,
7619         and constant flags.
7620         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7621         and TREE_CONSTANT if not a type.
7622         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7623         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7624         (NON_TYPE_CHECK): New macro.
7625         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7626
7627 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7628
7629         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7630         to DWARF2_DEBUG unconditionally.
7631         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7632
7633 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7634             Nathanael Nerode  <neroden@gcc.gnu.org>
7635
7636         PR target/14548
7637         * config.host: Set the shell variable host_can_use_collect2.
7638         Set it to yes by default, and to no for alpha*-dec-*vms*,
7639         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7640         * configure.ac: Set and substitute the shell variable collect2.
7641         Give an error if use_collect2 is yes and host_can_use_collect2 is
7642         no.
7643         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7644         uses.  Initialize to @collect2@.
7645         (STAGESTUFF): Remove $(USE_COLLECT2).
7646         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7647         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7648         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7649         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7650         * configure: Regenerate.
7651
7652 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7653
7654         * simplify-rtx.c (simplify_binary_operation): Constant fold
7655         DIV, MOD, UDIV and UMOD using div_and_round_double.
7656
7657 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7658
7659         PR c++/14804
7660         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7661         RECORD_TYPEs.
7662
7663 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7664
7665         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7666         documentation.
7667
7668 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7669
7670         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7671         updating the REG_EQUAL note on an insn's libcall_insn.
7672
7673 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7674
7675         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7676
7677 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7678
7679         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7680         with reorder_operands_p.
7681
7682 2004-04-03  Jan Hubicka  <jh@suse.cz>
7683
7684         * md.texi (vec_set, vec_extract, vec_init): Document.
7685
7686 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7687
7688        * opts.c (decode_options): Do function inlining with very small
7689        max-inline-insns-* parameters when optimizing for size.
7690
7691 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7692
7693         * config/i386/i386.h (TARGET_NOCONA): New macro.
7694         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7695         (processor_type): Add PROCESSOR_NOCONA.
7696
7697         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7698
7699         * config/i386/i386.c (nocona_cost): New variable.
7700         (m_NOCONA): New macro.
7701         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7702         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7703         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7704         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7705         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7706         x86_decompose_lea, x86_arch_always_fancy_math_387,
7707         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7708         x86_ext_80387_constants, x86_four_jump_limit):
7709         (override_options): Add nocona_cost to processor_target_table.
7710         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7711         (incdec_operand): Prevent inc/dec generation for Nocona too.
7712         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7713
7714 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7715
7716         * rtlanal.c (find_reg_note): Manually
7717         unswitch the loop.
7718
7719 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7720
7721         * genemit.c (gen_split): Change prototype of generated code.
7722         * genrecog.c (write_action): Adjust prototype for and calls to
7723         gen_split_*.
7724         * gensupport.c (struct queue_elem): Add split field.
7725         (queue_pattern): Return a value.  Clear the split field.
7726         (process_rtx): Maintain an association between an insn and the
7727         split generated from it for a define_insn_and_split.
7728         (process_one_cond_exec): Generate a new split for a
7729         define_insn_and_split.
7730         * config/arm/arm-protos.h (arm_split_constant): Add insn
7731         parameter.
7732         (emit_constant_insn): New function.
7733         (arm_gen_constant): Use it.
7734         * config/arm/arm.md: Adjust calls to arm_split_constant.
7735
7736 2004-04-02  Jan Hubicka  <jh@suse.cz>
7737
7738         * cgraph.c: Add overall comment.
7739         (cgraph_inline_hash): New global variable.
7740         (cgraph_create_node): Break out from ...
7741         (cgraph_node): ... here.
7742         (cgraph_edge): New function.
7743         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7744         (cgraph_remove_edge): Accept edge, intead of source and destination.
7745         (cgraph_redirect_edge_callee): New.
7746         (cgraph_remove_node): Update all new datastructures.
7747         (cgraph_record_call, cgraph_remove_call): Kill.
7748         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7749         (dump_cgraph): ... here.
7750         (cgraph_function_possibly_inlined_p): Use new hashtable.
7751         (cgraph_clone_edge, cgraph_clone_node): New.
7752         * cgraph.h: Include hashtab.h
7753         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7754         fields, add inlined_to pointer.
7755         (cgraph_node): Add pointer to next_clone.
7756         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7757         (cgraph_remove_call, cgraph_record_call): Kill.
7758         (cgraph_inline_hash): Declare.
7759         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7760         cgraph_redirect_edge_callee): Declare.
7761         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7762         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7763         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7764         * cgraphunit.c: Add overall comment.
7765         (cgraph_optimize_function): Kill.
7766         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7767         (cgraph_finalize_function): Update call of cgraph_remove_node
7768         (record_call_1): Record call sites.
7769         (cgraph_create_edges): Accept node instead of decl argument.
7770         (error_found): New static variable.
7771         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7772         (cgraph_analyze_function): Update for new datastructures.
7773         (cgraph_finalize_compilation_unit): Plug memory leak.
7774         (cgraph_optimize_function): Kill.
7775         (cgraph_expand_function): Do not use cgraph_optimize_function.
7776         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7777         cgraph_inlined_callees): Kill.
7778         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7779         clones.
7780         (estimate_growth): Simplify.
7781         (cgraph_clone_inlined_nodes): New function.
7782         (cgraph_mark_inline_edge): Re-implement.
7783         (cgraph_mark_inline): Likewise.
7784         (cgraph_check_inline_limits): Simplify.
7785         (cgraph_recursive_inlining_p): New.
7786         (update_callee_keys): Break out from ...
7787         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7788         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7789         Likewise.
7790         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7791         list.
7792         (cgraph_preserve_function_body_p): New predicate.
7793         (cgraph_optimize): Verify cgraph.
7794         * function.h (struct function): Add fields saved_tree/saved_args.
7795         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7796         * toplev.c (rest_of_compilation): Do not free cfun.
7797         * tree-inline.c: Include function.h
7798         (struct inline_data): Add saving_p field; replace decl/current_decl by
7799         node/current_node.
7800         (insert_decl_map): New function.
7801         (copy_body_r): Handle saving; update cgraph datastructure.
7802         (copy_body): Handle recursive inlining.
7803         (initialize_inlined_parameters): Likewise.
7804         (expand_call_inline): Propagate node attributes; update cgraph.
7805         (optimize_inline_calls): Verify that datastructure still match.
7806         (save_body): New function.
7807         * tree-inline.h (save_body): New.
7808         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7809         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7810         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7811
7812 2004-04-01  Serge Belyshev  <1319@bot.ru>
7813
7814         PR target/14702
7815         * config/i386/i386.md: fix source operand constraints in
7816         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7817
7818 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7819
7820         * fold-const.c (folda): Preserve types of comparisons.
7821
7822 2004-04-01  Richard Henderson  <rth@redhat.com>
7823
7824         * toplev.c (backend_init): Move init_optimization_passes call ...
7825         (lang_dependent_init): ... here.
7826
7827 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7828             Jakub Jelinek  <jakub@redhat.com>
7829
7830         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7831         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7832         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7833         * configure: Rebuilt.
7834         * config.in: Rebuilt.
7835         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7836         (stage2-start, stage3-start, stage4-start): Likewise.
7837         (stageprofile-start, stagefeedback-start): Likewise.
7838
7839 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7840
7841         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7842         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7843         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7844         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7845         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7846         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7847         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7848         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7849         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7850         * config/sparc/t-linux: Removed.
7851
7852 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7853
7854         PR c++/14755
7855         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7856         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7857
7858 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7859
7860         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7861         * stor-layout.c (layout_decl): Likewise.
7862         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7863         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7864         * print-tree.c (print_node): Handle various used of unsigned_flag.
7865         * tree.def (BIT_FIELD_REF): Update comment.
7866         * tree.h (TREE_UNSIGNED): Deleted.
7867         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7868
7869 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7870
7871         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7872         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7873         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7874         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7875         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7876         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7877         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7878         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7879         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7880         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7881         REAL_TYPE, not INTEGER_TYPE.
7882         (layout_type, case VECTOR_TYPE): Simplify code.
7883         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7884         * tree.h: Update comments.
7885         (STRIP_NOPS): Use TYPE_UNSIGNED.
7886         (TYPE_UNSIGNED): New macro.
7887         (TYPE_TRAP_SIGNED): Remove now redundant check.
7888         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7889
7890 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7891
7892         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7893
7894 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7895
7896         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7897         Add darwin-fpsave.asm, darwin-vecsave.asm,
7898         and darwin-world.asm.
7899         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7900         as the asm files contain altivec instructions.
7901         * config/rs6000/darwin-fpsave.asm: New file.
7902         * config/rs6000/darwin-vecsave.asm: New file.
7903         * config/rs6000/darwin-world.asm: New file.
7904
7905 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7906
7907         * gengtype-yacc.y (option, stringseq): Add missing
7908         terminating semicolon.
7909
7910 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7911
7912         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7913         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7914         tls_dtprel_ha_32, tls_dtprel_ha_64,
7915         tls_dtprel_lo_32, tls_dtprel_lo_64,
7916         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7917         tls_tprel_ha_32, tls_tprel_ha_64,
7918         tls_tprel_lo_32, tls_tprel_lo_64,
7919         tls_got_tprel_32, tls_got_tprel_64,
7920         tls_tls_32, tls_tls_64): Replace register_operand with
7921         gpc_reg_operand.
7922
7923 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7924
7925         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7926         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7927         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7928         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7929         *ctrdi_internal6): Replace register_operand with
7930         nonimmediate_operand.
7931
7932 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7933
7934         * fold-const.c (fold): Reassociate multiply expression
7935         with an adjacent non-multiply expression to use
7936         architecture's multiply-add instruction.
7937
7938 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7939
7940         * gengtype.c (create_option): New function.
7941         * gengtype.h: Prototype it.
7942         * gengtype-yacc.y (stringseq): New rule.
7943         (option): Use create_option.  Add new bare ID production.  Use
7944         stringseq, not STRING directly.
7945
7946         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7947         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7948         * varray.h, config/alpha/alpha.c:
7949         Use new shorter form of GTY markers.
7950
7951         * doc/gty.texi: Rewrite.
7952
7953 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7954
7955         * config/darwin.c (machopic_function_base_name):
7956         Remove current_name and getting the name of the
7957         current function.
7958
7959 2004-03-30  Nick Clifton  <nickc@redhat.com>
7960
7961         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7962         range, and increase the forward branch range, to allow for
7963         the fact that the PC will be off by 4.
7964
7965 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7966
7967         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7968
7969 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7970
7971         * config/rs6000/rs6000.c (output_vec_const_move):
7972         Find all cases of EASY_VECTOR_15_ADD_SELF.
7973         (easy_vector_constant_add_self): Accept
7974         all vector constant loadable by vsplt* and vadd*.
7975         (easy_vector_same): Use easy_vector_splat_const.
7976         (easy_vector_const): Use easy_vector_splat_const.
7977         (easy_vector_splat_const): New function.
7978         (gen_easy_vector_constant_add_self): New function.
7979
7980         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7981         New prototype.
7982
7983         * config/rs6000/altivec.md (movv4si splitter): Change to
7984         emit move insn with halfed vector constant.
7985         (*movv8hi splitter): Likewise.
7986         (*movv16qi splitter): Likewise.
7987
7988 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7989
7990         PR 11591
7991         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7992         Allow any offset to argument pointer in no-strict case.
7993
7994 2004-03-30  Jan Hubicka  <jh@suse.cz>
7995
7996         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7997         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7998         dump file in non-unit-at-a-time mode.
7999
8000 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
8001
8002         * config/cris/cris.h: Correct #ifdef to test for
8003         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8004         HAVE_AS_MUL_BUG_ABORT_OPTION.
8005
8006 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8007
8008         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8009         the address inside the old RTL.
8010
8011 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
8012
8013         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8014         (struct c_binding, struct c_scope): Add chain_next
8015         attributes to GTY markers.
8016         (struct lang_identifier, struct lang_tree_node): Define
8017         here...
8018         * c-tree.h: ... not here.  No longer need to declare struct
8019         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8020         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8021         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8022
8023         PR 14734, 11944
8024         * c-decl.c (get_parm_info): If error_mark_node is encountered
8025         in the bindings chain, unbind and discard it; don't abort.
8026
8027 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
8028             Dorit Naishlos <dorit@il.ibm.com>
8029
8030         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8031         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8032
8033 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
8034
8035         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8036
8037         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8038         (m68hc11_attribute_table): New attribute "page0" to mark a global
8039         variable as being allocated from within page0 section.
8040         (m68hc11_encode_label): New function.
8041         (m68hc11_strip_name_encoding): New function.
8042         (m68hc11_page0_symbol_p): New function.
8043         (m68hc11_indirect_p): Accept global variables marked in page0.
8044         (m68hc11_encode_section_info): Lookup "page0" attribute.
8045
8046         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8047         represents access to page0 variables.
8048
8049         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8050         ("*logicalsi3_silshl16_zext"): Likewise.
8051         ("*ashldi3_const32"): Likewise.
8052         (peephole2 ashift): Likewise.
8053
8054 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8055
8056         * c-tree.h (C_DECL_REGISTER): New.
8057         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8058         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8059         (build_array_ref, c_mark_addressable): Set and use it.
8060         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8061         Allow structures with volatile fields to be declared register.
8062         Don't check TREE_ADDRESSABLE before warning about taking address
8063         of register.
8064         * c-decl.c (finish_decl): Don't allow structures with volatile
8065         fields to be placed in named register.
8066         * doc/trouble.texi: Remove reference to structures with volatile
8067         fields in registers.
8068
8069 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8070
8071         * function.c (thread_prologue_and_epilogue): Move
8072         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8073         before the epilogue.
8074
8075 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8076
8077         * expr.c (store_constructor): Use gen_int_mode to correctly
8078         sign-extend CONST_INT value.
8079
8080 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8081
8082         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8083         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
8084         * doc/extend.texi: Likewise.
8085
8086 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
8087
8088         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8089           with TYPE_ORIG_SIZE_TYPE.
8090
8091 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
8092
8093         PR 14219
8094         * c-typeck.c (build_binary_op): Do not allow comparisons of
8095         vectors.
8096
8097 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
8098
8099         * config.gcc: Remove sparc-tti-*.
8100         * config/sparc/pbd.h: Delete.
8101
8102         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8103         * config/sparc/aout.h: Likewise.
8104
8105         * config/sparc/sparc.h: Remove if 0'd code.
8106         * config/sparc/sparc.md (call): Remove if 0'd code.
8107         (call_value): Likewise.
8108         (nonlocal_goto): Likewise.
8109         (unimp_insn): Delete.
8110
8111 2004-03-25  Roger Sayle  <roger@eyesopen.com>
8112
8113         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8114         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8115
8116 2004-03-25  Richard Henderson  <rth@redhat.com>
8117
8118         PR 11527
8119         * c-typeck.c (pop_init_level): Emit pending init elements earlier
8120         rather than later.
8121
8122 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8123
8124         * builtins.c (fold_builtin): Fix error in last change.
8125
8126 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8127
8128         * config/mips/mips.h: Formatting fix.
8129
8130 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8131
8132         * builtins.def: Add ctype builtins.
8133         * doc/extend.texi: Likewise.
8134
8135 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8136
8137         * builtins.c (fold_builtin): Add new builtin optimizations for
8138         sqrt and/or cbrt.
8139         * fold-const.c (fold): Likewise.
8140
8141 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8142
8143         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8144         (rs6000_sched_groups): New variable.
8145         (processor_target_table): Add power5.
8146         (rs6000_override_options): Set rs6000_sched_insert_nops,
8147         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8148         from rs6000_sched_groups.
8149         (output_cbranch): Use rs6000_always_hint.
8150         (rs6000_variable_issue): Use rs6000_sched_groups.
8151         (rs6000_adjust_cost): Add CPU_POWER5.
8152         (is_microcoded_insn): Use rs6000_sched_groups.
8153         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8154         Return 2 for POWER5 cracked instructions.
8155         (is_cracked_insn): Use rs6000_sched_groups.
8156         (is_branch_slot_insn): Use rs6000_sched_groups.
8157         (rs6000_issue_rate): Add CPU_POWER5.
8158         (rs6000_sched_finish): Use rs6000_sched_groups.
8159         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8160         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8161         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8162         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8163         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8164         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8165         * config/rs6000/power5.md: New file.
8166         * doc/invoke.texi: Add power5 option.
8167
8168 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8169
8170         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8171         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8172         * doc/invoke.texi: Fix a typo.
8173
8174 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8175
8176         PR optimization/9707.
8177         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8178         of recursing if both children are single-valued cases with no
8179         children.
8180
8181 2004-03-25  Paul Brook  <paul@codesourcery.com>
8182
8183         * config/arm/arm.c (vfp_print_multi): Remove.
8184         (arm_output_fldmx): New function.
8185         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8186         (arm_expand_prologue): Update to match.
8187         (arm_get_vfp_saved_size): New Function.
8188         (arm_get_frame_offsets): Use it.
8189         (arm_output_epilogue): Use new functions.
8190
8191 2004-03-24  Richard Henderson  <rth@redhat.com>
8192
8193         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8194         (reg_known_value, reg_known_value_size): Likewise; make static.
8195         (reg_known_equiv_p): Make static.
8196         (clear_reg_alias_info): Update for new indexing.
8197         (get_reg_known_value, set_reg_known_value): New.
8198         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8199         (canon_rtx): Use them.
8200         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8201         Don't play queer offsetting games with reg_known_value and
8202         reg_known_equiv_p.
8203         (end_alias_analysis): Free reg_known_value with gc.
8204         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8205         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8206         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8207         functions instead.
8208
8209 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8210
8211         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8212         config/i386/mmintrin.h: Update copyright.
8213
8214 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8215
8216         * configure.ac: Add --enable-werror-always (for top level bootstrap
8217         support).
8218         * configure: Regenerate.
8219
8220 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8221
8222         * objc/objc-act.c (objc_comptypes): Treat comparisons
8223         between 'Class' and '<class> *' as explicitly invalid.
8224
8225 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8226
8227         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8228         (-fprofile-values): Add enabled with profile-{generate,use}.
8229         (-fvpt): Same.
8230         (-ftracer): Add enabled with profile-use.
8231         (-funit-at-a-time): Add enabled at -O2,-O3.
8232         (-funroll-loops): Add enabled with profile-use.
8233         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8234         (max-gcse-passes): Mention default.
8235         (max-cse-path-length): Mention default.
8236
8237 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8238
8239         * Makefile.in (STRICT2_WARN): Reorder.
8240         * configure.ac: Check for -Wold-style-definition, and use it
8241         in strict1_warn if it's available.
8242         * configure: Regnerate.
8243
8244 2004-03-24  Paul Brook  <paul@nowt.org>
8245
8246         * config.gcc <arm>: Add --with-abi=
8247         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8248         thumb_far_jump_used): Remove prototypes.
8249         (arm_needs_doubleword_align): Add prototype.
8250         (thumb_compute_initial_elimination_offset): Ditto.
8251         * config/arm/arm.c (arm_get_frame_offsets): New function.
8252         (use_return_insn, output_return_instruction, arm_output_epilogue,
8253         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8254         arm_expand_prologue, thumb_expand_epilogue): Use it.
8255         (arm_abi, target_abi_name, all_arm_abis): New variables.
8256         (arm_override_options): Set them.  Set structure padding for AAPCS.
8257         (arm_return_in_memory): Update ABI check.
8258         (arm_init_cumulative_args): Initialize can_split.
8259         (arm_needs_doubleword_align): New function.
8260         (arm_function_arg): Don't split args after pushing to stack. Handle
8261         doubleword/even reg alignment.
8262         (arm_va_arg): Handle all doubleword aligned args.
8263         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8264         on ABI, not CPU.
8265         (arm_compute_save_reg0_reg12_mask): Fix comment.
8266         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8267         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8268         value for alignment.
8269         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8270         to match.
8271         (thumb_compute_initial_elimination_offset): New function.
8272         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8273         unneccessary rounding.
8274         * config/arm/arm.h (target_abi_name): Declare.
8275         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8276         arm_abi_type, ARM_DEFAULT_ABI): Define.
8277         (ARM_FLAG_ATPCS): Remove.
8278         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8279         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8280         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8281         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8282         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8283         Contitionalize on ABI, not CPU.
8284         (struct arm_stack_offsets): Define.
8285         (struct machine_function): Add stack_offsets.  Remove frame_size.
8286         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8287         pushed.
8288         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8289         doubleword alignment.
8290         (THUMB_INITIAL_ELIMINATION_OFFSET,
8291         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8292         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8293         * config/arm/arm.md (align_8): Enable for all targets.
8294         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8295         (ARM_DEFAULT_ABI): Define.
8296         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8297         -mstructure-size-boundary.
8298
8299 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8300
8301         * configure.ac: Check for -Wno-variadic-macros; don't use
8302         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8303         and if it's available, use it.  Also, clean up check for
8304         -Wno-long-long.
8305         * configure: Regenerate.
8306
8307 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8308
8309         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8310         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8311         (MULTILIB_DEFAULTS): Use it.
8312         (MIPS_CPU_STRING_DEFAULT): Remove.
8313         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8314         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8315         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8316         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8317         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8318         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8319         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8320         accordingly.
8321
8322 2004-03-24  DJ Delorie  <dj@redhat.com>
8323             Richard Sandiford  <rsandifo@redhat.com>
8324
8325         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8326         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8327         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8328         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8329         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8330         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8331         if TARGET_FIX_VR4122.
8332         * config/mips/mips.md (define_attr length): Account for nops inserted
8333         after macc and dmult when using -mfix-vr4122-bugs.
8334         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8335         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8336         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8337         * config/mips/vr4122-div.S: New file.
8338         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8339
8340 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8341
8342         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8343         (TARGET_MIPS4130): New macro.
8344         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8345         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8346         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8347         with PROCESSOR_R4130.
8348         * config/mips/mips.md (define_attr cpu): Add r4130.
8349         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8350
8351 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8352             Richard Sandiford  <rsandifo@redhat.com>
8353
8354         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8355
8356 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8357
8358         PR preprocessor/14438
8359         * cpplib.c (do_pragma): Remove line_change call after pragma
8360         handler.
8361
8362 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8363
8364         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8365         declarations.
8366
8367 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8368
8369         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8370         if flag_unsafe_math_optimizations.
8371         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8372         and TARGET_80387 expand using truncdfsf2_noop pattern.
8373         (truncxfsf2): Likewise using truncxfsf2_noop.
8374         (truncxfdf2): Likewise using truncxfdf2_noop.
8375         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8376
8377 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8378
8379         * hooks.c (hook_constcharptr_tree_null): New hook.
8380         * hooks.h (hook_constcharptr_tree_null): New prototype.
8381         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8382         * target.h (mangle_fundamental_type): New target hook.
8383         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8384         target hook at rs6000_mangle_fundamental_type.
8385         (rs6000_mangle_fundamental_type): New function.
8386         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8387
8388 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8389
8390         PR 12267, 12391, 12560, 13129, 14114, 14133
8391         * c-tree.h: Forward declare struct c_binding.  Declare
8392         c_override_bindings_to_false.  Update prototypes.
8393         (struct lang_identifier): Update comments.  Change fields to be
8394         struct c_binding *.
8395         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8396         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8397         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8398         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8399         * c-common.h: Update prototypes.
8400         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8401         names_last, parms, parms_last, tags, and shadowed fields.  Add
8402         bindings and depth fields.
8403         (scope_freelist): Move to more appropriate location.
8404         (c_print_identifier): Update for changes to struct lang_identifier.
8405         (objc_mark_locals_volatile): Update for new bindings structures.
8406         (global_bindings_p): Honor c_override_global_bindings_to_false.
8407         (pushlevel): Rename to push_scope; take no arguments; use the
8408         scope_freelist; initialize scope->depth and check for overflow.
8409         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8410         structures.
8411         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8412         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8413         Improve some commentary.  Adjust handling of forward parm decls.
8414         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8415         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8416         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8417         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8418         decls.  Rewrite for new bindings structures.  Improve commentary.
8419         Eliminate the copy_node call.
8420         (implicit_decl_warning): Use the "diag" idiom (as seen in
8421         locate_old_decl) to reduce code duplication; call locate_old_decl
8422         if appropriate.  Relocate to remove need for forward declaration.
8423         (implicitly_declare): Adjust for new bindings structures.  Kludge
8424         around Objective-C not-really-builtin functions.
8425         (undeclared_variable): Improve diagnostics.  If current_function_decl
8426         is nonnull but current_function_scope is null, use current_scope.
8427         Use bind.
8428         (lookup_tag): Adjust for new bindings structures.  Kludge around
8429         Objective-C's tag declarations that wind up in the external scope.
8430         (lookup_name): Adjust for new bindings structures.  Kludge around
8431         c-common.c's pseudo-typedefs that wind up in the external scope.
8432         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8433         second argument indicating the scope to examine; rewrite for
8434         new bindings structures.
8435         (c_init_decl_processing): Adjust for renamed functions.  Do not
8436         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8437         First scope pushed is the external scope, not the global scope.
8438         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8439         for new data structures.  Keep track of builtins that should be
8440         made visible automatically.
8441         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8442         expand_decl.
8443         (grokparms): Return 0 if arg_types is error_mark_node.
8444         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8445         reversed sense.  Rewrite for new bindings structures.  Do not
8446         leave any decls in the scope, to prevent pop_scope from doing
8447         contradictory things with them.
8448         (finish_struct, finish_enum): Remove redundant diagnostics.
8449         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8450         Mark location where -pedantic changes the meaning of the program.
8451         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8452         parameter decls into the function's scope structure using bind.
8453         Warn here about function definitions in the wrong style.
8454         Adjust diagnostics.
8455         (store_parm_decls): Correct the determination of whether a
8456         function was defined with a prototype.
8457         (c_write_global_declarations): Operate on all file decls and on
8458         the external scope.  Split body of the loop to...
8459         (c_write_global_declarations_1): ... this new function, to avoid
8460         code duplication.
8461         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8462         (make_scope, pop_scope, in_parm_level_p, set_block)
8463         (any_external_decl, record_external_decl, bind_label, getdecls)
8464         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8465         (c_reset_state): Delete.
8466         (visible_builtins, c_override_global_bindings_to_false)
8467         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8468         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8469         (external_scope, binding_freelist, bind, free_binding_and_advance)
8470         (push_file_scope, pop_file_scope): New.
8471         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8472         (define_label, c_make_fname_decl, finish_decl)
8473         (mark_forward_parm_decls, build_compound_literal)
8474         (grokdeclarator, start_function, check_for_loop_decls)
8475         (identifier_global_value, record_builtin_type): Minor adjustments
8476         for new bindings structures.  Improve diagnostics and commentary.
8477         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8478         pushlevel/poplevel respectively.
8479         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8480         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8481         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8482         correct loop over multiple translation units; call fatal_error if
8483         requested to compile more than one file at once.  (This disables
8484         IMA temporarily - an up-front error being preferable to a crash.)
8485         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8486         (all actions): Adjust calls to pushlevel/poplevel.
8487         (parsing_iso_function_signature): Delete.
8488         (extdef_1): Fold into extdef.
8489         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8490         warn here about function definitions in the wrong style.
8491         (after_tyle_declarator, parm_declarator_starttypename)
8492         (parm_declarator_nostarttypename, notype_declarator): Remove
8493         commented-out productions.
8494         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8495         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8496         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8497         to suppress -Wold-style-definition after this error.
8498         (c_parse_file): Don't clear the binding stack or call
8499         finish_fname_decls here.  Correct comment.
8500         * c-typeck.c (same_translation_unit_p): Export.
8501         (common_type): Use c_override_global_bindings_to_false, not
8502         pushlevel/poplevel/declare_parm_level.
8503         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8504         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8505         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8506         * objc/objc-lang.c: Likewise.
8507         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8508         get_parm_info.
8509         (OBJC_VOID_AT_END): Delete; replace all uses
8510         with void_list_node.
8511         (generate_forward_declaration_to_string_table): Delete.
8512         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8513
8514         * coverage.c (create_coverage): Don't pushdecl anything.
8515         * langhooks.c (lhd_clear_binding_stack): Call
8516         lang_hooks.decls.poplevel, not poplevel.
8517         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8518         circular list rather than going into an infinite loop.
8519
8520 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8521
8522         * optabs.c (expand_binop): When synthesizing double word rotates
8523         from single word shifts, use a new register target if the provided
8524         target is not a REG already.
8525
8526 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8527
8528         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8529         * c-common.c (handle_mode_attribute): Add extra arg to
8530         build_pointer_type_for_mode and build_reference_type_for_mode.
8531         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8532         for INTEGER_CST.
8533         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8534         Chain pointers via TYPE_NEXT_PTR_TO.
8535         (build_reference_type_for_mode): Similarly.
8536         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8537         and build_reference_type_for_mode.
8538         (tree_check4_failed): New function.
8539         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8540         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8541         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8542         Add check.
8543
8544 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8545
8546         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8547         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8548         when both A and B are nonnegative.
8549         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8550         nonzero.
8551
8552 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8553
8554         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8555         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8556
8557 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8558
8559         PR optimization/14669
8560         * fold-const.c (fold): Only unwiden integer comparisons for equality
8561         and inequality operators, or when the signedness doesn't change.
8562
8563 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8564
8565         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8566         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8567         * config/sparc/t-linux: New file.
8568
8569 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8570
8571         * gcse.c (can_assign_to_reg_p): New function, split out from...
8572         (want_to_gcse_p): ...here.
8573         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8574         the rhs of a store.
8575
8576 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8577
8578         * c-typeck.c (same_translation_unit_p): Fix pasto.
8579
8580 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8581
8582         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8583         (PARAM_MAX_SCHED_REGION_INSNS): New.
8584         * sched-rgn.c: Include params.h
8585         (MAX_RGN_BLOCKS): Delete.
8586         (MAX_RGN_INSNS): Delete.
8587         (too_large): Return bool.  Convert to PARAM_VALUE.
8588         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8589         * doc/invoke.texi (param): Document max-sched-region-blocks and
8590         max-sched-region-insns.
8591
8592 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8593
8594         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8595         for base types.
8596
8597 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8598
8599         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8600         change.
8601
8602 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8603
8604         PR c/14069
8605         * c-decl.c (finish_struct): Change type of incorrect flexible array
8606         field into error_mark_node.
8607
8608 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8609
8610         PR target/14580
8611         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8612         who are not local for Darwin PIC.
8613
8614 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8615
8616         * regrename.c (regrename_optimize): Set regs_ever_live for all
8617         registers introduced as replacement.
8618
8619 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8620
8621         PR middle-end/14470
8622         * expr.c (mark_queue): New function.
8623         (emit_insns_enqueued_after_mark): New function replacing
8624         emit_queue.  Clear the body of emitted queued insns.
8625         (emit_queue): Call emit_insns_enqueued_after_mark.
8626         (store_expr): Mark the increment queue on entry.  Emit
8627         only the incrementations queued when expanding the source.
8628
8629 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8630
8631         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8632         of top level bootstrap, and consistency).  Reindent.
8633         * configure: Regenerate.
8634
8635 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8636
8637         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8638         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8639         unnecessary casts.
8640
8641 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8642
8643         PR target/14291
8644         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8645         __MINGW32__.
8646
8647 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8648
8649         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8650         to nonimmediate_operand.
8651         ("*doloop_di"): Likewise.
8652
8653 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8654
8655         * real.h (struct real_value): Use the same type for all
8656         bitfields.  Rename exp to uexp.
8657         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8658         Adjust all uses of exp...
8659         * builtins.c: ... here, ...
8660         * emit-rtl.c: ... here, and ...
8661         * real.c: ... and here.
8662
8663 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8664
8665         * pretty-print.c (pp_base_maybe_space): New function.
8666         * pretty-print.h (pp_base_maybe_space): Declare.
8667         (pp_maybe_space): New macro.
8668
8669 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8670
8671         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8672
8673 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8674
8675         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8676         of using register multiplication cost.
8677         (expand_mult): Adapt choose_mult_variant call.
8678         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8679         of MODE; pass appropriate cost bound.  Adjust result when
8680         performing signed multiplication by a negative constant.
8681         Don't use intermediate modes larger than word_mode.
8682
8683 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8684
8685         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8686         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8687         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8688         * explow.c (expr_size): Likewise.
8689         * expr.h (placeholder_list, find_placeholder): Deleted.
8690         * expr.c (store_constructor): Likewise.
8691         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8692         (placeholder_list, find_placeholder): Deleted.
8693         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8694         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8695         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8696         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8697         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8698         Likewise.
8699         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8700         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8701         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8702         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8703         Clean up by using first_rtl_op.
8704         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8705         (substitute_placeholder_in_expr): New function.
8706         * tree.def (WITH_RECORD_EXPR): Deleted.
8707         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8708         (substitute_placeholder_in_expr): New.
8709
8710 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8711
8712         * dojump.c (prefer_and_bit_test): Fix which part of
8713         the and_test is replaced.
8714
8715 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8716
8717         * frontends.texi: Add missing line.
8718
8719 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8720             Chris Devers  <cdevers@pobox.com>
8721             Joseph S. Myers  <jsm@polyomino.org.uk>
8722
8723         * doc/frontends.texi: Rewrite.
8724         * doc/gcc.texi: Update last modification date.
8725
8726 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8727
8728         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8729         message before redirecting the edge.
8730
8731 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8732
8733         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8734         flag.
8735         * explow.c (force_not_mem): Set REG_POINTER flag according to
8736         MEM_POINTER one.
8737         * rtl.h (MEM_POINTER): New macro.
8738         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8739         for MEM_POINTER.
8740
8741 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8742
8743         PR target/13889
8744         * cse.c (fold_rtx): Avoid substituting constants into unary
8745         conversion operations.
8746
8747 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8748
8749         * fold-const.c (fold): Replace "expr" with "t".
8750
8751 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8752
8753         PR c/12373
8754         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8755         DECL_ORIGINAL_TYPE if there isn't one.
8756
8757 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8758
8759         * fold-const.c (fold): Replace "final_type" with "type".
8760         Remove variable "final_type".
8761
8762 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8763
8764         * fold-const.c (fold): Constify "type".
8765         Replace "TREE_TYPE (t)" with "type".
8766
8767 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8768
8769         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8770         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8771         via (*targetm.foo) () with targetm.foo ().
8772
8773 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8774
8775         PR other/14630
8776         * doc/install.texi: Add info directory category and entry.
8777
8778 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8779
8780         * fold-const.c (fold): Replace "t" with "tem" where it is used
8781         as a temporary variable.  Remove "orig_t" and all of its uses.
8782
8783 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8784
8785         * fold-const.c (fold): Remove variable "invert".
8786         Move the handling of relational expressions that can be folded
8787         to a constant ...
8788         (fold_relational_const): ... here.
8789         (tree_expr_nonzero_p): New.
8790
8791 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8792
8793         PR c/14635
8794         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8795         DEF_GCC_BUILTIN.
8796
8797 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8798
8799         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8800         (GTFILES): Add $(srcdir)/dojump.h.
8801         (gt-dojump.h): New dependency.
8802         * dojump.c (and_reg, and_test, shift_test): New static variables.
8803         (prefer_and_bit_test): New function.
8804         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8805
8806 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8807
8808         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8809         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8810         reorg.c, tree.h: Fix comment typos.
8811
8812 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8813
8814         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8815         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8816         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8817         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8818         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8819         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8820         targetm.foo ().
8821
8822 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8823
8824         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8825         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8826         always_inline attribute.
8827         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8828         Treat expansion as completed even if literal argument is
8829         invalid (so that other expansions are not tried in vain).
8830
8831 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8832
8833         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8834         const0_rtx.
8835
8836 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8837
8838         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8839         ...
8840         (fold_abs_const): ... here.
8841
8842 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8843
8844         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8845
8846 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8847
8848         PR target/11520
8849         * config/avr/avr.md ("call_insn"): Handle explicit integer
8850         specially.
8851         (call_value_insn): Likewise.
8852
8853 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8854
8855         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8856
8857 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8858
8859         * fold-const.c (negate_expr): Move the handling of constants
8860         ...
8861         (fold_negate_const): ... here.
8862
8863 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8864
8865         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8866         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8867         * tree.c (debug_no_type_hash): Deleted.
8868         (type_hash_canon): Abort if passed a variant.
8869         Check lang_hooks.types.hash_types.
8870         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8871         (build_array_type): Remove unnecessary allocation of pointer type.
8872         (build_complex_type): Properly qualify resulting type.
8873
8874 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8875
8876         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8877
8878 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8879
8880         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8881         (expand_mult): ...here.
8882         (extract_high_half): New, split out from expand_mult_highpart.
8883         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8884         (expand_highpart): Evaluate the cost of a shift/add sequence,
8885         then see if any of the specialized optabs are cheaper.
8886
8887 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8888
8889         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8890
8891 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8892
8893         * convert.c (convert_to_real): Add more math builtins.
8894
8895 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8896
8897         * convert.c (convert_to_real): Reformat using switch stmt.
8898
8899 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8900
8901         * c-common.c (pointer_int_sum): Do not complain about using
8902         pointers to pointers-to-members.
8903
8904 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8905
8906         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8907         have moved to the target hooks structure".
8908
8909 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8910
8911         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8912         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8913         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8914         Likewise.
8915         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8916         Likewise.
8917         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8918         rm7_fp_quick): Likewise.
8919         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8920         rm9k_fquick): Likewise.
8921         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8922         Likewise.
8923         (ir_sr70_icmp): Delete.
8924
8925 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8926
8927         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8928         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8929         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8930         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8931         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8932         Protect with proper check.
8933         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8934         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8935         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8936         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8937         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8938         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8939         not TYPE_FIELDS.
8940         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8941
8942 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8943
8944         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8945         dest is set between beginning and current insn.
8946
8947 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8948
8949         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8950         visible "static" identifiers "extern" in a local scope.
8951         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8952         post-increments/decrements.
8953
8954 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8955
8956         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8957         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8958         (xtensa_va_start): Remove assignment to current_function_arg_words.
8959
8960 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8961
8962         * alias.c (record_set): Detect the case where a register is assigned
8963         a new value that has the same base term as the old one.
8964
8965 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8966
8967         * doloop.c: Removed.
8968         * loop-doloop.c: New file.
8969         * Makefile.in (doloop.o): Remove.
8970         (loop-doloop.o): New.
8971         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8972         * cfgloopanal.c (get_loop_level): New function.
8973         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8974         is leaved immediatelly.
8975         * loop.c (strength_reduce): Do not call doloop optimization.
8976         * loop.h (LOOP_BCT): Removed.
8977         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8978         (rest_of_handle_loop2): Call doloop_optimize_loops.
8979         (rest_of_compilation): Test for optimizations moved to
8980         rest_of_handle_loop2.
8981
8982 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8983
8984         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8985         for mixed mode.
8986         (rs6000_emit_prologue): Ditto.
8987         (rs6000_emit_epilogue): Ditto.
8988         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8989         macro for mixed mode.
8990
8991 2004-03-18  Jan Hubicka  <jh@suse.cz>
8992
8993         * predict.c (propagate_freq): Compute correctly frequency of
8994         EXIT_BLOCK.
8995
8996 2004-03-17  Eric Christopher  <echristo@redhat.com>
8997
8998         * builtins.c (apply_args_size): Use reg_raw_mode.
8999         (apply_result_size): Ditto.
9000
9001 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9002
9003         PR target/14620
9004         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9005
9006 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
9007
9008         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9009         32-bit builds when defaulting to 32-bit.
9010
9011 2004-03-17  Jan Hubicka  <jh@suse.cz>
9012
9013         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9014         array.
9015
9016 2004-03-17  James E Wilson  <wilson@specifixinc.com>
9017
9018         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9019         (hazard_nop): Change type to nop.
9020         (type): Split arith into arith, shift, slt, clz.  Delete darith.
9021         Fix all uses.  Change arith to multi if more than one insn emitted.
9022         * config/mips/5400.md (ir_vr54_arith): Likewise.
9023         * config/mips/5500.md (ir_vr55_arith): Likewise.
9024         * config/mips/7000.md (rm7_int_other): Likewise.
9025         * config/mips/9000.md (rm9k_int): Likewise.
9026         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9027
9028 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
9029
9030         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9031         to hold the subtype tree instead of recomputing it several times.
9032
9033 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9034
9035         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9036         CC_INVERT.
9037         * config/mn10300/mn10300.md (cc): Remove "invert".
9038
9039 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9040
9041         * builtins.c (integer_valued_real_p): Add builtin rint.
9042         (fold_builtin): Likewise.
9043         * convert.c (convert_to_real): Likewise.
9044
9045         * convert.c (convert_to_real): Fix typos in `long double'
9046         builtins.
9047
9048 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
9049
9050         PR c++/14481
9051         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9052         generated COMPOUND_EXPRs.
9053
9054 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9055
9056         * config/h8300/t-rtems (h8300-*-rtems*): New.
9057
9058 2004-03-16  Eric Christopher  <echristo@redhat.com>
9059
9060         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9061
9062 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9063
9064         * config/i386/i386-protos.h: Add a prototype for
9065         ix86_reverse_condition.
9066         * config/i386/i386.c (ix86_reverse_condition): New.
9067         * config/i386/i386.h (REVERSE_CONDITION): Use
9068         ix86_reverse_condition.
9069         * config/i386/i386.md: Use ix86_reverse_condition instead of
9070         REVERSE_CONDITION.
9071
9072 2004-03-16  J. Brobecker  <brobecker@gnat.com>
9073
9074         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9075
9076 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9077
9078         PR bootstrap/12974
9079         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9080
9081 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9082
9083         * c-common.c (c_common_type_for_mode): Build vector types on
9084         demand.
9085         (handle_mode_attribute): Deprecate using the mode attribute
9086         to create vector types.  Fix indentation.
9087         (vector_type_node_list): Remove.
9088         (handle_vector_size_attribute): Create vector types on demand.
9089         Strip a NON_LVALUE_EXPR from the attribute if there is one.
9090         * c-typeck.c (comptypes): Make vector types compatible if they
9091         have the same underlying mode.
9092         (convert_for_assignment): Use comptypes to convert between
9093         vector types.
9094         * tree.c (build_common_tree_nodes_2): Do not create vector types.
9095         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9096         vector types.
9097         * tree.h: Remove vector types.
9098         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9099         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9100         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9101         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9102         * doc/extend.texi (Vector Types): Document how to use the
9103         vector_size attribute to create vectors, rather than mode.
9104
9105         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9106         * config/i386/emmintrin.h: Likewise.
9107         * config/i386/mmintrin.h: Likewise.
9108         * config/i386/xmmintrin.h: Likewise.
9109         * config/sh/ushmedia.h: Likewise.
9110
9111 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9112
9113         * config/freebsd-spec.h, config/arc/arc-protos.h,
9114         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9115         config/arm/linux-gas.h, config/arm/semi.h,
9116         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9117         config/ia64/freebsd.h, config/mips/7000.md,
9118         config/mips/9000.md, config/ns32k/ns32k-protos.h,
9119         config/sparc/pbd.h: Update copyright.
9120
9121 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9122
9123         PR target/14577
9124         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9125
9126 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9127
9128         * combine.c (combine_simplify_rtx): Remove the "last"
9129         parameter and its documentation.  Adjust recursive calls.
9130         (simplify_logical): Always perform the only simplification
9131         controlled by "last", if the simplified expression is
9132         actually different.
9133         (try_combine): Do not pass the "last" parameter to
9134         combine_simplify_rtx.
9135
9136 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9137
9138         PR target/14599
9139         * config/mips/mips.md (UNSPEC_GP): New constant.
9140         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9141         an UNSPEC instead of (reg $gp).
9142         (mips16_gp_pseudo_reg): Change accordingly.
9143         (print_operand): Print $gp directly when handling CONST_GP_P.
9144
9145 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9146
9147         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9148         * longlong.h: Make code 68060 clean when compiling for m68060.
9149
9150 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9151
9152         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9153         * doc/md.texi: Clarify description of "i" constraint.
9154
9155 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9156
9157         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9158         Split store into store, fpstore, fpidxstore.  Fix all uses.
9159         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9160         Likewise.
9161         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9162         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9163         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9164         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9165         ir_sr70_fstore): Likewise.
9166
9167 2004-03-15  Richard Henderson  <rth@redhat.com>
9168
9169         PR middle-end/14535
9170         * except.c (collect_one_action_chain): Record action for cleanup
9171         outer of exception spec.
9172
9173 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9174
9175         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9176         Fix the check for abort and only do the mmap if we can.
9177
9178 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9179
9180         * config/sparc/sparc.h: Rework comments about the code model
9181         in 64-bit environment and the mode 'Pmode'.
9182         * doc/invoke.texi (SPARC options): Rework description of the
9183         different code models supported in 64-bit environment.
9184
9185 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9186
9187         * defaults.h (REVERSIBLE_CC_MODE): Define.
9188         * jump.c (reversed_comparison_code_parts): Don't check if
9189         REVERSIBLE_CC_MODE is defined.
9190
9191 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9192
9193         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9194         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9195         hosthooks.h, params.h, ra-colorize.c, web.c,
9196         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9197         config/avr/avr-protos.h, config/avr/avr.md,
9198         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9199         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9200         config/i386/freebsd.h, config/i386/freebsd64.h,
9201         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9202         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9203         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9204         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9205         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9206         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9207         config/sparc/aout.h, config/sparc/freebsd.h,
9208         config/sparc/litecoff.h, config/vax/vax-protos.h,
9209         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9210         copyright.
9211
9212 2004-03-15  Paul Brook  <paul@codesourcery.com>
9213
9214         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9215
9216 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9217
9218         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9219         (pp_c_cv_qualifier): Document.
9220         (pp_c_space_for_pointer_operator): Likewise.
9221         (pp_c_integer_constant): Likewise.
9222         (pp_c_identifier): Likewise.
9223         (pp_c_init_declarator): Don't print function body.
9224
9225 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9226
9227         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9228         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9229         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9230         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9231         wording and grammar.
9232
9233 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9234
9235         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9236         with lang_hooks.foo ().
9237         * builtins.c (expand_builtin_va_arg): Likewise.
9238         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9239         c_common_type_for_mode, c_common_nodes_and_builtins,
9240         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9241         * c-convert.c (convert): Likewise.
9242         * c-format.c (check_format_types): Likewise.
9243         * c-objc-common.c (c_tree_printer): Likewise.
9244         * c-typeck.c (build_unary_op, build_conditional_expr,
9245         build_binary_op): Likewise.
9246         * calls.c (try_to_integrate, expand_call,
9247         emit_library_call_value_1): Likewise.
9248         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9249         Likewise.
9250         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9251         cgraph_expand_function): Likewise.
9252         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9253         * coverage.c (build_fn_info_type, build_ctr_info_type,
9254         build_gcov_info, create_coverage): Likewise.
9255         * dbxout.c (dbxout_init): Likewise.
9256         * diagnostic.c (diagnostic_report_current_function): Likewise.
9257         * dojump.c (do_jump): Likewise.
9258         * dwarf2out.c (dwarf2_name): Likewise.
9259         * except.c (init_eh): Likewise.
9260         * explow.c (expr_size, int_expr_size): Likewise.
9261         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9262         Likewise.
9263         * expr.c (store_expr, store_constructor, safe_from_p,
9264         expand_expr_real, do_store_flag, try_casesi): Likewise.
9265         * function.c (push_function_context_to, pop_function_context_from,
9266         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9267         put_var_into_stack, allocate_struct_function, current_function_name):
9268         Likewise.
9269         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9270         Likewise.
9271         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9272         lhd_print_error_function): Likewise.
9273         * opts.c (handle_option, decode_options): Likewise.
9274         * passes.c (open_dump_file): Likewise.
9275         * print-tree.c (print_node): Likewise.
9276         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9277         expand_decl_cleanup, emit_case_nodes): Likewise.
9278         * stor-layout.c (variable_size): Likewise.
9279         * toplev.c (announce_function, wrapup_global_declarations,
9280         check_global_declarations, compile_file, default_tree_printer,
9281         process_options, lang_dependent_init, finalize): Likewise.
9282         * tree-dump.c (dequeue_and_dump): Likewise.
9283         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9284         initialize_inlined_parameters, declare_return_variable,
9285         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9286         walk_tree, copy_tree_r): Likewise.
9287         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9288         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9289         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9290         variably_modified_type_p, dump_tree_statistics): Likewise.
9291         * varasm.c (assemble_variable, compare_constant, copy_constant,
9292         force_const_mem, compute_reloc_for_constant, output_constant,
9293         output_addressed_constants, initializer_constant_valid_p): Likewise.
9294
9295 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9296
9297         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9298
9299 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9300
9301         * doc/install.texi: Reflect autoconf and automake version for
9302         libffi. Update autoconf version to 2.59.
9303
9304 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9305
9306         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9307         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9308         make_range, build_range_check, fold_range_test, unextend,
9309         constant_boolean_node, fold_binary_op_with_conditional_arg,
9310         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9311         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9312         with lang_hooks.foo ().
9313
9314 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9315
9316         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9317
9318 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9319
9320         * doc/install.texi: Note status of -fnew-ra.
9321
9322 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9323
9324         PR middle-end/14470
9325         * expr.c (store_expr): Call emit_queue before generating the move
9326         from the temporary to the original target.  Protect the temporary
9327         from emit_queue.
9328
9329 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9330
9331         PR target/14533
9332         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9333         other than UNSPEC_GOTOFF.
9334
9335 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9336
9337         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9338         to arm_legitimate_index_p.  Update all callers with SET as default
9339         value.
9340         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9341         range if OUTER is a sign-extend operation on QImode.  Correctly
9342         reject shift operations on sign-extended QImode addresses.
9343         (bad_signed_byte_operand): Delete.
9344         (arm_extendqisi_mem_op): New function.
9345         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9346         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9347         constraints.
9348         (CONSTRAINT_LEN): New.
9349         (EXTRA_CONSTRAINT): Delete.  Replace with...
9350         (EXTRA_CONSTRAINT_STR): ... this.
9351         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9352         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9353         is now always default.
9354         (define_splits for bad sign-extend loads): Delete.
9355         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9356         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9357         Rework 'U' constraint to 'Uv'.
9358         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9359         arm_extendqisi_mem_op.
9360         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9361         Add Uq constraint.
9362
9363 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9364
9365         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9366         with targetm version.
9367
9368         PR target/14567
9369         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9370         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9371         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9372         Update all users of RS6000_ARG_SIZE.
9373         (function_arg_advance): Count fregno using mode size.
9374         (function_arg): Handle long double split over regs and memory.
9375         (function_arg_partial_nregs): Likewise.
9376         (rs6000_va_arg): Repackage complex args.
9377
9378 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9379
9380         PR target/14047
9381         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9382         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9383         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9384
9385 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9386
9387         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9388         prototype.
9389         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9390         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9391
9392 2004-03-12  Andrew Pinski  <apinski@apple.com>
9393
9394         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9395         Use ret instead of result. Use addr instead of base.
9396
9397 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9398
9399         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9400         fixes required by libstdc++ and update installation instructions
9401         for libstdc++.a.
9402
9403 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9404
9405         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9406         leading '@' on fastcall symbols before stripping suffix.
9407
9408 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9409
9410         * combine.c (unmentioned_reg_p): New function to check whether an
9411         expression is a "specialization" of another, i.e. that there are
9412         no registers or memory references mentioned in the first that don't
9413         appear in the second.
9414         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9415         (combine_instructions): Also try combining instructions using the
9416         REG_EQUAL note from a preceding log-linked instruction.
9417
9418 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9419
9420         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9421
9422 2004-03-12  Matt Austern  <austern@apple.com>
9423
9424         * target.h (struct gcc_target): New target hook, unwind_label.
9425         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9426         * output.h (default_emit_unwind_label): New function.
9427         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9428         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9429         (TARGET_SUPPORTS_HIDDEN): New target macro.
9430         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9431         that corresponds to this FDE.
9432         (FRAME_BEGIN_LABEL): Allow target to override default label.
9433         (output_call_frame_info): If FDEs are linknonce, then use extra
9434         indirection for FDE encoding, output a label for each FDE, and
9435         output an empty label for each function without an FDE.
9436         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9437         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9438         decls with DECL_ONE_ONLY set, if that macro is defined.
9439         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9440         for a SUPPORTS_ONE_ONLY target.
9441         * config/darwin-protos.h (darwin_unique_section): Declare.
9442         (darwin_asm_named_section): Likewise.
9443         (darwin_section_type_flags): Likewise.
9444         (darwin_non_lazy_pcrel): Likewise.
9445         (darwin_emit_unwind_label): Likewise.
9446         (darwin_make_decl_one_only): Likewise.
9447         * config/darwin.c (machopic_finish): Get rid of tweak that
9448         eliminate stubs for symbols that are defined.
9449         (darwin_encode_section_info): Don't treat weak functions as defined.
9450         (darwin_make_decl_one_only): Define.
9451         (darwin_asm_named_section): Likewise.
9452         (darwin_section_type_flags): Likewise.
9453         (darwin_unique_section): Likewise.
9454         (darwin_emit_unwind_label): Likewise.
9455         (darwin_non_lazy_pcrel): Likewise.
9456         (darwin_asm_output_dwarf_delta): Difference between two labels is
9457         local only if both labels are local.
9458         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9459         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9460         (TARGET_SUPPORTS_HIDDEN): Likewise.
9461         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9462         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9463         (FRAME_BEGIN_LABEL): Likewise.
9464         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9465         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9466         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9467         (TARGET_ASM_UNIQUE_SECTION): Define.
9468         (EH_FRAME_SECTION_NAME): Define.
9469         (EH_FRAME_SECTION_ATTR): Likewise.
9470         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9471         (TARGET_ASM_NAMED_SECTION): Likewise.
9472         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9473         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9474         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9475         TARGET_ASM_EMIT_UNWIND_LABEL.
9476
9477 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9478
9479         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9480         existing exp10* case.
9481         (expand_builtin): Likewise.
9482
9483 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9484
9485         * doc/tm.texi (registers) <Values in Registers>: Add
9486         entry for REGMODE_NATURAL_SIZE.
9487
9488 2004-03-12  Richard Henderson  <rth@redhat.com>
9489
9490         PR target/14547
9491         * target.h (struct gcc_target): Move calls substructure before
9492         booleans.  Add split_complex_arg.
9493         * function.c (assign_parms, split_complex_args): Use it.
9494         * calls.c (expand_call): Likewise.
9495         (split_complex_values): Likewise.  Check for splittable types
9496         before allocating memory.
9497         (split_complex_types): Likewise.
9498         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9499         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9500         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9501         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9502         (TARGET_SPLIT_COMPLEX_ARG): New.
9503         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9504         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9505         (rs6000_override_options): Zap it for non-AIX.
9506         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9507         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9508         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9509         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9510         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9511         SPLIT_COMPLEX_ARGS entry.
9512
9513 2004-03-11  Richard Henderson  <rth@redhat.com>
9514
9515         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9516         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9517         (alpha_emit_xfloating_arith): Update to match.
9518         (alpha_emit_xfloating_compare): Likewise.
9519         (alpha_emit_xfloating_cvt): Likewise.
9520         (alpha_emit_xfloating_libcall): Take already built symbol,
9521         mark call const.
9522         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9523         op1 in a register.
9524
9525 2004-03-11  Richard Henderson  <rth@redhat.com>
9526
9527         PR target/14539
9528         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9529
9530         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9531
9532 2004-03-11  Richard Henderson  <rth@redhat.com>
9533
9534         PR middle-end/14477
9535         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9536
9537 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9538
9539         PR target/14262
9540         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9541         defined, pass small BLKmode values in registers in the low-order part.
9542
9543 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9544
9545         * combine.c (if_then_else_cond): Check for NULL return value of
9546         simplify_gen_subreg.
9547
9548 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9549
9550         PR target/14496
9551         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9552         TARGET_SINGLE_FLOAT.
9553
9554 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9555
9556         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9557         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9558         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9559         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9560
9561 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9562
9563         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9564         -((int)X>>C) where C is an integer constant one bit less than the
9565         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9566         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9567
9568         * simplify-rtx.c (simplify_unary_operation): Also implement the
9569         above transformations at the RTL level.
9570
9571 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9572
9573         * real.c (encode_ibm_extended): Do round low word.
9574
9575 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9576
9577         * config/arm/arm.md (is_xscale): Comment this attribute and move
9578         it a bit further up in the file, closer to related attributes.
9579
9580 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9581
9582         * config/host-solaris.c (sol_gt_pch_use_address): Add
9583         missing terminating marker to comment.
9584
9585 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9586
9587         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9588         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9589         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9590         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9591         move_operand as source predicate in all cases.
9592         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9593         Test reg_or_0_operand.  Use move_operand as source predicate.
9594         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9595         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9596         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9597         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9598         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9599         Use move_operand as source predicate.  Remove 'K' constraint.
9600         (*movqi_internal): Likewise movqi_internal.
9601         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9602         reg_or_0_operand.  Use move_operand as source predicate.
9603         (*movsf_softfloat): Likewise movsf_internal2.
9604         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9605         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9606         (*movdf_softfloat): Likewise movdf_internal2.
9607         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9608         for DImode if !TARGET_64BIT.
9609         (mips_legitimize_move): Simplify accordingly.
9610
9611 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9612
9613         PR/14362
9614         * var-tracking.c (struct variable_def): Added field refcount.
9615         (variable_htab_free): Decrease the refcount and delete variable
9616         only if there are no more references.
9617         (unshare_variable): New function.
9618         (vars_copy_1): Increase refcount instead of copying the variable.
9619         (variable_union): Share the variables where possible, unshare
9620         the variables if needed.
9621         (variable_different_p): Return false if var1 and var2 are
9622         the same structure.
9623         (variable_was_changed): Init the refcount of new variable.
9624         (set_frame_base_location): Unshare variable if needed.
9625         (set_variable_part): Init the refcount of new variable.
9626         Unshare the variables if needed.
9627         (delete_variable_part): Unshare the variables if needed.
9628         (emit_notes_for_differences_1): Init the refcount of new variable.
9629         (vt_add_function_parameters): Do not add function parameters to
9630         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9631         (vt_initialize): Do not add frame_base_decl to IN set of
9632         ENTRY_BLOCK_PTR because it is unused anyway.
9633
9634 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9635
9636         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9637         (vars_copy): Likewise.
9638         (variable_union): Likewise.
9639         (set_variable_part): Likewise.
9640         (delete_variable_part): Likewise.
9641
9642 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9643
9644         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9645         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9646         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9647         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9648         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9649         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9650         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9651         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9652         config/stormy16/stormy16.c: Fix comment typos and formatting.
9653
9654 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9655
9656         * configure: Regenerate, since I forgot to while committing Paolo's
9657         changes.
9658
9659 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9660
9661         PR ada/14131
9662         Move language detection to the top level.
9663         * configure.ac: Remove code to detect languages,
9664         it now lives exclusively in the top level.
9665         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9666         top level, renamed to ACX_PROG_GNAT.
9667
9668 2004-03-10  Richard Henderson  <rth@redhat.com>
9669
9670         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9671         extra arguments.
9672         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9673         and host_xmake_file fragments.
9674         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9675         (gt_pch_restore): Similarly for gt_pch_use_address.
9676         (default_gt_pch_get_address): New.
9677         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9678         (default_gt_pch_use_address): Split out of gt_pch_restore.
9679         (mmap_gt_pch_use_address): Likewise.
9680         * hooks.c (hook_voidp_size_t_null): Remove.
9681         (hook_bool_voidp_size_t_false): Remove.
9682         * hooks.h: Likewise.
9683         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9684         default_ or mmap_ definitions.
9685         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9686         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9687         and gt_pch_use_address.
9688         * config/host-linux.c, config/host-solaris.c: New files.
9689         * config/x-linux, config/x-solaris: New files.
9690         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9691         Update for changed definition.
9692         (darwin_rs6000_gt_pch_use_address): Likewise.
9693         * doc/hostconfig.texi: Update docs.
9694
9695 2004-03-10  Richard Henderson  <rth@redhat.com>
9696
9697         PR c/14517
9698         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9699         except for pedantic c90 mode.
9700
9701 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9702
9703         * configure.ac: Bump AC_PREREQ to 2.59.
9704         * configure: Regenerate.
9705
9706 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9707
9708         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9709         (exp10_optab, exp2_optab): Define corresponding macros.
9710         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9711         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9712         using exp10?f2 and exp2?f2 patterns.
9713         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9714         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9715         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9716         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9717
9718         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9719         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9720         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9721
9722 2004-03-10  Anthony Green  <green@redhat.com>
9723
9724         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9725
9726 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9727
9728         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9729         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9730         __LONGDOUBLE128.
9731         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9732         TARGET_OS_AIX_CPP_BUILTINS.
9733         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9734         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9735         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9736         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9737         previous change.
9738
9739 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9740
9741         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9742
9743 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9744
9745         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9746         __LONGDOUBLE128 on AIX.
9747
9748 2004-03-10  Andrew Haley  <aph@redhat.com>
9749
9750         PR optimization/14381
9751         * function.c (expand_function_end): Emit a blockage insn before
9752         the epilogue when -fnon-call-exceptions is used.
9753
9754         * except.c (expand_start_all_catch): Make comment more accurate.
9755
9756 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9757
9758         PR target/14480
9759         * config/rs6000/t-rtems: Add missing file on branch.
9760
9761 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9762
9763         * dbxout.c (dbxout_symbol_location): Do not output references
9764         to optimized-out constant pool symbols.
9765
9766 2004-03-10  Andreas Schwab  <schwab@suse.de>
9767
9768         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9769         twon34_r.
9770
9771 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9772
9773         * alias.c (alias_sets_might_conflict_p): New.
9774         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9775         * common.opt (Wstrict-aliasing=): New.
9776         * flags.h (warn_strict_aliasing): Change type to int.
9777         * opts.c (warn_strict_aliasing): Change type to int.
9778         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9779         * tree.h (alias_sets_might_conflict_p): Declare it.
9780         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9781
9782 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9783
9784         PR bootstrap/12371
9785         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9786         (CALL_USED_REGISTERS): Likewise.
9787         (REG_CLASS_CONTENTS): Likewise.
9788         (REG_ALLOC_ORDER): New.
9789         (REGNO_REG_CLASS): Use regno_reg_class.
9790         * config/m68k/m68k.c: Add regno_reg_class array.
9791
9792 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9793
9794         * config/ia64/ia64.md (divsi3): Fix algorithm.
9795           (udivsi3): Ditto.
9796           (setf_exp_xf): Remove '*' from name.
9797         * testsuite/gcc.dg/20040309-1.c: New test.
9798
9799 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9800
9801         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9802         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9803         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9804         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9805         (sparc_aout_select_rtx_section): Don't check
9806         SUNOS4_SHARED_LIBRARIES.
9807         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9808
9809 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9810
9811         PR other/14474
9812         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9813         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9814         INTERNALS".
9815
9816 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9817
9818         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9819         (LIBGCC_SPEC): Update to match.
9820
9821 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9822
9823         * c-decl.c (last_function_parms, last_function_parm_tags)
9824         (last_function_parm_others, current_function_parms)
9825         (current_function_parm_tags, current_function_parm_others):
9826         Delete.
9827         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9828         New macros.
9829         (grokdeclarator): For function definitions, save the arg-info
9830         block from the declarator in DECL_ARGUMENTS.
9831         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9832         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9833         contains only PARM_DECLs.  Improve diagnostics.
9834         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9835         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9836         (store_parm_decls_newstyle): Take the function to operate on,
9837         and an arg-info block, as arguments; don't get anything from
9838         current_function_* globals.
9839         (store_parm_decls_oldstyle): Likewise.
9840         (store_parm_decls): Pass fndecl and its arg-info block down to
9841         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9842         argument lists through store_parm_decls_newstyle to reduce
9843         overhead.
9844         (pushdecl): Comment on the problems with the call to copy_node.
9845         Clear DECL_ARGUMENTS of the old node after copying it, if it
9846         is an arg-info block instead of a chain of decls.
9847         (start_function): Do not manipulate current_function_parm* or
9848         last_function_parm*.
9849
9850 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9851             Andrew Pinski  <pinskia@physics.uc.edu>
9852
9853         * ifcvt.c (noce_try_sign_mask): New function to transform
9854         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9855         (noce_process_if_block): Call noce_try_sign_mask.
9856
9857 2004-03-09  Andrew Pinski  <apinski@apple.com>
9858
9859         * c-typeck.c (tagged_types_tu_compatible_p):
9860         Fix typo.
9861
9862 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9863
9864         * simplify-rtx.c (simplify_const_relational_operation): New function
9865         renamed from simplify_relational_operation.
9866         (simplify_relational_operation): Change prototype to accept an
9867         additional mode argument.  Call simplify_const_relational_operation.
9868         (simplify_gen_relational): Update simplify_relational_operation call.
9869         (simplify_ternary_operation): Update simplify_relational_operation
9870         subroutine call to use simplify_const_relational_operation instead.
9871
9872         * rtl.h (simplify_const_relational_operation): Prototype here.
9873         (simplify_relational_operation): Add addtional mode argument.
9874
9875         * combine.c (combine_simplify_rtx): Update calls to
9876         simplify_relational_operation.
9877         (simplify_set): Likewise.
9878         (gen_binary): Likewise.
9879         * cse.c (fold_rtx): Likewise.
9880         * dojump.c (compare_from_rtx): Likewise.
9881         (do_compare_rtx_and_jump): Likewise.
9882         * integrate.c (subst_constants): Likewise.
9883         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9884
9885 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9886
9887         * config/m32r/m32r.md: Remove all define_peephole's.
9888
9889 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9890
9891         * config/rs6000/rs6000.md: Remove trailing whitespace.
9892
9893 2004-03-08  Eric Christopher  <echristo@redhat.com>
9894
9895         * Makefile.in (site.exp): Add libiconv variable definition.
9896
9897 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9898
9899         * configure: Regenerate for config/accross.m4 correction.
9900
9901 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9902
9903         PR target/14480
9904         * config/rs6000/t-rtems: Add missing file on branch.
9905
9906 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9907
9908         PR middle-end/14289
9909         * c-typeck.c (c_mark_addressable): A register variable should
9910         be considered global if its not automatic, i.e. TREE_PUBLIC,
9911         TREE_STATIC or DECL_EXTERNAL.
9912         * function.c (put_var_into_stack): Call abort when placing a
9913         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9914
9915 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9916
9917         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9918         ("*extendqisi2_short_displ"): Likewise.
9919
9920 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9921
9922         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9923         (comp_operator): Likewise.
9924         * config/pdp11/pdp11-protos.h: Remove corresponding
9925         prototypes.
9926
9927 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9928
9929         * expr.c (highest_pow2_factor_for_type): Rename into
9930         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9931         TYPE_ALIGN when the target is a COMPONENT_REF.
9932         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9933
9934 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9935
9936         * config/rs6000/rs6000.c: Formatting fix.
9937         (legitimate_offset_address_p): Correct offset range check.
9938
9939         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9940         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9941         and MASK_STRING.
9942
9943 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9944
9945         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9946         for little endian.
9947         ("ashrdi3_no_power"): Disable for little endian.
9948         (ashrdi3): Same.
9949
9950 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9951
9952         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9953         builtins.
9954
9955 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9956
9957         PR target/14471
9958         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9959         case, checking for -no-mul-bug-abort option.
9960         * configure, config.in: Regenerate.
9961         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9962         and -mno-mul-bug-workaround.
9963         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9964         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9965         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9966         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9967         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9968         sure mulu.d is not last on cache-line.
9969         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9970         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9971         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9972         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9973         -mno-mul-bug-workaround.
9974         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9975         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9976         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9977         relation to MULT in head comment.
9978         (cris_op_str): Abort for MULT.
9979         (cris_print_operand) <case '!'>: New case.
9980
9981 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9982
9983         PR debug/11983
9984         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9985         dw_val_class_vec.  Replace use throughout file.
9986         (dw_float_const): Delete.
9987         (dw_vec_const): New.
9988         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9989         throughout file.
9990         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9991         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9992         (size_of_die): Adjust dw_val_class_vec sizing.
9993         (output_die): Output dw_val_class_vec.
9994         (insert_int, extract_int, insert_float): New functions.
9995         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9996         Handle CONST_VECTOR.
9997         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9998
9999 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10000
10001         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10002         AltiVec abi cannot co-exist.
10003
10004         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10005
10006 2004-03-07  Jan Hubicka  <jh@suse.cz>
10007
10008         * except.c (emit_to_new_bb_before):  Break fallthru edges.
10009
10010 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
10011
10012         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10013         ("*lshrsi3"): Also accept an immediate for 68HC12.
10014         ("*ashrsi3_const"): Likewise.
10015         ("*ashrsi3"): Likewise.
10016         ("*ashlsi3_const"): Likewise.
10017         ("*ashlsi3"): Likewise.
10018         ("cmphi_1_hc12"): Compare two hard register by pushing them and
10019         comparing with a pop; don't use a split for that.
10020         ("cmphi split"): Disable compare split for 68HC12.
10021
10022         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10023         the status operands if they have side effects.
10024
10025 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10026
10027         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10028         definition.
10029         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10030         config/h8300/h8300.h, config/ia64/ia64.h,
10031         config/mcore/mcore.h, config/mmix/mmix.h,
10032         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10033         config/stormy16/stormy16.h, config/v850/v850.h,
10034         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10035         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10036         definition.
10037
10038 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10039
10040         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10041         <XOR_EXPR>: Fold x ^ x as zero.
10042         <AND_EXPR>: Fold x & x as x.
10043
10044 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10045
10046         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10047         "foo++ == const" into "++foo == const+incr".
10048
10049 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
10050
10051         * config/mips/mips.c (mips_in_small_data_p): Return false if
10052         TARGET_ABICALLS.
10053
10054 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
10055
10056         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10057         the stack register.
10058         (expand_prologue): Don't make an interrupt or a trap handler a far
10059         symbol.
10060         (m68hc11_initial_elimination_offset): Likewise.
10061
10062 2004-03-06  Richard Henderson  <rth@redhat.com>
10063
10064         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10065
10066 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10067
10068         * config/ns32k/ns32k-protos.h: Add a prototype for
10069         ns32k_notice_update_cc.
10070         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10071         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10072         ns32k_notice_update_cc.
10073
10074 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10075
10076         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10077         "*load_multiple_si"): Allow only if reload_completed.
10078         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10079         Likewise.
10080
10081 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10082
10083         * config/vax/vax-protos.h: Add a prototype for
10084         vax_notice_update_cc.
10085         * config/vax/vax.c (vax_notice_update_cc): New.
10086         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10087         vax_notice_update_cc.
10088
10089 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
10090
10091         * collect2.c (main): Only export initfunc and finifunc if
10092         LD_INIT_SWITCH not defined.
10093         (scan_prog_file): Only export constructors and destructors if
10094         LD_INIT_SWITCH not defined.  Only export symbols not found in
10095         shared objects.
10096
10097 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10098
10099         * pa.md (icacheflush): Reorder operands to make match_scratch operand
10100         last.
10101         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10102         from calls to gen_icacheflush.
10103
10104 2004-03-06  Richard Henderson  <rth@redhat.com>
10105
10106         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10107         (TARGET_LONG_DOUBLE_128): New.
10108         (TARGET_SWITCHES): Add long-double-{128,64}.
10109         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10110         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10111         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10112         (WIDEST_HARDWARE_FP_SIZE): New.
10113         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10114         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10115         if TARGET_VAX_FLOAT.
10116         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10117         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10118
10119 2004-03-06  Richard Henderson  <rth@redhat.com>
10120
10121         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10122         botched rtx class conversion.
10123
10124 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10125
10126         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10127         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10128
10129         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10130         macros.
10131         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10132
10133 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10134
10135         PR target/14343
10136         * config/i386/i386.md (movv2di_internal): Conditionalize on
10137         TARGET_SSE, not TARGET_SSE2.
10138
10139 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10140
10141         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10142         duplicated line.
10143
10144 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10145
10146         * builtins.c: Consistently use logN not log* in comments.
10147
10148 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10149
10150         * rtl.h (mem_expr_equal_p): Function prototype added.
10151         * cfgcleanup.c (merge_memattrs): New function.
10152         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10153         * emit-rtl.c (mem_expr_equal_p): New function.
10154
10155 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10156
10157         * objc/objc-act.c (synth_module_prologue): Const-qualify
10158         objc_selector type if using the GNU runtime; fix generated
10159         signatures for objc_msg_lookup and objc_msg_lookup_super
10160         to match what GNU ObjC headers provide; reformat and clean up.
10161         (synth_self_and_ucmd_args): Use previously constructed (and
10162         hence possibly const-qualified) objc_selector type.
10163
10164 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10165
10166         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10167
10168 2004-03-05  Jason Merrill  <jason@redhat.com>
10169
10170         * tree.h (TYPE_HASH): Use TYPE_UID.
10171         (TREE_HASH): New macro with old definition of TYPE_HASH.
10172         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10173         (build_array_type, build_function_type): Likewise.
10174         (build_method_type_directly): Likewise.
10175         (build_offset_type, build_complex_type): Likewise.
10176         (type_hash_list, attribute_hash_list): Likewise. Now static.
10177         * except.c: s/TYPE_HASH/TREE_HASH/.
10178
10179 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10180
10181         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10182         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10183         __va_ndx by 2 words when referencing an argument on the stack.
10184         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10185         words when an arg on the stack is first seen.
10186
10187 2004-03-05  Paul Brook  <paul@codesourcery.com>
10188
10189         * arm.h (ARM_FLAG_VFP): Remove.
10190         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10191         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10192
10193 2004-03-05  Paul Brook  <paul@codesourcery.com>
10194
10195         * function.c (assign_parms): Include pretend alignment offset.
10196
10197 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10198
10199         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10200         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10201
10202 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10203
10204         * configure.ac: When passing --enable-languages to subdir
10205         configure when host != build, make sure we don't pass an empty
10206         value.
10207         * configure: Regenerate.
10208
10209 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10210
10211         PR 13577
10212         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10213         options.
10214
10215 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10216
10217         * simplify-rtx.c (simplify_relational_operation): If
10218         flag_wrapv is set, do not move terms between the two
10219         side of a relational operator.
10220
10221 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10222
10223         * rtlanal.c: Include target.h and output.h
10224         (rtx_cost, address_cost, default_address_cost): Move from...
10225         * cse.c (rtx_cost, address_cost, default_address_cost):
10226         ... this file.
10227         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10228         * Makefile.in: Adjust dependencies.
10229
10230 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10231
10232         * cse.c (cse_end_of_basic_block): Make static.
10233         * local-alloc.c (function_invariant_p): Move to
10234         reload1.c.
10235         * loop.c (libcall_other_reg, record_excess_regs):
10236         Make static.
10237         * reload1.c (function_invariant_p): Moved here
10238         from local-alloc.c, made static.
10239         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10240         libcall_other_reg, record_excess_regs): Remove
10241         declarations.
10242
10243 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10244
10245         * config/m32r/m32r.c (signed_comparison_operator): Add a
10246         missing parenthesis.
10247
10248 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10249
10250         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10251         going to call mmap again.  Read the file into the right place.
10252         Give a fatal error if we have to relocate.
10253
10254 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10255
10256         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10257         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10258
10259 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10260
10261         PR other/14354
10262         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10263         round the same.  When rounding, clear bits that would cause a
10264         second rounding in pack_d.
10265         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10266
10267 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10268
10269         PR c++/14425, c++/14426
10270         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10271         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10272         Change C++ definitions to accept a 'const int' argument;
10273         the prototypes already do.
10274         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10275         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10276         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10277         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10278         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10279         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10280         end in ..._int; change them to accept an int instead of a char
10281         as the last parameter.
10282
10283 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10284
10285         * genmultilib:  Change '=' to '-' when translating option names
10286         to directory names.
10287
10288 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10289
10290         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10291         stack slot for temp used for result of BLKmode but in integral mode.
10292
10293 2004-03-04  Jan Hubicka  <jh@suse.cz>
10294
10295         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10296
10297         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10298         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10299
10300 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10301
10302         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10303         * testsuite/gcc.dg/20040303-1.c: New test.
10304
10305 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10306
10307         * ppro.md: Rewrite as a DFA pipeline description.
10308         * i386.md: Remove all uses of the ppro_uops attribute.
10309         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10310         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10311         ix86_sched_reorder, ix86_variable_issue,
10312         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10313         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10314         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10315         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10316         * athlon.md (athlon_ssecmp_load): Fix comment
10317
10318 2004-03-04  Stuart Hastings  <stuart@apple.com>
10319
10320         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10321
10322 2004-03-04  Stuart Hastings  <stuart@apple.com>
10323
10324         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10325         686, tell Darwin assembler to allow prefetch insns, non-empty def
10326         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10327
10328 2004-03-04  DJ Delorie  <dj@redhat.com>
10329
10330         PR optimization/14282
10331         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10332         between a call and the assignment of its return value.
10333
10334 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10335
10336         * config/h8300/h8300.c: Put a comment for every function.
10337
10338 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10339
10340         * config/h8300/h8300.md: Add comments about peephole2's.
10341
10342 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10343
10344         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10345
10346 2004-03-04  Jan Hubicka  <jh@suse.cz>
10347
10348         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10349         * cselib.c (cselib_record_memory): New static variable.
10350         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10351         Give up on memories when asked for.
10352         (cselib_init): Accept new argument.
10353         * cselib.h (cselib_init): Update prototype.
10354         * gcse.c (local_cprop_pass): Update call of cselib_init.
10355         * loop.c (load_mems): Update call of cselib_init.
10356         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10357         * sched-deps.c (sched_analyze): Update call of cselib_init.
10358
10359 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10360             GP <gp@qnx.com>
10361
10362         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10363         when compiling PIC.
10364
10365 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10366
10367         PR/14362
10368         * var-tracking.c (track_expr_p): Do not track variables which
10369         should be ignored for debugging purposes.
10370
10371 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10372
10373         * real.c (encode_ibm_extended): Don't bother rounding low double.
10374         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10375         when fmt->pnan < fmt->p.
10376
10377 2004-03-04  Eric Christopher  <echristo@redhat.com>
10378
10379         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10380         only range of valid arg registers and fixed_regs.
10381
10382 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10383
10384         PR target/14406
10385         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10386         (abstf2, abstf2_internal): New define_expand.
10387
10388 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10389
10390         PR optimization/14235
10391         * expr.c (convert_move): Copy the source to a new pseudo
10392         when converting from a sub-word source to a larger-than-word
10393         register which conflicts with the source.
10394
10395 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10396
10397         PR 13728
10398         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10399         parameters with the same name, unless one is a forward decl.
10400         Do not issue a redundant-redeclaration warning for forward
10401         decls of parameters.
10402
10403 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10404
10405         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10406         configuration.
10407
10408 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10409
10410         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10411
10412 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10413
10414         * target-def.h (TARGET_OPTF): Delete.
10415         * c-opts.c (TARGET_OPTF): Define.
10416
10417 2004-03-04  Jan Hubicka  <jh@suse.cz>
10418
10419         * cselib.c (cselib_finish): Fix another miss-application of my previous
10420         patch.
10421
10422 2004-03-03  Mike Stump  <mrs@apple.com>
10423
10424         Add framework support for darwin.
10425
10426         * c-incpath.c: Include target.h and machmode.h.
10427         (add_path): Use a consistent style for cpp_dir.  Initialize
10428         p->construct to 0.
10429         (add_cpp_dir_path): New.
10430         (register_include_chains): Add use of extra_includes callback.
10431         (hook_void_int): Add.
10432         (target_c_incpath): Add.
10433         * c-incpath.h (add_cpp_dir_path): New.
10434         (target_c_incpath_s): Add.
10435         (target_c_incpath): Add.
10436         (C_INCPATH_INIT): Add.
10437         * c-opts.c (c_common_missing_argument,
10438         c_common_handle_option): Add -F argument processing.
10439         * c.opt: Add -F argument processing.
10440         * gcc.c (trad_capable_cpp): Add -F argument processing.
10441         * cppfiles.c (find_file_in_dir): Update to use construct
10442         callback.
10443         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10444         cpp_get_prev): New.
10445         (_cpp_find_file): Use search_path_exhausted.
10446         (make_cpp_dir): Initialize construct to 0.
10447         * cpplib.h (missing_header_cb
10448         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10449         (cpp_callbacks): Add missing_header
10450         (cpp_dir): Add construct.
10451         * target-def.h: (TARGET_OPTF): New.
10452         * hooks.c (hook_void_int, hook_void_charptr): Add.
10453         * hooks.h (hook_void_int, hook_void_charptr): Add.
10454         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10455         $(MACHMODE_H) dependencies.
10456         * doc/invoke.texi (Darwin Options): Document -F.
10457         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10458         (TARGET_OPTF): Add.
10459         * fix-header.c (target_c_incpath): Add.
10460
10461         * config/darwin-c.c: Add c-incpath.h include.
10462         (using_frameworks, find_subframework_file,
10463         find_subframework_header, add_system_framework_path,
10464         frameworks_in_use, num_frameworks, max_frameworks,
10465         add_framework, find_framework, struct framework_header,
10466         framework_header_dirs, framework_construct_pathname,
10467         find_subframework_file, add_system_framework_path,
10468         add_framework_path, framework_defaults,
10469         darwin_register_frameworks, find_subframework_header): Add.
10470         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10471         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10472         (CPP_SPEC): Add __APPLE_CC__ support.
10473         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10474
10475 2004-03-04  Jan Hubicka  <jh@suse.cz>
10476
10477         * cselib.c (cselib_finish): Fix miss-application of my previous
10478         patch.
10479
10480 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10481
10482         * hooks.c (hook_tree_tree_identity): New.
10483         * hooks.h: Add a prototype for hook_tree_tree_identity.
10484         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10485         instead of MD_ASM_CLOBBERS.
10486         * system.h (MD_ASM_CLOBBERS): Poison.
10487         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10488         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10489         * target.h (gcc_target): Add md_asm_clobbers.
10490         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10491         (ix86_md_asm_clobbers): New.
10492         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10493         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10494         TARGET_MD_ASM_CLOBBERS.
10495
10496 2004-03-03  Stuart Hastings  <stuart@apple.com>
10497
10498         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10499
10500 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10501
10502         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10503
10504         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10505         (ASM_DOUBLE): Likewise.
10506         (ASM_LONGDOUBLE): Likewise.
10507         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10508
10509 2004-03-03  Richard Henderson  <rth@redhat.com>
10510
10511         PR opt/13862
10512         * cselib.c (cselib_record_sets): Don't record multiple sets in
10513         asm insns.
10514
10515 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10516
10517         * common.opt: Add description of the new -fgcse-after-reload flag.
10518
10519         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10520
10521         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10522         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10523         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10524         get_bb_avail_insn, hash_scan_set_after_reload,
10525         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10526         gcse_after_reload, get_bb_avail_insn): New functions to implement
10527         gcse-after-reload.
10528         (gcse_after_reload_main): New function, the main entry point to
10529         gcse-after-reload.
10530
10531         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10532
10533         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10534
10535         * toplev.c (flag_gcse_after_reload): Initialization.
10536
10537         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10538
10539         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10540         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10541         the gcse after reload optimization.
10542
10543         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10544         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10545         parameters.
10546
10547         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10548
10549 2004-03-03  Nicolas Pitre <nico@cam.org>
10550
10551         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10552         small negative values.
10553
10554 2004-03-03  Jan Hubicka  <jh@suse.cz>
10555
10556         * cselib.c (hash_table):  Remove GTY marker.
10557         (reg_values): Turn into array.
10558         (used_regs): Likewise.
10559         (n_used_regs): New static variable.
10560         (reg_values_old): Kill.
10561         (clear_table): Update uses of arrays.
10562         (cselib_lookup): Likewise.
10563         (cselib_record_set): Likewise.
10564         (cselib_init): Likewise.
10565         (cselib_finish): Likewise.
10566         (cselib_udpate_varray_sizes): Kill.
10567         * cselib.h (cselib_update_varray_sizes): Kill.
10568
10569 2004-03-03  Paul Brook  <paul@codesourcery.com>
10570
10571         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10572
10573 2004-03-03  Jan Hubicka  <jh@suse.cz>
10574
10575         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10576         Rename from ...; make statistics transparent.
10577         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10578         (loc_descriptor): New structure.
10579         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10580         add_statistics):
10581         New static function.
10582         (ggc_record_overhead, dump_statistics): New global function.
10583         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10584         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10585         from ...; accept locations
10586         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10587         ggc_realloc, ggc_alloc_typed):  ... this one.
10588         from ...; accept locations
10589         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10590         ggc_alloc_stat): Rename from ... ; pass locations
10591         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10592         ... this one.
10593         (ggc_alloc_stat): Record overehead.
10594         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10595         ggc_realloc, ggc_alloc_typed):  Turn to macros
10596         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10597         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10598         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10599         * langhooks.h (lhd_make_node): Declare.
10600         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10601         * langhooks.c (lhd_make_node): New.
10602         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10603         locations.
10604         (rtx_alloc, swallow_copy_rtx): ... this one.
10605         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10606         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10607         * toplpev.c (finalize): Dump stats.
10608         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10609         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10610         Rename from ... ; pass locators.
10611         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10612         build?,  build_decl): Declare.
10613         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10614         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10615         Declare.
10616         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10617         build?,  build_decl): New macros.
10618         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10619         * statistics.h: New file.
10620
10621 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10622             Richard Sandiford  <rsandifo@redhat.com>
10623
10624         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10625         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10626         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10627         * config/mips/mips.c (mips_output_division): Fill the branch delay
10628         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10629         TARGET_FIX_R4400.
10630         (mips_output_division): Adjust accordingly.
10631         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10632         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10633
10634 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10635
10636         * alias.c (rtx_equal_for_memref_p): Use predicates
10637         to test rtx classes and new rtx class codes, possibly
10638         splitting conditionals that tested against '<' and 'o'.
10639         * caller-save.c (save_call_clobbered_regs): Likewise.
10640         * combine.c (contains_muldiv, find_split_point, subst,
10641         combine_simplify_rtx, simplify_if_then_else,
10642         simplify_set, simplify_logical, expand_compound_operation,
10643         make_compound_operation, if_then_else_cond, known_cond,
10644         apply_distributive_law, cached_nonzero_bits,
10645         cached_num_sign_bit_copies, simplify_shift_const,
10646         gen_binary, simplify_comparison, update_table_tick,
10647         record_value_for_reg, get_lsat_value_validate): Likewise.
10648         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10649         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10650         Likewise.
10651         * emit-rtl.c (copy_insn_1): Likewise.
10652         * expr.c (force_operand): Likewise.
10653         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10654         * flow.c (notice_stack_pointer_modification_1,
10655         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10656         and_reg_cond, elim_reg_cond): Likewise.
10657         * function.c (update_epilogue_consts): Likewise.
10658         * genattrtab.c (attr_rtx_1): Likewise.
10659         * genopinit.c (gen_insn): Likewise.
10660         * integrate.c (subst_constants): Likewise.
10661         * jump.c (reversed_comparison_code_parts,
10662         reversed_comparison_code, delete_related_insns,
10663         rtx_renumbered_equal_p): Likewise.
10664         * local-alloc.c (block_alloc): Likewise.
10665         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10666         canonicalize_condition): Likewise.
10667         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10668         Likewise.
10669         * optabs.c (add_equal_node, expand_binop): Likewise.
10670         * predict.c (estimate_probability): Likewise.
10671         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10672         * recog.c (validate_replace_rtx_1, comparison_operator,
10673         offsettable_address_p, constrain_operands): Likewise.
10674         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10675         Likewise.
10676         * regclass.c (scan_one_insn): Likewise.
10677         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10678         * regrename.c (kill_autoinc_value): Likewise.
10679         * reload.c (find_reusable_reload, find_reloads,
10680         reg_overlap_mentioned_for_reload_p): Likewise.
10681         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10682         * rtl.c (copy_rtx): Likewise.
10683         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10684         * rtlanal.c (commutative_operand_precedence): Likewise.
10685         * sched-deps.c (conditions_mutex_p): Likewise.
10686         * sched-rgn.c (is_cfg_nonregular): Likewise.
10687         * simplify-rtx.c (simplify_gen_binary,
10688         simplify_gen_relational, simplify_replace_rtx,
10689         simplify_unary_operation, simplify_binary_operation,
10690         simplify_ternary_operation, simplify_rtx): Likewise.
10691         * unroll.c (reg_dead_after_loop): Likewise.
10692         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10693         print_operand): Likewise.
10694         * config/arc/arc.c (proper_comparison_operator): Likewise.
10695         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10696         Likewise.
10697         * config/avr/avr.c (_reg_unused_after): Likewise.
10698         * config/frv/frv.c (frv_ifcvt_modify_tests,
10699         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10700         * config/i386/i386.c (ix86_comparison_operator,
10701         ix86_carry_flag_operator, fcmov_comparison_operator,
10702         arith_or_logical_operator, print_operand,
10703         ix86_expand_binary_operator, ix86_binary_operator_ok):
10704         Likewise.
10705         * config/i386/i386.md: Likewise.
10706         * config/ia64/ia64.c (not_postinc_memory_operand,
10707         ia64_print_operand, update_set_flags, errata_emit_nops):
10708         Likewise.
10709         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10710         CONSTRAINT_OK_FOR_S): Likewise.
10711         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10712         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10713         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10714         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10715         Likewise.
10716         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10717         eqne_comparison_operator, signed_comparison_operator):
10718         Likewise.
10719         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10720         Likewise.
10721         * config/mmix/mmix (mmix_foldable_comparison_operator,
10722         mmix_comparison_operator): Likewise.
10723         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10724         * config/rs6000/rs6000.c (stmw_operation,
10725         branch_comparison_operator, trap_comparison_operator,
10726         ccr_bit): Likewise.
10727         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10728         * config/s390/s390.c (s390_alc_comparison,
10729         s390_slb_comparison):L Likewise.
10730         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10731         Likewise.
10732         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10733         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10734         emit_hard_tfmode_operation, reg_unused_after)
10735         * doc/md.texi, doc/rtl.texi: Likewise.
10736
10737         * ra-debug.c: Add 2004 to list of copyright years.
10738         * unroll.c: Likewise.
10739
10740         * combine.c (simplify_logical): Remove dummy test,
10741         (apply_distributive_law): Fix typo in comment.
10742         GET_CODE (x) == AND so x is a commutative binary op.
10743         * jump.c (delete_related_insns): simplify loop
10744         condition, move testing of RTX codes inside the loop.
10745         (rtx_renumbered_equal_p): do not use RTX_CODE.
10746         * rtl.c (rtx_class): Declare as enum rtx_class.
10747         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10748         Move to RTX_COMM_COMPARE class.
10749         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10750         Move to RTX_CONST_OBJ class.
10751         * rtl.h (enum rtx_class): New declaration,
10752         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10753         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10754         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10755         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10756         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10757         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10758         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10759         OBJECT_P): New macros.
10760         * config/sparc/sparc.c (noov_compare_op): Remove register
10761         from parameter.
10762
10763 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10764
10765         * target.h: Remove texi jargons in comments.
10766
10767 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10768
10769         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10770         threshold to 0x4f.
10771
10772         Revert:
10773         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10774         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10775         as well.
10776         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10777         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10778
10779 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10780
10781         * doc/md.texi (cbranchmode4): New.
10782
10783 2004-03-02  Eric Christopher  <echristo@redhat.com>
10784
10785         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10786         fix_trunc.
10787         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10788         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10789         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10790         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10791
10792 2004-03-02  Richard Henderson  <rth@redhat.com>
10793
10794         PR middle-end/11767
10795         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10796         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10797         before the compare, if flag_non_call_exceptions.
10798
10799 2004-03-02  Richard Henderson  <rth@redhat.com>
10800
10801         PR middle-end/14327
10802         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10803         emitting the label, not after.
10804
10805 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10806
10807         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10808         (m68hc11_mov_addr_mode): Likewise.
10809         (m68hc11_override_options): Initialize them based on target.
10810         (register_indirect_p): Allow a MEM for indirect addressing modes and
10811         use flags to control what is allowed.
10812         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10813         supported addressing modes.
10814         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10815         (go_if_legitimate_address_internal): Likewise.
10816         (m68hc11_indirect_p): Likewise and check the mode.
10817         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10818
10819 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10820
10821         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10822         (expand_builtin_setjmp_setup): Use
10823         targetm.builtin_setjmp_frame_value instead of
10824         BUILTIN_SETJMP_FRAME_VALUE.
10825         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10826         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10827         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10828         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10829         * targhooks.c (default_builtin_setjmp_frame_value): New.
10830         * targhooks.h: Add a prototype for
10831         default_builtin_setjmp_frame_value.
10832         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10833         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10834
10835 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10836
10837         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10838         sequences of moves.
10839         (add peepholes): New peepholes to optimize sequences adding small
10840         constants.
10841         (bset peepholes): New peepholes to transform an OR in a bset form
10842         (bclr peepholes): Likewise for bclr form.
10843         (cmp peepholes): New peepholes to avoid register copies when comparing.
10844
10845 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10846
10847         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10848         to separate push from moves.
10849         ("*pushdf_internal"): Likewise.
10850         ("*pushsf_internal"): Likewise.
10851         ("*pushsi_internal"): Likewise.
10852         ("movdi_internal"): Use define_insn_and_split; non push operand.
10853         ("movdf_internal"): Likewise.
10854         ("movsf_internal"): Likewise.
10855         ("movsi_internal"): Likewise.
10856         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10857         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10858         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10859
10860 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10861
10862         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10863         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10864         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10865         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10866         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10867         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10868         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10869         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10870         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10871         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10872         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10873
10874 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10875
10876         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10877         (SOFT_XY_REGNUM): Define.
10878         (cmp split): Use the above instead of hard coded numbers.
10879         (8-bit op split): No need to check the mode; allow Q_REG.
10880         (ashift split): Adjust the first operand if it uses the SP and we
10881         are pushing the shifted value.
10882         (plus shift split): Fix when a source is in register D+X.
10883         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10884
10885 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10886
10887         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10888         comparing with Z register.
10889
10890 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10891
10892         * cfgloop.h (struct loop_desc): Removed.
10893         (struct loop): Fields simple, desc and has_desc removed.
10894         (simple_loop_p, count_loop_iterations): Declaration removed.
10895         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10896         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10897         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10898         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10899         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10900         simple_condition_p, simple_increment, count_strange_loop_iterations,
10901         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10902         Removed.
10903         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10904
10905 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10906
10907         * genattrtab.c: Don't handle MATCH_INSN.
10908         * genrecog.c: Likewise.
10909         * gensupport.c: Likewise.
10910         * rtl.def (match_insn): Remove.
10911         * doc/md.texi (match_insn, match_insn2): Remove.
10912
10913 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10914
10915         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10916         macro results in memory allocation.
10917
10918 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10919
10920         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10921         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10922         %(fbsd_dynamic_linker),
10923         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10924         config/i386/freebsd.h
10925         * config/arm/freebsd.h: Ditto.
10926         * config/i386/freebsd.h: Ditto.
10927         * config/i386/freebsd64.h: Ditto.
10928         * config/ia64/freebsd.h: Ditto.
10929         * config/rs6000/sysv4.h: Ditto.
10930         * config/sparc/freebsd.h: Ditto.
10931
10932 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10933
10934         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10935
10936 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10937
10938         * rtl.def (define_combine): Remove.
10939
10940 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10941
10942         * config/h8300/h8300.md: Tweak formatting.
10943
10944 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10945
10946         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10947         *cmphi_h8300_znvc.
10948         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10949
10950 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10951
10952         PR bootstrap/14356
10953         * gcc.c (process_command): Remove const-qualification from argv.
10954         (main): Likewise.
10955
10956 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10957
10958         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10959         pushqi1_h8300hs_advanced.  Adjust its caller.
10960         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10961         Adjust its caller.
10962
10963 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10964
10965         * Makefile.in (install-libgcc, install-multilib): Pass
10966         mkinstalldirs var to libgcc.mk.
10967
10968 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10969
10970         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10971         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10972
10973 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10974
10975         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10976         * config/h8300/h8300.md: Split several peephole2's, each into
10977         two.
10978
10979 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10980
10981         * dominance.c (recount_dominator): Handle postdominators.
10982
10983 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10984
10985         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10986         (NUM_SYMBOL_TYPES): Likewise.
10987         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10988         (mips_unspec_address): Declare.
10989         (mips_gotoff_page, mips_gotoff_global): Delete.
10990         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10991         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10992         (mips_symbolic_constant_p, mips_symbolic_address_p)
10993         (mips_symbol_insns): Handle new symbol types.
10994         (general_symbolic_operand): New predicate.
10995         (mips_unspec_address): Make extern.
10996         (mips_gotoff_page, mips_gotoff_global): Delete.
10997         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10998         Handle new symbol types.
10999         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11000         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11001         mips_unspec_address directly.
11002         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11003         the documentation of -mexplicit-relocs.
11004
11005 2004-03-01  Jeff Law  <law@redhat.com>
11006
11007         * fold-const.c (fold): An equality comparison of a non-weak object
11008         against zero has a known result.  Similarly an equality comparison
11009         of the address of two non-weak, unaliased symbols has a known result.
11010
11011         * ggc-page.c (struct page_entry): New field PREV.
11012         (ggc_alloc): Update PREV field appropriately.
11013         (sweep_pages): Likewise.
11014         (ggc_free): Likewise.  Use PREV field rather than loop to
11015         improve ggc_free performance.
11016
11017 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11018
11019         * config/mips/mips.c (mips_output_division): Use the division
11020         instruction to fill the delay slot of a zero check.
11021         (mips_idiv_insns): Adjust accordingly.
11022
11023 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
11024
11025         * config.gcc: Create a default tmake_file for linux, and use
11026         it in all but two linux clauses.  Comment those two.
11027
11028 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
11029
11030         * combine.c (try_combine):  Do not refer to is_replaced.
11031         (gen_lowpart_for_combine):  Perverse subregs now have a
11032         more politically correct name.
11033         * cse.c (cse_insn): Likewise.
11034         * jump.c: Fix bogus reference to delete_insn.
11035
11036 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
11037
11038         PR debug/14328
11039         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11040         constants as signed values.
11041
11042         PR middle-end/13448
11043         * c-tree.h (readonly_warning): Rename to ...
11044         (readonly_error): ... this.
11045         * c-typeck.c (build_unary_op): Adjust accordingly.
11046         (readonly_warning): Rename to ...
11047         (readonly_error): ... this and issue errors, not warnings.
11048         (build_modify_expr): Call readonly_error, not readonly_warning.
11049         (c_expand_asm_operands): Likewise.
11050         * tree-inline.c (optimize_inline_calls): Do not inline functions
11051         after errors have occurred.
11052
11053 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11054
11055         * configure.ac: Rearrange some threading code for clarity;
11056         add section comment.
11057         * configure: Regenerate.
11058
11059 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11060
11061         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11062         typos.
11063         * doc/cppopts.texi: Fix a typo.
11064
11065 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11066
11067         * config/i386/i386.md: Fix formatting.
11068
11069 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11070
11071         * configure.ac: Add some comments delineating sections of code.
11072
11073         * doc/install.texi: Note that libada uses autoconf 2.57 also.
11074
11075         * doc/install.texi: Fix idiot typo in previous commit.
11076
11077         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11078
11079 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11080
11081         * config/h8300/h8300.md: Add comments about peephole2's.
11082
11083 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11084
11085         * config/h8300/h8300.md: Tweak operand numbers of some
11086         peephole2's.
11087
11088 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11089
11090         * config/h8300/h8300.md: Tweak comments about peephole2's.
11091
11092 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
11093
11094         PR middle-end/14203
11095         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11096         instead of testing whether DECL_RTL is not NULL.
11097
11098 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11099
11100         * config/sh/sh.c: Fix formatting.
11101
11102 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11103
11104         * config/sh/sh.c: Convert to ISO-C.
11105
11106 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
11107
11108         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11109         my previous patch.
11110
11111         * config/darwin.h (machopic_finish): Output stub even if the
11112         symbol is already defined.
11113
11114 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11115
11116         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11117
11118 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11119
11120         * genattr.c (main): Don't define
11121         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11122         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11123         (DFA_PIPELINE_INTERFACE): Likewise.
11124         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11125         (DFA_PIPELINE_INTERFACE): Likewise.
11126
11127 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11128
11129         * config/mips/mips.md (tstsi, tstdi): Delete.
11130
11131 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11132
11133         * config/mips/mips.c (override_options): Remove an obsolete
11134         duplicate definition of the "e" constraint.
11135         * config/mips/mips.h: Update a comment accordingly.
11136
11137 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11138
11139         * config/mips/mips.md: Complete the unfinished R4000
11140         multiply/shift errata workaround.  Improve documentation.
11141         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11142         has a hilo hazard.
11143         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11144         (muldi3, muldi3_internal): Likewise.
11145         (muldi3_internal2): Remove, replacing with...
11146         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11147         (mulsidi3): Take the errata into account.
11148         (mulsidi3_32bit): Remove, replacing with...
11149         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11150         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11151         (umulsidi3): Take the errata into account.
11152         (umulsidi3_32bit): Remove, replacing with..
11153         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11154         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11155         TARGET_FIX_R4000.
11156         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11157         (smuldi3_highpart, umuldi3_highpart): Likewise.
11158         * doc/invoke.texi: Document the errata workaround.
11159
11160 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11161
11162         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11163         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11164         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11165         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11166         * config/mips/mips.c (mips_idiv_insns): New function.
11167         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11168         (mips_output_division): Add a workaround for the R4000 divide/shift
11169         errata.
11170         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11171         the length of an "idiv" instruction.
11172         * doc/invoke.texi: Document the new switches.
11173
11174 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11175
11176         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11177         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11178
11179 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11180
11181         PR optimization/14229
11182         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11183
11184 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11185
11186         * fold-const.c (fold): Strip NOPs that change the signedness
11187         for RSHIFT too.  Expand comment.
11188
11189 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11190
11191         PR optimization/7871
11192         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11193         from or to call insns.
11194
11195 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11196
11197         PR optimization/7871
11198         * flow.c (propagate_one_insn): Interpret calls as setting global
11199         registers, not merely clobbering them.
11200
11201 2004-02-27  Dale Johannesen  <dalej@apple.com>
11202
11203         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11204         config/darwin-protos.h:  Ditto.
11205         config/darwin.h:  Remove call to it.
11206         * combine.c (distribute_notes): Do not place a REG_DEAD note
11207         when value is both set and used.
11208
11209 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11210
11211         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11212         as well.
11213         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11214         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11215
11216 2004-02-27  Andrew Pinski  <apinski@apple.com>
11217
11218         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11219         Speedup common case of the type values being in the same order.
11220
11221 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11222
11223         * config/ia64/ia64.h (no-inline-float-divide): New option.
11224         * config/ia64/ia64.h (no-inline-int-divide): New option.
11225         * config/ia64/ia64.h (no-inline-sqrt): New option.
11226         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11227         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11228         * config/ia64/ia64.c (ia64_override_options): Modify error
11229         checking for inlined division/sqrt.
11230
11231 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11232
11233         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11234         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11235         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11236         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11237         copyright.
11238
11239 2004-02-27  Paul Brook  <paul@codesourcery.com>
11240
11241         * function.c (assign_parms): Don't count pretend args for alignment.
11242
11243 2004-02-27  Richard Henderson  <rth@redhat.com>
11244
11245         * passes.c: New file.
11246         * Makefile.in (OBJS-common): Add it.
11247         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11248         * flags.h (rtl_dump_and_exit): ... here.
11249         * output.h (size_directive_output, last_assemble_variable_decl):
11250         Move from toplev.c.
11251         * rtl.h (reg_alloc): Move from toplev.c.
11252         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11253         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11254         open_dump_file, close_dump_file, rest_of_decl_compilation,
11255         rest_of_type_compilation, rest_of_handle_final,
11256         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11257         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11258         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11259         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11260         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11261         rest_of_handle_tracer, rest_of_handle_if_conversion,
11262         rest_of_handle_if_after_combine, rest_of_handle_web,
11263         rest_of_handle_branch_prob,
11264         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11265         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11266         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11267         rest_of_handle_null_pointer, rest_of_handle_combine,
11268         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11269         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11270         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11271         (decode_d_option): Use enable_rtl_dump_file.
11272         (compile_file, finalize, do_compile): Move profile+combine+graph
11273         cleanup to finish_optimization_passes.
11274         * toplev.h (init_optimization_passes, finish_optimization_passes,
11275         enable_rtl_dump_file): Declare.
11276
11277 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11278             Roger Sayle  <roger@eyesopen.com>
11279
11280         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11281         operands to build a tree with swapped operands.
11282         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11283         'unsignedp' predicate to specify the signedness.
11284
11285 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11286
11287         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11288         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11289         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11290         comment typos and formatting.  Follow spelling conventions.
11291
11292 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11293
11294         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11295         fix_truncsfsi2.
11296
11297         * config/rs6000/spe.md: Delete spe_efsctuiz.
11298         Add spe_fixuns_truncsfsi2.
11299         Add spe_fix_truncsfsi2.
11300
11301 2004-02-26  Eric Christopher  <echristo@redhat.com>
11302
11303         * c-lex.c (c_lex_string_translate): New variable.
11304         (lex_string): Use to determine string translation.
11305         * c-pragma.h: Prototype.
11306         * c-parse.in (start_string_translation): New. Set above.
11307         (stop_string_translation): Ditto.
11308         (attribute, attribute_list, asm_def, asm_stmt,
11309         asm_operand): Use above functions.
11310         * cp/parser.c (cp_parser_declaration): Translate strings
11311         unless token is RID_EXTERN. Set c_lex_string_translate
11312         for recursive use.
11313         (cp_parser_asm_definition): Only translate argument strings
11314         to asms.
11315         (cp_parser_asm_operand_list): Ditto.
11316         (cp_parser_attribute_list): Do not translate attribute strings.
11317
11318 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11319
11320         * stmt.c (expand_start_case_dummy): Remove.
11321         * tree.h: Remove the corresponding prototype.
11322
11323 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11324
11325         * builtins.c (apply_args_register_offset): Remove.
11326         * tree.h: Remove the corresponding prototype.
11327
11328 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11329
11330         * stor-layout.c (is_pending_size): Remove.
11331         * tree.h: Remove the corresponding prototype.
11332
11333 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11334
11335         * recog.c (validate_replace_src): Remove.
11336         * recog.h: Remove the corresponding prototype.
11337
11338 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11339
11340         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11341         MAYBE_REG_PARM_STACK_SPACE.
11342         * function.c: Likewise.
11343         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11344         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11345         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11346         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11347
11348 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11349
11350         * c-decl.c (c_expand_deferred_function): Remove.
11351         * c-tree.h: Remove the corresponding prototype.
11352
11353 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11354
11355         * postreload.c (reload_cse_move2add): Generate just a PLUS
11356         instead of an entire SET.
11357
11358 2004-02-26  Jan Hubicka  <jh@suse.cz>
11359
11360         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11361         /pentium4m.
11362         * i386.c (override_options): Add support for new CPUs.
11363         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11364         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11365         constants.
11366         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11367
11368 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11369
11370         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11371
11372 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11373
11374         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11375         (sparc_emit_fixunsdi): New prototype.
11376         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11377         (sparc_emit_fixunsdi): New function.
11378         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11379         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11380         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11381         to sparc_emit_floatunsdi.
11382         (fixuns_truncsfdi2): New expander.
11383         (fixuns_truncdfdi2): Likewise.
11384
11385 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11386
11387         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11388         unless HAVE_cc0.
11389
11390 2004-02-25  Richard Henderson  <rth@redhat.com>
11391
11392         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11393         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11394         use (op0-op1) == 0 if op0 is a pointer.
11395         * config/alpha/alpha.md (cmpdi): Use some_operand.
11396         (three comparison combine splits): Remove.
11397
11398 2004-02-25  Richard Henderson  <rth@redhat.com>
11399
11400         PR c/12794
11401         * c-common.c (handle_alias_attribute): Reject the attribute if
11402         current_function_decl is set.
11403
11404 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11405
11406         * config.gcc: Add comment describing extra_gcc_objs.
11407         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11408         * configure.ac (extra_gcc_objs): New substitution variable.
11409         (host_extra_gcc_objs): Don't substitute.
11410         * configure: Regenerate.
11411         * Makefile.in: Use extra_gcc_objs.
11412
11413 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11414
11415         * doc/contrib.texi: Add an entry for myself.
11416
11417 2004-02-25  Jan Hubicka  <jh@suse.cz>
11418
11419         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11420         * cfgbuild.c (make_eh_edge):  Make global.
11421         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11422         * except.c (build_post_landing_pads, connect_post_landing_pads,
11423         dw2_build_landing_pads, sjlj_emit_function_enter,
11424         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11425         sjlj_build_landing_pads): Update CFG.
11426         (emit_to_new_bb_before): New function.
11427         (finish_eh_generation): Do not rebuild the CFG.
11428
11429 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11430
11431         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11432         target_cpu_default defines.
11433         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11434         * pa.h (TARGET_DEFAULT): Likewise.
11435
11436 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11437
11438         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11439         comparisons with regard to signedness.
11440
11441 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11442
11443         * arm.c (thumb_legitimize_address): New function.
11444         * arm-protos.h: Prototype it.
11445         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11446         (LEGITIMIZE_ADDRESS): Use it.
11447
11448 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11449
11450         * reload1.c (reload): Only spill eliminable register with multiple
11451         adjacent elimination alternatives if all alternatives fail.
11452
11453 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11454
11455         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11456         is -4095...+4095 inclusive.
11457
11458 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11459
11460         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11461         the bootstrap failure with Sun CC 5.4 and 5.5.
11462
11463 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11464
11465         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11466         which modifies NEWREG.
11467         (cse_condition_code_reg): Update the mode of CC_REG in
11468         CC_SRC_INSN on our own.
11469
11470 2004-02-24  Michael Matz  <matz@suse.de>
11471
11472         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11473         regparm attributes.
11474
11475 2004-02-24  Richard Henderson  <rth@redhat.com>
11476
11477         * toplev.c (dump_file_tbl): Rename from dump_file.
11478         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11479         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11480         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11481         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11482         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11483         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11484         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11485         s/rtl_dump_file/dump_file/g.
11486
11487 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11488
11489         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11490         (spe_fixuns_truncsfsi2): Delete.
11491
11492         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11493         (fixuns_truncsfsi2): Delete.
11494
11495 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11496
11497         PR/14240
11498         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11499
11500 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11501
11502         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11503
11504 2004-02-24  Jason Merrill  <jason@redhat.com>
11505
11506         * tree.c (check_qualified_type): New fn.
11507         (get_qualified_type): Use it.  If type already has the desired
11508         quals, just return it.
11509         * tree.h: Declare it.
11510
11511 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11512
11513         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11514         TARGET_SCHED_FINISH_GLOBAL): New macros.
11515
11516         * target.h (md_init_global, md_finish_global): Function
11517         declarations corresponding to new target macros.
11518
11519         * haifa-sched.c (sched_init, sched_finish): Allow target to
11520         call the new schedular hooks.
11521
11522         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11523         call to update_life_info.
11524
11525         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11526         flag_schedule_insns for SH4.
11527
11528         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11529         find_set_regmode_weight, find_insn_regmode_weight,
11530         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11531         sh_variable_issue, high_pressure, ready_reorder,
11532         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11533         functions used to throttle the insn movement in first
11534         scheduling pass for SH.
11535
11536         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11537         TARGET_SCHED_FINISH_GLOBAL.
11538
11539 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11540
11541         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11542         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11543         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11544         symbols in sections named by the user.
11545         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11546         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11547         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11548         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11549         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11550         the above.
11551         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11552         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11553         one more pseudo to further improve code generation.
11554         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11555         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11556         inside UNSPEC.
11557         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11558         * config/frv/frv.c (frv_legitimate_address_p): Added
11559         allow_double_reg_p argument.  Adjust all callers.  Use it to
11560         decide whether to enable double-register indirect addressing.
11561         (frv_funcdesc_alias_set): Remove.
11562         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11563         register.  Emit movdi_ldd.
11564         (ldd_address_operand): New.
11565         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11566         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11567         (PREDICATE_CODES): Add ldd_address_operand.
11568         * config/frv/frv.md (movdi_ldd): New.
11569         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11570         intermediate computations if possible.
11571         (symGOTOFF2reg_i): Fix harmless typo.
11572         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11573         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11574         relocated p_vaddr to vaddr type.
11575         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11576         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11577         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11578         MEM, or use a funcdesc alias set.  Use regular move instead of
11579         ldd.
11580         (dbl_memory_one_insn_operand): Recognize function descriptors by
11581         type or by alias set, and don't split them.
11582         * config/frv/frv.md (call, call_value): Never use call_internal
11583         for fdpic.
11584         (call_internal, call_value_internal): Never match for FDPIC.
11585         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11586         call_value_fdpicsi): Require FDPIC.
11587         (ldd): Removed.
11588         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11589         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11590         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11591         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11592         FDPIC.  Compute data base address.
11593         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11594         before the other self-specs are processed.
11595         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11596         Build with -fPIC.
11597         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11598         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11599         inhibit_libc is defined.
11600         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11601         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11602         __FRV_FDPIC__.
11603         (__RELOC_POINTER): Define.
11604         (_Unwind_IteratePhdrCallback): Use it.
11605         * config/frv/frv.h (Twrite): Define.
11606         (TRANSFER_FROM_TRAMPOLINE): Use it.
11607         * config/frv/linux.h (INVOKE__main): Undefine.
11608         (Twrite): Override.
11609         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11610         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11611         (-mlibrary-pic): Emphasize that this option generates EABI code.
11612         (-mcpu): Add fr550.
11613         (-mpack): Remove.
11614         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11615         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11616         and CONSTs in FDPIC mode.
11617         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11618         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11619         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11620         constants.
11621         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11622         rather than 'i' constraint for the 2-instruction alternative.
11623         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11624         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11625         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11626         EXTRA_CONSTRAINT_FOR_Y.
11627         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11628         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11629         (addsi3): Change 'Y' constraint to 'Q'.
11630         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11631         * reload.c (CONST_POOL_OK_P): New macro.
11632         (find_reloads): Use it to decide whether a constant can be forced
11633         into memory.
11634         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11635         constant satisfies got12_operand.
11636         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11637         (frv_legitimate_address_p): Check for valid unspec offsets using
11638         got12_operand rather than frv_legitimate_fdpic_operand_p.
11639         (frv_legitimate_fdpic_operand_p): Delete.
11640         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11641         or after reload.
11642         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11643         TARGET_FDPIC.
11644         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11645         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11646         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11647         (frv_fdpic_fptr_operand): Don't declare here.
11648         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11649         rather than fdpic_got12_operand.
11650         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11651         got12_operand and const_unspec_operand.
11652         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11653         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11654         (symbolic_operand): Remove.
11655         (const_unspec_operand): New predicate.
11656         * config/frv/frv.md (*movsi_got): Use got12_operand.
11657         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11658         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11659         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11660         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11661         * config/frv/frv.c (frv_unspec): New structure.
11662         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11663         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11664         validate CONST indices.  Use frv_output_const_unspec to print them.
11665         (frv_print_operand): Update call to unspec_got_name.  Use
11666         frv_output_const_unspec to print constant unspecs.
11667         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11668         Reject UNSPECs otherwise.
11669         (unspec_got_name): Take the relocation number as argument, not an
11670         rtx containing it.
11671         (frv_output_addr_const_extra): Remove, replacing with...
11672         (frv_output_const_unspec): ...this new function.
11673         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11674         (gpr_or_int12_operand): Use fdpic_got12_operand.
11675         (dbl_memory_one_insn_operand): Likewise.
11676         (fdpic_got12_operand): Use frv_const_unspec_p.
11677         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11678         are already legitimate.  Use frv_small_data_reloc_p when deciding
11679         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11680         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11681         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11682         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11683         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11684         label, for real this time.
11685         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11686         representation of visibility.
11687         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11688         such.
11689         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11690         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11691         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11692         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11693         it was explicitly disabled.
11694         (frv_stack_info): There is no need to save the link register in every
11695         frame unless TARGET_LINKED_FP is true.
11696         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11697         frame pointer if the stack pointer might change value.
11698         (frv_return_addr_rtx): Check and process "count" argument.
11699         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11700         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11701         (frv_find_base_term): Declare.
11702         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11703         (FIND_BASE_TERM): Define.
11704         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11705         small_data_register_operand, small_data_symbolic_operand.  Add
11706         symbolic_operand.
11707         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11708         (frv_print_operand_memory_reference, output_move_single): Remove
11709         special handling for unlegitimized sdata addresses.
11710         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11711         and symbolic addresses.
11712         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11713         (frv_find_base_term): New function.
11714         (int_2word_operand): Check specifically for symbolic address constants.
11715         (pic_register_operand, pic_symbolic_operand): Delete.
11716         (small_data_register_operand, small_data_symbolic_operand): Delete.
11717         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11718         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11719         (move_source_operand): Only accept CONSTs if they're a two-insn
11720         symbolic constant.
11721         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11722         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11723         using gen_symGOTOFF2reg*.
11724         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11725         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11726         themselves a cost of 3 insns.
11727         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11728         Change predicate to symbolic_operand.
11729         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11730         (*movsi_lda_sdata): Delete.
11731         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11732         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11733         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11734         frv-*-*linux*.
11735         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11736         label.
11737         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11738         -multilib-library-pic.
11739         (LINK_SPEC): Add -z text for -mfdpic.
11740         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11741         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11742         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11743         Override.
11744         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11745         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11746         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11747         crtstuff-generated files.
11748         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11749         * config.gcc: Add frv-*-*linux*.
11750         * config/frv/linux.h, config/frv/t-linux: New.
11751         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11752         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11753         when -mfdpic even if a linker script is explicitly listed.
11754         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11755         * config/frv/frv.c (frv_override_options): Clear asm_out
11756         unaligned_op for SImode on FDPIC.
11757         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11758         argument passed to decl_readonly_section.
11759         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11760         whole block run with FDPIC even with -fno-PIC.
11761         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11762         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11763         symbol or label plus offset to memory.
11764         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11765         GOTOFF and GPREL for LABEL_REF.
11766         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11767         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11768         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11769         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11770         * doc/invoke.texi: Document them.
11771         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11772         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11773         (frv_splittable_got_operand): Removed.
11774         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11775         LO_SUM.  Add comments.
11776         (frv_override_options): Moved enabling of FDPIC to
11777         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11778         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11779         (frv_legitimize_fdpic_address): Don't duplicate logic in
11780         frv_emit_movsi.
11781         (frv_gen_GPsym2reg): New.
11782         (unspec_got_name): Added gprel.
11783         (frv_expand_fdpic_call): Add support for inlining PLTs.
11784         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11785         (gpr_or_int12_operand): Added GPREL12.
11786         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11787         (small_data_symbolic_operand): Fail if FDPIC.
11788         (fdpic_splittable_got_operand): Removed.
11789         (fdpic_got12_operand): Added GPREL12.
11790         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11791         when appropriate.  Fix sdata GOTOFF.
11792         (frv_legitimate_constant_p): Require legitimate PIC operand for
11793         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11794         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11795         flag_pic case.
11796         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11797         frv_assemble_integer fails.
11798         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11799         (SUBTARGET_DRIVER_SELF_SPECS): New.
11800         (ASM_SPEC): Don't pass -mno-fdpic.
11801         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11802         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11803         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11804         -multilib-library-pic.
11805         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11806         condexec_si_media_operator, condexec_sf_add_operator and
11807         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11808         and condexec_sf_unary_operator.
11809         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11810         New.
11811         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11812         movsi_internal.  Give them internal names.  movsi_got has type
11813         int.
11814         (fdpic got splitters): Remove.
11815         (symGPREL2reg, symGPREL2reg_hilo): New.
11816         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11817         to -mlibrary-pic.  Map -multilib-library-pic to it.
11818         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11819         Document.
11820         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11821         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11822         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11823         (frv_cannot_force_const_mem): New function.
11824         (const_small_data_p, plus_small_data_p): Update comments on sdata
11825         on FDPIC.
11826         (frv_override_options): Set flag_pie for FDPIC too.
11827         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11828         call-saved registers on FDPIC.
11829         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11830         don't force LR to be preserved.
11831         (frv_expand_prologue): Likewise.
11832         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11833         (frv_frame_pointer_required): Don't force it just because the
11834         FDPIC register is used.
11835         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11836         operand only if !condexec_p.
11837         (frv_legitimize_address): Return the FDPIC-legitimized address.
11838         Don't match small data here on FDPIC.
11839         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11840         symbols.  Use TRUE/FALSE instead of 1/0.
11841         (frv_local_funcdesc_p): New.
11842         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11843         immediates when possible.
11844         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11845         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11846         an UNSPEC_GOT.
11847         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11848         12-bit immediates when possible.
11849         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11850         are not legitimate pic operands.
11851         (frv_in_small_data_p): Re-enable for FDPIC.
11852         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11853         (FRV_GLOBAL_P): Removed.
11854         * config/frv/frv.md: Add modes to CONSTs.
11855         (movsi_got): New.
11856         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11857         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11858         (fdpic splittable operations): Match on flag_pic != 1.
11859         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11860         * config/frv/frv.c (frv_asm_out_constructor,
11861         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11862         bytes, not bits.
11863         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11864         * config/frv/frv.c (frv_assemble_integer): Reject complex
11865         expressions referencing function SYMBOL_REFs.
11866         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11867         (move_source_operand): Reject CONSTs that reference function
11868         SYMBOL_REFs on FDPIC.
11869         (frv_emit_movsi): If we get such a CONST, break it up.
11870         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11871         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11872         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11873         MEM.
11874         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11875         (frv_trampoline_size): Increase for FDPIC.
11876         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11877         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11878         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11879         Disable use of GOTOFF for now.
11880         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11881         Disable use of small data in FDPIC for now.
11882         (frv_asm_output_mi_thunk): Implement for FDPIC.
11883         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11884         * config/frv/frv.c (frv_asm_out_constructor): Use
11885         frv_assemble_integer for FDPIC pointers.
11886         (frv_asm_out_destructor): Likewise.
11887         * config/frv/frv.md (ldd): Fix order of operands.  Use
11888         address_operand for input.
11889         2003-09-18  DJ Delorie  <dj@redhat.com>
11890         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11891         (unspec_got_name): Correct typo.
11892         (frv_emit_movsi): Pre-expand splittable GOTs.
11893         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11894         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11895         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11896         * config/frv/t-frv: Add -mfdpic multilibs.
11897         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11898         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11899         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11900         flag_pic, default to 32-bit pics, require DWORD ops.
11901         (frv_override_options): Add W and Z constraints.
11902         (frv_expand_prologue): No pic prologue for -mfdpic.
11903         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11904         (frv_print_operand_memory_reference): Handle GOT constants.
11905         (frv_legitimate_address_p): Allow GOT constants.
11906         (frv_legitimize_address): Handle GOT addresses too.
11907         (frv_legitimate_fdpic_operand_p): New.
11908         (frv_legitimize_fdpic_address): New.
11909         (unspec_got_name): New.
11910         (frv_output_addr_const_extra): New.
11911         (frv_expand_fdpic_call): New.
11912         (frv_fdpic_fptr_operand): New.
11913         (gpr_or_int12_operand): Handle GOT operands.
11914         (int_2word_operand): Handle GOT operands.
11915         (fdpic_operand): New.
11916         (fdpic_splittable_got_operand): New.
11917         (fdpic_got12_operand): New.
11918         (frv_emit_movsi): Handle GOT operands.
11919         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11920         (frv_print_operand): Support 'g' code for GOT operands.
11921         * config/frv/frv-protos.h: Add prototypes as needed.
11922         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11923         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11924         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11925         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11926         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11927         R_FRV_GOTOFFLO): New.
11928         (movsi_high_got, movsi_lo_sum_got): New.
11929         (*movsi_pic): Don't use this splitter for -mfdpic.
11930         (addsi3): Allow GOT references also.
11931         (call, call_value): Handle -mfdpic separately.
11932         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11933         call_value_fdpicsi): New.
11934         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11935         symGOTOFF2reg_i): New.
11936         * config/frv/frv.h (MASK_FDPIC): New.
11937         (TARGET_FDPIC): New.
11938         (TARGET_SWITCHES): Add -mfdpic.
11939         (FDPIC_FPTR_REGNO): New.
11940         (FDPIC_REGNO): New.
11941         (OUR_FDPIC_REG): New.
11942         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11943         FDPIC_CALL_REGS.
11944         (REG_CLASS_NAMES): Likewise.
11945         (REG_CLASS_CONTENTS): Likewise.
11946         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11947         (EXTRA_CONSTRAINT): Add it here.
11948         (FRV_GLOBAL_P): New.
11949         (OUTPUT_ADDR_CONST_EXTRA): New.
11950
11951 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11952
11953         * config/sparc/sparc.h: Remove commented-out definitions of
11954         TARGET_EDOM and GEN_ERRNO_RTX.
11955
11956 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11957
11958         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11959         df_analyse with df_analyze.
11960
11961 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11962
11963         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11964         beginning of block.
11965
11966 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11967
11968         * calls.c (precompute_arguments): Update comment.
11969
11970 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11971
11972         * et-forest.c: Replace et_occurences with et_occurrences.
11973
11974 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11975
11976         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11977         with iv_analyze.
11978
11979 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11980
11981         * config/i386/i386.c: Rename pni to sse3.
11982         * config/i386/i386.h: Likewise.
11983         * config/i386/i386.md: Likewise.
11984         * config/i386/pmmintrin.h: Likewise.
11985         * doc/extend.texi: Likewise.
11986         * doc/invoke.texi: Likewise.
11987
11988 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11989             Kazu Hirata  <kazu@cs.umass.edu>
11990
11991         Remove -fwritable-strings.
11992         * c-common.c (fix_string_type): Don't check
11993         flag_writable_strings.
11994         (fix_string_type): Likewise.
11995         * c-opts.c (set_std_c89): Don't initialize
11996         flag_writable_strings.
11997         (set_std_c99): Likewise.
11998         * common.opt (fwritable-strings): Remove.
11999         * flags.h: Remove the external declaration of
12000         flag_writable_strings.
12001         * opts.c (common_handle_option) <OPT_fwritable_strings>:
12002         Remove.
12003         * toplev.c (flag_writable_strings): Remove.
12004         (f_options): Remove an entry for writable-strings.
12005         * varasm.c (const_hash_1) <STRING_CST>: Don't check
12006         flag_writable_strings.
12007         (compare_constant) <STRING_CST>: Likewise.
12008         (build_constant_desc): Likewise.
12009         * config/darwin.c (machopic_select_section): Likewise.
12010         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12011         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12012         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12013         * config/mips/mips.c (mips_select_section): Likewise.
12014         (mips_encode_section_info): Likewise.
12015         * config/pa/pa.c (pa_select_section): Likewise.
12016         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12017         * config/v850/v850.c (v850_select_section): Likewise.
12018         * doc/invoke.texi (-fwritable-strings): Remove.
12019         (-fno-const-strings): Don't mention -fwritable-strings.
12020         * doc/trouble.texi: Don't mention -fwritable-strings.
12021
12022 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
12023
12024         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12025
12026 2004-02-23  Dale Johannesen  <dalej@apple.com>
12027
12028         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12029         (movdf_hardfloat64):  Ditto.
12030         (movdf_softfloat64):  Ditto.
12031
12032 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
12033         * config/rs6000/rs6000.c (function_arg): call to
12034         rs6000_mixed_function_arg for DFmode moved to allow
12035         normal DFmode incoming register assignment.
12036
12037 2004-02-23  Dale Johannesen  <dalej@apple.com>
12038
12039         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12040         (movdf_hardfloat64):  Ditto.
12041
12042 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12043
12044         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12045         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12046         copyright.
12047
12048 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
12049
12050         PR c/14156
12051         * c-typeck.c (c_expand_return): Change check for VAR_DECL
12052         to use DECL_P instead.
12053
12054         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12055         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12056
12057 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12058
12059         * Makefile.in (opts.o): Depend on target.h.
12060         * opts.c (decode_options): Use targetm.default_short_enums
12061         instead of DEFAULT_SHORT_ENUMS.
12062         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12063         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12064         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12065         * target.h (gcc_target): Add default_short_enums.
12066         * config/cris/cris.h: Remove a comment about
12067         DEFAULT_SHORT_ENUMS.
12068         * config/ip2k/ip2k.h: Likewise.
12069         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12070         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
12071
12072 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12073             Falk Hueffner  <falk@debian.org>
12074
12075         PR c/14188
12076         * builtins.c (expand_builtin_va_arg): Emit an informative message
12077         if a trap is generated.
12078         * c-typeck.c (build_function_call): Likewise.
12079
12080 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12081
12082         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12083         fopen.
12084         * libgcov.c: Include sys/stat.h.
12085         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12086         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12087         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12088         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12089
12090 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12091
12092         * reorg.c: Remove comments about dead ports.
12093
12094 2004-02-22  Christopher Faylor  <cgf@redhat.com>
12095
12096         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12097         extra host object file when targetting cygwin rather than generic
12098         object files.
12099
12100 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
12101
12102         Merge from tree-ssa:
12103         2003-11-20  Richard Henderson  <rth@redhat.com>
12104
12105                 * tree-inline.c (insert_decl_map): New.
12106                 (remap_decl, remap_type, remap_block, copy_body_r,
12107                 initialize_inlined_parameters, declare_return_variable,
12108                 remap_save_expr): Use it.
12109
12110         * function.c (copy_body_r): Add mapping from id->ret_label to
12111         id->ret_label.  Revert test for ret_label.
12112
12113 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12114
12115         * genoutput.c (process_template): Strip trailing whitespace in @
12116         templates and issue a warning if there was any.
12117
12118 2004-02-21  Christopher Faylor  <cgf@redhat.com>
12119
12120         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12121         object file when targetting cygwin.
12122         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12123         overridden by top-level Makefile.
12124
12125 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12126
12127         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12128         the x87's load constant instructions when optimizing for size.
12129
12130 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12131
12132         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12133         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12134         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12135         * fold-const.c: Likewise.
12136         * simplify-rtx.c: Likewise.
12137
12138 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12139
12140         * combine.c (can_combine_p): Don't ignore SETs marked with
12141         REG_EH_REGION notes.
12142         (try_combine): When attemting to fix unrecognized insns, don't
12143         split a PARALLEL that contains the original i2.
12144
12145 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12146
12147         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12148         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12149         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12150         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12151         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12152         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12153         portion of header.
12154         (__altivec_link_error_invalid_argument): Remove prototype; will use
12155         __builtin_altivec_compiletime_error("vec_*") instead.
12156         (vec_*): Fix/complete set of available operation overloads given the
12157         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12158         cv-correctness of pointer arguments; in C, always check for correct
12159         argument types before macro expansion.
12160         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12161         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12162         '-W[no-]altivec-long-deprecated' switches.
12163         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12164         '__vector', '__pixel' and '__bool' macros using
12165         '__attribute__((altivec(...)))' types.
12166         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12167         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12168         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12169         New type nodes.
12170         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12171         handling '-W[no-]altivec-long-deprecated'.
12172         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12173         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12174         altivec_expand_dst_builtin): Remove casts from integer literals.
12175         (altivec_expand_builtin): Likewise; handle expansion of new
12176         '__builtin_altivec_compiletime_error' function.
12177         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12178         types, and make them distinct from other vector types; register
12179         '__builtin_altivec_compiletime_error' function.
12180         (print_operand): For 'P', print a full target register name instead of
12181         merely its number.
12182         (rs6000_attribute_table): Add "altivec" attribute.
12183         (rs6000_handle_altivec_attribute): New function.
12184         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12185         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12186         maps to).
12187         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12188         declare.
12189         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12190
12191 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12192
12193         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12194         check.
12195         (shift_mix4left+2): Delete redundant pattern.
12196
12197 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12198
12199         * alias.c (OUTGOING_REGNO): Don't define the default.
12200         * builtins.c (OUTGOING_REGNO): Likewise.
12201         (INCOMING_REGNO): Likewise.
12202         (apply_args_register_offset): Always use OUTGOING_REGNO.
12203         * combine.c (OUTGOING_REGNO): Likewise.
12204         * sibcall.c (OUTGOING_REGNO): Likewise.
12205         * defaults.h (INCOMING_REGNO): Provide the default.
12206         (OUTGOING_REGNO): Likewise.
12207
12208 2004-02-21  Jan Hubicka  <jh@suse.cz>
12209
12210         * params.def (max-peeled-insns, max-completely-peeled-insns,
12211         max-once-peeled-insns): Set to 400.
12212
12213 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12214
12215         PR c++/12007
12216         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12217         are set for parameters before outputing debugging information.
12218
12219 2004-02-20  Falk Hueffner  <falk@debian.org>
12220
12221         PR target/14201
12222         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12223         numbers.
12224
12225 2004-02-20  Per Bothner  <per@bothner.com>
12226
12227         * input.h:  Don't #include line-map.h.  It may cause link problems
12228         with undefined linemap_line_start when line-map.h is included but
12229         line-map.o is not linked, as currently happens with gengtype on
12230         compilers that don't support inline.
12231         * toplev.c:  So we do have to explicitly #include line-map.h here.
12232
12233 2004-02-20  Richard Henderson  <rth@redhat.com>
12234
12235         * doc/invoke.texi: Add -Wvariadic-macros.
12236
12237 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12238
12239         * haifa-sched.c (sched_emit_insn): Remove.
12240         * sched-int.h: Remove the corresponding prototype.
12241
12242 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12243
12244         Revert:
12245         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12246         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12247         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12248         * config/cris/cris.h: Remove a comment about
12249         DEFAULT_SHORT_ENUMS.
12250         * config/ip2k/ip2k.h: Likewise.
12251         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12252
12253 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12254             Tom Tromey  <tromey@redhat.com>
12255
12256         * doc/install.texi: Moved --disable-libgcj and
12257         --with-system-zlib documentation to new section for
12258         Java-specific options.
12259         Added explicit Cross-Compiler-Specific Options subheading.
12260         Added section for Java-specific options.
12261
12262 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12263
12264         * doc/install.texi (Building the Ada compiler): Remove
12265         example.
12266
12267 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12268
12269         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12270
12271 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12272
12273         * gcc.c (process_command): Allow translation of the copyright
12274         symbol but not the rest of the copyright message.
12275         * gcov.c (print_version): Likewise.  Allow translation of the
12276         message about warranty.
12277
12278 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12279
12280         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12281         predicate.
12282         ("*andsi_clear"): Tweak constraints to not match postincrement.
12283         Adjust the predicate to exclude a volatile memory reference.
12284         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12285         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12286
12287 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12288
12289         * move-if-change: Remove.
12290         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12291         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12292         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12293         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12294         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12295         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12296
12297 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12298
12299         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12300         for operand2.  Add condition that requires register_operand operand2
12301         before reload.
12302
12303 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12304             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12305
12306         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12307         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12308
12309 2004-02-19  Richard Henderson  <rth@redhat.com>
12310
12311         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12312         * tree.c (build0, build1, build2, build3, build4): Split out from...
12313         (build): ... here.  Call them.
12314         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12315
12316         * convert.c (convert_to_integer): Remove extra build argument.
12317         * tree-inline.c (expand_call_inline): Likewise.
12318
12319 2004-02-19  Richard Henderson  <rth@redhat.com>
12320
12321         * c-opts.c (warn_variadic_macros): New.
12322         (c_common_handle_option): Set it.
12323         (sanitize_cpp_opts): Copy it to cpp_opts.
12324         * c.opt (Wvariadic-macros): New.
12325         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12326         * cppinit.c (cpp_create_reader): Initialize it.
12327         * cppmacro.c (parse_params): Check it.
12328
12329 2004-02-19  David Daney <ddaney@avtrex.com>
12330
12331         PR preprocessor/14198
12332         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12333         builtin_assert ("machine=mips")
12334
12335 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12336
12337         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12338         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12339         * config/cris/cris.h: Remove a comment about
12340         DEFAULT_SHORT_ENUMS.
12341         * config/ip2k/ip2k.h: Likewise.
12342         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12343
12344 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12345
12346         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12347         when passing single SFmode quantities in general registers,
12348         put them in the high half.
12349
12350 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12351
12352         * doc/md.texi (Standard Names): Document additional dependency on
12353         fix pattern.
12354
12355         * optabs.c (ftruncify): Remove.
12356         (expand_fix): Manually inline ftruncify above.
12357         (can_fix_p): Add FIXME note.
12358
12359 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12360
12361         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12362         spe_fixuns_truncsfsi2.
12363
12364         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12365         fixuns_truncsfsi2.
12366
12367 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12368
12369         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12370         * testsuite/gcc.dg/20040219-1.c: New test.
12371
12372 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12373
12374         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12375         "*subsf3_cconly"): Subtraction is not commutative.
12376
12377 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12378
12379         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12380         (sdbout_symbol): If called before sdbout_init, queue DECL for
12381         later and return.
12382         (sdbout_init): Set sdbout_initialized true, process decls
12383         queued earlier by sdbout_symbol.
12384         (sdbout_finish): Use size_t for index variable.
12385
12386 2004-02-19  Jeff Law  <law@redhat.com>
12387
12388         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12389         for unordered comparison codes.
12390
12391 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12392
12393         * reload1.c (reload): Correct comment.
12394         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12395         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12396         register variables are not used by reload.
12397
12398 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12399
12400         PR target/14209
12401         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12402         constraints to not match postincrement.  Adjust the predicate to
12403         exclude a volatile memory reference.
12404
12405 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12406
12407         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12408
12409 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12410
12411         * hooks.c (hook_void_tree_int): Remove.
12412         (hook_void_constcharptr): Likewise.
12413         (hook_int_void_0): Likewise.
12414         * hooks.h: Remove the prototypes for the above three
12415         functions.
12416         * targhooks.c (hook_bool_machine_mode_true): Remove.
12417         * targhooks.h: Remove the prototype for
12418         hook_bool_machine_mode_true.
12419
12420 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12421
12422         * emit-rtl.c (subreg_realpart_p): Remove.
12423         (reorder_insns_with_line_notes): Likewise.
12424         (end_full_sequence): Likewise.
12425         * rtl.h: Remove the prototype for the above functions.
12426
12427 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12428
12429         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12430         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12431         config/iq2000/iq2000.h, config/m32r/m32r.h,
12432         config/pdp11/pdp11.h, config/sparc/sparc.h,
12433         config/xtensa/xtensa.h: Remove commented-out or useless
12434         definitions of CASE_VECTOR_PC_RELATIVE.
12435
12436 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12437
12438         * loop.c (all_sets_invariant_p): Remove.
12439
12440 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12441
12442         PR target/12916
12443         * config/sparc/sparc.h (NPARM_REGS): Delete.
12444         (BASE_RETURN_VALUE_REG): Likewise.
12445         (BASE_OUTGOING_VALUE_REG): Likewise.
12446         (BASE_PASSING_ARG_REG): Likewise.
12447         (BASE_INCOMING_ARG_REG): Likewise.
12448         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12449         TARGET_ARCH64, not TARGET_V9.
12450         (function_arg_slotno): Dispatch based on the mode class.
12451         Handle vector modes like floating-point modes.
12452         (function_arg_record_value_1): Handle vector types like
12453         floating-point types.
12454         (function_arg_record_value_2): Likewise.
12455         Calculate regno after mode transformation.
12456         (function_arg): Handle vector modes like floating-point modes.
12457         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12458         If ARCH64, do not recheck alignment.
12459         (function_arg_pass_by_reference): Reorder the conditions.
12460         (sparc_return_in_memory): Move after function_arg_padding.
12461         Implement calling conventions for vector modes.
12462         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12463         (function_value): Move scope of 'regbase'.
12464         Implement calling conventions for vector modes.
12465         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12466         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12467         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12468         the argument is passed by reference.
12469         (sparc_type_code): Handle vector types.
12470
12471 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12472
12473         * function.c (assign_parms): When building decl_rtl for
12474         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12475
12476 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12477
12478         * expr.c (is_aligning_offset): Check if we are aligning the
12479         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12480         in bits.
12481
12482 2004-02-18  Matt Austern  <austern@apple.com>
12483
12484         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12485         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12486         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12487         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12488         spec string.
12489         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12490
12491 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12492
12493         * dwarf2out.c (loclabel_num): Move outside #ifdef
12494         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12495         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12496         Mark with GTY(()).
12497         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12498         Allocate memory with ggc_alloc.  No need to copy anything.
12499         (ia64_hpux_file_end): Update to match.
12500
12501 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12502
12503         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12504         by default.
12505
12506 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12507
12508         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12509         ("divmodtisi3"): Likewise.
12510         ("udivmoddi4", "udivmodtidi3"): Likewise.
12511         ("divmodsi4", "divmoddisi3"): Likewise.
12512         ("udivmodsi4", "udivmoddisi3"): Likewise.
12513         ("udivsi3", "umodsi3"): Likewise.
12514
12515 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12516
12517         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12518         placeholder insn when chunkifying the pool.
12519
12520 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12521
12522         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12523         generating PIC code.
12524
12525 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12526
12527         * config/h8300/h8300-protos.h: Add a prototype for
12528         h8300_expand_branch.
12529         * config/h8300/h8300.c (h8300_expand_branch): New.
12530         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12531         bgtu, beq, bne): Call h8300_expand_branch().
12532
12533 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12534
12535         * config/h8300/h8300-protos.h: Add prototypes for
12536         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12537         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12538         (h8300_hard_regno_mode_ok): Likewise.
12539         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12540         h8300_hard_regno_nregs().
12541         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12542
12543 2004-02-18  Per Bothner  <per@bothner.com>
12544
12545         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12546         partly reverts my 2003-10-01 change, because we're back to logically
12547         including <command line> inside the main line.
12548         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12549         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12550         Fixes PR preprocessor/14103.
12551
12552         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12553         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12554         (cpp_push_include):  Don't need to increment pfile's line field.
12555         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12556
12557         * c-ppoutput.c (print struct):  New first_time field.
12558         (init_pp_output):  Set print.first_time.
12559         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12560         which is set also for (say) <command line>.  Clear print.first_time.
12561
12562         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12563         does not match the code, so fix both.
12564         (should_stack_file):  Inline include_pch_p function.
12565         (include_pch_p):  Remove pointless function.
12566
12567         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12568
12569 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12570
12571         * config/h8300/h8300.md (four define_peephole2's): Use
12572         h8300_regs_ok_for_stm().
12573
12574 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12575
12576         * config/h8300/h8300-protos.h: Update the prototype for
12577         expand_a_rotate().
12578         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12579         argument.
12580         * config/h8300/h8300.md: Update all callers.
12581
12582 2004-02-18  Jan Hubicka  <jh@suse.cz>
12583
12584         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12585         floats.
12586         (simplify_binary_operation): Deal with logicals on floats.
12587
12588         * i386.md (SSE fabs splitters): Emit new patterns.
12589         (SSE cmov splitters): Likewise.
12590         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12591         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12592         subregs.
12593         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12594         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12595
12596 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12597
12598         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12599         by hand.
12600         (output_a_rotate): Tweak a comment.
12601         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12602         (*rotlhi3_1): Change to rotlhi3_1.
12603         (*rotlsi3_1): Change to rotlsi3_1.
12604
12605 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12606
12607         PR target/13866
12608         * arm.c (load_multiple_operation): Don't insist that the source reg
12609         of a post-increment component is the same as the destination.
12610         (store_multiple_operation): Likewise.
12611
12612 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12613
12614         * config/h8300/h8300.md: Move movsf patterns into one section
12615         of the file.
12616
12617 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12618
12619         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12620         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12621         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12622         config/mips/linux64.h, config/pa/pa-64.h,
12623         config/rs6000/aix51.h, config/rs6000/aix52.h,
12624         config/rs6000/spe.md, config/sparc/linux.h,
12625         config/sparc/linux64.h: Update copyright.
12626
12627 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12628
12629         * config/h8300/h8300.md: Move push patterns into one
12630         section of the file.
12631
12632 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12633
12634         PR c++/11326
12635         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12636         fntype.
12637
12638 2004-02-18  Paul Brook  <paul@codesourcery.com>
12639
12640         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12641
12642 2004-02-18  Paul Brook  <paul@codesourcery.com>
12643
12644         PR debug/12934
12645         * dwarf2out.c (loc_descriptor_from_tree): Handle
12646         EXPR_WITH_FILE_LOCATION.
12647
12648 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12649
12650         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12651         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12652         trailing whitespace from instructions.
12653
12654 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12655
12656         * configure.ac: When generating auto-build.h, pass
12657         --enable-languages to the sub-configure.
12658         Put quotes around ${program_transform_name} when generating
12659         name of as, ld, nm, objdump.
12660         * configure: Regenerate.
12661
12662 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12663
12664         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12665         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12666         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12667         (s-preds, s-iov): Do not depend on move-if-change.
12668
12669 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12670
12671         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12672         (insert_save): Likewise.
12673
12674 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12675
12676         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12677         warning.
12678
12679 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12680
12681         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12682         *one_cmplsi2_h8300.
12683         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12684
12685 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12686
12687         * config/h8300/h8300-protos.h: Update the prototype of
12688         fix_bit_operand().
12689         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12690         argument "what".
12691         * config/h8300/h8300.md: Update all callers.
12692
12693 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12694
12695         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12696         the last argument to "code" from "type".
12697
12698 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12699
12700         * config/h8300/h8300.c: Remove an extern declaration of
12701         rtx_equal_function_value_matters.
12702
12703 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12704
12705         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12706         by hand.
12707         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12708         (*iorqi3_1): Change to iorqi3_1.
12709         (*xorqi3_1): Change to xorqi3_1.
12710
12711 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12712
12713         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12714         typos.
12715
12716 2004-02-17  Jan Hubicka  <jh@suse.cz>
12717
12718         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12719
12720 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12721
12722         PR optimization/14119
12723         * combine.c (try_combine): When attemting to fix unrecognized insns,
12724         don't delete SETs marked with REG_EH_REGION notes.
12725
12726 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12727
12728         * combine.c (simplify_if_then_else): Do not replace
12729         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12730         modes differ.
12731
12732 2004-02017  Steven Bosscher  <stevenb@suse.de>
12733
12734         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12735         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12736         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12737         * ada/utils.c: Likewise.
12738         * cp/decl.c: Likewise.
12739         * f/com.c: Likewise.
12740         * java/class.c: Likewise.
12741
12742 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12743
12744         * config/h8300/h8300.md: Fix comment typos.
12745
12746 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12747
12748         * config/mips/t-iris6gld: Renamed to ...
12749         * config/mips/t-irix-gld: ... this.
12750         * config.gcc (mips-sgi-irix6*): Reflect this
12751         (mips-sgi-irix5*): Use it with GNU ld.
12752
12753         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12754         to ...
12755         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12756         * config/mips/t-irix-gld: Reflect this.
12757         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12758
12759         * config/mips/iris5gld.h: New file.
12760         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12761         Only use collect2 without gas.
12762
12763         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12764         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12765         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12766         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12767
12768         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12769         * config/mips/iris5.h: ... here.
12770
12771         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12772         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12773         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12774
12775         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12776         using irix_startfile_spec, irix_endfile_spec.
12777
12778 2004-02-16  Gunther Nikl  <gni@gecko.de>
12779
12780         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12781
12782 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12783
12784         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12785         insns by hand.
12786
12787 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12788
12789         * cfghooks.c (split_edge): Speed up updating of dominators.
12790
12791 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12792
12793         PR c++/11326
12794         * c-common.c (flag_abi_version): Remove.
12795         * c-common.h (flag_abi_version): Likewise.
12796         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12797         * c.opt (fabi-version): Remove.
12798         * calls.c (expand_call): Always pass a function type to
12799         struct_value_rtx.  Use convert_memory_address.
12800         * common.opt (fabi-version): Add it.
12801         * flags.h (flag_abi_version): Likewise.
12802         (abi_version_at_least): New macro.
12803         * opts.c (common_handle_option): Add OPT_fabi_version.
12804         * toplev.c (flag_abi_version): Define it.
12805         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12806         New function.
12807         (ia64_output_mi_thunk): Use it.
12808         (ia64_struct_value_rtx): Likewise.
12809
12810 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12811
12812         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12813         Don't generate insns by hand.
12814
12815 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12816
12817         PR c++/14178
12818         * doc/invoke.texi (fabi-version): The default is 2 now.
12819
12820 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12821
12822         * loop-iv.c: New file.
12823         * Makefile.in (loop-iv.o): New.
12824         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12825         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12826         num_loop_branches): New functions.
12827         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12828         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12829         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12830         get_simple_loop_desc, free_simple_loop_desc): Declare.
12831         (simple_loop_desc): New inline function.
12832         (struct rtx_iv, struct niter_desc): New.
12833         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12834         * expr.c (force_operand): Handle subregs of expressions created by
12835         loop unroller.
12836         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12837         parts of the initialization to toplev.c
12838         * loop-unroll.c (loop_exit_at_end_p): New.
12839         (unroll_and_peel_loops): Call iv_analysis_done.
12840         (decide_peel_once_rolling, decide_peel_completely,
12841         decide_unroll_stupid, decide_unroll_constant_iterations,
12842         decide_unroll_runtime_iterations, decide_peel_simple,
12843         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12844         unroll_loop_runtime_iterations): Use new simple loop analysis.
12845         * loop-unswitch.c (compare_and_jump_seq): New.
12846         (may_unswitch_on_p): Renamed to ...
12847         (may_unswitch_on): Use new iv analysis.
12848         (reversed_condition): Export.
12849         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12850         * predict.c (estimate_probability): Use new simple loop analysis.
12851         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12852         canon_condition, simplify_using_condition): Declare.
12853         * stor-layout.c (get_mode_bounds): New.
12854         * toplev.c (rest_of_handle_loop2): Some parts of
12855         initialization/finalization moved here from loop-init.c.
12856
12857 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12858
12859         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12860         pointer.
12861         (CALL_USED_REGISTERS): Likewise.
12862         (REG_ALLOC_ORDER): Likewise.
12863         (REG_CLASS) <GENERAL_REGS>: Likewise.
12864
12865 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12866
12867         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12868         in associative operators.
12869         * rtlanal.c (commutative_operand_precedence): Create some new
12870         variables.  Prefer a commutative operand on the left, then
12871         binary expressions, then NEG and NOT.
12872
12873 2004-02-16  Matthias Klose  <doko@debian.org>
12874
12875         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12876         in terms of SHLIB_SOVERSION.
12877         * config/m68k/t-slibgcc-elf-ver: New file.
12878         * config/pa/t-slibgcc-elf-ver: New file.
12879         * config.gcc (m68k-linux, parisc-linux): Use them when not
12880         sjlj exceptions are not configured.
12881
12882 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12883
12884         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12885
12886 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12887
12888         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12889
12890 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12891
12892         * doc/sourcebuild.texi: Mention backends.html.
12893
12894 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12895
12896         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12897         line-map.c, line-map.h, var-tracking.c: Fix comment
12898         formatting.
12899
12900 2004-02-16  Richard Henderson  <rth@redhat.com>
12901
12902         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12903
12904         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12905
12906 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12907
12908         * config/h8300/h8300.md: Remove unnecessary parallels from
12909         all define_insn and define_split patterns.
12910
12911 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12912
12913         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12914         "clobber").
12915
12916 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12917
12918         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12919         '%#'.
12920
12921 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12922
12923         * config/ia64/ia64.c, config/mips/mips.c,
12924         config/mmix/mmix-modes.def: Fix comment typos.
12925
12926 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12927
12928         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12929         (get_directive_line): Remove unused function prototype.
12930
12931 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12932
12933         * tree-inline.c (copy_body_r): Do not replace ret_label.
12934
12935 2004-02-14  Jan Hubicka  <jh@suse.cz>
12936
12937         * i386.c (x86_four_jump_limit): New variable.
12938         (k8_avoid_jump_misspredicts): Rename to ...
12939         (ix86_avoid_jump_misspredicts): .. this one.
12940         (ix86_pad_returns): Break out from ...
12941         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12942         to.
12943         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12944
12945 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12946
12947         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12948         PARALLEL is NULL.
12949
12950 2004-02-14  Per Bothner  <per@bothner.com>
12951
12952         * fix-header.c (line_table):  Move local variable in main to global.
12953         * scan.h (line_table):  Use it.
12954         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12955         line (recently renamed to src_loc) before calling recognized_function.
12956
12957 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12958
12959         * Makefile.in: Fix comment typos.
12960
12961 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12962
12963         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12964         for start_value when it is directly moved into reg, and factorize
12965         the retrieval of GET_MODE (reg).
12966
12967 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12968
12969         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12970         (mips_load_got_global): Delete.
12971         (mips_gotoff_page): Declare.
12972         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12973         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12974         UNSPEC_LOAD_GOT pattern rather than a MEM.
12975         (*load_got[sd]i): New patterns.
12976         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12977         (mips_load_got_page, mips_load_got_global): Delete.
12978         (mips_gotoff_page): New function.
12979         (override_options): Don't initialize mips_got_alias_set.
12980
12981 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12982
12983         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12984         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12985         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12986         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12987         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12988         * config/mips/mips.c: Fix some overly-long lines.
12989         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12990         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12991
12992 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12993
12994         * configure.ac: Search for as, ld below libexec/gcc.
12995         * configure: Regenerate.
12996
12997 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12998
12999         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13000         __builtin_arm_setwcx ().
13001         * config/arm/arm.c (arm_expand_builtin): Generate operands
13002         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13003
13004 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13005
13006         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13007         and "wmuluh" to "wmulsm" and "wmulum", respectively.
13008         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13009         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13010         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13011         (_mm_mulhi_pu16): Likewise.
13012
13013 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
13014
13015         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13016         DECL_NAME != 0 before dereferencing.
13017
13018 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13019
13020         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13021         (s390_output_addr_const_extra): Declare.
13022         (s390_output_pool_entry): Remove FILE * argument.
13023         * config/s390/s390.c (s390_output_symbolic_const): Remove.
13024         (s390_output_addr_const_extra): New function.
13025         (print_operand_address): Call output_addr_const instead of
13026         s390_output_symbolic_const.
13027         (print_operand): Likewise.
13028         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13029         Remove FILE * argument.
13030         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13031         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13032         call.
13033
13034 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13035
13036         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13037         (struct edge, struct vertex, struct graph): New.
13038         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13039         free_graph): New functions.
13040
13041 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
13042
13043         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13044         Use ".set macro" to avoid warnings about multi-instruction
13045         macros, since they're intentional.
13046
13047 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
13048
13049         * config/darwin.h: Add include guards.  Remove old, now incorrect,
13050         comment about STANDARD_EXEC_PREFIX.
13051
13052         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13053         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
13054         for installing .1 manpages.  Add rules for installing cpp
13055         and gcov manpages under their installed names.
13056
13057 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
13058
13059         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13060         host, but try LD_FOR_TARGET first.
13061         * configure: Rebuilt.
13062
13063 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13064
13065         * dbxout.c: Move declaration of dbxout_type_decl outside
13066         #ifdef DBX_DEBUGGING_INFO.
13067         * c-parse.in: Don't give the asmdef production a type.
13068
13069 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13070
13071         * debug.h (struct gcc_debug_hooks): Add type_decl field.
13072         (debug_nothing_tree_int): Prototype.
13073         (dwarf_debug_hooks): Delete, unused.
13074         * debug.c (do_nothing_debug_hooks): Update.
13075         (debug_nothing_tree_int): New function.
13076         * langhooks.h (struct lang_hooks_for_decls):
13077         Remove builtin_type_decls field.
13078         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13079         (LANG_HOOKS_DECLS): Update.
13080         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13081         Use debug_hooks->type_decl.
13082         * dbxout.c (preinit_symbols): New static.
13083         (dbx_debug_hooks, xcoff_debug_hooks): Update.
13084         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13085         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
13086         for symbols to output.
13087         (dbxout_type_decl): New function.
13088         (dbxout_symbol): If called before dbxout_init has run, queue
13089         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13090         to TYPE_DECLs before emitting them.
13091         * xcoffout.c (assign_type_number): Delete.
13092         (xcoff_type_numbers): New static table.
13093         (xcoff_assign_fundamental_type_number): New function.
13094         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13095         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
13096         * sdbout.c: Include varray.h.
13097         (deferred_global_decls): New static.
13098         (sdb_debug_hooks): Update.
13099         (sdbout_global_decl): If we can't emit something right now,
13100         remember it in deferred_global_decls.
13101         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13102         (sdbout_init): Initialize deferred_global_decls.
13103         * Makefile.in: Update dependencies of sdbout.o.
13104         * dwarf2out.c (dwarf2out_type_decl): New function.
13105         (dwarf2_debug_hooks): Update.
13106         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13107         * c-decl.c (getdecls): Just return 0.
13108         (check_for_loop_decls): Don't use getdecls.
13109         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13110         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13111
13112 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
13113
13114         * config/s390/s390.c (s390_sched_reorder2): Remove.
13115         (TARGET_SCHED_REORDER2): Do not redefine.
13116
13117 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13118
13119         * c-parse.in (maybe_type_qual): Delete.
13120         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13121         (asm_argument): New grammar rules.
13122         (extdef_1): Use asmdef.
13123         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13124         (xexpr): Move up with other expression rules.
13125         (stmt): Use asm_stmt.
13126
13127         * c-typeck.c (build_asm_expr): New function - body mostly
13128         pulled from build_asm_stmt.
13129         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13130         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13131
13132 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13133
13134         PR bootstrap/13617
13135         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13136         (mips_declare_object): Make variadic.
13137         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13138         mips_output_aligned_decl_common.
13139         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13140         (mips_declare_object): Make variadic.
13141
13142 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13143
13144         * function.c (update_epilogue_consts): Teach about binary operations.
13145
13146         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13147         previous MEM_VOLATILE in REF.
13148         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13149         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13150
13151 2004-02-12  Gunther Nikl  <gni@gecko.de>
13152
13153         * config.gcc: Restore support for m68k-openbsd.
13154
13155 2004-02-12  Jan Hubicka  <jh@suse.cz>
13156
13157         * tree-optimize.c (tree_rest_of_compilation): Do not release
13158         DECL_ARGUMENTS.
13159
13160 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13161
13162         * doc/install.texi: Fix the spelling of "explicitly".
13163
13164 2004-02-11  Eric Christopher  <echristo@redhat.com>
13165
13166         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13167         duplicate argument structure of cpp_interpret_string.
13168         * cpphash.h: Move prototype...
13169         * cpplib.h: Here.
13170         * cpplib.c: Fix calls to match new function signature.
13171
13172 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13173
13174         PR c/456
13175         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13176         constant expressions at all outside C99 mode if pedantic.
13177
13178 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13179
13180         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13181         (log10_optab, log2_optab): Define corresponding macros.
13182         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13183         * genopinit.c (optabs): Implement log10_optab and log2_optab
13184         using log10?f2 and log2?f2 patterns.
13185         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13186         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13187         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13188         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13189
13190         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13191         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13192         log2, log2f and log2l built-ins as inline x87 intrinsics.
13193
13194 2004-02-11  Richard Henderson  <rth@redhat.com>
13195
13196         PR target/1532
13197         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13198         dead insn after reload.
13199
13200 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13201
13202         * tree.h (frame_base_decl): Add GTY marker.
13203         * var-tracking.c (frame_base_decl): Likewise.
13204
13205 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13206
13207         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13208         incorrect, hunk.
13209         (add_location_or_const_value_attribute): Use text_section_label,
13210         not TEXT_SECTION_NAME.
13211
13212 2004-02-11  Per Bothner  <per@bothner.com>
13213
13214         Represent column numbers using line-map's source_location.
13215         The "next available source_location" is now managed internally by
13216         line-maps.c rather than by clients.
13217         * line-map.h (struct line_map):  New field column_bits.
13218         <from_line>:  Rename field to start_location.
13219         (struct line_maps):  New fields highest_location and max_column_hint.
13220         (linemap_check_files_exited):  New declaration.
13221         (linemap_line_start):  New declaration.
13222         (linemap_add):  Remove from_line parameter; use highest_location field.
13223         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13224         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13225         (CURRENT_LINE_MAP):  Remove macro.
13226         (linemap_position_for_column):  New inline function.
13227         * line-map.c (linemap_init):  Clear new fields.
13228         (linemap_check_files_exited):  New function, extracted from ...
13229         (linemap_free):  Use linemap_check_files_exited.
13230         (linemap_add):  Remove from_line parameter.  Various updates.
13231         (linemap_line_start):  New function.
13232         (linemap_lookeup):  Update for new field names.
13233         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13234         linemap_position_for_column may unpredictably change the current map,
13235         it is cleaner and simpler for us to not cache it in cpp_reader.
13236         (struct cpp_buffer):  New sysp field.
13237         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13238         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13239         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13240         current map using linemap_lookup.
13241         (do_linemarker):  Also set buffer's sysp field.
13242         (destringize_and_run):  No longer need to decrement current line.
13243         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13244         (search_path_head, open_file_failed):  Use buffer's sysp.
13245         (cpp_make_system_header):  Get current map using linemap_lookup.
13246         Also set buffer's sysp flag.
13247         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13248         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13249         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13250         (struct cpp_reader):  ... and adding saved_line_base field.
13251         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13252         Update accordingly.  Don't adjust line.
13253         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13254         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13255         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13256         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13257         * cpplex.c (_cpp_lex_direct):  Likewise.
13258         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13259         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13260         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13261         Remove col field as it is now subsumed by src_loc.
13262         * cpperror.c:  Update various field, parameter, and macro names.
13263         (print_location):  If col==0, try SOURCE_COLUMN of line.
13264         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13265         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13266         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13267         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13268         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13269         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13270         (_cpp_lex_direct):  Use linemap_position_for_column.
13271         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13272         parameter.  Instead get it from the line_table global.  Adjust callers.
13273         (print):  Remove map field.  Replace line field to src_line.
13274         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13275         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13276         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13277         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13278         * cpptrad.c (copy_comment):  Rename variable.
13279         * c-lex.c (map):  Remove static variable, for same reason we removed
13280         cpp_reader's map field.
13281         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13282         to call linemap_lookup.
13283         (cb_line_change):  Token's line field replaced by src_loc.
13284         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13285         Don't save new_map.
13286
13287         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13288         source_location.
13289
13290 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13291
13292         * config/rs6000/altivec.md (*movv4si_internal): At least one
13293         operand must be register_operand.
13294         (*movv8hi_internal1): Likewise.
13295         (*movv16qi_internal1): Likewise.
13296         (*movv4sf_internal1): Likewise.
13297
13298 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13299
13300         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13301         operand.
13302         (movv4hi_internal): Same.
13303         (movv2sf_internal): Same.
13304         (movv1di_internal): Same.
13305
13306 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13307
13308         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13309         TARGET_OLDABI consistently.
13310         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13311         mips_va_arg,override_options,compute_frame_size,
13312         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13313         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13314         and TARGET_OLDABI consistently.
13315         * config/mips/mips.md (exception_receiver): Likewise.
13316         * config/mips/linux64.h: Likewise.
13317
13318 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13319
13320         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13321         Set AltiVec ABI and vrsave as default for ppc64 linux.
13322         (init_cumulative_args): Post error, if try to return
13323         value in AltiVec register without enable AltiVec.
13324         (function_arg_advance): Ditto for passing arguments.
13325
13326 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13327
13328         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13329         a label before updating its usage count.
13330
13331 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13332
13333         * doc/install.texi: Remove extra cd.
13334
13335 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13336
13337         * c-common.c (vector_size_helper): Remove; call
13338         reconstruct_complex_type() instead.
13339         * tree.c (reconstruct_complex_type): New function
13340         (formerly vector_size_helper() in c-common.c).
13341         (make_vector): Make externally visible.
13342         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13343
13344 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13345
13346         * config/h8300/h8300-protos.h: Add a prototype for
13347         h8300_regs_ok_for_stm.
13348         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13349         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13350         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13351         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13352         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13353         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13354         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13355         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13356         h8300_regs_ok_for_stm().
13357
13358 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13359
13360         PR c/14088
13361         * real.c (real_from_string): Look for 'X' as well as 'x' in
13362         hexfloat strings.
13363
13364 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13365
13366         * config/h8300/h8300.md: Remove an incorrect comment about
13367         peephole2.  Add comments.
13368
13369 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13370
13371         PR/14058
13372         * emit-rtl.c (set_decl_incoming_rtl): New.
13373         * tree.h (set_decl_incoming_rtl): New.
13374         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13375         DECL_INCOMING_RTL.
13376         * ada/misc.c (adjust_decl_rtl): Likewise.
13377
13378 2004-02-10  Per Bothner  <per@bothner.com>
13379
13380         * c-opts.c (c_common_post_options):   Don't emit working directory
13381         in cpp output if -P was specified.
13382
13383 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13384
13385         PR c/14092
13386         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13387         negate_expr back to the original type.
13388
13389 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13390
13391         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13392         bump retaddr here.
13393
13394 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13395
13396         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13397         gen_lowpart_SUBREG): Move under the file in which they
13398         are actually declared.
13399
13400 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13401
13402         * doc/sourcebuild.texi: Add libada documentation.
13403
13404         * doc/install.texi: Update documentation on Ada build, now
13405         that the GNAT lib and tools are built automatically.
13406
13407 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13408
13409         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13410         && TARGET_IRIX.
13411
13412 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13413
13414         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13415         boundaries outside build_component_ref() call (a macro in ObjC++).
13416
13417 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13418
13419         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13420         (init_cumulative_args): Likewise.
13421         (a7_overlap_mentioned_p): Delete prototype.
13422         * config/xtensa/xtensa.c (struct machine_function): Replace
13423         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13424         Add set_frame_ptr_insn field.
13425         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13426         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13427         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13428         at the function entry and replace the operand with the pseudo.
13429         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13430         argument and record this flag in CUMULATIVE_ARGS.
13431         (function_arg): Remove result_mode and special-case code to handle
13432         arguments in a7.  Instead, set need_a7_copy flag when there is an
13433         incoming argument in a7.
13434         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13435         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13436         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13437         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13438         special-case code.
13439         (a7_overlap_mentioned_p): Delete.
13440         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13441         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13442         arguments to init_cumulative_args and pass "incoming" flag instead.
13443         (BLOCK_REG_PADDING): Delete.
13444         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13445         checks for reload_in_progress and reload_completed.  Update calls to
13446         xtensa_copy_incoming_a7.
13447         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13448         to call xtensa_copy_incoming_a7.
13449
13450 2004-02-09  DJ Delorie  <dj@redhat.com>
13451
13452         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13453         longer modify standard_exec_prefix, standard_bindir_prefix, or
13454         standard_startfile_prefix.
13455
13456 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13457
13458         PR c++/11295
13459         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13460         to expand_expr_real call, and pass in alt_rtl as last argument.
13461
13462         PR libstdc++/5625
13463         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13464         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13465         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13466         * except.c (expand_builtin_extend_pointer): New.
13467         * except.h (expand_builtin_extend_pointer): Declare.
13468
13469 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13470
13471         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13472         unaligned loads and stores.
13473
13474 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13475
13476         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13477         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13478
13479         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13480         * config/mips/iris5.h: ... here.
13481         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13482
13483         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13484         * config/mips/iris5.h: ... here.
13485
13486 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13487
13488         * configure.ac: Remove default executable files before AC_PROG_CC.
13489         * configure: Regenerate.
13490
13491 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13492
13493         PR target/13721
13494         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13495         print a operand other than a register.
13496
13497 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13498
13499         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13500         tree code rather than call fold_convert, which doesn't specify a
13501         default floating point to integer conversion.
13502
13503 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13504
13505         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13506         code to support SGS assembler.  Reformat adjacent code where possible.
13507         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13508         definition.
13509         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13510         for '%#'.
13511         * config/m68k/linux.h, config/m68k/m68k.c,
13512         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13513         macros and asm_printf() format strings.
13514         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13515         * config/m68k/linux.h: Update copyright.
13516         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13517
13518 2004-02-08  Andreas Schwab  <schwab@suse.de>
13519             Bernardo Innocenti  <bernie@develer.com>
13520
13521         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13522         REGISTER_PREFIX.
13523         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13524         frame pointer register, overridable by OS targets.
13525         * (M68K_REGNAME): Macro to obtain register name for asm output,
13526         eventually replacing %a6 with M68K_FP_REG_NAME.
13527         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13528         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13529         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13530         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13531         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13532
13533 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13534
13535         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13536         hook_rtx_tree_int_null.
13537         * targhooks.c (default_struct_value_rtx): Remove.
13538         * targhooks.h: Remove the prototype for
13539         default_struct_value_rtx.
13540         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13541         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13542         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13543         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13544         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13545         config/rs6000/rs6000.c, config/s390/s390.c,
13546         config/stormy16/stormy16.c, config/v850/v850.c,
13547         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13548         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13549
13550 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13551
13552         * README.Portability: Change "ISO C89" to "ISO C90".
13553         * c-parse.in (primary, initelt): Likewise.
13554
13555 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13556
13557         * real.c (encode_ibm_extended): Normalize the input value before
13558         converting it to a double.  Handle the case where a normal value
13559         rounds to infinity.
13560
13561 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13562
13563         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13564         warning.
13565         * cse.c (preferrable): Change to preferable. Update all of its
13566         callers.
13567         * genautomata.c (ainsn): Change
13568         first_ainsn_with_given_equialence_num to
13569         first_ainsn_with_given_equivalence_num.  Update all of its
13570         references.
13571
13572 2004-02-08  Jan Hubicka  <jh@suse.cz>
13573
13574         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13575
13576 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13577
13578         * function.c (assign_parms): Fix formatting.
13579
13580 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13581
13582         * default.h (PROMOTE_PROTOTYPES): Remove.
13583         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13584         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13585         EXPAND_BUILTIN_SAVEREGS): Poison.
13586         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13587         hook_bool_tree_false.
13588         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13589         * target.h: Replace SETUP_INCOMING_VARARGS with
13590         targetm.calls.setup_incoming_varargs().
13591         * targhooks.c (default_promote_function_return): Remove.
13592         (default_promote_prototypes): Likewise.
13593         (default_struct_value_rtx): Always abort().
13594         (default_expand_builtin_saveregs): Always print an error
13595         message.
13596         (default_setup_incoming_varargs): Do nothing.
13597         (default_pretend_outgoing_varargs_named): Don't depend on
13598         SETUP_INCOMING_VARARGS.
13599         * targhooks.h: Remove the prototype for
13600         default_promote_function_return and
13601         default_promote_prototypes.
13602
13603 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13604
13605         * system.h (SHARED_SECTION_ASM_OP): Poison.
13606         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13607         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13608
13609 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13610
13611         Bug 13856
13612         * c-decl.c (diagnose_mismatched_decls): Only give special
13613         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13614         is also true.
13615         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13616         DECL_FUNCTION_CODE when defining a built-in function.
13617         Don't update DECL_ESTIMATED_INSNS.
13618         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13619         FUNCTION_DECLs.
13620         * tree.h: Delete DECL_ESTIMATED_INSNS.
13621         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13622         (expand_call_inline, optimize_inline_calls): Don't update
13623         DECL_ESTIMATED_INSNS nor inlined_insns.
13624         * cgraphunit.c (cgraph_analyze_function): Don't update
13625         DECL_ESTIMATED_INSNS.
13626
13627 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13628
13629         * c-common.c (shadow_warning): Delete.
13630         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13631         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13632         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13633         * c-parse.in (free_parser_stacks): Delete.
13634
13635 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13636
13637         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13638         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13639         Use the top level mkinstalldirs, not the one in the gcc subdir.
13640         * mkinstalldirs: Remove (from the gcc subdir).
13641
13642 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13643
13644         PR middle-end/13696
13645         * fold-const.c (fold_convert): New function to provide type
13646         conversion to the middle-end without using convert.
13647         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13648         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13649         invert_truthvalue, optimize_bit_field_compare, range_binop,
13650         decode_field_reference, make_range, build_range_check, unextend,
13651         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13652         fold_binary_op_with_conditional_arg, fold_inf_compare,
13653         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13654         convert with calls to fold_convert.
13655
13656 2004-02-07  Jan Hubicka  <jh@suse.cz>
13657
13658         * genrecog.c (find_operand): add extra argument stop.
13659         (validate_pattern): Verify that mach_dup is duplicating operand
13660         defined lexically earlier.
13661
13662 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13663
13664         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13665         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13666         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13667         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13668         config/ia64/ia64.h, config/ip2k/ip2k.h,
13669         config/iq2000/iq2000.h, config/mips/iris5.h,
13670         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13671         config/rs6000/aix51.h, config/rs6000/aix52.h,
13672         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13673         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13674         config/sparc/linux.h, config/sparc/linux64.h,
13675         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13676         config/xtensa/xtensa.h: Remove the definitions of
13677         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13678         MAX_WCHAR_TYPE_SIZE.
13679         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13680         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13681
13682 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13683
13684         PR bootstrap/13990
13685         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13686         gen_rtx_NE.
13687
13688 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13689
13690         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13691         #ifdef ENABLE_CHECKING and #endif.
13692
13693 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13694
13695         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13696         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13697         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13698         integer types and floating point with unsafe_math_optimizations.
13699         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13700         Optimize A - B as A + (-B), if B is easily negated.
13701
13702 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13703
13704         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13705         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13706         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13707         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13708         Update copyright.
13709
13710 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13711
13712         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13713
13714 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13715
13716         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13717         glibc 2.3 or better.
13718
13719 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13720
13721         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13722         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13723
13724 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13725
13726         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13727         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13728         (SHLIB_MKMAP_OPTS): Delete.
13729         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13730         (bispecs): Add rule.
13731         * config/rs6000/libgcc-ppc64.ver: New file.
13732         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13733         (__floatdidf, __floatdisf): Optimize multiply.
13734         (__fixunstfdi): New function.
13735         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13736         real and imag parts larger than one register.
13737         (function_arg): Correct type of reg used when fp arg split partially
13738         to stack.
13739         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13740         and __MACH__ or __powerpc64__.
13741
13742 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13743             Ulrich Weigand  <uweigand@de.ibm.com>
13744
13745         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13746         of gen_highpart or gen_lowpart when the floating point format is
13747         wider than the result mode.
13748
13749 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13750
13751         * dwarf2out.c (loclabel_num): Move into #ifdef
13752         DWARF2_DEBUGGING_INFO.
13753
13754 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13755
13756         * objc/objc-act.c (build_super_template) the 'class' field of
13757         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13758         (get_super_receiver): Likewise.
13759
13760 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13761
13762         * reload1.c (check_eliminable_occurrences): Optimize the reset
13763         of can_eliminate.
13764         (eliminate_regs_in_insn): Likewise.
13765
13766 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13767             Josef Zlomek  <zlomekj@suse.cz>
13768
13769         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13770         at the beginning of function, call dwarf2out_var_location for
13771         NOTE_INSN_VAR_LOCATION note.
13772         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13773         decl_loc_table): New.
13774         (lookup_decl_loc): New function.
13775         (add_var_loc_to_decl): New function.
13776         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13777         only if can_use_fbreg.
13778         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13779         functions.
13780         (loc_descriptor): Likewise. Process VAR_LOCATION.
13781         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13782         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13783         can_use_fbreg == true.
13784         (add_location_or_const_value_attribute): Added parameter enum
13785         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13786         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13787         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13788         with attr == DW_AT_location.
13789         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13790         if frame_base_decl is defined and has a location list.
13791         (gen_variable_die): Call add_location_or_const_value_attribute with
13792         attr == DW_AT_location.
13793         (dwarf2out_var_location): New function.
13794         (dwarf2out_begin_function): New function.
13795         (dwarf2out_init): Create decl_loc_table.
13796
13797 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13798
13799         * loop.c (force_movables): Transitively increase the priorities of
13800         all insns forces by an insn, not just the first one.
13801
13802 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13803             Daniel Berlin <dberlin@dberlin.org>
13804
13805         Josef Zlomek  <zlomekj@suse.cz>
13806         * Makefile.in (var-tracking.o): New.
13807         * common.opt (fvar-tracking): New.
13808         * flags.h (flag_var_tracking): New.
13809         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13810         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13811         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13812         * rtl.c (note_insn_name): Likewise.
13813         * rtl.def (VAR_LOCATION): New.
13814         * rtl.h (NOTE_VAR_LOCATION): New.
13815         (NOTE_VAR_LOCATION_DECL): New.
13816         (NOTE_VAR_LOCATION_LOC): New.
13817         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13818         (variable_tracking_main): New exported function.
13819         * timevar.def (TV_VAR_TRACKING): New.
13820         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13821         (dump_file): "vartrack" was added (-dV).
13822         (flag_var_tracking): New.
13823         (f_options): "var-tracking" was added.
13824         (rest_of_handle_variable_tracking): New function.
13825         (rest_of_compilation): Run variable tracking.
13826         (process_options): If user has not specified flag_var_tracking set it
13827         according to optimize, debug_info_level and debug_hooks.
13828         * tree.h (frame_base_decl): New.
13829         * var-tracking.c: New file.
13830         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13831         (ia64_override_options): Set flags to run variable tracking in machine
13832         dependent reorg instead of toplev.c.
13833         (ia64_reorg): Run variable tracking if wanted.
13834         * doc/invoke.texi: Mention variable tracking in -dV,
13835         add and -fvar-tracking.
13836         * doc/passes.texi: Added variable tracking pass.
13837
13838         Daniel Berlin <dberlin@dberlin.org>
13839         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13840         * dbxout.c (dbx_debug_hooks): Likewise.
13841         (xcoff_debug): Likewise.
13842         * debug.c (do_nothing_debug_hooks): Likewise.
13843         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13844         * dwarfout.c (dwarf_debug_hooks): Likewise.
13845         * sdbout.c (sdb_debug_hooks): Likewise.
13846         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13847         * final.c (final_scan_insn): Call var_location debug hook for each
13848         NOTE_INSN_VAR_LOCATION.
13849
13850 2004-02-06  Jan Hubicka  <jh@suse.cz>
13851
13852         * flow.c (update_life_info): Allocate reg_deaths when called from
13853         scheudler.
13854         (attempt_auto_inc):  Update life ranges accordingly.
13855
13856 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13857
13858         PR debug/11816
13859         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13860
13861 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13862
13863         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13864
13865 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13866
13867         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13868         a separate line info table in use.
13869         Use the correct size for terminators.
13870         (output_die): Use offset, not delta.
13871
13872 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13873
13874         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13875
13876 2004-02-06  Jan Hubicka  <jh@suse.cz>
13877
13878         * recog.c (split_all_insns): Do not update reg info.
13879         * regrename.c (regrename_optimize): Likewise.
13880         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13881         * flow.c (struct propagate_block_info): Add insn_num field.
13882         (reg_deaths): New array.
13883         (life_analysis): Free reg_deaths info.
13884         (allocate_reg_life_data): Allocate reg_deaths array.
13885         (propagate_one_insn): Use new array.
13886         (init_propagate_block): Initialize it.
13887         (free_propagate_block_info): Finish compuation of
13888         REG_LIVE_LENGTH
13889         (attempt_auto_inc): Sanity check that REG_INFO is not
13890         computed at same time.
13891         (mark_used_regs): Update new array.
13892
13893         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13894         substitution.
13895
13896 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13897
13898         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13899         *extendqisi2_short_displ.
13900
13901 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13902
13903         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13904         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13905         (emit_library_call_value_1): Likewise pass nargs.
13906         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13907         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13908         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13909         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13910         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13911         prototype.
13912         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13913         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13914         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13915         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13916         INIT_CUMULATIVE_ARGS.
13917         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13918         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13919         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13920         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13921         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13922         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13923         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13924         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13925         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13926         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13927         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13928         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13929
13930 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13931
13932         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13933         possible.
13934
13935 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13936
13937         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13938         note containing (plus (reg) (const_int)), where reg is an
13939         eliminable reg, then perform the register elimination without
13940         depending on eliminate_regs().
13941
13942 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13943
13944         * config/arc/arc.c (arc_return_in_memory): Check the return
13945         value of int_size_in_bytes against -1.  Don't check
13946         TREE_ADDRESSABLE.
13947         * config/avr/avr.c (avr_return_in_memory): Check the return
13948         value of int_size_in_bytes against -1.
13949         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13950         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13951         Likewise.
13952         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13953         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13954         Likewise.
13955
13956 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13957
13958         * config/frv/frv-protos.h: Remove the prototype for
13959         frv_setup_incoming_varargs.
13960         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13961         (frv_setup_incoming_varargs): Make it static.
13962         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13963
13964 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13965
13966         * config/fr30/fr30-protos.h: Remove the prototype for
13967         fr30_setup_incoming_varargs.
13968         Update the prototypes for fr30_num_arg_regs and
13969         fr30_function_arg_partial_nregs.
13970         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13971         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13972         (fr30_setup_incoming_varargs): Make it static.
13973         Add argument second_time.  Don't do anything when second_time
13974         is nonzero.
13975         (fr30_num_arg_regs): Change the type of the first argument to
13976         enum machine_mode.
13977         (fr30_function_arg_partial_nregs): Change the type of the
13978         second argument to enum machine_mode.
13979         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13980         (SETUP_INCOMING_VARARGS): Remove.
13981
13982 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13983
13984         * config/arc/arc-protos.h: Remove the prototype for
13985         arc_setup_incoming_varargs.
13986         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13987         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13988         (arc_setup_incoming_varargs): Make it static.
13989         (arc_external_libcall): Likewise.
13990         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13991         Remove the commented-out definition of
13992         ASM_OUTPUT_EXTERNAL_LIBCALL.
13993
13994 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13995
13996         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13997         to $$(slibdir) in the installation commands.
13998
13999 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14000
14001         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14002         with inner_regno, not regno.
14003         * rtlanal.c (refers_to_regno_p): Same.
14004
14005 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14006
14007         * config.gcc: Remove i370 support.
14008
14009 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14010
14011         * doc/install.texi:  Update automake and autoconf version
14012         requirements.  Note where to find gcj automake version.
14013
14014 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14015
14016         * Makefile.in (generate-manpages): Move dependencies to ...
14017         (man): here.
14018         * doc/makefile.texi: Document new targets.
14019         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14020
14021 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14022
14023         PR/13485
14024         Makefile.in (srcextra):  Add a level of indirection to ...
14025         (gcc.srcextra): ... here.
14026         (po-generated): Delete.
14027         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
14028         options.c.
14029         (start.encap): Remove superfluous lang.srcextra dependency.
14030         objc/Make-lang.in (po-generated):  Delete.
14031
14032 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14033
14034         * config/ia64/ia64.c (REG_GP): Remove.
14035
14036 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14037
14038         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14039
14040 2004-02-05  Devang Patel  <dpatel@apple.com>
14041
14042         * dwarf2out.c (force_type_die): Look up input type itself
14043         instead of root_type() of type.
14044
14045 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
14046
14047         * config/s390/s390.md ("*tmqidi_ext"): New insn.
14048         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14049         pre-reload splitters are transformed to post-reload
14050         define_insn_and_split patterns.
14051         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14052
14053 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14054
14055         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14056         TARGET_PROMOTE_PROTOTYPES.
14057
14058 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14059
14060         PR middle-end/13750
14061         Revert:
14062         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14063         PR pch/13361
14064         * c-typeck.c (constructor_asmspec): Delete.
14065         (struct initializer_stack): Delete field 'asmspec'.
14066         (start_init): Delete saving of asmspec.
14067         (finish_init): Don't update constructor_asmspec.
14068         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14069         * stmt.c (expand_asm): Duplicate strings from tree.
14070         (expand_asm_operands): Likewise.
14071         * tree.c (tree_size): Update computation of size of STRING_CST.
14072         (make_node): Don't make STRING_CST nodes.
14073         (build_string): Allocate string with tree node.
14074         * tree.def (STRING_CST): Update comment.
14075         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14076         (tree_string): Place contents of string in tree node.
14077         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14078         from tree.
14079
14080 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14081
14082         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14083         msgid.
14084
14085 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
14086
14087         * config/rs6000/altivec.md (*movv4si_internal): At least one
14088         operand must be altivec_register_operand.
14089         (*movv8hi_internal1): Likewise.
14090         (*movv16qi_internal1): Likewise.
14091         (*movv4sf_internal1): Likewise.
14092
14093 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14094
14095         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14096         * configure: Regenerate.
14097
14098 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
14099
14100         * doc/install.texi: Update description of --gxx-include-dir to
14101         give correct default value.
14102
14103 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14104
14105         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14106         8 with MAC_REG.
14107
14108 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14109
14110         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14111         gen_rtx_PARALLEL.
14112
14113 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14114
14115         * emit-rtl.c: Update the comment about the file.
14116
14117 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14118
14119         * sourcebuild.texi (Test Idioms): Update testcase naming
14120         conventions.
14121
14122 2004-02-04  Per Bothner  <per@bothner.com>
14123
14124         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14125         * c-ppoutput.c (pp_dir_change):  New function.
14126         * c-common.h (pp_dir_change):  New declaration.
14127         * cpplib.h (struct cpp_options):  Remove working_directory field.
14128         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14129         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14130         Don't handle -fworking_directory here, but in c_common_post_options.
14131         (read_original_directory): Don't back up when done.
14132         Don't clear no-longer used working_directory flag.
14133         * cpplib.h:  Update declarations to match.
14134         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14135         (init_c_lex):  Don't set dir_change callback here, since we want
14136         to set it even if flag_preprocess_only.
14137         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14138         (c_common_post_options):  Set dir_change callback.
14139         Call pp_dir_change if approporiate.
14140         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14141         unneeded parameter and result. Do LC_RENAME for <built-in>.
14142         (c_common_post_options):  Call cpp_read_main_file here instead.
14143         (c_common_init):  Update accordingly.
14144         (push_command_line_include):  Don't cpp_push_main_file.
14145         Do LC_RENAME rather than LC_LEASE to get back to main file.
14146         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14147         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14148         files, but call finish_options for all files.
14149         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14150         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14151         cpp_find_main_file + cpp_push_main_file.
14152         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14153         * opts.c (handle_options):  Only set main_input_filename first time.
14154
14155 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14156
14157         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14158
14159 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14160
14161         * reload.c (find_equiv_reg): When checking for register overlap,
14162         don't index hard_regno_nregs with a pseudo-reg.
14163
14164 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14165
14166         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14167
14168 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14169
14170         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14171         against FIRST_PSEUDO_REGISTER.
14172
14173 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14174
14175         * Makefile.in: Move target, host overrides after per-language
14176         fragments.
14177
14178         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14179         (GNATLIBCFLAGS): Remove -g.
14180
14181 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14182
14183         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14184         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14185         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14186         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14187         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14188         config/sparc/sparc.c, config/vax/vax.c: Revert the
14189         replacements of "FALLTHRU" with "Fall through" done in the
14190         previous patch.
14191
14192 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14193
14194         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14195         config/arm/arm.c, config/arm/arm.md,
14196         config/cris/cris-protos.h, config/fr30/fr30.c,
14197         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14198         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14199         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14200         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14201         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14202         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14203         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14204         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14205         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14206         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14207         config/s390/s390.md, config/sparc/netbsd-elf.h,
14208         config/sparc/openbsd.h, config/sparc/sparc.c,
14209         config/xtensa/lib2funcs.S: Fix comment formatting.
14210
14211 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14212
14213         * config/alpha/alpha.c, config/arc/arc.c,
14214         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14215         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14216         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14217         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14218         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14219         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14220         config/iq2000/iq2000.c, config/m32r/m32r.c,
14221         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14222         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14223         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14224         config/rs6000/rs6000.h, config/sparc/sparc.c,
14225         config/vax/vax.c: Fix comment typos.  Follow spelling
14226         conventions.
14227
14228 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14229
14230         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14231         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14232         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14233         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14234         config/arm/fpa.md, config/arm/iwmmxt.md,
14235         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14236         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14237         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14238         config/sparc/netbsd-elf.h: Update copyright.
14239
14240 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14241
14242         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14243         for all modes whose size is greater than 8 bytes if ARCH32.
14244         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14245         by reference if ARCH32.
14246
14247 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14248
14249         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14250
14251 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14252
14253         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14254         to before adddi3 insn patterns.
14255         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14256         "reload_insi"): Move to before addsi3 insn patterns.
14257
14258 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14259
14260         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14261         parameter.  Use it instead of current_function_is_thunk.
14262         * function.h (struct function): Update documentation for is_thunk.
14263         * tree.h (CALL_FROM_THUNK_P): New macro.
14264         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14265         no_new_pseudos when testing current_function_is_thunk.
14266         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14267
14268 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14269
14270         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14271         TARGET_SETUP_INCOMING_VARARGS.
14272
14273 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14274
14275         * emit-rtl.c (gen_rtx): Remove.
14276         * genattrtab.c: Don't mention gen_rtx in a comment.
14277         * rtl.h: Remove the prototype for gen_rtx.
14278         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14279
14280 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14281
14282         * config/arc/arc.h, config/fr30/fr30.h
14283         (SETUP_INCOMING_VARARGS): Remove the target-independent
14284         comments.
14285         * doc/tm.texi: Don't mention deprecated target macros.
14286
14287 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14288
14289         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14290         target-independent comment.
14291
14292 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14293
14294         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14295         mention deprecated target macros.
14296
14297 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14298
14299         * config.gcc: Remove obsolete ports and configurations.
14300         * config/linux-aout.h, config/netware.h,
14301         config/t-linux-gnulibc1, config/d30v/abi,
14302         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14303         config/d30v/d30v.h, config/d30v/d30v.md,
14304         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14305         config/dsp16xx/dsp16xx-modes.def,
14306         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14307         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14308         config/i370/README, config/i370/i370-c.c,
14309         config/i370/i370-protos.h, config/i370/i370.c,
14310         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14311         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14312         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14313         config/i386/moss.h, config/i386/netware.h,
14314         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14315         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14316         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14317         config/i960/i960-c.c, config/i960/i960-coff.h,
14318         config/i960/i960-modes.def, config/i960/i960-protos.h,
14319         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14320         config/i960/rtems.h, config/i960/t-960bare,
14321         config/m68k/hp310.h, config/m68k/hp320.h,
14322         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14323         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14324         Remove.
14325         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14326         doc/md.texi: Remove mentions of obsolete ports.
14327
14328 2004-02-04  Jan Hubicka  <jh@suse.cz>
14329
14330         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14331         pointer when all VALUE's locations has been invalidated.
14332         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14333
14334 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14335
14336         * doc/invoke.texi (x86 options): Fix spelling/wording.
14337
14338 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14339
14340         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14341         put the original string in a comment.
14342         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14343         * config/mips/mips.c (mips_output_ascii): Likewise.
14344         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14345
14346 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14347
14348         * system.h (GIV_SORT_CRITERION): Poison.
14349         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14350         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14351
14352 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14353
14354         PR target/9348
14355         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14356         multiplies with a multiplication of the wrong signedness, its the
14357         signedness of the multiplication that we've performed that needs to
14358         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14359         if expand_mult_highpart_adjust places the result in target.
14360
14361 2004-02-03  Richard Henderson  <rth@redhat.com>
14362
14363         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14364
14365 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14366
14367         * config.gcc (sh[234]l): Use little endian fragments.
14368
14369 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14370
14371         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14372         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14373         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14374         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14375         floating point format.
14376         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14377         the above functions.
14378         (output_move_quad): Output float values in correct target format.
14379         (legitimate_const_double_p): New function.
14380         * config/pdp11/pdp11.h: Fix typos.
14381         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14382         (TARGET_FLOAT_FORMAT): Ditto.
14383         (pdp11_f_format, pdp11_d_format): Add external declarations.
14384         (MAX_REGS_PER_ADDRESS): Corrected.
14385         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14386         (PRINT_OPERAND): Output float literals in target format.
14387
14388 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14389
14390         PR c++/13975
14391         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14392         TI_PRIVATE.
14393         (access_public_node): Redefine.
14394         (access_protected_node): Likewise.
14395         (access_private_node): Likewise.
14396         * tree.c (build_common_tree_nodes): Create access_public_node,
14397         access_protected_node, and access_private_node.
14398
14399 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14400
14401         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14402         (MASK_INLINE_INT_DIV_THR): Ditto.
14403         (MASK_INLINE_SQRT_LAT): Ditto.
14404         (MASK_INLINE_SQRT_THR): Ditto.
14405         (MASK_DWARF2_ASM): Ditto.
14406         (MASK_EARLY_STOP_BITS): Ditto.
14407
14408 2004-02-02  Paul Brook  <paul@codesourcery.com>
14409
14410         Merge from csl-arm-branch.
14411
14412         2004-01-30  Paul Brook  <paul@codesourcery.com>
14413
14414         * aof.h (REGISTER_NAMES): Add vfp reg names
14415         (ADDITIONAL_REGISTER_NAMES): Ditto.
14416         * aout.h (REGISTER_NAMES): Ditto.
14417         (ADDITIONAL_REGISTER_NAMES): Ditto.
14418         * arm-protos.h: Update/Add Prototypes.
14419         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14420         Only allow 0.0 for VFP.
14421         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14422         (values_fp): Rename from values_fpa.  Update Users.
14423         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14424         Update users.  Only check valid constants for this hardware.
14425         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14426         Only allow consts for FPA.
14427         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14428         Only allow consts for FPA.
14429         (use_return_insn): Check for saved VFP regs.
14430         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14431         (arm_legitimize_address): Ditto.
14432         (arm_general_register_operand): New function.
14433         (vfp_mem_operand): New function.
14434         (vfp_compare_operand): New function.
14435         (vfp_secondary_reload_class): New function.
14436         (arm_float_compare_operand): New function.
14437         (vfp_print_multi): New function.
14438         (vfp_output_fstmx): New function.
14439         (vfp_emit_fstm): New function.
14440         (arm_output_epilogue): Output VPF reg restore code.
14441         (arm_expand_prologue): Output VFP reg save code.
14442         (arm_print_operand): Add 'P'.
14443         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14444         (arm_regno_class): Return classes for VFP regs.
14445         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14446         (arm_get_frame_size): Ditto.
14447         * arm.h (FIXED_REGISTERS): Add VFP regs.
14448         (CALL_USED_REGISTERS): Ditto.
14449         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14450         (FIRST_VFP_REGNUM): Define.
14451         (LAST_VFP_REGNUM): Define.
14452         (IS_VFP_REGNUM): Define.
14453         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14454         (HARD_REGNO_NREGS): Handle VFP regs.
14455         (REG_ALLOC_ORDER): Add VFP regs.
14456         (enum reg_class): Add VFP_REGS.
14457         (REG_CLASS_NAMES): Ditto.
14458         (REG_CLASS_CONTENTS): Ditto.
14459         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14460         (REG_CLASS_FROM_LETTER): Add 'w'.
14461         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14462         (EXTRA_MEMORY_CONSTRAINT): Define.
14463         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14464         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14465         (REGISTER_MOVE_COST): Ditto.
14466         (PREDICATE_CODES): Add arm_general_register_operand,
14467         arm_float_compare_operand and vfp_compare_operand.
14468         * arm.md (various): Rename as above.
14469         (divsf3): Enable when TARGET_VFP.
14470         (divdf3): Ditto.
14471         (movdfcc): Ditto.
14472         (sqrtsf2): Ditto.
14473         (sqrtdf2): Ditto.
14474         (arm_movdi): Disable when TARGET_VFP.
14475         (arm_movsi_insn): Ditto.
14476         (movsi): Only split with general regs.
14477         (cmpsf): Use arm_float_compare_operand.
14478         (push_fp_multi): Restrict to TARGET_FPA.
14479         (vfp.md): Include.
14480         * vfp.md: New file.
14481         * fpa.md (various): Rename as above.
14482         * doc/md.texi: Document ARM w and U constraints.
14483
14484         2004-01-15  Paul Brook  <paul@codesourcery.com>
14485
14486         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14487         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14488         Break out of loop when we find a float-abi.  Fix typo.
14489         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14490         Set -mfloat-abi=.
14491         * doc/install.texi: Document --with-fpu.
14492
14493         2003-01-14  Paul Brook  <paul@codesourcery.com>
14494
14495         * config.gcc (with_arch): Add armv6.
14496         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14497         * config/arm/arm.c (arm_overrride_options): Ditto.
14498
14499         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14500
14501         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14502         (FL_ARCH6): Renamed from FL_ARCH6J.
14503         (arm_arch3m): Renamed from arm_fast_multiply.
14504         (arm_arch6): Renamed from arm_arch6j.
14505         * arm.h: Update all uses of above.
14506         * arm-cores.def: Likewise.
14507         * arm.md: Likewise.
14508
14509         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14510         not arm6j.  Add entry for arch armv6.
14511
14512         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14513
14514         * arm.c (arm_emit_extendsi): Delete.
14515         * arm-protos.h (arm_emit_extendsi): Delete.
14516         * arm.md (zero_extendhisi2): Also handle zero-extension of
14517         non-subregs.
14518         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14519         (thumb_zero_extendhisi2): Only match if not v6.
14520         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14521         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14522         (thumb_extendqisi2): Likewise.
14523         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14524         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14525         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14526         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14527         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14528         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14529         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14530         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14531         (arm_extendqisi2addsi): Likewise.
14532
14533         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14534
14535         Revert this change:
14536         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14537         + REG addressing modes.
14538
14539         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14540         + REG addressing modes.
14541
14542         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14543
14544         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14545         CONSTANT_P_RTX.
14546
14547         2003-30-12  Paul Brook  <paul@codesourcery.com>
14548
14549         * longlong.h: protect arm inlines with !defined (__thumb__)
14550
14551         2003-30-12  Paul Brook  <paul@codesourcery.com>
14552
14553         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14554
14555         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14556
14557         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14558         change.
14559
14560         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14561
14562         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14563         to the virtual incoming args pointer for downward stacks.
14564
14565         2003-12-29  Paul Brook  <paul@codesourcery.com>
14566
14567         * config/arm/arm-cores.def: Add cost function.
14568         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14569         (arm_rtx_costs): Remove
14570         (struct processors): Add rtx_costs field.
14571         (all_cores, all_architectures): Ditto.
14572         (arm_override_options): Set targetm.rtx_costs.
14573         (thumb_rtx_costs): New function.
14574         (arm_rtx_costs_1): Remove cases handled elsewhere.
14575         * config/arm/arm.h (processor_type): Add COSTS parameter.
14576
14577         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14578
14579         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14580         (arm926ejs.md): Include it.
14581         * config/arm/arm926ejs.md: New pipeline description.
14582
14583         2003-12-24  Paul Brook  <paul@codesourcery.com>
14584
14585         * config/arm/arm.c (arm_arch6j): New variable.
14586         (arm_override_options): Set it.
14587         (arm_emit_extendsi): New function.
14588         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14589         * config/arm/arm.h (arm_arch6j): Declare.
14590         * config/arm/arm.md: Add sign/zero extend insns.
14591
14592         2003-12-23  Paul Brook  <paul@codesourcery.com>
14593
14594         * config/arm/arm.c (all_architectures): Add armv6.
14595         * doc/invoke.texi: Document it.
14596
14597         2003-12-19  Paul Brook  <paul@codesourcery.com>
14598
14599         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14600         insn patterns to match.
14601         * config/arm/arm-generic.md: Ditto.
14602         * config/arm/cirrus.md: Ditto.
14603         * config/arm/fpa.md: Ditto.
14604         * config/amm/iwmmxt.md: Ditto.
14605         * config/arm/arm1026ejs.md: Ditto.
14606         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14607         for 11_loadb.
14608
14609         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14610
14611         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14612         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14613         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14614         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14615         arm_no_early_mul_dep): Correctly deal with conditional execution,
14616         parallels and single shift operations.
14617         (arm_no_early_alu_shift_value_dep): Define.
14618         * arm.md (attr type): Replace 'normal' with 'alu',
14619         'alu_shift' and 'alu_shift_reg'.
14620         (attr core_cycles): Adjust.
14621         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14622         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14623         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14624         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14625         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14626         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14627         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14628         attribute appropriately.
14629         * config/arm/arm1026ejs.md (alu_op): Adjust.
14630         (alu_shift_op, alu_shift_reg_op): New.
14631         * config/arm/arm1136.md: Add better bypasses for early
14632         registers. Remove load[234] and store[234] bypasses.
14633         (11_alu_op): Adjust.
14634         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14635
14636         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14637
14638         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14639         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14640         * config/arm/arm.c (arm_no_early_store_addr_dep,
14641         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14642         * config/arm/arm1026ejs.md: Add load-store bypass.
14643         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14644         Add bypasses between instructions.
14645
14646         2003-12-10  Paul Brook  <paul@codesourcery.com>
14647
14648         * config/arm/arm.c (arm_fpu_model): New variable.
14649         (arm_fload_abi): New variable.
14650         (target_fpe_name): Rename from target_fp_name.
14651         (target_fpu_name): New variable.
14652         (arm_is_cirrus): Remove.
14653         (fpu_desc): New struct.
14654         (all_fpus): Define.
14655         (pf_model_for_fpu): Define.
14656         (all_loat_abis): Define.
14657         (arm_override_options): Set fp arch flags based on -mfpu=
14658         and -float-abi=.
14659         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14660         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14661         (*): Use new TARGET_* flags.
14662         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14663         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14664         (TARGET_SOFT_FLOAT): Ditto.
14665         (TARGET_SOFT_FLOAT_ABI): New.
14666         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14667         TARGET_HARD_FLOAT.
14668         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14669         (TARGET_OPTIONS): Add -mfpu=.
14670         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14671         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14672         (arm_pf_model): Define.
14673         (arm_float_abi_type): Define.
14674         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14675         * config/arm/arm.md: Use new TARGET_* flags.
14676         * config/arm/cirrus.md: Ditto.
14677         * config/arm/fpa.md: Ditto.
14678         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14679         * config/arm/semi.h (ASM_SPEC): Ditto.
14680         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14681         (FPUTYPE_DEFAULT): Set to VFP.
14682         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14683
14684         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14685
14686         PR target/12476
14687         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14688         'bx' instead of 'b' to avoid branch range restrictions.  Output
14689         the thunk immediately before the thunked-to function.
14690         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14691         .thumb_func if a thunk is being generated.  Emit .code 16 along
14692         with .thumb_func if a thunk is not being generated.
14693
14694         2003-11-15  Nicolas Pitre <nico@cam.org>
14695
14696         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14697         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14698         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14699         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14700         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14701
14702         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14703             Ian Lance Taylor  <ian@wasabisystems.com>
14704
14705         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14706         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14707
14708         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14709
14710         * config/arm/arm.md (insn):  Add new V6 instruction names.
14711         (generic_sched):  New attr.
14712         * config/arm/arm-generic.md:  Use generic_sched here.
14713         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14714         stages of pipeline.  Adjust latency counts accordingly.
14715         * config/arm/arm1136jfs.md:  New file.
14716
14717         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14718
14719         * config/arm/arm.h (processor_type): New enumeration type.
14720         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14721         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14722         (CPP_CPU_ARCH_SPEC): Likewise.
14723         * config/arm/arm.c (arm_tune): New variable.
14724         (all_cores): Use cores.def.
14725         (all_architectures): Add representative processor.
14726         (arm_override_options): Restructure way in which tuning
14727         information is deduced.
14728         * arm.md: Update "insn" and "type" attributes throughout.
14729         (insn): New attribute.
14730         (type): Compute "mult" from "insn" attribute.  Add load2,
14731         load3, load4 alternatives.
14732         (arm automaton): Move to arm-generic.md.
14733         * config/arm/arm-cores.def: New file.
14734         * config/arm/arm-generic.md: Likewise.
14735         * config/arm/arm1026ejs.md: Likewise.
14736
14737 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14738
14739         * doc/invoke.texi (SPARC options): Remove -mflat and
14740         all -mxxx (xxx:chip) options.
14741         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14742         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14743         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14744         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14745         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14746         * config/sparc/sparc.c: Likewise.
14747         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14748         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14749         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14750         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14751         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14752         (sparc_flat_must_save_register_p): Likewise.
14753         (sparc_flat_compute_frame_size): Likewise.
14754         (sparc_flat_save_restore): Likewise.
14755         (sparc_flat_function_prologue): Likewise.
14756         (sparc_flat_function_epilogue): Likewise.
14757         (sparc_flat_epilogue_delay_slots): Likewise.
14758         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14759         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14760         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14761         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14762         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14763         (CONDITIONAL_REGISTER_USAGE): Likewise.
14764         (FRAME_POINTER_REQUIRED): Likewise.
14765         (INITIAL_ELIMINATION_OFFSET): Likewise.
14766         (BASE_RETURN_VALUE_REG): Likewise.
14767         (BASE_OUTGOING_VALUE_REG): Likewise.
14768         (BASE_PASSING_ARG_REG): Likewise.
14769         (BASE_INCOMING_ARG_REG): Likewise.
14770         (INCOMING_REGNO): Likewise.
14771         (OUTGOING_REGNO): Likewise.
14772         (LOCAL_REGNO): Likewise.
14773         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14774         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14775         (EPILOGUE_USES): Likewise.
14776         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14777         ("flat" attribute): Delete.
14778         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14779         handling.
14780         (call followed by jump define_peephole's): Delete.
14781         (exception_receiver): Likewise.
14782         (builtin_setjmp_receiver): Likewise.
14783         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14784
14785 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14786
14787         PR c/11658
14788         PR c/13994
14789         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14790         on langhooks.h.
14791         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14792         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14793         Include langhooks.h.  Replace c_common_truthvalue_conversion
14794         with the truthvalue_conversion language hook throughout.
14795         (expr_no_commas): Call default_conversion before save_expr
14796         for the first term of the production 'x ? : y'.
14797         * c-common.c (c_common_truthvalue_conversion): Remove
14798         obsolete block.  Invoke recursively the hook instead
14799         of this function.
14800         * c-convert.c (convert): handle ERROR_MARK_NODE.
14801         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14802         returned by the truthvalue_conversion language hook.
14803         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14804         c_objc_common_truthvalue_conversion.
14805         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14806         New function.
14807         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14808         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14809         c_objc_common_truthvalue_conversion.
14810
14811 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14812
14813         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14814         of gen_rtx.
14815         (LIBCALL_VALUE): Likewise.
14816         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14817         gen_rtx_CC0 instead of gen_rtx.
14818         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14819         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14820         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14821         gen_rtx.
14822         (m68hc11_emit_logical): Likewise.
14823
14824 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14825
14826         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14827         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14828         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14829         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14830         config/mips/mips.md, config/mmix/mmix.c,
14831         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14832         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14833         config/rs6000/altivec.md, config/s390/s390.c,
14834         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14835         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14836         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14837         constants that are readily available.
14838
14839 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14840
14841         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14842         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14843         instead of GEN_INT (0).  Do the same for other constants that
14844         are readily available.
14845
14846 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14847
14848         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14849         gen_rtx.
14850         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14851         instead of gen_rtx.
14852         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14853         gen_rtx.
14854         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14855         gen_rtx_ASHIFT instead of gen_rtx.
14856         (udivmodqi4): Likewise.
14857
14858 2004-02-02  Richard Henderson  <rth@redhat.com>
14859
14860         PR target/13789
14861         * expr.c (store_expr): Use force_operand before emit_move_insn.
14862
14863 2004-02-02  Jeff Law  <law@redhat.com>
14864             Roger Sayle  <roger@eyesopen.com>
14865
14866         * tree.c (commutative_tree_code, associative_tree_code): New
14867         functions.
14868         (iterative_hash_expr): Use commutative_tree_code.
14869         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14870         * fold-const.c (operand_equal_p): Use commutative_tree_code
14871         rather than inlining the commutativity check.
14872         (fold): Likewise.
14873
14874 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14875
14876         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14877         * config/frv/frv-protos.h: Remove the prototype for
14878         frv_function_arg_keep_as_reference.
14879         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14880         Remove.
14881         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14882         * config/stormy16/stormy16.h: Remove the commented-out
14883         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14884
14885 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14886
14887         PR target/13914
14888         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14889         for retaddr_column.
14890
14891 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14892
14893         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14894         gen_rtx.
14895
14896 2004-02-02  Eric Christopher  <echristo@redhat.com>
14897             Zack Weinberg  <zack@codesourcery.com>
14898
14899         * c-opts.c (c_common_handle_option): Add -finput-charset.
14900         * c.opt: Ditto.
14901         * cppcharset.c (one_iso88591_to_utf8): Remove.
14902         (convert_iso88591_utf8): Ditto.
14903         (conversion_tab): Remove 8859-1 converter.
14904         (_cpp_input_to_utf8): Remove.
14905         (_cpp_init_iconv_buffer): Ditto.
14906         (_cpp_close_iconv_buffer): Ditto.
14907         (_cpp_convert_input): New function.
14908         (_cpp_default_encoding): Ditto.
14909         * cpphash.h: Add/remove prototypes for above.
14910         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14911         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14912         for narrow execution and input character sets.
14913         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14914         * doc/cppopts.texi: Document -finput-charset.
14915
14916 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14917
14918         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14919         against FIRST_PSEUDO_REGISTER.
14920
14921 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14922
14923         * doc/invoke.texi (SPARC options): Further improve.
14924
14925 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14926
14927         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14928         config/h8300/h8300.c, config/ip2k/ip2k.md,
14929         config/iq2000/iq2000.c, config/mips/mips.c,
14930         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14931         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14932         config/v850/v850.md: Fix indentation.
14933
14934 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14935
14936         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14937         arguments on a 16-byte boundary in the parameter array if ARCH64.
14938         Split handling of TFmode.
14939
14940 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14941
14942         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14943         Don't test CONSTANT_P (x).
14944         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14945         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14946         Fix misindentation.
14947
14948 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14949
14950         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14951
14952 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14953
14954         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14955         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14956         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14957         config/iq2000/iq2000.c, config/m32r/m32r.c,
14958         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14959         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14960         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14961         config/stormy16/stormy16.c, config/v850/v850.md,
14962         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14963
14964 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14965
14966         * config/mcore/mcore.c (block_move_sequence): Replace
14967         gen_rtx_CONST_INT with GEN_INT.
14968
14969 2004-02-02  Jan Hubicka  <jh@suse.cz>
14970
14971         * alias.c (record_set): Use hard_regno_nregs.
14972         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14973         * builtins.c (apply_args_size): Likewise.
14974         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14975         mark_set_regs, add_stored_regs, mark_referenced_regs,
14976         insert_restore, insert_save, insert_one_insn): Likewise.
14977         * cfgcleanup.c: Include regs.h
14978         (mark_effect, mentions_nonequal_regs): Likewise.
14979         * cfgrtl.c (mark_killed_regs): Likewise
14980         * combine.c (update_table_tick, record_value_for_reg,
14981         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14982         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14983         reg_bitfield_target_p, distribute_notes): Likewise.
14984         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14985         exp_equiv_p, cse_insn): Likewise.
14986         * cselib.c (cselib_lookup): Likewise.
14987         (cselib_invalidate_regno, cselib_record_set): Likewise.
14988         * df.c (df_ref_record): Likewise.
14989         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14990         Likewise.
14991         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14992         count_or_remove_death_notes_bb): Likewise.
14993         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14994         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14995         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14996         * integrate.c (mark_stores): Likewise.
14997         * jump.c (delete_prior_computation): Likewise.
14998         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14999         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15000         * loop.c (LOOP_REGNO_NREGS): Likewise.
15001         * postreload.c (reload_combine, reload_combine_note_store,
15002         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15003         * ra-colorize.c (combine, color_usable_p, get_free_reg,
15004         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
15005         try_recolor_web, insert_coalesced_conflicts, check_colors,
15006         break_precolored_alias): Likewise.
15007         * ra-debug.c: Include regs.h
15008         (ra_print_rtx_object): Likewise.
15009         * ra-rewrite (choose_spill_colors): Likewise.
15010         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15011         * ra.c (init_ra): Likewise.
15012         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15013         peep2_find_free_register): Likewise.
15014         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15015         * regclass.c (hard_regno_nregs): New array.
15016         (init_reg_modes_once): Initialize it.
15017         (choose_hard_reg_mode): Use it.
15018         (record_reg_classes): Likewise.
15019         * regmove.c (mark_flags_life_zones): Likewise.
15020         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15021         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15022         copy_value, maybe_mode_change, find_oldest_value_reg,
15023         copyprop_hardreg_forward_1):
15024         * regs.h (hard_regno_nregs): Declare.
15025         * realod.c (reload_inner_reg_of_subreg): Use it.
15026         (push_reload, combine_reloads, find_dummy_reload,
15027         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15028         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15029         reload_adjust_reg_for_mode): Likewise.
15030         * reload1.c (compute_use_by_pseudos, count_pseudo,
15031         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15032         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15033         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15034         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15035         delete_output_reload): Likewise.
15036         * resource.c (update_live_status, mark_referenced_resources,
15037         mark_set_resources, mark_target_live_regs): Likewise.
15038         * rtlanal.c:  Include regs.h
15039         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15040         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15041         subreg_regno_offset, subreg_offset_representable_p,
15042         hoist_test_store): Likewise.
15043         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15044         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15045         * stmt.c: Include regs.h
15046         (decl_conflicts_with_clobbers_p): Likewise.
15047         * varasm.c (make_decl_rtl): Likewise.
15048         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15049
15050 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15051
15052         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15053         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15054         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15055         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15056         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15057         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15058         config/iq2000/iq2000.h, config/m32r/m32r.c,
15059         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15060         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15061         config/mcore/mcore.c, config/mcore/mcore.h,
15062         config/mcore/mcore.md, config/mips/mips.c,
15063         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15064         config/rs6000/rs6000.c, config/s390/s390.c,
15065         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15066         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15067         "gen_rtx (FOO, " with "gen_rtx_FOO (".
15068
15069 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15070
15071         * config/h8300/h8300.md (two peephole2's): New.
15072
15073 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15074
15075         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15076         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15077         (ASM_CPU_SPEC): Likewise
15078         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15079         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
15080
15081 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15082
15083         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15084         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15085         (expand_builtin): Always call expand_builtin_pow.
15086
15087 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15088
15089         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15090         BUILT_IN_SIGNBITL): New GCC builtins.
15091         * builtins.c (expand_builtin_signbit): New function to RTL expand
15092         calls to signbit, signbitf and signbitl as inline intrinsics.
15093         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15094         (fold_builtin_signbit): New function to perform constant folding
15095         of signbit, signbitf and signbitl.
15096         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15097
15098         * doc/extend.texi: Document new signbit{,f,l} builtins.
15099
15100 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
15101
15102         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15103
15104 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
15105
15106         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15107         "mips_const_double_ok" and "simple_memory_operand", which were
15108         removed from the MIPS port with the mips-3_4-rewrite branch merge.
15109         * config/mips/mips.c (mips16_lay_out_constants): Update comment
15110         for removal of simple_memory_operand.
15111
15112 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15113
15114         * config/c4x/c4x.md: Use GEN_INT instead of
15115         gen_rtx (CONST_INT, ...).
15116
15117 2004-01-31  Richard Henderson  <rth@redhat.com>
15118
15119         * varasm.c (output_constant_pool): Don't zap the pool.
15120
15121 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15122
15123         * genrecog.c (decision_type): Add DT_const_int.
15124         (write_cond) [DT_const_int]: Print a comparison against small
15125         constant.
15126         (write_node): Simplify comparisons against small constants
15127         before printing tests.
15128
15129 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15130
15131         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15132         instead of gen_rtx_CONST_INT.
15133
15134 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15135
15136         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15137         instead of gen_rtx_CONST_INT.
15138
15139 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15140
15141         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15142         hook_bool_CUMULATIVE_ARGS_false.
15143         * targhooks.c (default_strict_argument_naming): Rename to
15144         hook_bool_CUMULATIVE_ARGS_false.
15145         * targhooks.h: Update the prototype for
15146         default_strict_argument_naming.
15147
15148 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15149
15150         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15151         * config/sh/sh.h: Likewise.
15152         * config/sh/sh.md: Likewise.
15153
15154 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15155
15156         * doc/invoke.texi (SPARC options): Restructure and update.
15157
15158 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15159
15160         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15161         STRICT_ARGUMENT_NAMING): Poison.
15162         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15163         hook_bool_tree_false.
15164         * targhooks.c (default_promote_function_args): Remove.
15165         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15166         Don't check incoming.
15167         (default_strict_argument_naming): Don't use
15168         STRICT_ARGUMENT_NAMING.
15169         * targhooks.h: Remove the prototype for
15170         default_promote_function_args.
15171
15172 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15173
15174         * config/i386/i386-protos.h: Remove the prototype for
15175         ix86_setup_incoming_varargs.
15176         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15177         (ix86_setup_incoming_varargs): Make it static.
15178         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15179
15180 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15181
15182         * alloc-pool.c: Fix comment typos.
15183         * builtin-types.def: Likewise.
15184         * builtins.def: Likewise.
15185         * c-pretty-print.c: Likewise.
15186         * df.h: Likewise.
15187         * reload1.c: Likewise.
15188
15189 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15190
15191         * doc/invoke.texi: Follow spelling conventions.
15192         * doc/tm.texi: Likewise.
15193
15194 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15195
15196         * doc/install.texi: Fix typos.
15197         * doc/invoke.texi: Likewise.
15198
15199 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15200
15201         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15202         registers as pointers.
15203         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15204
15205 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15206
15207         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15208         and restore it to gen_lowpart_general on exit.
15209         (gen_lowpart_for_combine): Adjust all callers to go through
15210         gen_lowpart.
15211         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15212         and restore it to gen_lowpart_general on exit.
15213         (gen_lowpart_if_possible): Adjust all callers to go through
15214         gen_lowpart.
15215         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15216         (gen_lowpart): Declare as pointer to function, initialized to
15217         gen_lowpart_general.
15218         * rtl.h (gen_lowpart): Declare as pointer to function.
15219
15220 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15221
15222         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15223         * calls.c: Likewise.
15224         * emit-rtl.c: Likewise.
15225         * function.c: Likewise.
15226         * reload1.c: Likewise.
15227         * config/i386/cygming.h: Likewise.
15228         * config/i386/i386.c: Likewise.
15229         * config/i386/winnt.c: Likewise.
15230
15231 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15232
15233         PR bootstrap/9249
15234         * doc/install.texi: document --enable-__cxa_atexit option.
15235         * configure.ac: Disable __cxa_atexit if not supported.
15236         * configure: Regenerate.
15237
15238 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
15239
15240         * ggc-zone.c (ggc_free): New function.
15241
15242 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15243
15244         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15245         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15246         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15247         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15248         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15249         config/alpha/alpha.c, config/alpha/alpha.h,
15250         config/alpha/alpha.md, config/alpha/unicosmk.h,
15251         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15252         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15253         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15254         config/frv/frvend.c, config/i386/cygming.h,
15255         config/i386/djgpp.h, config/i386/emmintrin.h,
15256         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15257         config/i386/i386-protos.h, config/i386/openbsd.h,
15258         config/i386/winnt.c, config/i386/xm-mingw32.h,
15259         config/i386/xmmintrin.h, config/ia64/ia64.md,
15260         config/iq2000/iq2000.md, config/m32r/m32r.md,
15261         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15262         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15263         config/mips/iris5gas.h, config/mips/iris6.h,
15264         config/mips/iris6gas.h, config/mips/linux.h,
15265         config/mips/mips.md, config/mips/netbsd.h,
15266         config/mips/openbsd.h, config/mips/windiss.h,
15267         config/pa/fptr.c, config/rs6000/aix.h,
15268         config/rs6000/altivec.h, config/rs6000/darwin.h,
15269         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15270         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15271         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15272         config/sparc/sol2.h: Update copyright.
15273
15274 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15275
15276         * Makefile.in (abs_docdir, abs_srcdir): Define.
15277         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15278
15279 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15280
15281         * genconfig.c (main): Have CC0_P check its operand even on a
15282         target without cc0.
15283
15284 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15285
15286         * config/alpha/alpha.c: Remove mentions of deprecates macros
15287         in comments, remove some target-independent comments about target
15288         macros, and/or add minimal function comments for target hook
15289         implementations.
15290         * config/avr/avr.c: Likewise.
15291         * config/ia64/ia64.h: Likewise.
15292         * config/ip2k/ip2k.c: Likewise.
15293         * config/iq2000/iq2000.c: Likewise.
15294         * config/m32r/m32r.h: Likewise.
15295         * config/m68hc11/m68hc11.c: Likewise.
15296         * config/mcore/mcore.c: Likewise.
15297         * config/mmix/mmix.c: Likewise.
15298         * config/mn10300/mn10300.c: Likewise.
15299         * config/pa/pa.c: Likewise.
15300         * config/pdp11/pdp11.c: Likewise.
15301         * config/rs6000/rs6000.h: Likewise.
15302         * config/sh/sh.c: Likewise.
15303         * config/sh/sh.h: Likewise.
15304         * config/sparc/sparc.c: Likewise.
15305         * config/sparc/sparc.h: Likewise.
15306         * config/stormy16/stormy16.c: Likewise.
15307         * config/xtensa/xtensa.c: Likewise.
15308
15309 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15310
15311         PR optimization/12147
15312         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15313         RELOAD_FOR_OPADDR_ADDR.
15314         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15315         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15316
15317 2004-01-30  Jan Hubicka  <jh@suse.cz>
15318
15319         * reload.c (get_secondary_mem): Fix updating of
15320         secondary_memlocs_elim_used.
15321
15322 2004-01-30  Richard Henderson  <rth@redhat.com>
15323
15324         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15325         (MAX_RTX_HASH_TABLE): Remove.
15326         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15327         (first_pool, last_pool, pool_offset): Remove.
15328         (struct rtx_constant_pool): Split out from ...
15329         (struct varasm_status): ... here.  Reference one via pointer.
15330         (struct constant_descriptor_rtx): Merge struct pool_constant.
15331         (SYMHASH): Remove.
15332         (decode_rtx_const): Remove.
15333         (const_hash_rtx, compare_constant_rtx): Remove.
15334         (record_constant_rtx): Remove.
15335         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15336         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15337         (const_rtx_hash_1, const_rtx_hash): New.
15338         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15339         (simplify_subtraction): Use simplify_rtx.
15340         (force_const_mem): Rewrite to use new data structures.
15341         (find_pool_constant): Likewise.
15342         (get_pool_constant, get_pool_constant_mark,
15343         get_pool_constant_for_function, get_pool_mode,
15344         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15345         (output_constant_pool_2): Split out from output_constant_pool.
15346         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15347         (output_constant_pool): Zap entire pool datastructure.
15348         (mark_constant): Use new pool datastructures.
15349         (mark_constants): Use for_each_rtx.
15350         (mark_constant_pool): Use new pool datastructures.
15351
15352 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15353
15354         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15355         Copy operands[1] to pseudo for simplify_gen_subreg.
15356
15357 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15358
15359         * gcse.c (bypass_block): Fix a typo in the previous check-in
15360         to the file.
15361
15362 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15363
15364         * toplev.c: Include alloc-pool.h.
15365         * Makefile.in (toplev.c): Update dependencies.
15366
15367 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15368
15369         * combine.c (simplify_shift_const, case XOR): Be careful when
15370         commuting XOR with ASHIFTRT.
15371
15372 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15373             Eric Botcazou  <ebotcazou@libertysurf.fr>
15374
15375         * config/sparc/sparc-protos.h: Remove the prototype for
15376         sparc_builtin_saveregs.
15377         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15378         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15379         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15380         (TARGET_STRUCT_VALUE_RTX): Likewise.
15381         (TARGET_RETURN_IN_MEMORY): Likewise.
15382         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15383         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15384         (sparc_builtin_saveregs): Make it static.
15385         (sparc_promote_prototypes): New.
15386         (sparc_struct_value_rtx): Likewise.
15387         (sparc_return_in_memory): Likewise.
15388         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15389         (PROMOTE_FUNCTION_RETURN): Likewise.
15390         (RETURN_IN_MEMORY): Likewise.
15391         (STRUCT_VALUE): Likewise.
15392         (STRUCT_VALUE_INCOMING): Likewise.
15393         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15394         (STRICT_ARGUMENT_NAMING): Likewise.
15395         (PROMOTE_PROTOTYPES): Likewise.
15396
15397         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15398
15399 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15400
15401         PR c/12818
15402         * varasm.c (const_hash_1) <STRING_CST>: Use the
15403         address to compute the hash value if flag_writable_strings.
15404         (compare_constant) <STRING_CST>: Compare the addresses
15405         if flag_writable_strings.
15406         (build_constant_desc): Do not copy the expression for a
15407         STRING_CST if flag_writable_strings.
15408
15409 2004-01-30  Jan Hubicka  <jh@suse.cz>
15410
15411         * alloc-pool.c: Include hashtab.h
15412         (alloc_pool_descriptor): New structure
15413         (alloc_pool_hash): New global variable.
15414         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15415         (create_alloc_pool): Update statistics.
15416         (free_alloc_pool): Likewise.
15417         (pool_alloc): Likewise.
15418         (output_info): New structure
15419         (print_statistics, dump_alloc_pool_statistics): New function.
15420         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15421         (dump_alloc_pool_statistics): Declare.
15422         * toplev.c (finalize):  Dump statistics.
15423
15424         * reload.c (secondary_memlocs_elim_used): New static variable.
15425         (get_secondary_mem): Update it.
15426         (find_reloads): Use it.
15427
15428 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15429
15430         * toplev.c: Fix broken checkin of 2003-12-30, again.
15431
15432 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15433
15434         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15435         s390*-*-* targets by specifying a 'nop' insn.
15436         * configure: Regenerate.
15437
15438 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15439
15440         PR target/11475
15441         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15442
15443 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15444
15445         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15446         of addr when creating MEM copy.
15447
15448 2004-01-29  Devang Patel  <dpatel@apple.com>
15449
15450         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15451
15452 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15453
15454         PR inline-asm/6162
15455         * reload.c (find_reloads): Only support one pair of commutative
15456         operands.
15457
15458 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15459
15460         PR java/13824
15461         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15462         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15463         recursion.
15464
15465 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15466
15467         * config/frv/frv.c: Don't mention deprecated macros in
15468         comments.  Remove some target-independent comments about
15469         target macros.
15470         * config/frv/frv.h: Likewise.
15471
15472 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15473
15474         * cfghooks.c (split_block): Set probability and count of the
15475         new edge.
15476
15477 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
15478
15479         * dwarf2out.c (struct die_struct): Added field decl_id.
15480         (decl_die_table): Changed to hash table.
15481         (decl_die_table_allocated): Deleted.
15482         (decl_die_table_in_use): Deleted.
15483         (DECL_DIE_TABLE_INCREMENT): Deleted.
15484         (decl_die_table_hash): New function.
15485         (decl_die_table_eq): New function.
15486         (lookup_decl_die): Lookup in a hash table.
15487         (equate_decl_number_to_die): Insert into a hash table.
15488         (dwarf2out_init): Init hash table decl_die_table.
15489
15490 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15491
15492         PR optimization/13424
15493         * expr.c (store_constructor): Revert 2003-12-03 change.
15494
15495         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15496         expected before returning early.  Avoid sharing RTL if they
15497         need to be changed.
15498
15499         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15500         handling so that memory attributes are preserved.  Don't call
15501         ix86_set_move_mem_attrs.
15502         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15503         (ix86_expand_clrstr): Rename src argument to
15504         dst.  Rework rep_stos and strset handling so that memory attributes
15505         are preserved.
15506         (ix86_expand_strlen): Pass src argument to
15507         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15508         memory attributes are preserved.
15509         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15510         change_address instead of gen_rtx_MEM.
15511         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15512         expanders.
15513         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15514         strmovqi, strmovqi_rex64): Remove.
15515         (rep_mov*, strmov*): Prefix insn names with *.
15516         (strset, strset_singleop, rep_stos): New expanders.
15517         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15518         strsetqi, strsetqi_rex64): Remove.
15519         (rep_stos*, strset*): Prefix insn names with *.
15520         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15521         to SImode.
15522         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15523         are preserved.
15524         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15525         Prefix insn names with *.
15526         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15527         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15528         (strlenqi_1): New expander.
15529         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15530
15531 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15532
15533         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15534         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15535         verify_flow_info): Declaration removed.
15536         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15537         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15538         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15539         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15540         instead of delete_block.
15541         * cfghooks.c: Include timevar.h and toplev.h.
15542         (cfg_hooks): Define here.
15543         (verify_flow_info, dump_bb): Moved from cfg.c.
15544         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15545         split_block, split_block_after_labels, move_block_after,
15546         delete_basic_block, split_edge, create_basic_block,
15547         create_empty_bb, can_merge_blocks_p, merge_blocks,
15548         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15549         New functions.
15550         * cfghooks.h (struct cfg_hooks): Added fields name,
15551         make_forwarder_block, tidy_fallthru_edge and
15552         move_block_after. Changed type of verify_flow_info, dump_bb,
15553         split_block fields. Renamed cfgh_split_edge and delete_block
15554         fields.
15555         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15556         split_block, delete_block, split_edge, create_basic_block,
15557         can_merge_blocks_p, merge_blocks): Macros removed.
15558         (cfg_hooks): Do not export.
15559         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15560         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15561         move_block_after, delete_basic_block, split_edge, create_basic_block,
15562         create_empty_bb, can_merge_blocks_p, merge_blocks,
15563         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15564         Declare.
15565         (cfg_layout_rtl_cfg_hooks): Declare.
15566         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15567         New functions.
15568         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15569         (redirect_edge_with_latch_update): Removed.
15570         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15571         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15572         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15573         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15574         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15575         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15576         cfghooks.c.
15577         (rtl_create_basic_block): Coding style fix.
15578         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15579         rtl_make_forwarder_block): New functions.
15580         (update_cfg_after_block_merging): Removed.
15581         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15582         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15583         to dump_bb.
15584         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15585         find_if_case_2): Don't update dominators.
15586         * timevar.def (TV_CFG_VERIFY): New.
15587         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15588         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15589         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15590         (remove_bbs): Don't call remove_bbs.
15591         (create_preheader): Use make_forwarder_block.
15592         (mfb_keep_just, mfb_update_loops): New static functions.
15593
15594 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15595
15596         * config/avr/avr.h: Remove target-independent comments about
15597         target macros.
15598
15599 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15600
15601         * timevar.c (timevar_print): Mention when checking is enabled.
15602
15603 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15604
15605         * c-lex.c (c_lex): Rename to...
15606         (c_lex_with_flags): Add new parameter to get CPP flags.
15607         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15608         * c-pragma.h (c_lex_with_flags): Declare.
15609
15610 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15611
15612         * config/mcore/mcore.c (mcore_external_libcall): Add a
15613         comment.
15614         (mcore_return_in_memory): Likewise.
15615
15616 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15617
15618         * config/mcore/mcore-protos.h: Remove the prototype for
15619         mcore_setup_incoming_varargs.
15620         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15621         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15622         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15623         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15624         (TARGET_STRUCT_VALUE_RTX): Likewise.
15625         (TARGET_RETURN_IN_MEMORY): Likewise.
15626         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15627         (mcore_setup_incoming_varargs): Make it static.  Receive the
15628         first argument by reference.  Add argument second_time.
15629         (mcore_external_libcall): New.
15630         (mcore_return_in_memory): Likewise.
15631         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15632         (PROMOTE_FUNCTION_RETURN): Likewise.
15633         (STRUCT_VALUE): Likewise.
15634         (RETURN_IN_MEMORY): Likewise.
15635         (SETUP_INCOMING_VARARGS): Likewise.
15636         (PROMOTE_PROTOTYPES): Likewise.
15637         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15638
15639 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15640
15641         * config/m32r/m32r-protos.h: Remove the prototype for
15642         m32r_setup_incoming_varargs.
15643         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15644         (TARGET_STRUCT_VALUE_RTX): Likewise.
15645         (TARGET_RETURN_IN_MEMORY): Likewise.
15646         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15647         (m32r_return_in_memory): New.
15648         (m32r_setup_incoming_varargs): Make it static.
15649         * config/m32r/m32r.h: Remove #undef of
15650         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15651         definitions of PROMOTE_FUNCTION_ARGS and
15652         PROMOTE_FUNCTION_RETURN.
15653         (PROMOTE_PROTOTYPES): Remove.
15654         (RETURN_IN_MEMORY): Likewise.
15655         (STRUCT_VALUE): Likewise.
15656
15657 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15658
15659         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15660         (TARGET_STRUCT_VALUE_RTX): Likewise.
15661         (m68k_struct_value_rtx): Likewise.
15662         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15663         STRUCT_VALUE_REGNUM.
15664         (PROMOTE_PROTOTYPES): Remove.
15665         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15666         STRUCT_VALUE_REGNUM.
15667         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15668         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15669
15670 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15671
15672         * config/stormy16/stormy16.c
15673         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15674         TARGET_BUILD_BUILTIN_VA_LIST.
15675
15676 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15677
15678         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15679         (TARGET_STRUCT_VALUE_RTX): Likewise.
15680         (TARGET_RETURN_IN_MEMORY): Likewise.
15681         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15682         (v850_return_in_memory): Likewise.
15683         (v850_setup_incoming_varargs): Likewise.
15684         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15685         (SETUP_INCOMING_VARARGS): Likewise.
15686         (RETURN_IN_MEMORY): Likewise.
15687         (STRUCT_VALUE): Likewise.
15688
15689 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15690
15691         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15692         (fr30_setup_incoming_varargs): Don't use
15693         STRICT_ARGUMENT_NAMING.
15694         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15695         (STRICT_ARGUMENT_NAMING): Likewise.
15696
15697 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15698
15699         * config/frv/frv-protos.h: Remove the prototype for
15700         frv_expand_builtin_saveregs.
15701         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15702         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15703         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15704         STRUCT_VALUE_REGNUM.
15705         (frv_expand_builtin_saveregs): Make it static.
15706         (frv_struct_value_rtx): New.
15707         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15708
15709 2004-01-29  Jan Hubicka  <jh@suse.cz>
15710
15711         PR c++/12850
15712         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15713         initial pointers.
15714         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15715         for functions that will be only inlined.
15716         (cgraph_mark_function_to_output): Likewise.
15717         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15718         do not clear function body.
15719         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15720         (tree_rest_of_compilation): Reorganize the logic releasing function
15721         body to use callgraph datastructure.
15722
15723 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15724
15725         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15726         to register_operand.
15727
15728 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15729
15730         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15731         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15732         match_operand expressions so that all match_dups appear
15733         lexically after their corresponding match_operands.
15734
15735 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15736
15737         * config/h8300/h8300.c (WORD_REG_USED): Use
15738         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15739         (compute_saved_regs): Likewise.
15740         (h8300_expand_prologue): Likewise.  Allocate locals after
15741         saving registers.
15742         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15743         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15744         registers.
15745         (h8300_initial_elimination_offset): Adjust for the new frame
15746         layout, which swaps flips the order of locals and saved
15747         registers.
15748         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15749         (HARD_FRAME_POINTER_REGNUM): New.
15750         (ELIMINABLE_REGS): Add an elimination rule from
15751         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15752         (REGISTER_NAMES): Add fp.
15753         * config/h8300/h8300.md (FP_REG): Change to 11.
15754         (HFP_REG): New.
15755
15756 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15757
15758         * genrecog.c (write_node): Remove a useless local variable.
15759
15760 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15761
15762         * Makefile.in (options.c options.h): Use stamp file s-options to
15763         avoid unnecessary rebuilds.
15764         (options.o): New target listing dependencies.
15765         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15766         (STAGESTUFF): Add s-gtyp-gen.
15767
15768 2004-01-28  Richard Henderson  <rth@redhat.com>
15769
15770         * ggc.h (ggc_free): Declare.
15771         * ggc-common.c (ggc_realloc): Use it.
15772         * ggc-page.c: Remove lots of inline markers.
15773         (globals): Add free_object_list.
15774         (ggc_alloc): Tidy.
15775         (ggc_free, validate_free_objects): New.
15776         (poison_pages): Provide default.
15777         (ggc_collect): Call validate_free_objects; emit markers to
15778         the debug file.
15779
15780 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15781             Jim Wilson  <wilson@specifixinc.com>
15782
15783         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15784         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15785         scratch pointer.
15786         (ia64_secondary_reload_class): Delete case GR_REGS.
15787         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15788         Do not allocate a scratch register.
15789         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15790
15791 2004-01-28  Jan Hubicka  <jh@suse.cz>
15792
15793         * gcse.c (bypass_block): Prevent edges to be unified when we are
15794         about to emit compenstation code.
15795
15796 2004-01-28  Nick Clifton  <nickc@redhat.com>
15797
15798         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15799         the setcwx insn into a register.
15800
15801 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15802
15803         * config/fp-bit.c (pack_d): When using paired doubles to implement
15804         a long double, round the high part separately.
15805         (unpack_d): Fix the case in which the high part is a power of two
15806         and the low part is a nonzero value of the opposite sign.
15807
15808 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15809
15810         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15811         (TARGET_STRUCT_VALUE_RTX): Likewise.
15812         (c4x_external_libcall): Likewise.
15813         (c4x_struct_value_rtx): Likewise.
15814         * config/c4x/c4x.h: Remove.
15815         (STRUCT_VALUE_REGNUM): Likewise.
15816         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15817
15818 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15819
15820         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15821         (TARGET_STRUCT_VALUE_RTX): Likewise.
15822         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15823         (STRUCT_VALUE): Likewise.
15824         (PROMOTE_PROTOTYPES): Likewise.
15825
15826 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15827
15828         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15829         CONST_INT before using INTVAL.
15830
15831 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15832
15833         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15834         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15835         frame if !TARGET_BACKCHAIN.
15836         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15837         TARGET_BACKCHAIN.
15838         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15839
15840 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15841
15842         * ia64.c (ia64_function_arg): When placing HFAs in integer
15843         registers, do not special case the mode used for complex
15844         types.  Do not advance int_regs until the current register
15845         is full.
15846
15847 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15848
15849         PR target/7297
15850         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15851
15852 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15853
15854         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15855         slow, unaligned loads and stores while debugging.  Fix formatting.
15856
15857 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15858
15859         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15860         of computing wmode.
15861         (restore_stack_nonlocal): Same.
15862
15863 2004-01-27  Devang Patel <dpatel@apple.com>
15864
15865         * Makefile.in (dwarf2out.o): Depend on input.h
15866         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15867         imported_module_or_decl.
15868         (xcoff_debug_hooks): Same.
15869         * sdbout.c (sdb_debug_hooks): Same.
15870         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15871         * debug.c (do_nothing_debug_hooks): Same.
15872         (debug_nothing_tree_tree): New function.
15873         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15874         * dwarf2out.c: Include input.h.
15875         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15876         (remove_child_TAG): New function.
15877         (dwarf_tag_name): Handle DW_TAG_imported_module.
15878         (gen_subprogram_die): Equate decl number to declaration die. Do not
15879         remove all children dies while reusing declaration die for definition.
15880         Instead, selectively remove only formal parameters.
15881         (gen_variable_die): Equate variable decl to declaration die.
15882         (gen_field_die): Equate field decl to line number.
15883         (force_namespace_die): Replace it with ...
15884         (force_decl_die): ... this.
15885         (force_type_die): New function.
15886         (setup_namespace_context): Replace use of force_namespace_die() with
15887         force_decl_die().
15888         (gen_namespace_die): Same.
15889         (dwarf2out_imported_module_or_decl): New function.
15890
15891 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15892
15893         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15894         on CQImode and CHImode incoming arguments in register a7.
15895         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15896         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15897         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15898         xtensa_copy_incoming_a7 before reload.
15899
15900 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15901
15902         * coverage.c (get_coverage_counts): Give a different message
15903         if flag_guess_branch_prob is set.
15904         * predict.c (counts_to_freqs): Return an int.
15905         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15906         calculate estimates.
15907
15908 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15909
15910         * config/iq2000/iq2000-protos.h: Remove the prototype for
15911         iq2000_setup_incoming_varargs.
15912         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15913         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15914         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15915         (TARGET_STRUCT_VALUE_RTX): Likewise.
15916         (TARGET_RETURN_IN_MEMORY): Likewise.
15917         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15918         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15919         (iq2000_return_in_memory): Likewise.
15920         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15921         first argument by reference.
15922         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15923         (PROMOTE_FUNCTION_RETURN): Likewise.
15924         (PROMOTE_PROTOTYPES): Likewise.
15925         (RETURN_IN_MEMORY): Likewise.
15926         (STRUCT_VALUE): Likewise.
15927         (SETUP_INCOMING_VARARGS): Likewise.
15928         (STRICT_ARGUMENT_NAMING): Likewise.
15929
15930 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15931
15932         * fixinc/fixinc.c (test_test): Initialize res.
15933         (start_flexer): Initialize pz_cmd_save.
15934
15935 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15936
15937         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15938         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15939
15940 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15941
15942         PR 7198
15943         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15944         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15945         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15946         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15947         Possibly rename pattern for consistency.
15948         Remove ??? comments suggesting that this be done.
15949         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15950         New patterns.
15951         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15952         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15953         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15954         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15955         Update to match.
15956
15957 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15958
15959         * config/arm/arm.c (output_return_instruction): Only restore IP
15960         into SP if frame_pointer_needed.
15961
15962 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15963
15964         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15965         for SCmode and DCmode if ARCH32.
15966         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15967         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15968         if ARCH32.
15969         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15970         if ARCH32.
15971         (BASE_OUTGOING_VALUE_REG): Likewise.
15972
15973 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15974
15975         PR target/10904
15976         PR target/13058
15977         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15978         Forbid mode changes from SImode for lower FP regs if ARCH64.
15979
15980 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15981
15982         * Makefile.in (bt-load.o): Depend on except.h.
15983         * bt-load.c (except.h): #include.
15984         (compute_defs_uses_and_gen): If insn at end of BB can throw
15985         within this function, consider registers used by it unavailable for
15986         btr migration.
15987         (move_btr_def): If insn at end of BB can throw, insert before rather
15988         than after.
15989
15990         * flags.h (flag_btr_bb_exclusive): Declare.
15991         * toplev.c (flag_btr_bb_exclusive): New variable.
15992         (f_options): Add btr-bb-exclusive.
15993         * bt-load.c (augment_live_range): Restore old behaviour if
15994         flag_btr_bb_exclusive is set.
15995         * common.opt: Add entry for -fbtr-bb-exclusive.
15996         * opts.c (common_handle_options): Same.
15997         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15998
15999         * bt-load.c (btrs_live_at_end): New variable.
16000         (compute_defs_uses_and_gen): Compute its pointed-to array.
16001         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16002         (augment_live_range): When augmenting with a new dominator,
16003         use only its btrs_live_at_end set, but also add in the full set
16004         of the old dominator.
16005         (btr_def_live_range): Use btrs_live_at_end.
16006         (move_btr_def): Set other_btr_uses_before_def, and move new set
16007         to the end of the basic block, if appropriate.
16008         (migrate_btr_defs): Allocate and free btrs_live_at_end.
16009
16010         * bt-load.c (basic_block_freq): Remove outdated comment.
16011
16012 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
16013
16014         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16015         (PREDICATE_CODES): Remove duplicate.
16016         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16017         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16018         (MASK_PROFILE_KERNEL): Adjust define.
16019
16020 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
16021
16022         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16023         of long string literals from 32 bytes to sizeof (void *) when !-Os
16024         and to 1 with -Os.
16025
16026 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16027
16028         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16029         constant addresses in the normal mode.
16030
16031 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16032
16033         * system.h (CHAR_BITFIELD): Delete.
16034         (BOOL_BITFIELD): New.
16035         * c-decl.c (c_scope): Use BOOL_BITFIELD.
16036         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16037
16038 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16039
16040         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16041         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16042         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16043         (TARGET_STRUCT_VALUE_RTX): Likewise.
16044         (TARGET_RETURN_IN_MEMORY): Likewise.
16045         (arc_return_in_memory): Likewise.
16046         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16047         (PROMOTE_FUNCTION_RETURN): Likewise.
16048         (RETURN_IN_MEMORY): Likewise.
16049         (STRUCT_VALUE): Likewise.
16050
16051 2004-01-26  Richard Henderson  <rth@redhat.com>
16052
16053         * c-parse.in (extension): Use itype.
16054         (SAVE_EXT_FLAGS): Don't allocate a tree.
16055         (RESTORE_EXT_FLAGS): Don't read a tree.
16056
16057 2004-01-26  Jan Hubicka  <jh@suse.cz>
16058
16059         * cselib.c (discard_useless_values):  Clear out value pointer pointing
16060         to datastructure to be recycled.
16061
16062 2004-01-25  Jan Hubicka  <jh@suse.cz>
16063
16064         * genextract.c (main): Do not output the memset when not checking.
16065
16066 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16067
16068         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16069         switch statement instead of a chain of if statements.
16070
16071 2004-01-26  Jeff Law  <law@redhat.com>
16072
16073         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
16074         acute accents for Petur Runolfsson's entry.
16075
16076 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16077
16078         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16079         (TARGET_RETURN_IN_MEMORY): Likewise.
16080         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16081         (RETURN_IN_MEMORY): Likewise.
16082
16083 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16084
16085          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16086          unaligned load/store into smaller loads and stores.
16087
16088 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16089
16090         * function.c (assign_parms): Do not assign
16091         long long argument to memory in prologue if
16092         is it loaded into register.
16093
16094 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16095
16096          PR middle-end/13779
16097          * expr.c (emit_group_load): split constant
16098          correctly into register components of PARALLEL insn.
16099
16100 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16101
16102         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16103         Use adjust_address_nv directly with appropriate mode.
16104         (restore_stack_nonlocal): Ditto.
16105
16106 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16107
16108         * config/xtensa/xtensa-protos.h: Remove the prototype for
16109         xtensa_builtin_saveregs.
16110         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16111         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16112         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16113         (TARGET_STRUCT_VALUE_RTX): Likewise.
16114         (TARGET_RETURN_IN_MEMORY): Likewise.
16115         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16116         (xtensa_builtin_saveregs): Make it static.
16117         (xtensa_return_in_memory): New.
16118         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16119         (PROMOTE_FUNCTION_RETURN): Likewise.
16120         (PROMOTE_PROTOTYPES): Likewise.
16121         (STRUCT_VALUE): Likewise.
16122         (RETURN_IN_MEMORY): Likewise.
16123         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16124
16125 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16126
16127         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16128         (arm_setup_incoming_varargs): Likewise.
16129         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16130
16131 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16132
16133         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16134         (cris_setup_incoming_varargs): Likewise.
16135         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16136
16137 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16138
16139         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16140         (ns32k_struct_value_rtx): Likewise.
16141         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16142         NS32K_STRUCT_VALUE_REGNUM.
16143
16144 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16145
16146         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16147         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16148         (TARGET_STRUCT_VALUE_RTX): Likewise.
16149         (arm_struct_value_rtx): Likewise.
16150         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16151         (STRUCT_VALUE): Likewise.
16152         (STRUCT_VALUE_REGNUM): Likewise.
16153         (PROMOTE_PROTOTYPES): Likewise.
16154
16155 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16156
16157         * config/ia64/ia64-protos.h: Remove the prototype for
16158         ia64_setup_incoming_varargs and ia64_return_in_memory.
16159         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16160         (TARGET_RETURN_IN_MEMORY): Likewise.
16161         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16162         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16163         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16164         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16165         (ia64_return_in_memory): Make it static.  Change the return
16166         type to bool from int.  Add an argument.
16167         (ia64_struct_value_rtx): New.
16168         * config/ia64/ia64.h: Remove commented-out definitions of
16169         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16170         PROMOTE_PROTOTYPES.
16171         (RETURN_IN_MEMORY): Remove.
16172         (STRUCT_VALUE_REGNUM): Likewise.
16173         (STRICT_ARGUMENT_NAMING): Likewise.
16174
16175 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16176
16177         PR target/13666
16178         * config/sparc/sparc.c (function_arg_union_value): New function.
16179         (function_arg): Use it to deal with unions.
16180         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16181         Replace a conditional statement by a simpler one.
16182
16183 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16184
16185         * config/mips/mips.c (mips16_optimize_gp): Delete.
16186         (mips_reorg): Don't call it.
16187
16188 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16189
16190         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16191         (floatunsqihf2): Remove operand 6.
16192         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16193         fix patterns.
16194         (ldi_conditional, ldf_conditional): Validate operands.
16195
16196 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16197
16198         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16199         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16200
16201 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16202
16203         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16204         memory references if TARGET_EXPOSE_LDP nonzero.
16205
16206 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16207
16208         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16209
16210 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16211
16212         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16213         invalid operand combinations.
16214
16215 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16216
16217         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16218         c4x_legitimate_address_p.  Fix post_modify check.
16219
16220         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16221         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16222
16223 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16224
16225         * config/pa/pa-protos.h: Remove the prototype for
16226         hppa_builtin_saveregs.  Add a prototype for
16227         pa_return_in_memory.
16228         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16229         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16230         (TARGET_STRUCT_VALUE_RTX): Likewise.
16231         (TARGET_RETURN_IN_MEMORY): Likewise.
16232         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16233         (pa_struct_value_rtx): Likewise.
16234         (pa_return_in_memory): Likewise.
16235         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16236         PA_STRUCT_VALUE_REGNUM.
16237         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16238         (EXPAND_BUILTIN_SAVEREGS): Remove.
16239         (PROMOTE_PROTOTYPES): Likewise.
16240         (PROMOTE_FUNCTION_RETURN): Likewise.
16241
16242 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16243
16244         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16245         (TARGET_STRUCT_VALUE_RTX): Likewise.
16246         (vax_struct_value_rtx): Likewise.
16247         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16248         VAX_STRUCT_VALUE_REGNUM.
16249         (PROMOTE_PROTOTYPES): Remove.
16250
16251 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16252
16253         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16254
16255 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
16256
16257         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16258         and MIPS64 have HI/LO interlocks.  Update comment.
16259
16260 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16261
16262         * config/stormy16/stormy16-protos.h: Remove the prototype for
16263         xstormy16_setup_incoming_varargs.
16264         * config/stormy16/stormy16.c
16265         (xstormy16_setup_incoming_varargs): Remove.
16266         (xstormy16_return_in_memory): New.
16267         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16268         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16269         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16270         (TARGET_STRUCT_VALUE_RTX): Likewise.
16271         (TARGET_RETURN_IN_MEMORY): Likewise.
16272         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16273         (PROMOTE_FUNCTION_RETURN): Likewise
16274         (PROMOTE_PROTOTYPES): Likewise
16275         (RETURN_IN_MEMORY): Likewise
16276         (STRUCT_VALUE): Likewise
16277         (SETUP_INCOMING_VARARGS): Likewise
16278
16279 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16280
16281         * config/mips/mips.c (mips_offset_within_object_p): New function.
16282         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16283         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16284         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16285
16286 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16287
16288         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16289         (PROMOTE_FUNCTION_RETURN): Likewise.
16290
16291 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16292
16293         * config/mn10300/mn10300-protos.h: Remove the prototype for
16294         mn10300_builtin_saveregs.
16295         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16296         (TARGET_STRUCT_VALUE_RTX): Likewise.
16297         (TARGET_RETURN_IN_MEMORY): Likewise.
16298         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16299         (mn10300_return_in_memory): Likewise.
16300         (mn10300_builtin_saveregs): Make it static.
16301         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16302         (RETURN_IN_MEMORY): Likewise.
16303         (STRUCT_VALUE): Likewise.
16304         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16305
16306 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16307
16308         PR bootstrap/13853
16309         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16310
16311 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16312
16313         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16314         using ccr.
16315
16316 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16317
16318         * config/i860/i860-protos.h: Remove the prototype for
16319         i860_saveregs.
16320         * config/i860/i860.c (i860_saveregs): Make it static.
16321         (i860_struct_value_rtx): New.
16322         (TARGET_STRUCT_VALUE_RTX): Likewise.
16323         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16324         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16325         I860_STRUCT_VALUE_REGNUM.
16326         (EXPAND_BUILTIN_SAVEREGS): Remove.
16327
16328 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16329
16330         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16331         (TARGET_RETURN_IN_MEMORY): Likewise.
16332         (m68hc11_struct_value_rtx): Likewise.
16333         (m68hc11_return_in_memory): Likewise.
16334         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16335         of PROMOTE_PROTOTYPES.
16336         (RETURN_IN_MEMORY): Remove.
16337         (STRUCT_VALUE_REGNUM): Likewise.
16338
16339 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16340
16341         * config/mmix/mmix-protos.h: Remove the prototype for
16342         mmix_setup_incoming_varargs.
16343         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16344         (TARGET_STRUCT_VALUE_RTX): Likewise.
16345         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16346         (mmix_setup_incoming_varargs): Make it static.
16347         (mmix_struct_value_rtx): New.
16348         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16349         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16350         (STRUCT_VALUE_REGNUM): Remove.
16351         (SETUP_INCOMING_VARARGS): Likewise.
16352
16353 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16354
16355         * config/mips/mips-protos.h: Remove the prototypes for
16356         mips_setup_incoming_varargs and mips_return_in_memory.
16357         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16358         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16359         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16360         (TARGET_STRUCT_VALUE_RTX): Likewise.
16361         (TARGET_RETURN_IN_MEMORY): Likewise.
16362         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16363         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16364         (mips_setup_incoming_varargs): Match the prototype for
16365         TARGET_SETUP_INCOMING_VARARGS.
16366         (mips_return_in_memory): Make it static.  Add argument fntype.
16367         (mips_strict_argument_naming): New.
16368         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16369         (PROMOTE_FUNCTION_ARGS): Likewise.
16370         (PROMOTE_FUNCTION_RETURN): Likewise.
16371         (STRUCT_VALUE): Likewise.
16372         (RETURN_IN_MEMORY): Likewise.
16373         (SETUP_INCOMING_VARARGS): Likewise.
16374         (STRICT_ARGUMENT_NAMING): Likewise.
16375
16376 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16377
16378         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16379         (TARGET_RETURN_IN_MEMORY): Likewise.
16380         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16381         (ip2k_return_in_memory): Likewise.
16382         (ip2k_setup_incoming_varargs): Likewise.
16383         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16384         (STRUCT_VALUE): Likewise.
16385         (STRUCT_VALUE_INCOMING): Likewise.
16386         (SETUP_INCOMING_VARARGS): Likewise.
16387
16388 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16389
16390         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16391         (TARGET_RETURN_IN_MEMORY): Likewise.
16392         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16393         (avr_return_in_memory): Remove.
16394         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16395         (STRUCT_VALUE): Likewise.
16396         (STRUCT_VALUE_INCOMING): Likewise.
16397         (STRICT_ARGUMENT_NAMING): Likewise.
16398
16399 2004-01-25  Jan Hubicka  <jh@suse.cz>
16400
16401         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16402
16403 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16404
16405         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16406         (mips_regno_mode_ok_for_base_p): Declare.
16407         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16408         (FRAME_POINTER_REGNUM): Renumber to 78.
16409         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16410         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16411         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16412         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16413         (REG_MODE_OK_FOR_BASE_P): Likewise.
16414         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16415         entry for 77 to "$arg" and entry for 78 to "$frame".
16416         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16417         (mips_reg_mode_ok_for_base_p): Remove.
16418         (mips_regno_mode_ok_for_base_p): New function, derived from old
16419         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16420         restrictions unless we're being strict.
16421         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16422
16423 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16424
16425         * c-common.h: Fix comment typos.
16426         * c-decl.c: Likewise.
16427         * cgraphunit.c: Likewise.
16428         * combine.c: Likewise.
16429         * et-forest.c: Likewise.
16430         * flow.c: Likewise.
16431         * function.c: Likewise.
16432         * ifcvt.c: Likewise.
16433         * integrate.c: Likewise.
16434         * jump.c: Likewise.
16435         * postreload.c: Likewise.
16436         * varray.c: Likewise.
16437
16438 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16439
16440         * doc/frontends.texi: Update copyright.
16441         * doc/gcov.texi: Likewise.
16442         * doc/gty.texi: Likewise.
16443         * doc/sourcebuild.texi: Likewise.
16444         * doc/standards.texi: Likewise.
16445
16446 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16447
16448         PR target/12978
16449         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16450         Remove movstrqi_small because it conflicts with movstrqi_large.
16451
16452 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16453
16454         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16455         (TARGET_STRUCT_VALUE_RTX): Likewise.
16456         (cris_struct_value_rtx): Likewise.
16457         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16458         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16459         STRUCT_VALUE_REGNUM.
16460         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16461
16462 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16463
16464         PR bootstrap/13848
16465         * cse.c (cse_cc_succs): Change the mode of the source expression
16466         as soon as decide we need a new mode.  Don't permit changing modes
16467         if we found a match in a successor block.
16468         (cse_condition_code_reg): Save original mode of source expression
16469         so that we know whether we have to change the mode in other
16470         insns.
16471
16472 2004-01-24  Jan Hubicka  <jh@suse.cz>
16473
16474         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16475         widen_memory_access):  Return early when there is nothing to change.
16476
16477 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16478
16479         * simplify-rtx.c (simplify_relational_operation): Don't
16480         simplify address == constant into address + -constant == 0.
16481
16482 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16483
16484         * gcc.c (process_command): Don't internationalize the
16485         Copyright message.
16486         * mips-tfile.c (main): Likewise.
16487
16488 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16489
16490         * cse.c: (cse_cc_succs) Fix comparison warning.
16491
16492 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16493
16494         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16495
16496 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16497
16498         * config/h8300/h8300-protos.h: Provide prototypes for
16499         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16500         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16501         (h8300_rtx_ok_for_base_p): Likewise.
16502         (h8300_legitimate_address_p): Likewise.
16503         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16504         h8300_legitimate_constant_p.
16505         (RTX_OK_FOR_BASE_P): Remove.
16506         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16507
16508 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16509
16510         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16511         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16512         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16513         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16514         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16515         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16516         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16517         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16518
16519 2004-01-24  Jan Hubicka  <jh@suse.cz>
16520
16521         * cselib.c (remove_useless_values):  Do not access discarded values.
16522
16523 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16524
16525         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16526         arrays.
16527
16528 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16529
16530         * recog.c: Fix a typo in copyright.
16531
16532 2004-01-23  Andrew Pinski  <apinski@apple.com>
16533
16534         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16535         (call_value): Likewise.
16536
16537 2004-01-23  Richard Henderson  <rth@redhat.com>
16538
16539         PR opt/12941
16540         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16541         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16542         if SHIFT_COUNT_TRUNCATED is set.
16543
16544 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16545
16546         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16547         separate real and imaginary parts.
16548         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16549
16550 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16551
16552         PR target/13674
16553         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16554         loading into GPR.
16555
16556 2004-01-23  Jan Hubicka  <jh@suse.cz>
16557
16558         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16559         change.
16560
16561         * alloc-pool.c (align_four): Kill.
16562         (create_alloc_pool): Align size to eight.
16563         (free_alloc_pool, free_pool): Invalidate deallocated data.
16564
16565 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16566
16567         PR gcc/1532
16568         * cse.c (cse_change_cc_mode): New static function.
16569         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16570         (cse_condition_code_reg): New function.
16571         * rtl.h (cse_condition_code_reg): Declare.
16572         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16573         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16574         cc_modes_compatible.
16575         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16576         (TARGET_CC_MODES_COMPATIBLE): Define.
16577         (TARGET_INITIALIZER): Add new initializers.
16578         * targhooks.c (default_cc_modes_compatible): New function.
16579         * targhooks.c (default_cc_modes_compatible): Declare.
16580         * hooks.c (hook_bool_intp_intp_false): New function.
16581         * hooks.h (hook_bool_intp_intp_false): Declare.
16582         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16583         (TARGET_CC_MODES_COMPATIBLE): Define.
16584         (ix86_fixed_condition_code_regs): New static function.
16585         (ix86_cc_modes_compatible): Likewise.
16586         * doc/tm.texi (Condition Code): Document new hooks.
16587
16588 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16589
16590         * fixinc/inclhack.def (bad_lval): Renamed to ...
16591         (alpha_bad_lval): ... this.
16592         Removed file list.
16593         Restrict to alpha*-dec-osf*.
16594         * fixinc/fixincl.x: Regenerate.
16595         * fixinc/tests/base/dirent.h: Remove, moving test ...
16596         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16597
16598 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16599
16600         PR c/13814
16601         * c-decl.c (diagnose_mismatched_decls): Also discard a
16602         built-in if we encounter an old-style definition with the
16603         same name.
16604
16605 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16606
16607         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16608         set to default{32,64}.
16609
16610 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16611
16612         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16613         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16614
16615 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16616             Olivier Hainque  <hainque@act-europe.fr>
16617
16618         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16619         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16620
16621 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16622
16623         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16624         size for minipool references.
16625
16626 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16627
16628         * real.c (real_floor, real_ceil): Tweak to allow input and output
16629         arguments to overlap.
16630         (real_round): New function to implement round(3m) semantics.
16631         * real.h (real_round): Prototype here.
16632         * builtins.c (fold_builtin_round): New function to constant fold
16633         round, roundf and roundl.
16634         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16635
16636 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16637
16638         PR optimization/13819
16639         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16640         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16641         (sh_handle_sp_switch_attribute): Remove warning.
16642
16643 2004-01-23  Jan Hubicka  <jh@suse.cz>
16644
16645         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16646
16647 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16648
16649         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16650         may or may not return non-NIL.
16651         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16652         check CANNOT_CHANGE_MODE_CLASS
16653
16654 2004-01-23  Jan Hubicka  <jh@suse.cz>
16655
16656         * basic-block.h (PROP_POSTRELOAD): New macro.
16657         (CLEANUP_LOG_LINKS): New.
16658         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16659         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16660
16661         * cselib.c (value_pool): New.
16662         (new_cselib_val): Use pool.
16663         (cselib_init): Initialize value_pool
16664         (cselib_finish): Free pool.
16665
16666 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16667
16668         * config/sparc/sparc.c (scan_record_type): New function.
16669         (function_arg_slotno): Use it to determine which kinds of
16670         registers the record can be passed in.
16671
16672 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16673
16674         * config/pa/fptr.c: Fix old-style definition.
16675
16676 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16677
16678         PR optimization/13724
16679         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16680         represents the zero bits produced by a ZERO_EXTEND operation.
16681
16682 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16683
16684         PR optimization/13821
16685         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16686         correctly calculate the lowpart offset of the contracted subreg.
16687
16688 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16689
16690         * doc/invoke.texi (Optimize Options): Note that --param arguments
16691         are subject to change without notice.
16692
16693 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16694
16695         * config.gcc (mips-sgi-irix6*o32): Removed.
16696         * config/mips/iris6-o32-as.h: Likewise.
16697         * config/mips/iris6-o32-gas.h: Likewise.
16698         * config/mips/iris6-o32.h: Likewise.
16699
16700 2004-01-22  Jan Hubicka  <jh@suse.cz>
16701
16702         * cfgcleanup.c (first_pass): New static variable.
16703         (try_forward_edges):  Add work limiting check for threading.
16704         (try_crossjump_bb):  Add work limiting check for crossjumping.
16705         (try_optimize_cfg):  Maintain first pass variable.
16706
16707 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16708
16709         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16710         handles complex and vector modes.
16711
16712 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16713
16714         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16715         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16716         (STRICT): Likewise.
16717
16718 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16719
16720         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16721         (genrtl_for_stmt): Remove emit_nop calls.
16722
16723 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16724
16725         PR target/13713
16726         PR target/13324
16727         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16728         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16729         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16730
16731 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16732
16733         * config/arm/arm.c: Include "debug.h".
16734         (thumb_pushpop): Take two new arguments.  Add some commentary.
16735         Output frame information when pushing.
16736         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16737         thumb_pushpop.
16738         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16739         offset, and pass it to thumb_pushpop.  Output CFI information.
16740         (thumb_expand_prologue): Add some frame-related markers and notes.
16741
16742 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16743
16744         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16745         for TARGET_64BIT.
16746         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16747         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16748
16749 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16750             Paolo Bonzini  <bonzini@gnu.org>
16751
16752         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16753         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16754         * rtl.h (subreg_lsb_1): Prototype here.
16755         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16756         sign extensions.
16757
16758 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16759
16760         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16761         macro need not be defined if jump-tables should contain
16762         relative addresses only when -fPIC or -fPIC is in effect.
16763
16764 2004-01-22  Jan Hubicka  <jh@suse.cz>
16765
16766         * alias.c (reg_base_value): Turn into varray.
16767         (reg_base_value_size): Kill.
16768         (old_reg_base_value): New deletable varray.
16769         (alias_invariant_size): New variable.
16770         (REG_BASE_VALUE): Update to use varray.
16771         (find_base_value): Likewise.
16772         (record_set): Likewise.
16773         (record_base_value): Likewise.
16774         (memrefs_conflict_p): Likewise.
16775         (record_set): Likewise
16776         (record_base_value): Likewise.
16777         (memrefs_conflict_p): Use alias_invariant_size.
16778         (init_alias_analysis): Use varray; set alias_invariant_size;
16779         rescale other arrays to be sized by maxreg.
16780         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16781
16782 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16783
16784         * config/sparc/sparc.c (function_arg_slotno): Use
16785         FLOAT_TYPE_P to detect FP fields in structures.
16786         (function_arg_record_value_1): Likewise.
16787         (function_arg_record_value_2): Likewise.
16788
16789 2004-01-22  Jan Hubicka  <jh@suse.cz>
16790
16791         * function.c (allocate_struct_function): Do not initialize expr, emit
16792         and varasm.
16793         (prepare_function_start): Do it here.
16794         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16795
16796 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16797
16798         PR target/13559
16799         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16800         to 'word_mode' once the first slot has been filled.
16801
16802 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16803
16804         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16805         computation of the number of integer registers required.
16806
16807 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16808
16809         * config/i386/i386.md: Simplify certain comparisons of
16810         const_int.
16811
16812 2004-01-21  Andrew Pinski  <apinski@apple.com>
16813
16814         PR target/13785
16815         * config/rs6000/rs6000.md (call_value): Force operand
16816         1 not operand 0 into a register.
16817
16818 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16819
16820         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16821         unwind-dw2-fde.h: Update copyright.
16822
16823 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16824
16825         * pa-protos.h: Update copyright.
16826         * pa.h: Likewise.
16827         * pa.md: Likewise.
16828
16829 2004-01-21  Caroline Tice  <ctice@apple.com>
16830
16831         PR target/12308
16832         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16833         flags register.
16834         (fix_truncdfdi2): Likewise.
16835         (fix_truncsfdi2): Likewise.
16836         (*fix_truncdi_1): Likewise.
16837         (fix_truncxfsi2): Likewise.
16838         (fix_truncdfsi2): Likewise.
16839         (fix_truncsfsi2): Likewise.
16840         (*fix_truncsi_1): Likewise.
16841         (fix_truncxfhi2): Likewise.
16842         (fix_truncdfhi2): Likewise.
16843         (fix_truncsfhi2): Likewise.
16844         (*fix_trunchi_1): Likewise.
16845
16846 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16847
16848         * alias.c, basic-block.h, c-common.c, c-common.h,
16849         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16850         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16851         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16852         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16853         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16854         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16855         genautomata.c, genconditions.c, genemit.c, genflags.c,
16856         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16857         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16858         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16859         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16860         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16861         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16862         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16863         unwind.h, varray.c, varray.h: Update copyright.
16864
16865 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16866
16867         * config/h8300/coff.h: Update copyright.
16868         * config/h8300/elf.h: Likewise.
16869         * config/h8300/h8300-protos.h: Likewise.
16870         * config/h8300/h8300.c: Likewise.
16871         * config/h8300/h8300.h: Likewise.
16872         * config/h8300/h8300.md: Likewise.
16873
16874 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16875
16876         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16877         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16878         ultrix_unistd): New hacks.
16879         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16880         ULTRIX_CONST2_CHECK): Add checks.
16881         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16882         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16883         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16884         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16885         * fixinc/tests/base/locale.h: New file.
16886         * fixinc/fixincl.x: Rebuilt.
16887
16888 2004-01-21  Andreas Jaeger  <aj@suse.de>
16889             Michael Matz  <matz@suse.de>
16890
16891         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16892
16893 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16894
16895         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16896         _Jv_RegisterClasses through a function pointer.
16897
16898 2004-01-21  Falk Hueffner  <falk@debian.org>
16899
16900         PR target/12898
16901         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16902         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16903         which need multiple instructions to emit.
16904
16905 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16906
16907         * config/m32r/m32r.h (CPP_SPEC): Define.
16908
16909 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16910
16911         * c-decl.c (merge_decls): Kill different_binding_level and
16912         different_tu arguments; simplify throughout.
16913         (duplicate_decls): Likewise.
16914         (pushdecl, merge_translation_unit_decls): Update calls to
16915         duplicate_decls.
16916
16917 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16918
16919         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16920         $(SYSTEM_H).
16921         (print-rtl1.o): Depend on $(SYSTEM_H).
16922
16923 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16924
16925         PR bootstrap/12730
16926         * configure.ac: Delete definition and subsitution of docdir.
16927         Add info, man, srcman and srcinfo to target hooks. Create doc/
16928         directory.
16929         * configure: Regenerate.
16930         * Makefile.in: Don't substitute docdir and delete all references
16931         throughout.
16932         (MAKEINFOFLAGS): Define.
16933         (stmp-docobjdir): Delete.
16934         (INFOFILES, MANFILES): Define.
16935         (info): Call lang.info, srcinfo and lang.srcinfo.
16936         (generated-manpages): Call lang.man, srcman and lang.srcman.
16937         (srcinfo, srcman): New rules to copy back files to source directory.
16938         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16939         (install-man): Revamp rule.
16940         (clean): Update dvi directory.
16941         (distclean): Delete TAGS from front end directorys.
16942         (maintainer-clean): Delete all document files in source directory.
16943
16944         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16945         (objc.srcman, objc.srcinfo): Likewise.
16946
16947 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16948
16949         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16950         (matherr_decl): rename & relocate as exception_structure.
16951         This fix must precede the math_exception fix.
16952
16953 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16954
16955         * fold-const.c (fold_convert): Rename to fold_convert_const.
16956         (fold_convert_const): Change arguments to take a tree_code,
16957         a type and the operand/expression to be converted.  Return
16958         NULL_TREE if no simplification is possible.  Add support for
16959         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16960         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16961         Adjust call to fold_convert to match new fold_convert_const.
16962         Avoid modifying the tree passed to fold in-place.
16963
16964 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16965
16966         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16967         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16968         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16969
16970 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16971
16972         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16973         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16974         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16975         (emit_move_sequence): Check scratch_reg first in various if statements.
16976         Extend source simplification to handle all 64-bit CONST_INTs.
16977         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16978         frame size.
16979         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16980         frame offset calculations.
16981         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16982         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16983         LEGITIMATE_64BIT_CONST_INT_P): Define.
16984         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16985         any CONST_INT as legitimate during and after reload.
16986         (VAL_32_BITS_P, INT_32_BITS): Define.
16987         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16988
16989 2004-01-20  Jan Hubicka  <jh@suse.cz>
16990
16991         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16992         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16993         containing hard regs are shared.
16994         (gen_hard_reg_clobber): New function.
16995         (hard_reg_clobbers): New array.
16996         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16997         (copy_rtx): Do not copy clobbers containing hard regs.
16998         * rtl.h (gen_hard_reg_clobber): Declare.
16999
17000 2004-01-20  Jan Hubicka  <jh@suse.cz>
17001
17002         * varray.c:  Include hashtab.h
17003         (varray_descriptor): New structure.
17004         (hash_descriptor, eq_descriptor, varray_descriptor,
17005         print_statistics): New static functions
17006         (varray_init, varray_grow): Update statistics
17007         (dump_varray_statistics): New function.
17008         * varray.h (dump_varray_statistics): Declare.
17009         * toplev.c (finalize): Call it.
17010         * Makefile.in (varray.o): Add dependency.
17011
17012 2004-01-20  Jan Hubicka  <jh@suse.cz>
17013
17014         * cselib.c: Include alloc-pool.h
17015         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17016         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17017         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17018         unchain_one_elt_loc_list_pool, unchain_one_value,
17019         new_cselib_val): Simplify using allocpool.
17020         (cselib_init): Initialize allocpools.
17021         (cselib_finish): Finish allocpools.
17022         * Makefile.in (cselib.o): Depend on alloc-pool.h
17023
17024 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
17025
17026         * config/mips/mips.c (mips_load_call_address): Make the call insn
17027         use $gp if it could be calling a lazy binding stub.
17028
17029 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17030
17031         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17032         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17033         (TARGET_STRUCT_VALUE_RTX): Likewise.
17034         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17035         (PROMOTE_FUNCTION_RETURN): Remove.
17036         (STRUCT_VALUE): Remove.
17037
17038 2004-01-20  Denis Chertykov  <denisc@overta.ru>
17039
17040         PR bootstrap/13735
17041         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17042         register as pointer after reload.
17043
17044 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17045
17046         PR optimization/12440
17047         * loop.c: Include ggc.h.
17048         (loop_optimize): Run garbage collector between optimization of loops.
17049         * Makefile.in (loop.o): Add GGC_H dependency.
17050
17051 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
17052
17053         * gcc/config/rs6000/rs6000.c (function_arg) Handle
17054         vector register special in function without prototype.
17055         (function_arg_advance): Vector parameters get always
17056         GPRs allocated for the linux64 target.
17057
17058 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17059
17060         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17061         not TARGET_M32RX_MASK.
17062
17063 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
17064
17065         PR target/13557
17066         * config/sparc/sparc.c (function_arg): Reorder the cases.
17067
17068 2004-01-19  Per Bothner  <per@bothner.com>
17069
17070         Move cpp_reader's line_maps field to a shared global.
17071         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
17072         and change the type to a pointer rather than a struct.
17073         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
17074         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17075         Likewise.
17076         * cppfiles.c (validate_pch):  Likewise.
17077         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17078         Likewise.
17079         * cpperror.c (print_location):  Likewise.
17080         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
17081         * cppinit.c (cpp_create_reader):  Handle new parameter.
17082         (cpp_destroy):  Don't free line_maps - that's no longer our job.
17083         * input.h (line_table):  New variable.
17084         * toplev.c (line_table):  Declare variable.
17085         (general_init):  Initialize line_table.
17086         * c-opts.c (c_common_init_options):  Pass line_table to
17087         cpp_create_reader.
17088         * fix-header.c (read_scan_file):  New local variable line_table.
17089         Initialize, and pass it to cpp_create_reader.
17090         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
17091         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
17092
17093 2004-01-19  Per Bothner  <per@bothner.com>
17094
17095         Implement a cache for linemap_lookup.
17096         * line-map.h (struct_line_maps):  Add cache field.
17097         * line-map.c (linemap_init):  Zero cache field.
17098         (linemap_add):  Set cache field to offset of newly allocated map.
17099         (linemap_lookup):  Use and set cache field.
17100
17101 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17102
17103         PR optimization/13567
17104         * cse.c (cse_basic_block): Call cse_insn with a non-null
17105         libcall_insn for the last SET insn of a no-confilict block.
17106
17107 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17108
17109         * Makefile.in (target_noncanonical, program_transform_name): Use
17110         immediate define instead of deferred.
17111         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17112         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17113         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17114         deferred backquote.
17115
17116 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
17117
17118         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17119         true unconditionally.
17120         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17121         Remove.
17122         (build_unary_op, build_modify_expr): Don't handle extended
17123         lvalues.
17124         (build_component_ref, build_conditional_expr): Call non_lvalue
17125         instead of pedantic_non_lvalue.
17126         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17127         * fold-const.c (fold): Don't check pedantic directly for
17128         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17129         passed to pedantic_non_lvalue.
17130         * doc/extend.texi: Remove documentation of extended lvalues.
17131
17132 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17133
17134         PR optimization/5263
17135         * simplify-rtx.c (associative_constant_p): Delete.
17136         (simplify_associative_operation): Rewrite to linearize terms, and
17137         attempt to simplify new term against both left and right subterms.
17138         (simplify_binary_operation): Call swap_commutative_operands_p on
17139         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17140         trueop0 and trueop1 down to where first needed.
17141         (simplify_relational_operation): Likewise.
17142         * rtlanal.c (commutative_operand_precedence): Also order constant
17143         operands using avoid_constant_pool_reference.
17144
17145 2004-01-19  Richard Henderson  <rth@redhat.com>
17146
17147         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17148         don't check memory mode.
17149         (unaligned_memory_operand): Likewise.
17150         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17151         abort for op0 not MEM.
17152
17153         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17154         is not a reg, copy to a scratch first.
17155         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17156         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17157         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17158         (reload_inqi, reload_inhi): Fix mode of op0.
17159         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17160         reload_outhi_help): Likewise.  Use define_insn_and_split.
17161
17162         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17163         as well as $29 dead.
17164
17165 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17166
17167         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17168         "tls_object" for thread-local objects.
17169         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17170         "#tls" for thread-local sections.
17171         * configure.ac (thread-local checks): Specify --fatal-warnings in
17172         every binutils-specific checks.  For sparc*-*-*, test whether the
17173         OS is Solaris and the tools are native and act accordingly.
17174         * configure: Rebuild.
17175
17176 2004-01-19  Jeff Law  <law@redhat.com>
17177
17178         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17179         Jerry Quinn and Petur Runolfsson.
17180
17181 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17182
17183         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17184         size, don't use the larger zero-extending loads.
17185
17186 2004-01-19  Richard Henderson  <rth@redhat.com>
17187
17188         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17189         * alpha.md (UNSPEC_NT_LDA): Remove.
17190         (UNSPEC_CVTLQ, cvtlq): New.
17191         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17192         (extendsidi2_fix): Remove.
17193         (extendsidi2 splitter): Use cvtlq.
17194         (extendsidi2 fp peepholes): Remove.
17195         (cvtql): Use SFmode instead of SImode.
17196         (fix_trunc?fsi): Update to match.
17197         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17198         (movsi): Rename from movsi_nofix, remove f alternatives.
17199         (movsi_nt_vms): Similarly.
17200         (movsi_fix, movsi_nt_vms_fix): Remove.
17201         (nt_lda): Remove.
17202         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17203
17204 2004-01-19  Jan Hubicka  <jh@suse.cz>
17205
17206         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17207         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17208         list.
17209         (cgraph_remove_unreachable_nodes): New function
17210         (cgraph_decide_inlining_of_small_function): Fix pasto.
17211         (cgraph_decide_inlining_incrementally): Fix pasto.
17212         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17213
17214 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17215
17216         * gengtype.c (header_file): Make it static.
17217         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17218         * gengtype.h (header_file): No longer extern.
17219
17220 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17221
17222         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17223         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17224         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17225
17226 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17227
17228         * stmt.c (HAVE_casesi): Define it not already defined.
17229         (HAVE_tablejump): Likewise.
17230         (expand_end_case_type): Resort to the binary tree method if
17231         neither casesi or tablejump is available.
17232
17233 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17234
17235         * final.c (final_scan_insn): Make non-static again.
17236         * output.h (final_scan_insn): Re-add prototype.
17237         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17238         to final_scan_insn call.
17239         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17240         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17241         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17242         * config/sh/sh.c (print_slot): Likewise.
17243         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17244         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17245
17246 2004-01-18  Jan Hubicka  <jh@suse.cz>
17247
17248         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17249         * cfgcleanup.c (try_optimize_cfg): Use it.
17250         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17251         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17252         Kill hack.
17253         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17254
17255         Revert:
17256         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17257
17258                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17259                 even after reload, just don't remove the actual jump tables.
17260
17261 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17262
17263         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17264
17265 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17266
17267         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17268         the size of a pointer in bytes.
17269
17270 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17271
17272         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17273         live "next" variable, which could lead to an infinite loop.
17274
17275 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17276
17277         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17278         block.
17279
17280         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17281         Check for NULL in the chain and remove repeated code.
17282
17283 2004-01-18  Jan Hubicka  <jh@suse.cz>
17284
17285         * coverage.c (checksum_string): Rename to ...
17286         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17287         names containing random number and zero the number out in order to get
17288         match.
17289
17290 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17291
17292         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17293
17294 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17295
17296         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17297         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17298         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17299         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17300         doc/trouble.texi: Remove trailing whitespace.
17301
17302 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17303
17304         PR target/7618
17305         * config/mips/mips.c: Include cfglayout.h.
17306         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17307         (mips_unspec_offset_high): Add temporary register argument.
17308         (mips_load_call_address): New function, split out from...
17309         (mips_expand_call): ...here.
17310         (mips_output_cplocal): New function.
17311         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17312         (mips_emit_loadgp): New function, split out from...
17313         (mips_expand_prologue): ...here.
17314         (mips_output_mi_thunk): New function.
17315
17316 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17317
17318         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17319         mcpu32): Remove redundant checks for implied target predefines.
17320
17321 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17322
17323         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17324         Return type is unsigned int not int.
17325         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17326         Likewise.
17327
17328 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17329
17330         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17331         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17332         "GNU/Linux" and "Microsoft Windows" terminology.
17333
17334 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17335
17336         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17337         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17338         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17339         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17340         @smallexample instead of @example.
17341
17342 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17343
17344         * objc/objc-act.c (build_objc_method_call): Use target
17345         hooks instead of macros to determine if ..._stret
17346         dispatchers should be used (NeXT runtime only).
17347
17348 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17349
17350         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17351         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17352
17353 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17354
17355         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17356         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17357         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17358         macros.
17359         * reload1.c (emit_reload_insns): Use them.
17360         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17361         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17362         for NULL PATTERN.
17363
17364 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17365
17366         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17367         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17368         a line note after the prologue.  Make static.
17369         (line_note_exists): Remove.
17370         (final): Don't initialize line_note_exists.  Update call to
17371         final_scan_insn.
17372         * output.h (final_scan_insn): Remove prologue.
17373         * function.c (set_insn_locators): Update comment.
17374         (thread_prologue_and_epilogue_insns): Add a comment.
17375
17376 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17377
17378         PR target/10781
17379         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17380         Prototype.
17381         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17382         New function.
17383         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17384         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17385         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17386
17387 2004-01-17  Jan Hubicka  <jh@suse.cz>
17388
17389         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17390         commit.
17391
17392         * toplev.c (HAVE_conditional_execution): Provide default.
17393         (rest_of_handle_reorder_blocks): For conditional_execution target
17394         update liveness once after all transformations
17395         (rest_of_compilation): Do crossjumping before ce3.
17396
17397 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17398
17399         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17400         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17401         for PCH.
17402         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17403         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17404         (get_TOC_alias_set): Mark 'set' for PCH.
17405
17406 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17407
17408         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17409         even after reload, just don't remove the actual jump tables.
17410
17411 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17412
17413         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17414         Remove checks for is_ada() and TREE_UNSIGNED.
17415         (subrange_type_die): Emit a byte_size attribute if the subrange
17416         type size is different from the base type size.
17417         (modified_type_die): Replace call to is_ada_subrange_type() by
17418         call to is_subrange_type().
17419
17420 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17421
17422         * config/sh/sh.c: Include ggc.h.
17423
17424 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17425
17426         * Makefile.in (MD5_H): New.
17427         (fold-const.o): Depend on md5.h.
17428         (dwarf2out.o): Likewise.
17429         (cppfiles.o): Likewise.
17430         * cppfiles.c: Include md5.h.
17431         (should_stack_file): Check against list read from PCH file.
17432         (struct pchf_data): New.
17433         (pchf): New variable.
17434         (struct pchf_adder_info): New.
17435         (pchf_adder): New.
17436         (pchf_save_compare): New.
17437         (_cpp_save_file_entries): New.
17438         (_cpp_read_file_entries): New.
17439         (struct pchf_compare_data): New.
17440         (pchf_compare): New.
17441         (check_file_against_entries): New.
17442         * cpphash.h (_cpp_save_file_entries): Prototype.
17443         (_cpp_read_file_entries): Prototype.
17444         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17445         (cpp_read_state): Read the list of headers.
17446
17447 2004-01-17  Jan Hubicka  <jh@suse.cz>
17448
17449         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17450         builtin_expect specially.
17451         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17452         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17453         * invoke.texi (max-inline-insns-single): Set to 100.
17454         (large-function-insns): Set to 3000.
17455
17456 2004-01-16  Eric Christopher  <echristo@redhat.com>
17457             Chandrakala Chavva <cchavva@redhat.com>
17458
17459         * cppcharset.c (one_iso88591_to_utf8): New function.
17460         (convert_iso88591_utf8): Ditto. Use.
17461         (conversion_tab): Use.
17462         (_cpp_input_to_utf8): New function.
17463         (_cpp_init_iconv_buffer): Ditto.
17464         (_cpp_close_iconv_buffer): Ditto.
17465         * cpphash.h: Prototype new functions.
17466         (cpp_buffer): Add input_cset_desc.
17467         * cppinit.c: Add input_charset default.
17468         * cpplib.c (cpp_push_buffer): Support init and
17469         close of iconv.
17470         * cpplib.h (cpp_options): Add input_charset.
17471
17472 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17473
17474         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17475         * config/alpha/unicosmk.h: Remove a commented-out definition
17476         of ASM_OUTPUT_SECTION_NAME.
17477         * config/stormy16/stormy16.h: Likewise.
17478
17479 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17480
17481         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17482         (alpha___extern_prefix_sys_stat): ... this.
17483         Apply to <sys/mount.h>, too.
17484         Tweak to match more variations.
17485         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17486
17487         * fixinc/inclhack.def (alpha___extern_prefix,
17488         alpha___extern_prefix_standards): New hacks to obey
17489         __PRAGMA_EXTERN_PREFIX.
17490         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17491         test.
17492         * fixinc/tests/base/standards.h: Likewise.
17493
17494         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17495         variations.
17496         New testcase.
17497         * fixinc/tests/base/pthread.h: Handle it.
17498
17499         * fixincl/inclhack.def (bad_lval): Sort file list.
17500         Add many missing files up to Tru64 UNIX V5.1B.
17501         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17502         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17503         order.
17504
17505         * fixinc/fixincl.x: Regenerate.
17506
17507 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17508
17509         * version.c (version_string): Change to 3.5.0.
17510         * doc/include/gcc-common.texi (version-GCC): Likewise.
17511
17512 2004-01-16  Jan Hubicka  <jh@suse.cz>
17513
17514         * i386.md (load_tp_di): Fix pasto.
17515
17516         PR opt/13608
17517         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17518
17519         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17520         pp_c_character_constant, pp_c_floating_constant,
17521         pp_c_additive_expression, pp_c_shift_expression,
17522         pp_c_equality_expression, pp_c_and_expression,
17523         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17524         pp_c_logical_and_expression): Remove inline modifier.
17525         * dwarf2out.c (get_AT): Likewise.
17526         * et-forest.c (et_splay): Likewise.
17527         * ra.h (ra_alloc, ra_calloc): Likewise
17528
17529 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17530
17531         * config/frv/frv-protos.h: Fix comment formatting.
17532         * config/frv/frv.c: Likewise.
17533         * config/frv/frv.h: Likewise.
17534         * config/frv/frv.md: Likewise.
17535         * config/frv/frvbegin.c: Likewise.
17536         * config/frv/frvend.c: Likewise.
17537
17538 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17539
17540         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17541         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17542         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17543         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17544
17545 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17546
17547         PR 11864
17548         * postreload.c (reload_cse_simplify_operands): Don't remove
17549         implicit extension from LOAD_EXTEND_OP.
17550
17551 2004-01-16  Jan Hubicka  <jh@suse.cz>
17552
17553         PR opt/11350
17554         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17555         after reload.
17556         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17557         rtl_try_redirect_by_replacing_branch): Likewise.
17558
17559 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17560
17561         PR pch/13689
17562         * alias.c (struct alias_set_entry): Mark for GC.
17563         (alias_sets): Make static, mark for GC.
17564         (record_alias_subset): Use GC to allocate alias structures.
17565         * varray.c (element): Make generic varrays GCed.
17566
17567         PR pch/13361
17568         * c-typeck.c (constructor_asmspec): Delete.
17569         (struct initializer_stack): Delete field 'asmspec'.
17570         (start_init): Delete saving of asmspec.
17571         (finish_init): Don't update constructor_asmspec.
17572         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17573         * stmt.c (expand_asm): Duplicate strings from tree.
17574         (expand_asm_operands): Likewise.
17575         * tree.c (tree_size): Update computation of size of STRING_CST.
17576         (make_node): Don't make STRING_CST nodes.
17577         (build_string): Allocate string with tree node.
17578         * tree.def (STRING_CST): Update comment.
17579         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17580         (tree_string): Place contents of string in tree node.
17581         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17582         from tree.
17583
17584         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17585         altivec operands.
17586
17587 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17588
17589         * c-common.h: Fix comment formatting.
17590         * c-cppbuiltin.c: Likewise.
17591         * c-pragma.c: Likewise.
17592         * calls.c: Likewise.
17593         * collect2.c: Likewise.
17594         * cppcharset.c: Likewise.
17595         * cpptrad.c: Likewise.
17596         * dbxout.c: Likewise.
17597         * defaults.h: Likewise.
17598         * dwarf2out.c: Likewise.
17599         * fold-const.c: Likewise.
17600         * genautomata.c: Likewise.
17601         * genconditions.c: Likewise.
17602         * genflags.c: Likewise.
17603         * gengtype.c: Likewise.
17604         * integrate.c: Likewise.
17605         * loop.c: Likewise.
17606         * predict.c: Likewise.
17607         * sdbout.c: Likewise.
17608
17609 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17610
17611         * config/ia64/ia64.md (*movti_internal): C output template
17612         extracted to ia64.c.
17613         (*movti_internal_reg): Delete.
17614         (reload_inti, reload_outti): Use the correct mode on operand 2
17615         in the first place, don't fix it up in the output template.
17616         (movtf, reload_ointf, reload_outtf): New expanders.
17617         (*movtf_internal): New define_insn_and_split.
17618         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17619         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17620         (ia64_split_tmode_move): New function, body mostly pulled
17621         from ia64.md:*movti_internal.
17622         (ia64_function_arg_words): New function, extracted common
17623         logic from ia64_function_arg et seq.
17624         (ia64_function_arg_offset): Likewise.  Handle correctly the
17625         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17626         (ia64_function_arg, ia64_function_arg_partial_nregs)
17627         (ia64_function_arg_advance): Use ia64_function_arg_words and
17628         ia64_function_arg_offset.
17629         (ia64_function_value): TCmode does not go in float regs.
17630         (ia64_secondary_reload_class): Also handle TFmode.
17631         * config/ia64/ia64-protos.h: Remove prototype for
17632         ia64_split_timode; add prototype for ia64_split_tmode_move.
17633
17634 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17635
17636         * Makefile.in (MAINT): Make it an immediate assignment.
17637
17638 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17639
17640         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17641
17642 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17643
17644         * config/h8300/coff.h: Replace Hitachi with Renesas.
17645         * config/h8300/elf.h: Likewise.
17646         * config/h8300/h8300-protos.h: Likewise.
17647         * config/h8300/h8300.c: Likewise.
17648         * config/h8300/h8300.h: Likewise.
17649         * config/h8300/h8300.md: Likewise.
17650         * config/h8300/lib1funcs.asm: Likewise.
17651
17652 2004-01-15  Andrew Pinski  <apinski@apple.com>
17653
17654         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17655         around it.
17656
17657 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17658
17659         * config/h8300/h8300.c (h8300_return_in_memory): New.
17660         (TARGET_STRUCT_VALUE_RTX): Likewise.
17661         (TARGET_RETURN_IN_MEMORY): Likewise.
17662         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17663         (RETURN_IN_MEMORY): Likewise.
17664
17665 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17666
17667         PR optimization/13375
17668         * gcse.c (handle_avail_expr): Just return if the source is not a
17669         single set.
17670
17671 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17672             Daniel Jacobowitz  <drow@mvista.com>
17673
17674         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17675         (EQUIV): Define.
17676         (ARM_FUNC_ALIAS): New macro.
17677         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17678         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17679
17680 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17681
17682         PR optimization/12372
17683         * calls.c (expand_call): Add call_fusage data for stack arguments in
17684         constant calls.
17685
17686 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17687
17688         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17689         (rs6000_elf_declare_function_name): Formatting.
17690         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17691
17692 2004-01-15  Jan Hubicka  <jh@suse.cz>
17693
17694         PR bootstrap/13692
17695         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17696         previous patch.
17697
17698 2004-01-15  Richard Henderson  <rth@redhat.com>
17699
17700         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17701         integer regs of the same call-savedness.
17702
17703 2004-01-15  Andreas Schwab  <schwab@suse.de>
17704
17705         PR bootstrap/13562
17706         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17707         status for NOTB/NOTW/NEGW methods.
17708
17709 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17710
17711         * doc/invoke.texi: Update dump file names.  Fix a typo.
17712
17713 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17714
17715         * builtins.c (expand_builtin_va_end): Don't use
17716         EXPAND_BUILTIN_VA_END.
17717         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17718         * config/d30v/d30v.h: Remove a commented-out definition of
17719         EXPAND_BUILTIN_VA_END.
17720         * config/stormy16/stormy16.h: Likewise.
17721
17722 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17723
17724         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17725         * targhooks.c (default_struct_value_rtx): Don't use
17726         STRUCT_VALUE_INCOMING_REGNUM.
17727
17728 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17729
17730         PR bootstrap/12744
17731         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17732         GENINSRC and not parsedir.  Define srcextra as a langhook.
17733         * configure: Regenerate.
17734         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17735         parsedir and delete all references throughout.  Conditionally define
17736         rule for srcextra dependent on GENINSRC.
17737         (stmp-docobjdir): Delete.
17738         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17739         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17740         and gengtype-yacc.h back to source directory.
17741         (maintainer-clean): Delete all parse files in source directory.
17742         (distclean): Delete generated files.
17743
17744         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17745         (objc-parse.c, objc-parse.y): Don't use parsedir.
17746         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17747         directory if requested.
17748         (po-generated): Don't use parsedir.
17749         (objc.maintainer-clean): Delete above files from source directory.
17750
17751 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17752
17753         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17754
17755 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17756
17757         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17758         TARGET_RETURN_IN_MEMORY.
17759
17760 2004-01-15  Jan Hubicka  <jh@suse.cz>
17761
17762         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17763         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17764         functions accepting SSE arguments
17765         (function_arg): Warn only when asked to warn.
17766         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17767
17768 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17769
17770         * c-parse.in (stmts_and_decls): Make label at end of compound
17771         statement a hard error.
17772
17773 2004-01-14  Jan Hubicka  <jh@suse.cz>
17774
17775         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17776         * cgraph.h (cgraph_local_info): Sort fields by size; add
17777         redefined_extern_inline
17778         (cgraph_global_info): Sort fields by size.
17779         (cgraph_node): Likewise.
17780         * cgraphunit.c (cgraph_finalize_function): Se
17781         local.redefined_extern_inline on redefinition.
17782         (cgraph_analyze_function): Use it; fix formating.
17783
17784 2004-01-14  Jan Hubicka  <jh@suse.cz>
17785
17786         PR c++/10776
17787         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17788         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17789         bitmaps
17790         (cache_size): New variable
17791         (add_dependence): Update use; canonize early memory locations
17792         (sched_analyze_1): Likewise.
17793         (sched_analyze_2): Likewise.
17794         (init_dependency_caches): Initialize bitmaps.
17795         (free_dependency_caches): Free bitmaps
17796
17797 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17798
17799         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17800         targetm.calls.strict_argument_naming().
17801         * target.h: Likewise.
17802
17803 2004-01-14  Richard Henderson  <rth@redhat.com>
17804
17805         PR debug/13231
17806         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17807         instructions.
17808
17809 2004-01-14  Richard Henderson  <rth@redhat.com>
17810
17811         PR c++/12491
17812         * except.c (struct eh_region): Add u.fixup.resolved.
17813         (resolve_one_fixup_region): Split out from ...
17814         (resolve_fixup_regions): ... here.
17815
17816 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17817
17818         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17819
17820 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17821
17822         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17823         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17824         (STRUCT_VALUE): Remove.
17825
17826 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17827
17828         * system.h: Poison PROMOTED_MODE
17829         * integrate.c (expand_inline_function): Don't mention the
17830         PROMOTED_MODE.
17831         * loop.c (update_giv_derive): Same.
17832         * tree.h (DECL_RTL): Same.
17833
17834 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17835
17836         PR target/9365
17837         * sh.c (gen_block_redirect): Add special handling of RETURN.
17838         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17839         far branch target (i.e. it's a return).
17840
17841 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17842
17843         * regrename.c (find_oldest_value_reg): Fix a warning.
17844
17845 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17846
17847         PR bootstrap/12527
17848         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17849         Move linux-gas.h and linux-elf.h before aout.h.
17850         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17851         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17852
17853 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17854
17855         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17856         (CONST_INT, VOIDmode, ...).
17857
17858 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17859
17860         * regrename.c (find_oldest_value_reg): If the replacement uses
17861         multiple hard registers, check that all of them are in CLASS.
17862
17863 2004-01-14  Jan Hubicka  <jh@suse.cz>
17864
17865         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17866         impossible.
17867
17868 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17869
17870         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17871
17872 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17873
17874         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17875         Calculate always vrsave_mask if TARGET_ALTIVEC.
17876         (rs6000_emit_prologue): Emit code for vrsave
17877         only if TARGET_ALTIVEC_VRSAVE.
17878         (rs6000_emit_epilogue): Likewise.
17879
17880 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17881
17882         * config/sparc/sparc.md (tie_add32): Fix pasto.
17883         (tie_add64): Likewise.
17884
17885 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17886
17887         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17888
17889 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17890
17891         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17892         * config/iq2000/iq2000.c: Likewise.
17893         * config/iq2000/iq2000.md: Likewise.
17894
17895 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17896
17897         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17898         (subrange_type_die): Add handle for nameless subrange types.
17899
17900 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17901
17902         * config/h8300/h8300-protos.h: Replace do_movsi with
17903         h8300_expand_movsi.
17904         * config/h8300/h8300.c (do_movsi): Change to
17905         h8300_expand_movsi.
17906         * config/h8300/h8300.md (movsi): Replace do_movsi with
17907         h8300_expand_movsi.
17908         (movsf): Likewise.
17909
17910 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17911
17912         * config/h8300/h8300.c (dosize): Change to
17913         h8300_emit_stack_adjustment.  Update callers.
17914
17915 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17916
17917         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17918         the source being post_inc.  Tighten the predicate for the
17919         destination to register_operand.
17920         (movstricthi): Likewise.
17921
17922 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17923
17924         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17925         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17926         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17927
17928 2004-01-14  Jan Hubicka  <jh@suse.cz>
17929
17930         Partial fix PR c++/12850
17931         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17932         at zero nest level.
17933
17934 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17935
17936         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17937         pseudo-register.
17938
17939 2004-01-13  Devang Patel <dpatel@apple.com
17940
17941         PR debug/7078
17942         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17943         NAMESPACE_DECL memebers.
17944
17945 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17946
17947         PR c++/12709
17948         * c-common.c (finish_fname_decls): Use the chain only if the
17949         tree is an expr_stmt.
17950
17951 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17952
17953         * rtl.def: Add comment about new option in automata_option.
17954
17955         * genautomata.c (PROGRESS_OPTION): New macro.
17956         (progress_flag): New global variable.
17957         (gen_automata_option): Process `progress'.
17958         (transform_insn_regexps, check_unit_distributions_to_automata,
17959         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17960         expand_automata, write_automata): Print about the progress only if
17961         progress_flag.  Remove fflush.
17962         (initiate_automaton_gen): Process command line flag `-progress'.
17963
17964         * doc/md.texi: Describe the new option.
17965
17966 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17967
17968         * cfg.c (dump_bb): Dump entry edges.
17969
17970 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17971
17972         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17973         references from SImode.
17974         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17975
17976 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17977
17978         * system.h (TEXT_SECTION): Poison.
17979         * varasm.c (text_section): Don't use TEXT_SECTION.
17980         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17981         * doc/tm.texi (TEXT_SECTION): Remove.
17982
17983 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17984
17985         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17986
17987 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17988
17989         * unwind-libunwind.c: Delete.
17990
17991 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17992
17993         PR 13656
17994         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17995         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17996         them at the very end.
17997         (validate_proto_after_old_defn): Restructure for comprehensibility;
17998         make error messages clearer.
17999
18000 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18001
18002         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18003         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18004         * varray.c: No need to prototype error.
18005         (varray_check_failed): Wrap long string onto two lines.
18006         (varray_underflow): New function.
18007
18008 2004-01-13  Steven Bosscher  <stevenb@suse.de>
18009
18010         PR c++/13376
18011         * function.h (struct function): Kill `name' field.
18012         (current_function_name): Make it an extern function.
18013         * function.c (current_function_name): New function.
18014         * graph.c: Update all uses of current_function_name.
18015         * gcse.c: Likewise.
18016         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18017         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18018         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18019         instead of a strcmp with "main".
18020
18021 2004-01-13  Jan Hubicka  <jh@suse.cz>
18022
18023         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
18024
18025         * cgraphunit.c (cgraph_optimize_function):  Always do
18026         optimize_inline_calls when there is always_inline callee.
18027         (cgraph_decide_inlining): Fix formating.
18028         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18029         functions.
18030         (expand_call_inline): Likewise.
18031         * toplev.h (sorry): Fix prototype.
18032
18033 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18034
18035         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18036         conditional jumps that drop through to unconditional jumps or the
18037         end of the sequence.
18038
18039 2004-01-13  Jan Hubicka  <jh@suse.cz>
18040
18041         * alias.c (new_alias_set): Construct the alias_set varray.
18042         (init_alias_once): Don't do it here.
18043
18044 2004-01-12  Marc Espie <espie@openbsd.org>
18045
18046         * system.h: handle YYBYACC like YYBISON.
18047
18048 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
18049
18050         PR target/10847
18051         * config.gcc: No longer includes conflicting header sparc/sol2.h when
18052         building on sparc64-*-openbsd*.
18053
18054 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
18055
18056         PR debug/13539
18057         * dbxout.c (dbxout_type): Protected inheritance is not
18058         private but protected.
18059
18060 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18061
18062         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18063
18064 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
18065
18066         PR optimization/12508.
18067         * combine.c (try_combine): Remove a dead set in a parallel
18068         even if its destination is a subreg.
18069
18070         Revert:
18071         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
18072         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18073         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18074
18075 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
18076
18077         * real.c: Update copyright date.
18078         * emit-rtl.c: Likewise.
18079         * rtl.h: Likewise.
18080         * dwarf2out.c: Likewise.
18081         * config/rs6000/darwin-ldouble.c: Likewise.
18082         * config/rs6000/rs6000.md: Likewise.
18083
18084 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18085
18086         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18087         TFmode to SImode libfuncs.
18088
18089 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18090
18091         PR middle-end/11397
18092         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18093
18094 2004-01-12  Jan Hubicka  <jh@suse.cz>
18095
18096         PR opt/12826
18097         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18098         stored.
18099
18100         PR opt/12863
18101         * cfgcleanup.c (label_is_jump_target_p): Move to...
18102         * rtlanal.c (label_is_jump_target_p): ... here.
18103         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
18104         edges unified with branch edges.
18105
18106 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
18107
18108         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18109         high word of an integral CONST_DOUBLE.
18110
18111 2004-01-12  Paul Brook  <paul@codesourcery.com>
18112
18113         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18114
18115 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
18116
18117         PR target/13585
18118         * sh-protos.h (check_use_sfunc_addr): Declare.
18119         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18120         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18121
18122 2004-01-12  Jan Hubicka  <jh@suse.cz>
18123
18124         * alias.c:  Invlude varray.h
18125         (alias_sets): Turn into varray.
18126         (get_alias_set_entry): Use VARRAY; mark inline.
18127         (mems_in_disjoint_alias_sets_p): Mark inline.
18128         (record_alias_subset): Use varray.
18129         (init_alias_once): Initialize varray.
18130         (new_alias_set): Grow array.
18131         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18132
18133 2004-01-12  Jan Hubicka  <jh@suse.cz>
18134
18135         Partial fix for PR opt/10776 II
18136         * cselib.c: Include params.h
18137         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18138         locations.
18139         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18140         * Makefile.in (cselib.o): Depend on params.h
18141
18142 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18143
18144         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18145         simplify_unary_operation if the operand has a known mode.
18146
18147 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18148
18149         PR target/13534
18150         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18151         predicate to handle 'ld' conform addresses.
18152         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18153         contraint.
18154         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18155         are memory contraints.
18156         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18157         New prototype.
18158         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18159         Change 'o' to 'Y' constraint.
18160         (*movdf_softfloat64): Ditto.
18161
18162 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18163
18164         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18165         brace-enclosed syntax in all C output statements.
18166
18167 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18168
18169         PR target/13401
18170         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18171         Objective-C language type value is 14.
18172
18173 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18174
18175         PR c/12148
18176         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18177         `int' in a number of places to make sure we always have a SImode
18178         and not a HImode.  Add a 'L' suffix to a number of constants.
18179
18180 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18181
18182         * pa.c: Don't include obstack.h.
18183
18184         * pa.md: Correct constraint in pattern for loading PIC label address.
18185
18186 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18187
18188         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18189          before defining.
18190
18191 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18192
18193         PR fortran/9972
18194         * toplev.c (rest_of_handle_inline): Also consider functions
18195         for deferral if the language is GNU F77.
18196
18197 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18198
18199         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18200         diagnostic messages.
18201
18202 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18203
18204         PR middle-end/13392
18205         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18206         to drop through label.  Don't fall back to SCC even when conditional
18207         jump has not been found.
18208
18209 2004-01-11  Jan Hubicka  <jh@suse.cz>
18210
18211         * invoke.texi: Fix syntax error in previous patch.
18212
18213         Partial fix for PR opt/10776
18214         * Makefile.in (reload.o): Include param.h
18215         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18216         * reload.c: Include params.h.
18217         (find_equiv_reg): Work limiting check.
18218         * invoke.texi: Document.
18219
18220 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18221
18222         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18223         out-of-bounds accesses to string constants.  Simplify mips16
18224         case accordingly.
18225
18226 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18227
18228         PR optimization/13469
18229         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18230         reload_cse_regs (-fnon-call-exceptions only).
18231
18232 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18233
18234         * config/mcore/lib1.asm: Fix comment formatting.
18235         * config/mcore/mcore-elf.h: Likewise.
18236         * config/mcore/mcore.c: Likewise.
18237         * config/mcore/mcore.h: Likewise.
18238         * config/mcore/mcore.md: Likewise.
18239
18240 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18241
18242         * c-decl.c (duplicate_decls): Break apart into...
18243         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18244         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18245         ... these new functions.  Restructure for comprehensibility.
18246         Remove various archaic special cases.  Always report the
18247         location of the previous declaration when a diagnostic is issued.
18248         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18249         (match_builtin_function_types): Delete unnecessary forward declaration.
18250
18251 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18252
18253         * genautomata.c (make_automaton, NDFA_to_DFA):
18254         Print progress bars with '.' characters instead of '*'.
18255         (build_automaton): Change notes to match.
18256
18257 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18258
18259         * config/m32r/m32r.md: Use define_constants for unspec and
18260         unspec_volatile.
18261
18262 2004-01-10  Jan Hubicka  <jh@suse.cz>
18263
18264         PR opt/11635
18265         * expr.c (expand_expr_real):  More curefully expand union casts.
18266
18267 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18268
18269         * config/m32r/m32r.md (flush_icache): Use 1 for
18270         unspec_volatile.
18271
18272 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18273             James E Wilson  <wilson@specifixinc.com>
18274
18275         PR debug/12860
18276         * dbxout.c (dbxout_symbol): Remove initialization of
18277         current_sym_code, current_sym_value, and current_sym_addr.
18278         (dbxout_symbol_location): Same.
18279         (dbxout_prepare_symbol): Zero current_sym_code,
18280         current_sym_value, and current_sym_addr.
18281
18282 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18283
18284         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18285         check is done first.
18286
18287 2004-01-09  Eric Christopher  <echristo@redhat.com>
18288
18289         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18290         if we're running mark_constant_function.
18291
18292 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18293
18294         PR target/12561
18295         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18296
18297 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18298
18299         PR debug/11231
18300         * dbxout.c (dbxout_type_fields): Return if any item is
18301         error_mark_node or the type is error_mark_node.
18302
18303 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18304
18305         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18306         exactly what is expected as a 'long double'.
18307         (_xlqadd): When a value to be returned is representable as a
18308         'double', just return it directly, do not construct it using a union.
18309         Also, correct final fixup.
18310         (_xlqmul): Likewise.
18311         (_xlqdiv): Likewise.
18312         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18313
18314         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18315
18316 2004-01-09  Richard Henderson  <rth@redhat.com>
18317
18318         * recog.c (constrain_operands): Validate mem operands.
18319
18320 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18321
18322         * gcc.c (init_spec): Remove -lunwind from shared case.
18323         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18324
18325 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18326
18327         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18328         * configure: Regenerate
18329
18330 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18331
18332         PR c/11234
18333         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18334         between function and object pointers.
18335         (digest_init): When comparing a pointer to function type to the
18336         target type, only apply TREE_TYPE once to the pointer to function
18337         type.
18338         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18339         function pointer rather than casting it to a function pointer.
18340         (for_each_eh_label): Update caller.
18341         * recog.h (struct insn_data): Use a struct or union for output.
18342         * genoutput.c (output_insn_data): Update.
18343         * final.c (get_insn_template): Update.
18344
18345 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18346
18347         * expr.h (expand_expr): Make it a macro, not a function.
18348         (expand_expr_real): New function.
18349         * expr.c (store_expr): Adjust logic for deciding whether or not to
18350         copy the value returned by expand_expr.
18351         (expand_expr): Rename to ...
18352         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18353         calls to language hooks.
18354         * c-common.h (c_expand_expr): Adjust prototype.
18355         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18356         * langhooks-def.h (lhd_expand_expr): Change prototype.
18357         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18358         * langhooks.h (lang_hooks): Change type of expand_expr.
18359         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18360         (last_expr_alt_rtl): Likewise.
18361         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18362         (clear_last_expr): Clear it.
18363         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18364         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18365         * tree.def (RTL_EXPR): Give it an additional operand.
18366         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18367
18368 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18369
18370         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18371         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18372
18373 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18374
18375         PR target/13380.
18376         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18377         or (ne:SI (reg:CC 17) (const_int 0)).
18378         Be specific about modes wherever possible.
18379
18380 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18381
18382         * config/m32r/m32r.c (m32r_expand_block_move): Call
18383         gen_movestrsi_internal with two more arguments.
18384         (m32r_output_block_move): Adjust operand numbers.
18385         Properly update the source and destination pointers.
18386         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18387         'r+'.  Change the set detinations to match_operand.
18388
18389 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18390
18391         * final.c (FIRST_INSN_ADDRESS): Remove.
18392         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18393         * system.h (FIRST_INSN_ADDRESS): Poison.
18394         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18395         * config/m32r/m32r-protos.h: Remove the prototype for
18396         m32r_first_insn_address.
18397         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18398         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18399         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18400
18401 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18402
18403         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18404         we just created.
18405         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18406         emitted as subrange types too.
18407         (subrange_type_die): Add handling of enumeration subtypes.
18408
18409 2004-01-08  Richard Henderson  <rth@redhat.com>
18410
18411         PR opt/12441
18412         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18413         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18414         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18415         (ix86_address_cost): Be prepared for SUBREGed registers.
18416         (legitimate_address_p): Accept SUBREGed registers.
18417
18418 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18419
18420         * Makefile.in: Rename configure.in to configure.ac
18421         * doc/sourcebuild.texi: Likewise.
18422         * configure: Regenerate.
18423         * config.in: Regenerate.
18424
18425 2004-01-08  Stuart Hastings  <stuart@apple.com>
18426
18427         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18428
18429 2004-01-08  Jan Hubicka  <jh@suse.cz>
18430
18431         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18432
18433 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18434
18435         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18436         (UNSPEC_FIX_TRUNC_TF): New constant.
18437         (movtf_internal): Make splitter active only when insn is active.
18438         (extenddftf2): Rewrite to properly load zero into low part.
18439         (extenddftf2_internal): New.
18440         (extendsftf2): Rewrite.
18441         (truncdftf2): Correct length.
18442         (floatditf2): Delete.
18443         (fix_trunc_helper): New.
18444         (fix_trunctfdi2): Use fix_trunc_helper.
18445         (fix_trunctfsi2): Likewise.fix_trunc
18446         (fix_trunctfsi2_internal): New.
18447
18448         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18449         addresses are legitimate on Darwin even when flag_pic.
18450         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18451         non-offsettable addresses for loads of TFmode constants.
18452
18453 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18454
18455         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18456         variables in the appropriate bss section.
18457
18458 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18459
18460         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18461         target_flags has MASK_POWERPC64 when -m64.
18462         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18463         to 620, 630, power3, power4 and rs64a entries.
18464         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18465
18466 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18467
18468         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18469         floating-point constants.
18470
18471 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18472
18473         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18474         Create the subrange_type DIE using the given context DIE.
18475         (modified_type_die): Update call to subrange_type_die.
18476
18477 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18478
18479         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18480         Add multiple-include guard.
18481
18482 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18483
18484         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18485         all vector constant loadable by vsplt*.
18486         (output_vec_const_move): Likewise.
18487
18488 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18489
18490         PR c/6024
18491         * c-typeck.c (comptypes): Only treat enumerated types in the same
18492         translation unit as compatible with each other when they are the
18493         same type.
18494         * doc/extend.texi: Update.
18495
18496 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18497
18498         PR c/12165
18499         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18500         array type from the array element type.
18501
18502 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18503
18504         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18505         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18506         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18507         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18508         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18509
18510 2004-01-06  Eric Christopher  <echristo@redhat.com>
18511
18512         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18513         (DWARF2_DEBUGGING_INFO): Define.
18514         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18515         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18516         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18517         for irix as.
18518         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18519         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18520         * config/mips/iris5gas.h: Ditto.
18521         (DBX_DEBUGGING_INFO): Remove.
18522         (DWARF2_DEBUGGING_INFO): Ditto.
18523         (MIPS_DEBUGGING_INFO): Ditto.
18524         (PREFERRED_DEBUGGING_TYPE): Ditto.
18525         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18526         (PREFERRED_DEBUGGING_TYPE): Ditto.
18527         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18528         * config/mips/elf64.h: Ditto.
18529
18530 2004-01-06  Jan Hubicka  <jh@suse.cz>
18531
18532         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18533         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18534
18535 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18536
18537         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18538         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18539         * config/rs6000/darwin-ldouble.c: New.
18540
18541         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18542         for constants.
18543         (constant_subword): Delete.
18544         * rtl.h (constant_subword): Delete prototype.
18545         (immed_double_const): Is not in varasm.c.
18546         * simplify-rtx.c (simplify_immed_subreg): New.
18547         (simplify_subreg): Use simplify_immed_subreg.
18548
18549         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18550         than trying to generate RTL directly.
18551         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18552         RTL directly.
18553
18554         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18555
18556 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18557
18558         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18559         function into a separate macro.
18560         (read_only_data_section): Add void argument.
18561         (private_data_section): Same.
18562         (read_only_private_data_section): Same.
18563         (toc_section): Same.
18564
18565 2004-01-06  Jan Hubicka  <jh@suse.cz>
18566
18567         * invoke.texi:  Remove typo in last change.
18568
18569         PR target/10301
18570         * config.gcc: Accept opteron and athlon-64 as variants
18571         of k8.
18572         * i386.c (override_options): Likewise.
18573         * invoke.texi (i386 -mtune): Expand documentation.
18574
18575 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18576
18577         * alias.c: Fix comment typos.
18578         * builtins.c: Likewise.
18579         * cfg.c: Likewise.
18580         * df.c: Likewise.
18581         * dominance.c: Likewise.
18582         * dwarf2out.c: Likewise.
18583         * emit-rtl.c: Likewise.
18584         * expr.c: Likewise.
18585         * final.c: Likewise.
18586         * fold-const.c: Likewise.
18587         * gcse.c: Likewise.
18588         * genattrtab.c: Likewise.
18589         * genrecog.c: Likewise.
18590         * gensupport.c: Likewise.
18591         * ggc-zone.c: Likewise.
18592         * integrate.c: Likewise.
18593         * local-alloc.c: Likewise.
18594         * loop.c: Likewise.
18595         * recog.c: Likewise.
18596         * regmove.c: Likewise.
18597         * reg-stack.c: Likewise.
18598         * reorg.c: Likewise.
18599         * rtlanal.c: Likewise.
18600         * rtl.h: Likewise.
18601         * sched-ebb.c: Likewise.
18602         * simplify-rtx.c: Likewise.
18603         * toplev.c: Likewise.
18604         * varasm.c: Likewise.
18605
18606 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18607
18608         * doc/install.texi: Fix typos.
18609         * doc/invoke.texi: Likewise.
18610         * doc/md.texi: Likewise.
18611
18612 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18613
18614         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18615
18616 2004-01-06  Jan Hubicka  <jh@suse.cz>
18617
18618         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18619         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18620         of MMX_REGPARM.
18621         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18622         add MMX_REGPARM.
18623         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18624         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18625         (MMX_REGPARM_MAX): Similarly for -mmmx.
18626
18627 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18628
18629         * config/sh/linux.h: Fix comment formatting.
18630         * config/sh/netbsd-elf.h: Likewise.
18631         * config/sh/sh.c: Likewise.
18632         * config/sh/sh.h: Likewise.
18633         * config/sh/vxworks.h: Likewise.
18634
18635 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18636
18637         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18638         * toplev.c (output_file_directive): Don't use
18639         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18640
18641 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18642
18643         * toplev.c: Fix broken checkin of 2003-12-30.
18644
18645 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18646
18647         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18648         (USING_MMAP): We don't support non-mmap.
18649         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18650         large objects.
18651         (struct page_entry): Remove bytes_free.
18652         (struct page_table_chain): Remove.
18653         (struct globals): Remove page_table member.
18654         (loookup_page_table_entry): Function deleted.
18655         (set_page_table_entry): Ditto.
18656         (ggc_allocated_p): No longer need page table lookups.
18657         (ggc_marked_p): Ditto.
18658         (alloc_small_page): Don't care about bytes_free anymore.
18659         (alloc_large_page): Round up size.
18660         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18661         their size the new way.
18662         Remove page table lookups and setting.
18663         (ggc_get_size): Calculate large object size the new way.
18664         (sweep_pages): Redo to account for fact that we no longer have
18665         bytes_free.
18666         (ggc_collect): No longer need to reincrement bytes_free.
18667         (ggc_pch_alloc_object): Handle new large objects properly.
18668         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18669
18670 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18671
18672         * doc/invoke.texi: Remove a page break.
18673
18674 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18675
18676         * config/avr/avr.c (avr_output_function_prologue): Remove an
18677         extra pair of curly braces.
18678
18679 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18680
18681         * config/mn10300/mn10300.c: Fix comment formatting.
18682         * config/mn10300/mn10300.h: Likewise.
18683
18684 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18685
18686         * tree.h: Update documentation on nothrow_flag.
18687         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18688         types.
18689
18690 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18691
18692         * doc/invoke.texi: Remove traces of dead ports.
18693
18694 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18695
18696         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18697         option.
18698
18699 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18700
18701         PR target/12945
18702         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18703         counter labels.
18704         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18705         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18706         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18707         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18708         (mips_symbol_insns): Don't trust the local/global classification.
18709         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18710         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18711         -mno-explicit-relocs.
18712         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18713         between local and global symbols.
18714
18715 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18716
18717         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18718         (mips_preferred_reload_class): Declare.
18719         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18720         (EXTRA_CONSTRAINT): Update accordingly.
18721         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18722         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18723         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18724         mips_dangerous_for_la25_p.
18725         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18726         if mips_dangerous_for_la25_p.
18727
18728 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18729
18730         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18731         warning.
18732
18733 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18734
18735         * configure.ac: Use AC_PROG_CPP_WERROR.
18736         * configure: Regenerate.
18737
18738 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18739
18740         * .cvsignore: Add autom4te.cache.
18741
18742 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18743
18744         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18745         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18746         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18747         then architecture options, then ABI options.  General rewording.
18748
18749 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18750
18751         PR c/3414
18752         * doc/extend.texi: Clarify definition of malloc attribute.
18753
18754 2004-01-04  Jan Hubicka  <jh@suse.cz>
18755
18756         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18757         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18758         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18759         (cgraph_inline_p): Add extra argument reason.
18760         * cgraphunit.c: Minor formating fixes.
18761         cgraph_first_inlined_callee): New functions.
18762         (record_call_1): Record builtins too.
18763         (cgraph_analyze_function): Update inline_failed messages.
18764         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18765         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18766         (cgraph_check_inline_limits): Likewise; Add argument reason.
18767         (cgraph_set_inline_failed): New static function.
18768         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18769         reasons.
18770         (cgraph_inline_p): Add new argument reason.
18771         * tree-inline.c (expand_call_inline):  Update warning.
18772
18773 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18774
18775         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18776         with modern equivalents.
18777         * configure: Regenerate.
18778
18779         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18780         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18781         * configure: Regenerate.
18782
18783         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18784
18785         * configure.in: Rename to configure.ac.
18786         * configure.ac: Renamed from configure.in; make minimum necessary
18787         changes for autoconf 2.5x.
18788         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18789         * configure: Regenerate with autoconf 2.57.
18790
18791 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18792
18793         * config/mips/linux.h: Fix comment formatting.
18794         * config/mips/mips.c: Likewise.
18795         * config/mips/mips.h: Likewise.
18796         * config/mips/mips.md: Likewise.
18797         * config/mips/netbsd.h: Likewise.
18798         * config/mips/windiss.h: Likewise.
18799
18800 2004-01-02  Richard Henderson  <rth@redhat.com>
18801
18802         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18803         for sse and 387; add suppression for mmx.
18804
18805 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18806
18807         * loop.c (loop_optimize): Free all loops_info's mems.
18808
18809         * c-typeck.c (finish_init): Free spelling_base before
18810         setting it again.
18811
18812         * cfgloop.c (flow_loops_find): Always free the sbitmap
18813         headers.
18814
18815         * predict.c (estimate_probability): Free bbs after being
18816         done with it.
18817
18818 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18819
18820         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18821         const_8bit_operand and call_address_operand.
18822
18823 2004-01-02  Jan Hubicka  <jh@suse.cz>
18824
18825         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18826         when there is nothing to inline but warnings are requested.
18827         (cgraph_decide_inlining):  Fix memory leak.
18828
18829 2004-01-02  Jan Hubicka  <jh@suse.cz>
18830
18831         * expr.c (store_constructor):  Fix pasto in previous patch.
18832
18833 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18834
18835         * config/i386/cygming.h: Fix comment formatting.
18836         * config/i386/djgpp.h: Likewise.
18837         * config/i386/gthr-win32.c: Likewise.
18838         * config/i386/i386-interix.h: Likewise.
18839         * config/i386/i386.c: Likewise.
18840         * config/i386/i386.h: Likewise.
18841         * config/i386/openbsd.h: Likewise.
18842         * config/i386/winnt.c: Likewise.
18843         * config/i386/xm-mingw32.h: Likewise.
18844
18845 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18846
18847         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18848         copyright and last modification dates.
18849
18850 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18851
18852         * doc/install.texi (Specific): Mention x86_64.
18853
18854 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18855
18856         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18857         Call force_operand on plus_constant result.
18858
18859 2004-01-01  Jan Hubicka  <jh@suse.cz>
18860
18861         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18862         * expr.c (store_constructor): Use vec_init pattern.
18863         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18864         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18865         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18866         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18867         New patterns.
18868         (sse2_unpc?pd): Fix pattern.
18869         (sse2_movlpd): Kill.
18870         (sse2_movsd): Deal with movlpd too.
18871         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18872         (ix86_expand_vector_init): New.
18873         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18874         * md.texi (vec_set, vec_extract): Document
18875
18876 2003-12-31  Jan Hubicka  <jh@suse.cz>
18877
18878         PR opt/13473
18879         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18880         ASM input operands
18881
18882         PR opt/12617
18883         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18884         (dump_file): Likewise.
18885         (rest_of_compilation): Likewise.
18886
18887         PR debug/13367
18888         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18889         flag_really_no_inline we inline always_inline functions.
18890         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18891         for non-always_inline functions when there is flag_really_no_inline.
18892         (cgraph_decide_inlining): Limit work done when not inlining.
18893         (cgraph_decide_inlining_incrementally): Likewise.
18894         (cgraph_optimize_function): Check whether something got inlined.
18895         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18896         extern inline functions when not inlining.
18897
18898         * opts.c (decode_options):  Disable crossjumping at -O1
18899         * invoke.texi (-O1): Document change.
18900
18901 See ChangeLog.10 for earlier changes.